@acorex/platform 20.2.2 → 20.2.3
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../tmp-esm2022/layout/entity/lib/entity-data-seeder.js","../tmp-esm2022/layout/entity/lib/entity.config.js","../tmp-esm2022/layout/entity/lib/entity.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-detail-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-modifier.context.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-provider.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-middleware.js","../tmp-esm2022/layout/entity/lib/entity-registery.service.js","../tmp-esm2022/layout/entity/lib/entity-master-create.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-master-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity.service.js","../tmp-esm2022/layout/entity/lib/workflows/delete-entity.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-update.viewmodel.js","../tmp-esm2022/layout/entity/lib/workflows/modify-section.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-single.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-storage-service.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.registry.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.executor.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage-with-middleware.service.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/provide-entity-storage-middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/middlewares/logging.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/middlewares/audit.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/index.js","../tmp-esm2022/layout/entity/lib/search-definition-command.provider.js","../tmp-esm2022/layout/entity/lib/search-definition.provider.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.js","../tmp-esm2022/layout/entity/lib/workflows/create-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/modify-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-details.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-file-uploader-popup.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-list.workflow.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-print.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-designer.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget.config.js","../tmp-esm2022/layout/entity/lib/entity.module.js","../tmp-esm2022/layout/entity/lib/utils.js","../tmp-esm2022/layout/entity/acorex-platform-layout-entity.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');\nexport class AXPDataSeederService {\n constructor() {\n this.loaders = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n }\n async seed() {\n for (const loader of castArray(this.loaders)) {\n await loader?.seed();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRhdGEtc2VlZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LWRhdGEtc2VlZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU10QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsdUJBQXVCLENBQUMsQ0FBQztBQUdsRyxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBT3JFO0lBTEMsS0FBSyxDQUFDLElBQUk7UUFDUixLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0FQVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQURQLE1BQU07OzJGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU2VlZGVyIHtcbiAgc2VlZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX0RBVEFfU0VFREVSX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUERhdGFTZWVkZXJbXT4oJ0FYUF9EQVRBX1NFRURFUl9UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUERhdGFTZWVkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2FkZXJzID0gaW5qZWN0KEFYUF9EQVRBX1NFRURFUl9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBhc3luYyBzZWVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgbG9hZGVyIG9mIGNhc3RBcnJheSh0aGlzLmxvYWRlcnMpKSB7XG4gICAgICBhd2FpdCBsb2FkZXI/LnNlZWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken('AXP_ENTITY_CONFIG_TOKEN');\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken('AXP_ENTITY_DEFINITION_PROVIDER');\nexport class AXPEntityResolver {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n }\n async get(moduleName, entityName) {\n if (Array.isArray(this.providers)) {\n for (const loader of this.providers) {\n const entity = await loader.get(moduleName, entityName);\n if (entity) {\n return entity;\n }\n }\n }\n else {\n return await this.providers.get(moduleName, entityName);\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQWlCekUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQW1CLHlCQUF5QixDQUFDLENBQUM7QUFRdkcsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzVELGdDQUFnQyxDQUNqQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQWUxRDtJQWJDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3hELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBZlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlDb25maWdzIHtcbiAgdmlld2Vyczoge1xuICAgIHJvb3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICBkZXRhaWw6IHtcbiAgICAgIGxpc3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICB9O1xuICAgIG1hc3Rlcjoge1xuICAgICAgc2luZ2xlOiAoKSA9PiBUeXBlPGFueT4gfCBQcm9taXNlPFR5cGU8YW55Pj47XG4gICAgICBjcmVhdGU6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICAgIG1vZGlmeTogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgICAgbGlzdDogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBFbnRpdHlDb25maWdzPignQVhQX0VOVElUWV9DT05GSUdfVE9LRU4nKTtcblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciB7XG4gIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXI+KFxuICAnQVhQX0VOVElUWV9ERUZJTklUSU9OX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZXNvbHZlciB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xuXG4gIGFzeW5jIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBsb2FkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgbG9hZGVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvdmlkZXJzLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==","import { resolveActionLook, } from '@acorex/platform/common';\nimport { computed } from '@angular/core';\nexport class AXPEntityCommandTriggerViewModel {\n constructor(entity, action) {\n this.name = `${typeof action.command === 'string' ? action.command : action.command.name}&${action.name}`;\n this.options = typeof action.command === 'object' ? action.command.options : undefined;\n this.metadata = typeof action.command === 'object' ? action.command.metadata : undefined;\n const resolvedLook = resolveActionLook(action);\n this.priority = action.priority;\n this.title = action.title;\n this.separated = action.separated ?? false;\n this.color = action.color ?? resolvedLook.color;\n this.icon = action.icon ?? resolvedLook.icon;\n this.hidden = action.hidden ?? false;\n this.disabled = action.disabled ?? false;\n this.default = action.default ?? false;\n this.scope = action.scope;\n }\n}\nexport class AXPEntityListViewColumnViewModel {\n constructor(property, column) {\n this.property = property;\n this.column = column;\n this.name = this.property.name;\n this.title = this.column.title ?? this.property.title;\n this.visible = this.column?.options?.visible ?? true;\n this.dir = this.column.sort?.dir;\n this.sortEnabled = this.property.options?.sort?.enabled;\n this.node = computed(() => {\n const widget = this.property.schema.interface;\n return {\n path: this.column.options?.dataPath ?? this.name,\n type: widget.type,\n options: { ...widget?.options, ...this.column?.options },\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU1MLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUFZLE1BQWlCLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLFFBQTJCLEVBQzNCLE1BQTRCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBR3RDLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsUUFBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFHbkQsU0FBSSxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQztZQUMvQyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUk7Z0JBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7YUFDbEMsQ0FBQztRQUMzQixDQUFDLGdEQUFDLENBQUM7SUFoQkEsQ0FBQztDQWlCTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlBY3Rpb24sXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRW50aXR5UHJvcGVydHksXG4gIEFYUEVudGl0eVRhYmxlQ29sdW1uLFxuICByZXNvbHZlQWN0aW9uTG9vayxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTWV0YURhdGEgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29sdW1uTm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIHtcbiAgcHJpb3JpdHk6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknO1xuICBjb2xvcjogQVhTdHlsZUNvbG9yVHlwZTtcbiAgaWNvbjogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGtleT86IHN0cmluZztcbiAgc2VwYXJhdGVkOiBib29sZWFuO1xuICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlO1xuICBkaXNhYmxlZDogYm9vbGVhbiB8IHN0cmluZztcbiAgaGlkZGVuOiBib29sZWFuIHwgc3RyaW5nO1xuICBvcHRpb25zOiBhbnk7XG4gIG1ldGFkYXRhPzogQVhQTWV0YURhdGE7XG4gIGRlZmF1bHQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eTogQVhQRW50aXR5LCBhY3Rpb246IEFYUEVudGl0eUFjdGlvbikge1xuICAgIHRoaXMubmFtZSA9IGAke3R5cGVvZiBhY3Rpb24uY29tbWFuZCA9PT0gJ3N0cmluZycgPyBhY3Rpb24uY29tbWFuZCA6IGFjdGlvbi5jb21tYW5kLm5hbWV9JiR7YWN0aW9uLm5hbWV9YDtcbiAgICB0aGlzLm9wdGlvbnMgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdvYmplY3QnID8gYWN0aW9uLmNvbW1hbmQub3B0aW9ucyA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1ldGFkYXRhID0gdHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnb2JqZWN0JyA/IGFjdGlvbi5jb21tYW5kLm1ldGFkYXRhIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlc29sdmVkTG9vayA9IHJlc29sdmVBY3Rpb25Mb29rKGFjdGlvbik7XG4gICAgdGhpcy5wcmlvcml0eSA9IGFjdGlvbi5wcmlvcml0eTtcbiAgICB0aGlzLnRpdGxlID0gYWN0aW9uLnRpdGxlO1xuICAgIHRoaXMuc2VwYXJhdGVkID0gYWN0aW9uLnNlcGFyYXRlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmNvbG9yID0gYWN0aW9uLmNvbG9yID8/IHJlc29sdmVkTG9vay5jb2xvcjtcbiAgICB0aGlzLmljb24gPSBhY3Rpb24uaWNvbiA/PyByZXNvbHZlZExvb2suaWNvbjtcbiAgICB0aGlzLmhpZGRlbiA9IGFjdGlvbi5oaWRkZW4gPz8gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGFjdGlvbi5kaXNhYmxlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmRlZmF1bHQgPSBhY3Rpb24uZGVmYXVsdCA/PyBmYWxzZTtcbiAgICB0aGlzLnNjb3BlID0gYWN0aW9uLnNjb3BlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICAgIHByaXZhdGUgY29sdW1uOiBBWFBFbnRpdHlUYWJsZUNvbHVtbixcbiAgKSB7fVxuXG4gIG5hbWUgPSB0aGlzLnByb3BlcnR5Lm5hbWU7XG4gIHRpdGxlID0gdGhpcy5jb2x1bW4udGl0bGUgPz8gdGhpcy5wcm9wZXJ0eS50aXRsZTtcbiAgdmlzaWJsZSA9IHRoaXMuY29sdW1uPy5vcHRpb25zPy52aXNpYmxlID8/IHRydWU7XG4gIGRpciA9IHRoaXMuY29sdW1uLnNvcnQ/LmRpcjtcbiAgc29ydEVuYWJsZWQgPSB0aGlzLnByb3BlcnR5Lm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQ7XG4gIHdpZHRoOiAnJztcblxuICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Q29sdW1uTm9kZT4oKCkgPT4ge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMucHJvcGVydHkuc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IHRoaXMuY29sdW1uLm9wdGlvbnM/LmRhdGFQYXRoID8/IHRoaXMubmFtZSxcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgb3B0aW9uczogeyAuLi53aWRnZXQ/Lm9wdGlvbnMsIC4uLnRoaXMuY29sdW1uPy5vcHRpb25zIH0sXG4gICAgfSBhcyBBWFBXaWRnZXRDb2x1bW5Ob2RlO1xuICB9KTtcbn1cbiJdfQ==","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, signal } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPEntityResolver } from './entity.config';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nexport class AXPEntityDetailListViewModel {\n constructor(injector, detailEntityConfig, parent) {\n this.injector = injector;\n this.detailEntityConfig = detailEntityConfig;\n this.parent = parent;\n this.detailEntity = signal(null, ...(ngDevMode ? [{ debugName: \"detailEntity\" }] : []));\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.detailEntity()?.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.detailEntity()?.queries.list?.execute;\n return func(e);\n },\n pageSize: 5,\n key: 'id',\n });\n this.parentKey = computed(() => {\n return this.detailEntity()?.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasSelectedItems\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n return (this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title ??\n this.detailEntity()?.formats.plural);\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Visibility ******************//\n this.hidden = computed(async () => {\n if (typeof this.detailEntityConfig.hidden == 'string') {\n const scope = {\n context: {\n eval: (path) => {\n return get(this.parent.data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(this.detailEntityConfig.hidden, scope);\n }\n else {\n return this.detailEntityConfig.hidden ?? false;\n }\n }, ...(ngDevMode ? [{ debugName: \"hidden\" }] : []));\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\n return [];\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const originalList = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n // Create a map to track which actions from detailEntityActionList have been used\n const usedOverrideActions = new Set();\n // Start with original actions, applying overrides where they exist\n const mergedActions = originalList.map((originalAction) => {\n const originalCommandName = typeof originalAction.command === 'string' ? originalAction.command : originalAction.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === originalCommandName && action.name === originalAction.name;\n });\n if (overrideAction) {\n // Mark this override action as used\n const overrideKey = `${typeof overrideAction.command === 'string' ? overrideAction.command : overrideAction.command.name}_${overrideAction.name}`;\n usedOverrideActions.add(overrideKey);\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), overrideAction);\n }\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), originalAction);\n });\n // Add any remaining actions from detailEntityActionList that weren't used as overrides\n const additionalActions = detailEntityActionList\n .filter((action) => {\n const actionKey = `${typeof action.command === 'string' ? action.command : action.command.name}_${action.name}`;\n return !usedOverrideActions.has(actionKey);\n })\n .map((action) => new AXPEntityCommandTriggerViewModel(this.detailEntity(), action));\n return [...additionalActions, ...mergedActions].filter((a) => !a.hidden);\n }, ...(ngDevMode ? [{ debugName: \"allActions\" }] : []));\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n }, ...(ngDevMode ? [{ debugName: \"selectedScopeActionsCount\" }] : []));\n this.primaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n }, ...(ngDevMode ? [{ debugName: \"primaryActions\" }] : []));\n this.secondaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n }, ...(ngDevMode ? [{ debugName: \"secondaryActions\" }] : []));\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'), ...(ngDevMode ? [{ debugName: \"primaryRowActions\" }] : []));\n this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'), ...(ngDevMode ? [{ debugName: \"secondaryRowActions\" }] : []));\n //****************** Filter ******************//\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n //****************** Columns ******************//\n this.columns = computed(() => {\n if (this.detailEntity()) {\n const detailColumns = this.detailEntityConfig.columns ?? [];\n const columns = this.detailEntity()?.columns?.map((c) => c.name) ?? [];\n const props = this.detailEntity()?.properties.filter((p) => p.schema.hidden != true && (detailColumns?.length == 0 || detailColumns?.includes(p.name))) ?? [];\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, this.detailEntity()?.columns?.find((c) => c.name == p.name));\n });\n }\n return [];\n }, ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.evaluateExpressions = async (actionData) => {\n const parentData = this.parent.data;\n console.log({ actionData, parentData });\n const scope = {\n context: {\n eval: (path) => {\n return get(parentData, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(actionData, scope);\n };\n this.initialize();\n }\n async initialize() {\n const entityResolver = this.injector.get(AXPEntityResolver);\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\n const entity = await entityResolver.get(moduleName, entityName);\n if (!entity) {\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`);\n }\n this.detailEntity.set(entity);\n this.applyFilterAndSort();\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n applyInlineFilter(value) {\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\n // this.inlineFilters.filters = [];\n // if (value) {\n // props.forEach(p => {\n // this.inlineFilters.filters?.push({\n // field: p.name,\n // operator: {\n // type: 'contains'\n // },\n // value\n // })\n // })\n // }\n this.applyFilterAndSort();\n }\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n const parentFilters = (await Promise.all(this.detailEntityConfig.conditions?.map(async (c) => {\n return {\n field: c.name,\n operator: c.operator,\n // value: this.parent.data?.id,\n value: await this.evaluateExpressions(c.value),\n };\n }) ?? [])) ?? [];\n const parentFilterWrapper = {\n field: null,\n logic: 'and',\n operator: null,\n filters: parentFilters,\n };\n //\n const inline = this.inlineFilters.filters?.length ?? 0;\n const parent = parentFilterWrapper.filters?.length ?? 0;\n //\n if (inline) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(this.inlineFilters));\n }\n else if (!inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(parentFilterWrapper));\n }\n else if (inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: [this.inlineFilters, parentFilterWrapper],\n }));\n }\n //\n this.dataSource.refresh();\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n const isSelectedScope = this.selectedItems().length\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual;\n return c.name == commandName && (isSelectedScope || c.scope == AXPEntityCommandScope.TypeLevel);\n });\n if (!action)\n return;\n const actionData = action.options?.process?.data;\n const initialData = actionData ? { ...data, ...(await this.evaluateExpressions(actionData)) } : data;\n const options = await this.evaluateExpressions(action?.options);\n await this.workflow.execute(commandName.split('&')[0], {\n entity: getEntityInfo(this.detailEntity()).source,\n data: action.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : initialData,\n entityInfo: {\n name: this.detailEntity()?.name,\n module: this.detailEntity()?.module,\n title: this.detailEntity()?.title,\n parentKey: this.detailEntity()?.parentKey,\n source: this.detailEntity()?.source,\n },\n options,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUErQiw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEcsTUFBTSxPQUFPLDRCQUE0QjtJQXdCdkMsWUFDVSxRQUFrQixFQUNsQixrQkFBb0MsRUFDcEMsTUFBd0M7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBMUIxQyxpQkFBWSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSx3REFBQyxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkQs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LE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFHLENBQUMsQ0FBQyxNQUFNO1lBQ2xELElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ3pGLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUk7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTtnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLO2dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVM7Z0JBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTthQUNwQztZQUNELE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0NBZUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlT3BlcmF0b3IgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQUmVsYXRlZEVudGl0eSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlLCBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdG9yLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuL2VudGl0eS5jb25maWcnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwsIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHkudmlld21vZGVsJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwge1xuICBwcml2YXRlIGRldGFpbEVudGl0eSA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcblxuICBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYygpO1xuICAgIH0sXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYyhlKTtcbiAgICB9LFxuICAgIHBhZ2VTaXplOiA1LFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGRldGFpbEVudGl0eUNvbmZpZzogQVhQUmVsYXRlZEVudGl0eSxcbiAgICBwcml2YXRlIHBhcmVudDogeyBlbnRpdHk6IEFYUEVudGl0eTsgZGF0YTogYW55IH0sXG4gICkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBlbnRpdHlSZXNvbHZlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHkuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCBlbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGVuaXRpdHkgbmFtZTogJHt0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHl9YCk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWlsRW50aXR5LnNldChlbnRpdHkpO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBoYXNTZWxlY3RlZEl0ZW1zID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcudGl0bGUgPz9cbiAgICAgIHRoaXMuZGV0YWlsRW50aXR5KCk/LmludGVyZmFjZXM/LmRldGFpbD8ubGlzdD8udGl0bGUhID8/XG4gICAgICB0aGlzLmRldGFpbEVudGl0eSgpPy5mb3JtYXRzLnBsdXJhbCFcbiAgICApO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBWaXNpYmlsaXR5ICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBoaWRkZW4gPSBjb21wdXRlZDxQcm9taXNlPGJvb2xlYW4+Pihhc3luYyAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4gPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMucGFyZW50LmRhdGEsIHBhdGgpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4sIHNjb3BlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIC8vcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKGMgPT4gYy50aXRsZSk7XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQWN0aW9ucyAqKioqKioqKioqKioqKioqKiovL1xuICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxMaXN0ID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8uaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0Py5hY3Rpb25zID8/IFtdO1xuICAgIGNvbnN0IGRldGFpbEVudGl0eUFjdGlvbkxpc3QgPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5hY3Rpb25zID8/IFtdO1xuXG4gICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHRyYWNrIHdoaWNoIGFjdGlvbnMgZnJvbSBkZXRhaWxFbnRpdHlBY3Rpb25MaXN0IGhhdmUgYmVlbiB1c2VkXG4gICAgY29uc3QgdXNlZE92ZXJyaWRlQWN0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgLy8gU3RhcnQgd2l0aCBvcmlnaW5hbCBhY3Rpb25zLCBhcHBseWluZyBvdmVycmlkZXMgd2hlcmUgdGhleSBleGlzdFxuICAgIGNvbnN0IG1lcmdlZEFjdGlvbnMgPSBvcmlnaW5hbExpc3QubWFwKChvcmlnaW5hbEFjdGlvbikgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luYWxDb21tYW5kTmFtZSA9IHR5cGVvZiBvcmlnaW5hbEFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IG9yaWdpbmFsQWN0aW9uLmNvbW1hbmQgOiBvcmlnaW5hbEFjdGlvbi5jb21tYW5kLm5hbWU7XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlQWN0aW9uID0gZGV0YWlsRW50aXR5QWN0aW9uTGlzdC5maW5kKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uQ29tbWFuZE5hbWUgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdzdHJpbmcnID8gYWN0aW9uLmNvbW1hbmQgOiBhY3Rpb24uY29tbWFuZC5uYW1lO1xuICAgICAgICByZXR1cm4gYWN0aW9uQ29tbWFuZE5hbWUgPT09IG9yaWdpbmFsQ29tbWFuZE5hbWUgJiYgYWN0aW9uLm5hbWUgPT09IG9yaWdpbmFsQWN0aW9uLm5hbWU7XG4gICAgICB9KTtcblxuICAgICAgaWYgKG92ZXJyaWRlQWN0aW9uKSB7XG4gICAgICAgIC8vIE1hcmsgdGhpcyBvdmVycmlkZSBhY3Rpb24gYXMgdXNlZFxuICAgICAgICBjb25zdCBvdmVycmlkZUtleSA9IGAke3R5cGVvZiBvdmVycmlkZUFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IG92ZXJyaWRlQWN0aW9uLmNvbW1hbmQgOiBvdmVycmlkZUFjdGlvbi5jb21tYW5kLm5hbWV9XyR7b3ZlcnJpZGVBY3Rpb24ubmFtZX1gO1xuICAgICAgICB1c2VkT3ZlcnJpZGVBY3Rpb25zLmFkZChvdmVycmlkZUtleSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5kZXRhaWxFbnRpdHkoKSEsIG92ZXJyaWRlQWN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmRldGFpbEVudGl0eSgpISwgb3JpZ2luYWxBY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGFueSByZW1haW5pbmcgYWN0aW9ucyBmcm9tIGRldGFpbEVudGl0eUFjdGlvbkxpc3QgdGhhdCB3ZXJlbid0IHVzZWQgYXMgb3ZlcnJpZGVzXG4gICAgY29uc3QgYWRkaXRpb25hbEFjdGlvbnMgPSBkZXRhaWxFbnRpdHlBY3Rpb25MaXN0XG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uS2V5ID0gYCR7dHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZX1fJHthY3Rpb24ubmFtZX1gO1xuICAgICAgICByZXR1cm4gIXVzZWRPdmVycmlkZUFjdGlvbnMuaGFzKGFjdGlvbktleSk7XG4gICAgICB9KVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5kZXRhaWxFbnRpdHkoKSEsIGFjdGlvbikpO1xuXG4gICAgcmV0dXJuIFsuLi5hZGRpdGlvbmFsQWN0aW9ucywgLi4ubWVyZ2VkQWN0aW9uc10uZmlsdGVyKChhKSA9PiAhYS5oaWRkZW4pO1xuICB9KTtcblxuICBwdWJsaWMgc2VsZWN0ZWRTY29wZUFjdGlvbnNDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkKS5sZW5ndGg7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKFxuICAgICAgKGEpID0+XG4gICAgICAgIGEucHJpb3JpdHkgPT0gJ3ByaW1hcnknICYmXG4gICAgICAgICgoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgJiYgdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpIHx8XG4gICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICApO1xuICB9KTtcblxuICBwdWJsaWMgc2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKFxuICAgICAgKGEpID0+XG4gICAgICAgIGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScgJiZcbiAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICk7XG4gIH0pO1xuICBwdWJsaWMgcHJpbWFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAncHJpbWFyeScpLFxuICApO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlSb3dBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT5cbiAgICB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgJiYgYS5wcmlvcml0eSA9PT0gJ3NlY29uZGFyeScpLFxuICApO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEZpbHRlciAqKioqKioqKioqKioqKioqKiovL1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKTtcbiAgICAvLyB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycyA9IFtdO1xuICAgIC8vIGlmICh2YWx1ZSkge1xuICAgIC8vICAgICBwcm9wcy5mb3JFYWNoKHAgPT4ge1xuICAgIC8vICAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgIC8vICAgICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgLy8gICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAvLyAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJ1xuICAgIC8vICAgICAgICAgICAgIH0sXG4gICAgLy8gICAgICAgICAgICAgdmFsdWVcbiAgICAvLyAgICAgICAgIH0pXG4gICAgLy8gICAgIH0pXG4gICAgLy8gfVxuICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhc3luYyBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuZGV0YWlsRW50aXR5LigpLm1hcChzID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSkpO1xuICAgIC8vXG5cbiAgICBjb25zdCBwYXJlbnRGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSA9XG4gICAgICAoYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmNvbmRpdGlvbnM/Lm1hcChhc3luYyAoYykgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWVsZDogYy5uYW1lLFxuICAgICAgICAgICAgb3BlcmF0b3I6IGMub3BlcmF0b3IgYXMgdW5rbm93biBhcyBBWERhdGFTb3VyY2VPcGVyYXRvcixcbiAgICAgICAgICAgIC8vIHZhbHVlOiB0aGlzLnBhcmVudC5kYXRhPy5pZCxcbiAgICAgICAgICAgIHZhbHVlOiBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYy52YWx1ZSksXG4gICAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb247XG4gICAgICAgIH0pID8/IFtdLFxuICAgICAgKSkgPz8gW107XG4gICAgY29uc3QgcGFyZW50RmlsdGVyV3JhcHBlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgZmlsdGVyczogcGFyZW50RmlsdGVycyxcbiAgICB9O1xuICAgIC8vXG4gICAgY29uc3QgaW5saW5lID0gdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZpbHRlcldyYXBwZXIuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgLy9cbiAgICBpZiAoaW5saW5lKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih0aGlzLmlubGluZUZpbHRlcnMpKTtcbiAgICB9IGVsc2UgaWYgKCFpbmxpbmUgJiYgcGFyZW50KSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcihwYXJlbnRGaWx0ZXJXcmFwcGVyKSk7XG4gICAgfSBlbHNlIGlmIChpbmxpbmUgJiYgcGFyZW50KSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKFxuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yTWlkZGxld2FyZS50cmFuc2Zvcm1GaWx0ZXIoe1xuICAgICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgICAgIGZpbHRlcnM6IFt0aGlzLmlubGluZUZpbHRlcnMsIHBhcmVudEZpbHRlcldyYXBwZXJdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbHVtbnMgKioqKioqKioqKioqKioqKioqLy9cblxuICBjb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRldGFpbEVudGl0eSgpKSB7XG4gICAgICBjb25zdCBkZXRhaWxDb2x1bW5zID0gdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuY29sdW1ucyA/PyBbXTtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5jb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgICBjb25zdCBwcm9wcyA9XG4gICAgICAgIHRoaXMuZGV0YWlsRW50aXR5KCk/LnByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgICAgIChwKSA9PiBwLnNjaGVtYS5oaWRkZW4gIT0gdHJ1ZSAmJiAoZGV0YWlsQ29sdW1ucz8ubGVuZ3RoID09IDAgfHwgZGV0YWlsQ29sdW1ucz8uaW5jbHVkZXMocC5uYW1lKSksXG4gICAgICAgICkgPz8gW107XG4gICAgICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IHByb3BzLmZpbHRlcigocCkgPT4gY29sdW1ucy5zb21lKChjKSA9PiBjID09IHAubmFtZSkpO1xuICAgICAgcmV0dXJuIGRpc3BsYXlDb2x1bW5zLm1hcCgocCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIHRoaXMuZGV0YWlsRW50aXR5KCk/LmNvbHVtbnM/LmZpbmQoKGMpID0+IGMubmFtZSA9PSBwLm5hbWUpISk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiAgQ29tbWFuZHMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFsbEFjdGlvbnMoKS5maW5kKChjKSA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkU2NvcGUgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGhcbiAgICAgICAgPyBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZFxuICAgICAgICA6IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWw7XG4gICAgICByZXR1cm4gYy5uYW1lID09IGNvbW1hbmROYW1lICYmIChpc1NlbGVjdGVkU2NvcGUgfHwgYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsKTtcbiAgICB9KTtcblxuICAgIGlmICghYWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBhY3Rpb25EYXRhID0gYWN0aW9uLm9wdGlvbnM/LnByb2Nlc3M/LmRhdGE7XG4gICAgY29uc3QgaW5pdGlhbERhdGEgPSBhY3Rpb25EYXRhID8geyAuLi5kYXRhLCAuLi4oYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbkRhdGEpKSB9IDogZGF0YTtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF0sIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmRldGFpbEVudGl0eSgpISkuc291cmNlLFxuICAgICAgZGF0YTogYWN0aW9uLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogaW5pdGlhbERhdGEsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZGV0YWlsRW50aXR5KCk/Lm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8udGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZGV0YWlsRW50aXR5KCk/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKGFjdGlvbkRhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBwYXJlbnREYXRhID0gdGhpcy5wYXJlbnQuZGF0YTtcbiAgICBjb25zb2xlLmxvZyh7IGFjdGlvbkRhdGEsIHBhcmVudERhdGEgfSk7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXQocGFyZW50RGF0YSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGFjdGlvbkRhdGEsIHNjb3BlKTtcbiAgfTtcbn1cbiJdfQ==","export function createModifierContext(entity) {\n const ctx = {\n entity,\n title: {\n get: () => entity.title,\n set: (newTitle) => {\n entity.title = newTitle;\n return ctx;\n },\n },\n module: {\n get: () => entity.module,\n set: (newValue) => {\n entity.module = newValue;\n return ctx;\n },\n },\n name: {\n get: () => entity.name,\n set: (newValue) => {\n entity.name = newValue;\n return ctx;\n },\n },\n source: {\n get: () => entity.source,\n set: (newValue) => {\n entity.source = newValue;\n return ctx;\n },\n },\n parentKey: {\n get: () => entity.parentKey,\n set: (newValue) => {\n entity.parentKey = newValue;\n return ctx;\n },\n },\n category: {\n get: () => entity.category,\n update: (updater) => {\n entity.category = updater(entity.category);\n return ctx;\n },\n },\n properties: {\n list: () => entity.properties,\n add: (...props) => {\n entity.properties.push(...props);\n return ctx;\n },\n remove: (predicate) => {\n entity.properties = entity.properties.filter((p) => !predicate(p));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.properties.find((p) => p.name === name),\n update: (updater) => {\n const index = entity.properties.findIndex((p) => p.name === name);\n if (index !== -1)\n entity.properties[index] = updater(entity.properties[index]);\n return ctx;\n },\n }),\n },\n columns: {\n list: () => entity.columns,\n add: (...cols) => {\n entity.columns ??= [];\n entity.columns.push(...cols);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.columns)\n entity.columns = entity.columns.filter((c) => !predicate(c));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.columns?.find((c) => c.name === name),\n update: (updater) => {\n const index = entity.columns?.findIndex((c) => c.name === name);\n if (index !== undefined && index !== -1 && entity.columns)\n entity.columns[index] = updater(entity.columns[index]);\n return ctx;\n },\n }),\n },\n formats: {\n get: () => entity.formats,\n update: (updater) => {\n entity.formats = updater(entity.formats);\n return ctx;\n },\n },\n relatedEntities: {\n list: () => entity.relatedEntities,\n add: (...items) => {\n entity.relatedEntities ??= [];\n entity.relatedEntities.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.relatedEntities)\n entity.relatedEntities = entity.relatedEntities.filter((r) => !predicate(r));\n return ctx;\n },\n },\n groups: {\n list: () => entity.groups,\n add: (...items) => {\n entity.groups ??= [];\n entity.groups.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.groups)\n entity.groups = entity.groups.filter((g) => !predicate(g));\n return ctx;\n },\n },\n commands: {\n get: () => entity.commands,\n update: (updater) => {\n entity.commands = updater(entity.commands);\n return ctx;\n },\n },\n queries: {\n get: () => entity.queries,\n update: (updater) => {\n entity.queries = updater(entity.queries);\n return ctx;\n },\n },\n validations: {\n get: () => entity.validations,\n update: (updater) => {\n entity.validations = updater(entity.validations);\n return ctx;\n },\n },\n interfaces: {\n get: () => entity.interfaces,\n update: (updater) => {\n entity.interfaces = updater(entity.interfaces);\n return ctx;\n },\n master: {\n get: () => entity.interfaces?.master,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master = updater(entity.interfaces.master);\n return ctx;\n },\n create: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.create = updater(entity.interfaces.master.create);\n return ctx;\n },\n },\n modify: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.update = updater(entity.interfaces.master.update);\n return ctx;\n },\n },\n single: {\n get: () => entity.interfaces?.master?.single,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.single = updater(entity.interfaces.master.single);\n return ctx;\n },\n },\n },\n detail: {\n get: () => entity.interfaces?.detail,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail = updater(entity.interfaces.detail);\n return ctx;\n },\n list: {\n get: () => entity.interfaces?.detail?.list,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail ??= {};\n entity.interfaces.detail.list = updater(entity.interfaces.detail.list);\n return ctx;\n },\n },\n },\n },\n toEntity: () => entity,\n };\n return ctx;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1vZGlmaWVyLmNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbW9kaWZpZXIuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBaUI7SUFDckQsTUFBTSxHQUFHLEdBQTZCO1FBQ3BDLE1BQU07UUFFTixLQUFLLEVBQUU7WUFDTCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdkIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7U0FDRjtRQUVELE1BQU0sRUFBRTtZQUNOLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUN4QixHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztTQUNGO1FBRUQsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3RCLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNoQixNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1NBQ0Y7UUFFRCxNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDeEIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxNQUFN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Q04sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTTtnQkFDcEMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDO29CQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQztnQkFFRCxJQUFJLEVBQUU7b0JBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUk7b0JBQzFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUNsQixNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQzt3QkFDekIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN2RSxPQUFPLEdBQUcsQ0FBQztvQkFDYixDQUFDO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0tBQ3ZCLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQgfSBmcm9tICcuL2VudGl0eS1tb2RpZmllci50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2RpZmllckNvbnRleHQoZW50aXR5OiBBWFBFbnRpdHkpOiBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQge1xuICBjb25zdCBjdHg6IEFYUEVudGl0eU1vZGlmaWVyQ29udGV4dCA9IHtcbiAgICBlbnRpdHksXG5cbiAgICB0aXRsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudGl0bGUsXG4gICAgICBzZXQ6IChuZXdUaXRsZSkgPT4ge1xuICAgICAgICBlbnRpdHkudGl0bGUgPSBuZXdUaXRsZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIG1vZHVsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubW9kdWxlLFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5Lm1vZHVsZSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgbmFtZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubmFtZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5uYW1lID0gbmV3VmFsdWU7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBzb3VyY2U6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnNvdXJjZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5zb3VyY2UgPSBuZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHBhcmVudEtleToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkucGFyZW50S2V5LFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5LnBhcmVudEtleSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY2F0ZWdvcnk6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmNhdGVnb3J5LFxuICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICBlbnRpdHkuY2F0ZWdvcnkgPSB1cGRhdGVyKGVudGl0eS5jYXRlZ29yeSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsaXN0OiAoKSA9PiBlbnRpdHkucHJvcGVydGllcyxcbiAgICAgIGFkZDogKC4uLnByb3BzKSA9PiB7XG4gICAgICAgIGVudGl0eS5wcm9wZXJ0aWVzLnB1c2goLi4ucHJvcHMpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIHJlbW92ZTogKHByZWRpY2F0ZSkgPT4ge1xuICAgICAgICBlbnRpdHkucHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gIXByZWRpY2F0ZShwKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgZmluZDogKG5hbWUpID0+ICh7XG4gICAgICAgIGdldDogKCkgPT4gZW50aXR5LnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09PSBuYW1lKSxcbiAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZW50aXR5LnByb3BlcnRpZXMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIGVudGl0eS5wcm9wZXJ0aWVzW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LnByb3BlcnRpZXNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGNvbHVtbnM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5jb2x1bW5zLFxuICAgICAgYWRkOiAoLi4uY29scykgPT4ge1xuICAgICAgICBlbnRpdHkuY29sdW1ucyA/Pz0gW107XG4gICAgICAgIGVudGl0eS5jb2x1bW5zLnB1c2goLi4uY29scyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlOiAocHJlZGljYXRlKSA9PiB7XG4gICAgICAgIGlmIChlbnRpdHkuY29sdW1ucykgZW50aXR5LmNvbHVtbnMgPSBlbnRpdHkuY29sdW1ucy5maWx0ZXIoKGMpID0+ICFwcmVkaWNhdGUoYykpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIGZpbmQ6IChuYW1lKSA9PiAoe1xuICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5jb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBlbnRpdHkuY29sdW1ucz8uZmluZEluZGV4KChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gdW5kZWZpbmVkICYmIGluZGV4ICE9PSAtMSAmJiBlbnRpdHkuY29sdW1ucylcbiAgICAgICAgICAgIGVudGl0eS5jb2x1bW5zW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LmNvbHVtbnNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmZvcm1hdHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5mb3JtYXRzID0gdXBkYXRlcihlbnRpdHkuZm9ybWF0cyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICByZWxhdGVkRW50aXRpZXM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5yZWxhdGVkRW50aXRpZXMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkucmVsYXRlZEVudGl0aWVzID8/PSBbXTtcbiAgICAgICAgZW50aXR5LnJlbGF0ZWRFbnRpdGllcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5yZWxhdGVkRW50aXRpZXMpIGVudGl0eS5yZWxhdGVkRW50aXRpZXMgPSBlbnRpdHkucmVsYXRlZEVudGl0aWVzLmZpbHRlcigocikgPT4gIXByZWRpY2F0ZShyKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBncm91cHM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5ncm91cHMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkuZ3JvdXBzID8/PSBbXTtcbiAgICAgICAgZW50aXR5Lmdyb3Vwcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5ncm91cHMpIGVudGl0eS5ncm91cHMgPSBlbnRpdHkuZ3JvdXBzLmZpbHRlcigoZykgPT4gIXByZWRpY2F0ZShnKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb21tYW5kczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuY29tbWFuZHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5jb21tYW5kcyA9IHVwZGF0ZXIoZW50aXR5LmNvbW1hbmRzKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHF1ZXJpZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnF1ZXJpZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5xdWVyaWVzID0gdXBkYXRlcihlbnRpdHkucXVlcmllcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB2YWxpZGF0aW9uczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudmFsaWRhdGlvbnMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS52YWxpZGF0aW9ucyA9IHVwZGF0ZXIoZW50aXR5LnZhbGlkYXRpb25zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGludGVyZmFjZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuXG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlLFxuICAgICAgICAgIHVwZGF0ZTogKHVwZGF0ZXIpID0+IHtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBjdHg7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9kaWZ5OiB7XG4gICAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGUsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUgPSB1cGRhdGVyKGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSxcbiAgICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcyA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8uZGV0YWlsLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbCA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMuZGV0YWlsKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5kZXRhaWw/Lmxpc3QsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMuZGV0YWlsID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbC5saXN0ID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5kZXRhaWwubGlzdCk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB0b0VudGl0eTogKCkgPT4gZW50aXR5LFxuICB9O1xuXG4gIHJldHVybiBjdHg7XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_ENTITY_MODIFIER = new InjectionToken('AXP_ENTITY_MODIFIER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1pZGRsZXdhcmUvZW50aXR5LXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQThCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZpZXJQcm92aWRlciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFYUF9FTlRJVFlfTU9ESUZJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRW50aXR5TW9kaWZpZXJQcm92aWRlcltdPignQVhQX0VOVElUWV9NT0RJRklFUicpO1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { createModifierContext } from './entity-modifier.context';\nimport { AXP_ENTITY_MODIFIER } from './entity-provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMiddleware {\n constructor() {\n this.modifiers = new Map();\n this.providedModifiers = inject(AXP_ENTITY_MODIFIER, { optional: true }) || [];\n for (const { entityName, modifier } of this.providedModifiers) {\n this.register(entityName, modifier);\n }\n }\n register(entityName, modifier) {\n this.modifiers.set(entityName, modifier);\n }\n process(entity) {\n const modifier = this.modifiers.get(entity.name);\n if (!modifier)\n return entity;\n const context = createModifierContext(entity);\n modifier(context);\n return context.toEntity();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QjtRQUhRLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUMvQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFHbEYsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQWtCLEVBQUUsUUFBMkI7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBaUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBcEJVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY3JlYXRlTW9kaWZpZXJDb250ZXh0IH0gZnJvbSAnLi9lbnRpdHktbW9kaWZpZXIuY29udGV4dCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfTU9ESUZJRVIgfSBmcm9tICcuL2VudGl0eS1wcm92aWRlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWlkZGxld2FyZSB7XG4gIHByaXZhdGUgbW9kaWZpZXJzID0gbmV3IE1hcDxzdHJpbmcsIEFYUEVudGl0eU1vZGlmaWVyPigpO1xuICBwcm90ZWN0ZWQgcHJvdmlkZWRNb2RpZmllcnMgPSBpbmplY3QoQVhQX0VOVElUWV9NT0RJRklFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGNvbnN0IHsgZW50aXR5TmFtZSwgbW9kaWZpZXIgfSBvZiB0aGlzLnByb3ZpZGVkTW9kaWZpZXJzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKGVudGl0eU5hbWUsIG1vZGlmaWVyKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihlbnRpdHlOYW1lOiBzdHJpbmcsIG1vZGlmaWVyOiBBWFBFbnRpdHlNb2RpZmllcik6IHZvaWQge1xuICAgIHRoaXMubW9kaWZpZXJzLnNldChlbnRpdHlOYW1lLCBtb2RpZmllcik7XG4gIH1cblxuICBwcm9jZXNzKGVudGl0eTogQVhQRW50aXR5KTogQVhQRW50aXR5IHtcbiAgICBjb25zdCBtb2RpZmllciA9IHRoaXMubW9kaWZpZXJzLmdldChlbnRpdHkubmFtZSk7XG4gICAgaWYgKCFtb2RpZmllcikgcmV0dXJuIGVudGl0eTtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlTW9kaWZpZXJDb250ZXh0KGVudGl0eSk7XG4gICAgbW9kaWZpZXIoY29udGV4dCk7XG4gICAgcmV0dXJuIGNvbnRleHQudG9FbnRpdHkoKTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\n// import { AXPEntityMiddleware } from './entity-middleware';\nimport { AXPEntityMiddleware } from './entity-middleware/entity-middleware';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXPEntityResolver } from './entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityDefinitionRegistryService {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n this.resolver = inject(AXPEntityResolver);\n this.middleware = inject(AXPEntityMiddleware);\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n this.entities = new Map();\n // Entity resolver service for dynamically loading entity configurations.\n this.entityResolver = inject(AXPEntityResolver); // Assuming AXPEntityLoader is the correct type\n }\n async preload() {\n const providers = Array.isArray(this.providers)\n ? this.providers\n : [this.providers];\n const promises = [];\n // Helper to wrap a promise with a timeout\n function withTimeout(promise, ms = 10000, info = '') {\n return Promise.race([\n promise,\n new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout after ${ms}ms: ${info}`)), ms))\n ]);\n }\n providers.forEach((provider) => {\n const items = typeof provider.preload == 'function' ? provider.preload() : [];\n items.forEach((item) => {\n //console.log('[AXPEntityDefinitionRegistryService] Preloading entity:', item.module, item.entity);\n promises.push(withTimeout(this.resolver.get(item.module, item.entity)\n .catch(err => {\n console.error(`[AXPEntityDefinitionRegistryService] Failed to load entity ${item.module}.${item.entity}:`, err);\n return null;\n }), 3000, `${item.module}.${item.entity}`));\n });\n });\n const results = await Promise.allSettled(promises);\n const loadedEntities = [];\n results.forEach((result, idx) => {\n if (result.status === 'fulfilled' && result.value != null) {\n this.register(this.middleware.process(result.value));\n loadedEntities.push(result.value);\n }\n else if (result.status === 'rejected') {\n console.error('[AXPEntityDefinitionRegistryService] Entity preload failed:', result.reason);\n }\n });\n //console.log('[AXPEntityDefinitionRegistryService] Loaded entities:', loadedEntities);\n }\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n *\n * @param config The configuration object of the entity to be registered.\n */\n register(config) {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n /**\n * Returns an array of all registered entity configurations.\n *\n * @returns An array of AXPEntity objects.\n */\n getAll() {\n return Array.from(this.entities.values());\n }\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName, entityName) {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n if (!config) {\n try {\n config = await this.entityResolver.get(moduleName, entityName);\n if (config) {\n const processedConfig = this.middleware.process(config);\n this.register(processedConfig);\n return processedConfig;\n }\n }\n catch (error) {\n throw error; // Rethrow to allow error handling by caller\n }\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n return config;\n }\n /**\n * Creates a unique key for an entity based on its module and name.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n createEntityKey(moduleName, entityName) {\n return `${moduleName}.${entityName}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYzdHLE1BQU0sT0FBTyxrQ0FBa0M7SUFIL0M7UUFJVSxjQUFTLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQStDakQsb0ZBQW9GO1FBQzVFLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUVoRCx5RUFBeUU7UUFDakUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLCtDQUErQztLQWlFcEc7SUFsSEMsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2hCLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQWlDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQWdDLEVBQUUsQ0FBQztRQUVqRCwwQ0FBMEM7UUFDMUMsU0FBUyxXQUFXLENBQUksT0FBbUIsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUks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LENBQUM7UUFDekQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1FBRTVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9ELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQy9CLE9BQU8sZUFBZSxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxLQUFLLENBQUMsQ0FBQyw0Q0FBNEM7WUFDM0QsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzVELE9BQU8sR0FBRyxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0F0SFUsa0NBQWtDO2tIQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7MkZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQVhQRW50aXR5TWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LW1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LW1pZGRsZXdhcmUvZW50aXR5LW1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUiwgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciwgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuL2VudGl0eS5jb25maWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByZWxvYWRFbnRpdHkge1xuICBtb2R1bGU6IHN0cmluZztcbiAgZW50aXR5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVmaW5pdGlvblByZWxvYWRlciB7XG4gIHByZWxvYWQoKTogQVhQRW50aXR5UHJlbG9hZEVudGl0eVtdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xuICBwcml2YXRlIHJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJpdmF0ZSBtaWRkbGV3YXJlID0gaW5qZWN0KEFYUEVudGl0eU1pZGRsZXdhcmUpO1xuXG4gIGFzeW5jIHByZWxvYWQoKSB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gQXJyYXkuaXNBcnJheSh0aGlzLnByb3ZpZGVycylcbiAgICAgID8gdGhpcy5wcm92aWRlcnNcbiAgICAgIDogKFt0aGlzLnByb3ZpZGVyc10gYXMgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlcltdKTtcbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPltdID0gW107XG5cbiAgICAvLyBIZWxwZXIgdG8gd3JhcCBhIHByb21pc2Ugd2l0aCBhIHRpbWVvdXRcbiAgICBmdW5jdGlvbiB3aXRoVGltZW91dDxUPihwcm9taXNlOiBQcm9taXNlPFQ+LCBtcyA9IDEwMDAwLCBpbmZvID0gJycpOiBQcm9taXNlPFQ+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgICBwcm9taXNlLFxuICAgICAgICBuZXcgUHJvbWlzZTxUPigoXywgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYFRpbWVvdXQgYWZ0ZXIgJHttc31tczogJHtpbmZvfWApKSwgbXMpKVxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHJvdmlkZXJzLmZvckVhY2goKHByb3ZpZGVyKSA9PiB7XG4gICAgICBjb25zdCBpdGVtcyA9IHR5cGVvZiBwcm92aWRlci5wcmVsb2FkID09ICdmdW5jdGlvbicgPyBwcm92aWRlci5wcmVsb2FkKCkgOiBbXTtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IEFYUEVudGl0eVByZWxvYWRFbnRpdHkpID0+IHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnW0FYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2VdIFByZWxvYWRpbmcgZW50aXR5OicsIGl0ZW0ubW9kdWxlLCBpdGVtLmVudGl0eSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgd2l0aFRpbWVvdXQoXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVyLmdldChpdGVtLm1vZHVsZSwgaXRlbS5lbnRpdHkpXG4gICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlXSBGYWlsZWQgdG8gbG9hZCBlbnRpdHkgJHtpdGVtLm1vZHVsZX0uJHtpdGVtLmVudGl0eX06YCwgZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAzMDAwLFxuICAgICAgICAgICAgYCR7aXRlbS5tb2R1bGV9LiR7aXRlbS5lbnRpdHl9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChwcm9taXNlcyk7XG4gICAgY29uc3QgbG9hZGVkRW50aXRpZXM6IEFYUEVudGl0eVtdID0gW107XG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQsIGlkeCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnICYmIHJlc3VsdC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy5taWRkbGV3YXJlLnByb2Nlc3MocmVzdWx0LnZhbHVlKSk7XG4gICAgICAgIGxvYWRlZEVudGl0aWVzLnB1c2gocmVzdWx0LnZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZV0gRW50aXR5IHByZWxvYWQgZmFpbGVkOicsIHJlc3VsdC5yZWFzb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vY29uc29sZS5sb2coJ1tBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlXSBMb2FkZWQgZW50aXRpZXM6JywgbG9hZGVkRW50aXRpZXMpO1xuICB9XG5cbiAgLy8gU3RvcmVzIEFYUEVudGl0eUNvbmZpZyBvYmplY3RzLCBrZXllZCBieSBhIGNvbWJpbmF0aW9uIG9mIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuXG4gIHByaXZhdGUgZW50aXRpZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQRW50aXR5PigpO1xuXG4gIC8vIEVudGl0eSByZXNvbHZlciBzZXJ2aWNlIGZvciBkeW5hbWljYWxseSBsb2FkaW5nIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgcHJpdmF0ZSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7IC8vIEFzc3VtaW5nIEFYUEVudGl0eUxvYWRlciBpcyB0aGUgY29ycmVjdCB0eXBlXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG5ldyBlbnRpdHkgY29uZmlndXJhdGlvbi4gRW50aXRpZXMgYXJlIGlkZW50aWZpZWQgdW5pcXVlbHkgYnkgYSBjb21iaW5hdGlvblxuICAgKiBvZiB0aGVpciBtb2R1bGUgYW5kIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIHRoZSBlbnRpdHkgdG8gYmUgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlZ2lzdGVyKGNvbmZpZzogQVhQRW50aXR5KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkoY29uZmlnLm1vZHVsZSwgY29uZmlnLm5hbWUpO1xuICAgIHRoaXMuZW50aXRpZXMuc2V0KGtleSwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCByZWdpc3RlcmVkIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgQVhQRW50aXR5IG9iamVjdHMuXG4gICAqL1xuICBnZXRBbGwoKTogQVhQRW50aXR5W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW50aXRpZXMudmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGVudGl0eSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuIElmIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQsIGF0dGVtcHRzIHRvIGxvYWQgaXQgZHluYW1pY2FsbHkuIFRocm93cyBhbiBlcnJvciBpZiB0aGVcbiAgICogZW50aXR5IGNhbm5vdCBiZSBmb3VuZCBvciBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBtb2R1bGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBlbnRpdHkgY29uZmlndXJhdGlvbi5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZW50aXR5IGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZW50aXRpZXMuZ2V0KGtleSkgPz8gbnVsbDtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZENvbmZpZyA9IHRoaXMubWlkZGxld2FyZS5wcm9jZXNzKGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5yZWdpc3Rlcihwcm9jZXNzZWRDb25maWcpO1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWRDb25maWc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yOyAvLyBSZXRocm93IHRvIGFsbG93IGVycm9yIGhhbmRsaW5nIGJ5IGNhbGxlclxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW50aXR5IG5hbWU6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB1bmlxdWUga2V5IGZvciBhbiBlbnRpdHkgYmFzZWQgb24gaXRzIG1vZHVsZSBhbmQgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEBwYXJhbSBlbnRpdHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEByZXR1cm5zIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgZW50aXR5LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHttb2R1bGVOYW1lfS4ke2VudGl0eU5hbWV9YDtcbiAgfVxufVxuIl19","import { getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isNil, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityCreateViewSectionViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = computed(() => {\n return this.group.description;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.elements = computed(() => {\n const { interfaces, properties } = this.entity;\n const createProps = interfaces?.master?.create?.properties ?? [];\n const createPropNames = new Set(createProps.map(({ name }) => name));\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && createPropNames.has(name));\n return filteredProperties.map((property) => {\n const createProp = createProps.find(({ name }) => name === property.name);\n return new AXPEntityCreateViewElementViewModel(this.entity, this, property, createProp);\n });\n }, ...(ngDevMode ? [{ debugName: \"elements\" }] : []));\n }\n}\nexport class AXPEntityCreateViewElementViewModel {\n constructor(entity, section, property, createProp) {\n this.entity = entity;\n this.section = section;\n this.property = property;\n this.createProp = createProp;\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n }, ...(ngDevMode ? [{ debugName: \"isRequired\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.createProp.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterCreateViewModel {\n constructor(injector, config, initialData = {}, commandOptions) {\n this.injector = injector;\n this.config = config;\n this.initialData = initialData;\n this.commandOptions = commandOptions;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.context = signal(this.initialData ?? {}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.options = signal(this.commandOptions ?? {}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.isInProgress = signal(false, ...(ngDevMode ? [{ debugName: \"isInProgress\" }] : []));\n this.canCreateNewOne = signal(true, ...(ngDevMode ? [{ debugName: \"canCreateNewOne\" }] : []));\n this.redirect = signal(true, ...(ngDevMode ? [{ debugName: \"redirect\" }] : []));\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const createProps = interfaces?.master?.create?.properties?.map(({ name }) => name) ?? [];\n const visibleProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && createProps.includes(name));\n const sections = interfaces?.master?.create?.sections?.filter(({ id }) => visibleProperties.some(({ groupId }) => groupId === id)) ?? [];\n return sections.map((section) => new AXPEntityCreateViewSectionViewModel(this.entityDef, section));\n }, ...(ngDevMode ? [{ debugName: \"sections\" }] : []));\n if (!initialData)\n initialData = {};\n const scope = {\n context: {\n eval: (path) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(get(initialData, path));\n });\n });\n },\n },\n };\n const processDefault = async (value) => {\n if (typeof value == 'function') {\n return value();\n }\n else if (typeof value == 'string' && value.startsWith('{{')) {\n return await this.expressionEvaluator.evaluate(value, scope);\n }\n return value;\n };\n this.config.properties\n .filter((c) => !isNil(c.schema.defaultValue))\n .forEach(async (p) => {\n const value = await processDefault(p.schema.defaultValue);\n set(initialData, p.name, value);\n });\n //\n this.context.set(initialData);\n this.options.set(commandOptions);\n //\n const { redirect = true, canCreateNewOne = true } = commandOptions?.['process'] ?? {};\n this.canCreateNewOne.set(canCreateNewOne);\n this.redirect.set(redirect);\n }\n async save() {\n try {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n const exec = this.entityDef.commands?.create?.execute;\n const result = await exec(this.context());\n this.context.update((c) => ({ ...c, ...result }));\n return new Promise((resolve) => {\n setTimeout(() => {\n this.builder.setStatus(AXPPageStatus.Submitted);\n resolve(result);\n });\n });\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n async createNewOne() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n options: this.options(),\n data: this.initialData,\n // entityInfo\n });\n }\n}\nexport class AXPEntityCreateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, initialData = null, options = { canCreateNewOne: true, redirect: true }) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData, options);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFPTCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkcsT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhGLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFNUUsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxNQUFNLENBQUMsSUFB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OzhHQWZVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3LFxuICBBWFBFbnRpdHlQcm9wZXJ0eUxheW91dENvbmZpZyxcbiAgQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gIEFYUEdyaWRMYXlvdXRPcHRpb25zLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgaXNOaWwsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlTZWN0aW9uVmlldykgeyB9XG5cbiAgZ3JvdXAgPSB0aGlzLmVudGl0eS5ncm91cHM/LmZpbmQoKGMpID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XG5cbiAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC50aXRsZSA/PyB0aGlzLmdyb3VwLmlkO1xuICB9KTtcblxuICBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcbiAgfSk7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIGVsZW1lbnRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcyA/PyBbXTtcbiAgICBjb25zdCBjcmVhdGVQcm9wTmFtZXMgPSBuZXcgU2V0KGNyZWF0ZVByb3BzLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKTtcblxuICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+IGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcE5hbWVzLmhhcyhuYW1lKVxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZVByb3AgPSBjcmVhdGVQcm9wcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gcHJvcGVydHkubmFtZSk7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wZXJ0eSwgY3JlYXRlUHJvcCEpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsLFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICAgIHByaXZhdGUgY3JlYXRlUHJvcDogQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3XG4gICkgeyB9XG5cbiAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICEodGhpcy5wcm9wZXJ0eS5zY2hlbWEucmVhZG9ubHkgPz8gZmFsc2UpO1xuICB9KTtcblxuICBpc1JlcXVpcmVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zPy5zb21lKChjKSA9PiBjLnJ1bGUgPT0gJ3JlcXVpcmVkJykgfHwgZmFsc2U7XG4gIH0pO1xuXG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5jcmVhdGVQcm9wLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucywge1xuICAgICAgICB2YWxpZGF0aW9uczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8ubWFwKChjKSA9PiAoeyBydWxlOiBjLnJ1bGUsIG1lc3NhZ2U6IGMubWVzc2FnZSwgb3B0aW9uczogYy5vcHRpb25zIH0pKSxcbiAgICAgIH0pLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWwge1xuICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuXG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgcHVibGljIGJ1aWxkZXI6IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsRGF0YTogYW55ID0ge30sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kT3B0aW9uczogYW55XG4gICkge1xuICAgIGlmICghaW5pdGlhbERhdGEpIGluaXRpYWxEYXRhID0ge307XG5cbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShnZXQoaW5pdGlhbERhdGEsIHBhdGgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcHJvY2Vzc0RlZmF1bHQgPSBhc3luYyAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgJiYgdmFsdWUuc3RhcnRzV2l0aCgne3snKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKHZhbHVlLCBzY29wZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHRoaXMuY29uZmlnLnByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoKGMpID0+ICFpc05pbChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpKVxuICAgICAgLmZvckVhY2goYXN5bmMgKHApID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwcm9jZXNzRGVmYXVsdChwLnNjaGVtYS5kZWZhdWx0VmFsdWUpO1xuICAgICAgICBzZXQoaW5pdGlhbERhdGEsIHAubmFtZSwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLmNvbnRleHQuc2V0KGluaXRpYWxEYXRhKTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0KGNvbW1hbmRPcHRpb25zKTtcbiAgICAvL1xuICAgIGNvbnN0IHsgcmVkaXJlY3QgPSB0cnVlLCBjYW5DcmVhdGVOZXdPbmUgPSB0cnVlIH0gPSBjb21tYW5kT3B0aW9ucz8uWydwcm9jZXNzJ10gPz8ge307XG4gICAgdGhpcy5jYW5DcmVhdGVOZXdPbmUuc2V0KGNhbkNyZWF0ZU5ld09uZSk7XG4gICAgdGhpcy5yZWRpcmVjdC5zZXQocmVkaXJlY3QpO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55Pih0aGlzLmluaXRpYWxEYXRhID8/IHt9KTtcbiAgcHVibGljIG9wdGlvbnMgPSBzaWduYWw8YW55Pih0aGlzLmNvbW1hbmRPcHRpb25zID8/IHt9KTtcblxuICBwdWJsaWMgaXNJblByb2dyZXNzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNhbkNyZWF0ZU5ld09uZSA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlZGlyZWN0ID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsW10+KCgpID0+IHtcbiAgICBjb25zdCB7IGludGVyZmFjZXMsIHByb3BlcnRpZXMgfSA9IHRoaXMuZW50aXR5RGVmO1xuICAgIGNvbnN0IGNyZWF0ZVByb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkICYmICFzY2hlbWEuaGlkZGVuICYmIGNyZWF0ZVByb3BzLmluY2x1ZGVzKG5hbWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3Rpb25zID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgIHZpc2libGVQcm9wZXJ0aWVzLnNvbWUoKHsgZ3JvdXBJZCB9KSA9PiBncm91cElkID09PSBpZClcbiAgICAgICkgPz8gW107XG5cbiAgICByZXR1cm4gc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHNlY3Rpb24pKTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTxhbnkgfCB2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNJblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nKTtcbiAgICAgIGNvbnN0IGV4ZWMgPSB0aGlzLmVudGl0eURlZi5jb21tYW5kcz8uY3JlYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICB0aGlzLmNvbnRleHQudXBkYXRlKChjKSA9PiAoeyAuLi5jLCAuLi5yZXN1bHQgfSkpO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQpO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuRXJyb3IpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlTmV3T25lKCkge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zKCksXG4gICAgICBkYXRhOiB0aGlzLmluaXRpYWxEYXRhLFxuICAgICAgLy8gZW50aXR5SW5mb1xuICAgIH0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGluaXRpYWxEYXRhOiBhbnkgPSBudWxsLFxuICAgIG9wdGlvbnM6IHsgY2FuQ3JlYXRlTmV3T25lOiBib29sZWFuOyByZWRpcmVjdDogYm9vbGVhbiB9ID0geyBjYW5DcmVhdGVOZXdPbmU6IHRydWUsIHJlZGlyZWN0OiB0cnVlIH1cbiAgKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWw+IHtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnLCBpbml0aWFsRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, AXPRefreshEvent, AXPSettingService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, AXPPlatformScope, } from '@acorex/platform/core';\nimport { AXPWidgetRegistryService } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterListViewQueryViewModel {\n constructor(entity, section, view) {\n this.entity = entity;\n this.section = section;\n this.view = view;\n this.name = this.view.name;\n this.title = this.view.title;\n this.sorts = this.view.sorts;\n this.columns = this.view.columns;\n this.conditions = this.view.conditions;\n this.indexCol = this.view.indexCol;\n this.pageSize = this.view.pageSize;\n }\n}\nexport class AXPEntityMasterListViewModel {\n async setView(viewName = null) {\n const entitySetting = await this.settings.get(this.settingEntityKey);\n const selectedViewName = entitySetting?.list?.currentView;\n if (viewName != this.view().name) {\n this.view.set(this.views().find((c) => c.name == (viewName || selectedViewName)) ?? this.views()[0]);\n this.applyViewSorts();\n this.applyViewColumns();\n this.applyViewFilters();\n // this.applyFilterAndSort();\n this.applySettings();\n }\n }\n constructor(injector, config) {\n this.injector = injector;\n this.config = config;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.list);\n this.formatService = this.injector.get(AXFormatService);\n this.session = this.injector.get(AXPSessionService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.settings = this.injector.get(AXPSettingService);\n this.widgetResolver = this.injector.get(AXPWidgetRegistryService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.settingEntityKey = `${this.config.module}:${this.config.name}`;\n this.destroyed = new Subject();\n this.events$ = new Subject();\n //****************** Views ******************//\n this.views = computed(() => {\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\n return views.map((v) => {\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\n });\n }, ...(ngDevMode ? [{ debugName: \"views\" }] : []));\n this.view = signal(this.views()[0], ...(ngDevMode ? [{ debugName: \"view\" }] : []));\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n return func(e);\n },\n pageSize: this.view().pageSize || 10,\n key: 'id',\n });\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasSelectedItems\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description ?? null;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n return this.entityDef.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name);\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.title(),\n },\n ];\n }, ...(ngDevMode ? [{ debugName: \"beardcrumbs\" }] : []));\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\n return list.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\n }, ...(ngDevMode ? [{ debugName: \"allActions\" }] : []));\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n }, ...(ngDevMode ? [{ debugName: \"selectedScopeActionsCount\" }] : []));\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'), ...(ngDevMode ? [{ debugName: \"primaryRowActions\" }] : []));\n //****************** Filter ******************//\n this.filterQueries = signal([], ...(ngDevMode ? [{ debugName: \"filterQueries\" }] : []));\n //****************** Columns ******************//\n this.allAvailableColumns = () => {\n const { columns = [], properties } = this.entityDef;\n const visibleProperties = properties.filter(({ schema }) => !schema?.hidden);\n const visiblePropNames = new Set(visibleProperties.map(({ name }) => name));\n return columns\n .filter(({ name }) => visiblePropNames.has(name))\n .map((column) => {\n const property = visibleProperties.find(({ name }) => name === column.name);\n return new AXPEntityListViewColumnViewModel(property, column);\n });\n };\n this.visibleColumnCount = () => {\n return this.columns().filter((c) => c.visible == true).length;\n };\n this.columns = signal([], ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n //****************** Sort ******************//\n this.sortableFields = () => {\n const props = this.entityDef.properties.filter((c) => c.options?.sort?.enabled);\n return props.map((e) => {\n return {\n name: e.name,\n title: e.title,\n dir: undefined,\n };\n });\n };\n this.sortableFieldsCount = () => {\n return this.entityDef.properties.filter((c) => c.options?.sort?.enabled).length ?? 0;\n };\n this.canSort = () => {\n return this.sortableFieldsCount() > 0;\n };\n this.canAddMoreSort = () => {\n return this.sortedCount() < this.sortableFieldsCount();\n };\n this.sortedCount = () => {\n return this.sortedFields().filter((i) => i.dir).length;\n };\n this.sortedFields = signal([], ...(ngDevMode ? [{ debugName: \"sortedFields\" }] : []));\n this.evaluateExpressions = async (options, data) => {\n const scope = {\n context: {\n eval: (path) => {\n return get(data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n this.workflow.events$\n .pipe(ofType(AXPRefreshEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source) {\n this.selectedItems.set([]);\n this.events$.next({ action: 'refresh', meta: event.payload.meta });\n }\n });\n this.sortedFields.set(this.sortableFields());\n }\n async applySettings() {\n this.saveSettings('view');\n const listViewSetting = await this.settings.get(this.settingEntityKey);\n if (listViewSetting) {\n const columns = listViewSetting.list.views[this.view().name].columns;\n const pageSize = listViewSetting.list.views[this.view().name].pageSize;\n const columnVisibilityMap = new Map(columns.map((col) => [col.name, col.visible]));\n const columnWidthsMap = new Map(columns.map((col) => [col.name, col.width]));\n // if (pageSize) {\n // this.dataSource.setPageSize(pageSize);\n // }\n this.columns.update((prev) => prev\n .map((c) => {\n return { ...c, width: columnWidthsMap.get(c.name), visible: columnVisibilityMap.get(c.name) ?? c.visible };\n }) // Update visibility\n .sort((a, b) => columns.findIndex((col) => col.name === a.name) -\n columns.findIndex((col) => col.name === b.name)));\n }\n }\n async saveSettings(changesType, data) {\n const updateSettings = (updateFn) => {\n this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);\n };\n switch (changesType) {\n case 'columnSizes':\n updateSettings((prev) => {\n const field = data.dataField.split('-')[1];\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, prev?.list?.views?.[this.view().name]?.columns?.map((c) => ({\n ...c,\n width: c.name === field ? data.width : c.width,\n })));\n return newSettings;\n });\n break;\n case 'columnOrders':\n updateSettings((prev) => {\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, data.map((c) => ({\n name: c.name,\n visible: c.visible,\n width: c.width,\n })));\n return newSettings;\n });\n break;\n case 'view':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n currentView: this.view().name,\n },\n }));\n break;\n case 'pageSize':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n views: {\n ...prev?.list?.views,\n [this.view().name]: {\n ...prev?.list?.views?.[this.view().name],\n pageSize: data,\n },\n },\n },\n }));\n break;\n default:\n break;\n }\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n async getPrimaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async getSecondaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async secondaryRowActions(rowData) {\n const scope = {\n context: {\n eval: (path) => get(rowData, path),\n },\n };\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.scope === AXPEntityCommandScope.Individual && a.priority === 'secondary')\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions.filter(Boolean);\n }\n get properties() {\n return this.entityDef.properties;\n }\n get filtersDef() {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.advance?.enabled || c.options?.filter?.inline?.enabled);\n return props.map((e) => {\n const widgetConfig = this.widgetResolver.resolve(e.schema.interface?.type);\n const type = (e.options?.filter?.advance?.widgetType ||\n widgetConfig?.defaultFilterWidgetName ||\n e.schema.interface?.type);\n return {\n title: e.title,\n field: e.name,\n operator: {\n type: 'contains',\n },\n widget: { ...e.schema.interface, path: e.name, type },\n filters: [],\n isParametric: false,\n icon: widgetConfig?.icon,\n filterType: {\n advance: e.options?.filter?.advance?.enabled ?? false,\n inline: e.options?.filter?.inline?.enabled ?? false,\n },\n };\n });\n }\n // const viewFilters = this.view().conditions.map((f) => ({\n // field: f.name,\n // operator: f.operator,\n // value: f.value,\n // }));\n async applyViewFilters() {\n const viewFilters = this.view().conditions.map((f) => ({\n field: f.name,\n operator: f.operator,\n value: f.value,\n }));\n this.filterQueries.update((prev) => ({ ...prev, filters: viewFilters }));\n }\n resetFilters() {\n this.applyViewFilters();\n }\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n this.dataSource.sort(...this.sortedFields()\n .filter((sf) => sf.dir)\n .map((s) => ({ dir: s.dir, field: s.name })));\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: this.filterQueries(),\n }));\n this.dataSource.refresh();\n }\n resetColumns() {\n this.applyViewColumns();\n }\n async onColumnsChanged(columns) {\n this.saveSettings('columnOrders', columns);\n }\n applyViewColumns() {\n const cols = this.view().columns;\n const cloned = this.allAvailableColumns().map((c) => {\n const column = this.entityDef.columns?.find((cc) => cc.name == c.name);\n const prop = this.entityDef.properties.find((p) => p.name == c.name);\n const col = new AXPEntityListViewColumnViewModel(prop, column);\n col.visible = !cols.some((c) => c == col.name) && col.visible != false;\n return col;\n });\n this.columns.set(cloned);\n }\n resetSorts() {\n this.applyViewSorts();\n }\n applyViewSorts() {\n const viewSorts = this.view().sorts;\n this.sortedFields.update((prev) => {\n const viewSortsMap = new Map(viewSorts.map((vs) => [vs.name, vs]));\n return prev.map((sf) => {\n const updatedSort = viewSortsMap.get(sf.name);\n if (updatedSort) {\n return { ...updatedSort, title: sf.title };\n }\n return sf;\n });\n });\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n return (c.name == commandName &&\n ((this.selectedItems().length && !data // added by Arash\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual) ||\n c.scope == AXPEntityCommandScope.TypeLevel));\n });\n const command = commandName.split('&')[0];\n const options = await this.evaluateExpressions(action?.options, data);\n await this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n entityInfo: {\n name: this.entityDef.name,\n module: this.entityDef.module,\n title: this.entityDef.title,\n parentKey: this.entityDef.parentKey,\n source: this.entityDef.source,\n },\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data,\n options: options,\n metadata: action?.metadata,\n });\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name);\n break;\n }\n }\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityListViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterListViewModel(this.injector, config);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityListViewModelResolver = (route, state, service = inject(AXPEntityListViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n //\n return service.create(moduleName, entityName);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1tYXN0ZXItbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixrQ0FBa0MsRUFFbEMsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBSUwsNkJBQTZCLEVBRzdCLGdCQUFnQixHQUNqQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFB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LENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0FWVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOzsyRkFDbkIsNkJBQTZCO2tCQUR6QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFjbEMsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQXFELENBQzlGLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQXlDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxFQUN2QyxFQUFFO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlU29ydE9wdGlvbiB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQUXVlcnlWaWV3LFxuICBBWFBSZWZyZXNoRXZlbnQsXG4gIEFYUFNldHRpbmdTZXJ2aWNlLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQRXhlY3V0ZUNvbW1hbmQsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UsXG4gIEFYUEZpbHRlckRlZmluaXRpb24sXG4gIEFYUEZpbHRlclF1ZXJ5LFxuICBBWFBQbGF0Zm9ybVNjb3BlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLCBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSwgb2ZUeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCwgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwgfSBmcm9tICcuL2VudGl0eS52aWV3bW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRpcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCxcbiAgICBwcml2YXRlIHZpZXc6IEFYUFF1ZXJ5VmlldyxcbiAgKSB7fVxuXG4gIG5hbWUgPSB0aGlzLnZpZXcubmFtZTtcbiAgdGl0bGUgPSB0aGlzLnZpZXcudGl0bGU7XG4gIHNvcnRzID0gdGhpcy52aWV3LnNvcnRzO1xuICBjb2x1bW5zID0gdGhpcy52aWV3LmNvbHVtbnM7XG4gIGNvbmRpdGlvbnMgPSB0aGlzLnZpZXcuY29uZGl0aW9ucztcbiAgaW5kZXhDb2wgPSB0aGlzLnZpZXcuaW5kZXhDb2w7XG4gIHBhZ2VTaXplID0gdGhpcy52aWV3LnBhZ2VTaXplO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCB7XG4gIHJlYWRvbmx5IGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RGVmID0gY2xvbmVEZWVwKHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdCkhO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2V0dGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFJlc29sdmVyID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBzZXR0aW5nRW50aXR5S2V5ID0gYCR7dGhpcy5jb25maWcubW9kdWxlfToke3RoaXMuY29uZmlnLm5hbWV9YDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBldmVudHMkOiBTdWJqZWN0PHsgYWN0aW9uOiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIFZpZXdzICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgdmlld3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LnZpZXdzID8/IFtdO1xuXG4gICAgcmV0dXJuIHZpZXdzLm1hcCgodikgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0aGlzLCB2KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmlldyA9IHNpZ25hbDxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsPih0aGlzLnZpZXdzKClbMF0pO1xuXG4gIGFzeW5jIHNldFZpZXcodmlld05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgY29uc3QgZW50aXR5U2V0dGluZyA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ0VudGl0eUtleSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRWaWV3TmFtZSA9IGVudGl0eVNldHRpbmc/Lmxpc3Q/LmN1cnJlbnRWaWV3O1xuICAgIGlmICh2aWV3TmFtZSAhPSB0aGlzLnZpZXcoKS5uYW1lKSB7XG4gICAgICB0aGlzLnZpZXcuc2V0KHRoaXMudmlld3MoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gKHZpZXdOYW1lIHx8IHNlbGVjdGVkVmlld05hbWUpKSA/PyB0aGlzLnZpZXdzKClbMF0pO1xuXG4gICAgICB0aGlzLmFwcGx5Vmlld1NvcnRzKCk7XG4gICAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcbiAgICAgIHRoaXMuYXBwbHlWaWV3RmlsdGVycygpO1xuICAgICAgLy8gdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgICAgIHRoaXMuYXBwbHlTZXR0aW5ncygpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgfSxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IHRoaXMudmlldygpLnBhZ2VTaXplIHx8IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQUmVmcmVzaEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gICAgICAgICAgdGhpcy5ldmVudHMkLm5leHQoeyBhY3Rpb246ICdyZWZyZXNoJywgbWV0YTogZXZlbnQucGF5bG9hZC5tZXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNvcnRlZEZpZWxkcy5zZXQodGhpcy5zb3J0YWJsZUZpZWxkcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseVNldHRpbmdzKCkge1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzKCd2aWV3Jyk7XG5cbiAgICBjb25zdCBsaXN0Vmlld1NldHRpbmcgPSBhd2FpdCB0aGlzLnNldHRpbmdzLmdldCh0aGlzLnNldHRpbmdFbnRpdHlLZXkpO1xuICAgIGlmIChsaXN0Vmlld1NldHRpbmcpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5jb2x1bW5zO1xuICAgICAgY29uc3QgcGFnZVNpemUgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5wYWdlU2l6ZTtcbiAgICAgIGNvbnN0IGNvbHVtblZpc2liaWxpdHlNYXAgPSBuZXcgTWFwKGNvbHVtbnMubWFwKChjb2w6IGFueSkgPT4gW2NvbC5uYW1lLCBjb2wudmlzaWJsZV0pKTtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoc01hcCA9IG5ldyBNYXAoY29sdW1ucy5tYXAoKGNvbDogYW55KSA9PiBbY29sLm5hbWUsIGNvbC53aWR0aF0pKTtcblxuICAgICAgLy8gaWYgKHBhZ2VTaXplKSB7XG4gICAgICAvLyAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlU2l6ZShwYWdlU2l6ZSk7XG4gICAgICAvLyB9XG5cbiAgICAgIHRoaXMuY29sdW1ucy51cGRhdGUoKHByZXYpID0+XG4gICAgICAgIHByZXZcbiAgICAgICAgICAubWFwKChjOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmMsIHdpZHRoOiBjb2x1bW5XaWR0aHNNYXAuZ2V0KGMubmFtZSksIHZpc2libGU6IGNvbHVtblZpc2liaWxpdHlNYXAuZ2V0KGMubmFtZSkgPz8gYy52aXNpYmxlIH07XG4gICAgICAgICAgfSkgLy8gVXBkYXRlIHZpc2liaWxpdHlcbiAgICAgICAgICAuc29ydChcbiAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbmRJbmRleCgoY29sOiBhbnkpID0+IGNvbC5uYW1lID09PSBhLm5hbWUpIC1cbiAgICAgICAgICAgICAgY29sdW1ucy5maW5kSW5kZXgoKGNvbDogYW55KSA9PiBjb2wubmFtZSA9PT0gYi5uYW1lKSxcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZVNldHRpbmdzKGNoYW5nZXNUeXBlOiAnY29sdW1uU2l6ZXMnIHwgJ2NvbHVtbk9yZGVycycgfCAndmlldycgfCAncGFnZVNpemUnLCBkYXRhPzogYW55KSB7XG4gICAgY29uc3QgdXBkYXRlU2V0dGluZ3MgPSAodXBkYXRlRm46IChwcmV2OiBhbnkpID0+IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZXR0aW5ncy5zY29wZShBWFBQbGF0Zm9ybVNjb3BlLlVzZXIpLnVwZGF0ZSh0aGlzLnNldHRpbmdFbnRpdHlLZXksIHVwZGF0ZUZuKTtcbiAgICB9O1xuXG4gICAgc3dpdGNoIChjaGFuZ2VzVHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1uU2l6ZXMnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0gZGF0YS5kYXRhRmllbGQuc3BsaXQoJy0nKVsxXTtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgcHJldj8ubGlzdD8udmlld3M/Llt0aGlzLnZpZXcoKS5uYW1lXT8uY29sdW1ucz8ubWFwKChjOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLm5hbWUgPT09IGZpZWxkID8gZGF0YS53aWR0aCA6IGMud2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1uT3JkZXJzJzpcbiAgICAgICAgdXBkYXRlU2V0dGluZ3MoKHByZXYpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgZGF0YS5tYXAoKGM6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBjLnZpc2libGUsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLndpZHRoLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICAgIC4uLnByZXY/Lmxpc3QsXG4gICAgICAgICAgICBjdXJyZW50VmlldzogdGhpcy52aWV3KCkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwYWdlU2l6ZSc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgLi4ucHJldj8ubGlzdCxcbiAgICAgICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgICAgIC4uLnByZXY/Lmxpc3Q/LnZpZXdzLFxuICAgICAgICAgICAgICBbdGhpcy52aWV3KCkubmFtZV06IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2Py5saXN0Py52aWV3cz8uW3RoaXMudmlldygpLm5hbWVdLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBkYXRhLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBwYXJlbnRLZXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnBhcmVudEtleTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc1NlbGVjdGVkSXRlbXMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLnRpdGxlID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsITtcbiAgfSk7XG4gIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiA/PyBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBJbmxpbmUgZmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKHApID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcCgoYykgPT4gYy50aXRsZSA/PyBjLm5hbWUpO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQnJlYWRjcnVtYkl0ZW1bXT4oKCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCksXG4gICAgICB9LFxuICAgIF07XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJpdmF0ZSBhbGxBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgcmV0dXJuIGxpc3QubWFwKCh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0cikpID8/IFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpbWFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHt9O1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuYWxsQWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGEpID0+XG4gICAgICAgICAgICBhLnByaW9yaXR5ID09ICdwcmltYXJ5JyAmJlxuICAgICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiBhY3Rpb25zIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2Vjb25kYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge307XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoYSkgPT5cbiAgICAgICAgICAgIGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScgJiZcbiAgICAgICAgICAgICgoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgJiYgdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpIHx8XG4gICAgICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSksXG4gICAgICAgIClcbiAgICAgICAgLm1hcChhc3luYyAoYSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuaGlkZGVuLCBzY29wZSk7XG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmRpc2FibGVkLCBzY29wZSk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uYSwgZGlzYWJsZWQgfTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4gYWN0aW9ucyBhcyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkU2NvcGVBY3Rpb25zQ291bnQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCkubGVuZ3RoO1xuICB9KTtcblxuICBwdWJsaWMgcHJpbWFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAncHJpbWFyeScpLFxuICApO1xuXG4gIHB1YmxpYyBhc3luYyBzZWNvbmRhcnlSb3dBY3Rpb25zKHJvd0RhdGE6IGFueSk6IFByb21pc2U8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IGdldChyb3dEYXRhLCBwYXRoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuYWxsQWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdzZWNvbmRhcnknKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjdGlvbnMuZmlsdGVyKEJvb2xlYW4pIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBGaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cblxuICBmaWx0ZXJRdWVyaWVzID0gc2lnbmFsPEFYUEZpbHRlclF1ZXJ5W10+KFtdKTtcblxuICBnZXQgcHJvcGVydGllcygpOiBBWFBFbnRpdHlQcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcztcbiAgfVxuXG4gIGdldCBmaWx0ZXJzRGVmKCk6IEFYUEZpbHRlckRlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8uZW5hYmxlZCB8fCBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkLFxuICAgICk7XG4gICAgcmV0dXJuIHByb3BzLm1hcCgoZSkgPT4ge1xuICAgICAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gdGhpcy53aWRnZXRSZXNvbHZlci5yZXNvbHZlKFxuICAgICAgICBlLnNjaGVtYS5pbnRlcmZhY2U/LnR5cGUgYXMgQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdHlwZSA9IChlLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8ud2lkZ2V0VHlwZSB8fFxuICAgICAgICB3aWRnZXRDb25maWc/LmRlZmF1bHRGaWx0ZXJXaWRnZXROYW1lIHx8XG4gICAgICAgIGUuc2NoZW1hLmludGVyZmFjZT8udHlwZSkgYXMgQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXG4gICAgICAgIGZpZWxkOiBlLm5hbWUsXG4gICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkZ2V0OiB7IC4uLmUuc2NoZW1hLmludGVyZmFjZSwgcGF0aDogZS5uYW1lLCB0eXBlIH0sXG4gICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICBpc1BhcmFtZXRyaWM6IGZhbHNlLFxuICAgICAgICBpY29uOiB3aWRnZXRDb25maWc/Lmljb24sXG4gICAgICAgIGZpbHRlclR5cGU6IHtcbiAgICAgICAgICBhZHZhbmNlOiBlLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICBpbmxpbmU6IGUub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gY29uc3Qgdmlld0ZpbHRlcnMgPSB0aGlzLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoZikgPT4gKHtcbiAgLy8gICBmaWVsZDogZi5uYW1lLFxuICAvLyAgIG9wZXJhdG9yOiBmLm9wZXJhdG9yLFxuICAvLyAgIHZhbHVlOiBmLnZhbHVlLFxuICAvLyB9KSk7XG4gIGFzeW5jIGFwcGx5Vmlld0ZpbHRlcnMoKSB7XG4gICAgY29uc3Qgdmlld0ZpbHRlcnMgPSB0aGlzLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoZikgPT4gKHtcbiAgICAgIGZpZWxkOiBmLm5hbWUsXG4gICAgICBvcGVyYXRvcjogZi5vcGVyYXRvcixcbiAgICAgIHZhbHVlOiBmLnZhbHVlLFxuICAgIH0pKTtcbiAgICB0aGlzLmZpbHRlclF1ZXJpZXMudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBmaWx0ZXJzOiB2aWV3RmlsdGVycyBhcyBBWFBGaWx0ZXJRdWVyeVtdIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGx5Vmlld0ZpbHRlcnMoKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydChcbiAgICAgIC4uLnRoaXMuc29ydGVkRmllbGRzKClcbiAgICAgICAgLmZpbHRlcigoc2YpID0+IHNmLmRpcilcbiAgICAgICAgLm1hcCgocykgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9KSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSxcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcihcbiAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih7XG4gICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVyUXVlcmllcygpIGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29sdW1ucyAqKioqKioqKioqKioqKioqKiovL1xuXG4gIHByaXZhdGUgYWxsQXZhaWxhYmxlQ29sdW1ucyA9ICgpOiBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdID0+IHtcbiAgICBjb25zdCB7IGNvbHVtbnMgPSBbXSwgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBzY2hlbWEgfSkgPT4gIXNjaGVtYT8uaGlkZGVuKTtcbiAgICBjb25zdCB2aXNpYmxlUHJvcE5hbWVzID0gbmV3IFNldCh2aXNpYmxlUHJvcGVydGllcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSk7XG4gICAgcmV0dXJuIGNvbHVtbnNcbiAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiB2aXNpYmxlUHJvcE5hbWVzLmhhcyhuYW1lKSlcbiAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHZpc2libGVQcm9wZXJ0aWVzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBjb2x1bW4ubmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocHJvcGVydHkhLCBjb2x1bW4pO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdmlzaWJsZUNvbHVtbkNvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMoKS5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSA9PSB0cnVlKS5sZW5ndGg7XG4gIH07XG5cbiAgY29sdW1ucyA9IHNpZ25hbDxBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdPihbXSk7XG5cbiAgcmVzZXRDb2x1bW5zKCkge1xuICAgIHRoaXMuYXBwbHlWaWV3Q29sdW1ucygpO1xuICB9XG5cbiAgYXN5bmMgb25Db2x1bW5zQ2hhbmdlZChjb2x1bW5zOiBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdKSB7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoJ2NvbHVtbk9yZGVycycsIGNvbHVtbnMpO1xuICB9XG5cbiAgYXBwbHlWaWV3Q29sdW1ucygpIHtcbiAgICBjb25zdCBjb2xzID0gdGhpcy52aWV3KCkuY29sdW1ucztcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLmFsbEF2YWlsYWJsZUNvbHVtbnMoKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnM/LmZpbmQoKGNjKSA9PiBjYy5uYW1lID09IGMubmFtZSk7XG4gICAgICBjb25zdCBwcm9wID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maW5kKChwKSA9PiBwLm5hbWUgPT0gYy5uYW1lKTtcbiAgICAgIGNvbnN0IGNvbCA9IG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChwcm9wISwgY29sdW1uISk7XG4gICAgICBjb2wudmlzaWJsZSA9ICFjb2xzLnNvbWUoKGMpID0+IGMgPT0gY29sLm5hbWUpICYmIGNvbC52aXNpYmxlICE9IGZhbHNlO1xuICAgICAgcmV0dXJuIGNvbDtcbiAgICB9KTtcbiAgICB0aGlzLmNvbHVtbnMuc2V0KGNsb25lZCk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBTb3J0ICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgc29ydGFibGVGaWVsZHMgPSAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5zb3J0Py5lbmFibGVkKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBlLm5hbWUsXG4gICAgICAgIHRpdGxlOiBlLnRpdGxlLFxuICAgICAgICBkaXI6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgc29ydGFibGVGaWVsZHNDb3VudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKGMpID0+IGMub3B0aW9ucz8uc29ydD8uZW5hYmxlZCkubGVuZ3RoID8/IDA7XG4gIH07XG5cbiAgY2FuU29ydCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0YWJsZUZpZWxkc0NvdW50KCkgPiAwO1xuICB9O1xuXG4gIGNhbkFkZE1vcmVTb3J0ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZENvdW50KCkgPCB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKTtcbiAgfTtcblxuICBzb3J0ZWRDb3VudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRGaWVsZHMoKS5maWx0ZXIoKGkpID0+IGkuZGlyKS5sZW5ndGg7XG4gIH07XG5cbiAgc29ydGVkRmllbGRzID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWxbXT4oW10pO1xuXG4gIHJlc2V0U29ydHMoKSB7XG4gICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xuICB9XG5cbiAgYXBwbHlWaWV3U29ydHMoKSB7XG4gICAgY29uc3Qgdmlld1NvcnRzID0gdGhpcy52aWV3KCkuc29ydHM7XG5cbiAgICB0aGlzLnNvcnRlZEZpZWxkcy51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdTb3J0c01hcCA9IG5ldyBNYXAodmlld1NvcnRzLm1hcCgodnMpID0+IFt2cy5uYW1lLCB2c10pKTtcbiAgICAgIHJldHVybiBwcmV2Lm1hcCgoc2YpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFNvcnQgPSB2aWV3U29ydHNNYXAuZ2V0KHNmLm5hbWUpO1xuICAgICAgICBpZiAodXBkYXRlZFNvcnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi51cGRhdGVkU29ydCwgdGl0bGU6IHNmLnRpdGxlIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNmO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiAgQ29tbWFuZHMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFsbEFjdGlvbnMoKS5maW5kKChjKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjLm5hbWUgPT0gY29tbWFuZE5hbWUgJiZcbiAgICAgICAgKCh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggJiYgIWRhdGEgLy8gYWRkZWQgYnkgQXJhc2hcbiAgICAgICAgICA/IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkXG4gICAgICAgICAgOiBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsKSB8fFxuICAgICAgICAgIGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbClcbiAgICAgICk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWFuZCA9IGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF07XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9ucyhhY3Rpb24/Lm9wdGlvbnMsIGRhdGEpO1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZShjb21tYW5kLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgIGVudGl0eUluZm86IHtcbiAgICAgICAgbmFtZTogdGhpcy5lbnRpdHlEZWYubmFtZSxcbiAgICAgICAgbW9kdWxlOiB0aGlzLmVudGl0eURlZi5tb2R1bGUsXG4gICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi50aXRsZSxcbiAgICAgICAgcGFyZW50S2V5OiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXksXG4gICAgICAgIHNvdXJjZTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IGFjdGlvbj8uc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkID8gdGhpcy5zZWxlY3RlZEl0ZW1zKCkgOiBkYXRhLFxuICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgIG1ldGFkYXRhOiBhY3Rpb24/Lm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KGRhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUob3B0aW9ucywgc2NvcGUpO1xuICB9O1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQ/Lm5hbWUpIHtcbiAgICAgIGNhc2UgJ25hdmlnYXRlJzpcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwYXRoOiBjb21tYW5kLm9wdGlvbnM/LlsncGF0aCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZC5uYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsPiB7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+PiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBzZXJ2aWNlOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSksXG4pOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+ID0+IHtcbiAgY29uc3QgbW9kdWxlTmFtZSA9IHJvdXRlLnBhcmVudD8ucGFyYW1NYXAuZ2V0KCdtb2R1bGUnKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGVudGl0eU5hbWUgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2VudGl0eScpIGFzIHN0cmluZztcbiAgLy9cbiAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xufTtcbiJdfQ==","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityService {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n }\n createPath(module, entity, path = 'list') {\n return `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${path}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FLcEQ7SUFIQyxVQUFVLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxPQUFlLE1BQU07UUFDOUQsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBTFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVNlcnZpY2Uge1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBjcmVhdGVQYXRoKG1vZHVsZTogc3RyaW5nLCBlbnRpdHk6IHN0cmluZywgcGF0aDogc3RyaW5nID0gJ2xpc3QnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGV9L2UvJHtlbnRpdHl9LyR7cGF0aH1gO1xuICB9XG59XG4iXX0=","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityDeletedEvent = createWorkFlowEvent('[Entity] Deleted');\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.dialogService = inject(AXDialogService);\n this.loadingDialog = inject(AXLoadingDialogService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(context) {\n const moduleEntity = context.getVariable('entity');\n const data = context.getVariable('data');\n const meta = context.getVariable('meta');\n const options = context.getVariable('options');\n const process = options?.['process'];\n const showResult = process?.showResult ?? true;\n const entities = [];\n if (moduleEntity != null) {\n const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];\n entities.push({\n source: moduleEntity,\n ids: ids,\n });\n }\n else {\n const listEntities = context.getVariable('entities');\n entities.push(...listEntities);\n }\n const entityDefinitions = {};\n let deletedCount = 0;\n context.setVariable('deleteSuccessful', false);\n for await (const entity of entities) {\n const [moduleName, entityName] = entity.source.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityDefinition.parentKey && data[entityDefinition.parentKey]) {\n context.setVariable('meta', { ...meta, refreshTargetId: data[entityDefinition.parentKey] });\n }\n entityDefinitions[entity.source] = entityDefinition;\n }\n // Compute consolidated ids from all entities\n const idLength = entities.reduce((acc, curr) => acc + curr.ids.length, 0);\n let dialog;\n let showDialogTimeout;\n let isDialogShown = false;\n // Create dialog config but don't show it yet\n const createDialog = async () => {\n dialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('workflow.deleting'),\n mode: 'determinate',\n status: 'Deleting...',\n progressValue: 0,\n text: `0/${idLength}`,\n buttons: [\n {\n text: await this.translationService.translateAsync('cancel'),\n color: 'danger',\n onClick: () => {\n if (dialog) {\n dialog.close();\n }\n },\n },\n ],\n });\n isDialogShown = true;\n };\n // Set timeout to show dialog after 2 seconds if process is not complete\n showDialogTimeout = setTimeout(async () => {\n await createDialog();\n }, 2000);\n let allPromises = [];\n for (const entity of entities) {\n const entityDefinition = entityDefinitions[entity.source];\n if (entityDefinition.commands?.delete != null) {\n const deleteExec = entityDefinition.commands?.delete?.execute;\n const entityPromises = entity.ids\n .map((id, i) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(deleteExec(id));\n }, i * 200);\n });\n })\n .map((p) => p?.then((value) => {\n deletedCount++;\n if (isDialogShown && dialog) {\n dialog.setProgressText(`${deletedCount}/${idLength}`);\n dialog.setProgressValue((deletedCount / idLength) * 100);\n }\n return { status: 'fulfilled', value };\n }, (reason) => ({ status: 'rejected', reason })));\n allPromises = allPromises.concat(entityPromises);\n }\n else {\n // Clear timeout if error occurs\n clearTimeout(showDialogTimeout);\n throw new Error(`The delete operation cannot be performed on ${entityDefinition.title}. This action might be restricted or not applicable for the selected item.`);\n }\n }\n const results = await Promise.all(allPromises);\n // Clear timeout as process is complete\n clearTimeout(showDialogTimeout);\n if (isDialogShown) {\n setTimeout(() => {\n dialog.close();\n }, 300);\n }\n // Store the last entity for use in event dispatching\n const lastEntity = entities[entities.length - 1];\n // Handle different scenarios for alerts\n const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;\n const failedPromises = results.filter((result) => result?.status === 'rejected').length;\n if (successfulPromises > 0 && failedPromises === 0) {\n // All items deleted successfully\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-delete-title'), await this.translationService.translateAsync('workflow.success-delete-body', {\n params: { item: successfulPromises },\n }), //TODO test translation\n 'success');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n this.dispatch(AXPRefreshEvent({ entity: lastEntity.source, meta: context.getVariable('meta') }));\n }\n else if (successfulPromises > 0 && failedPromises > 0) {\n // Some items deleted successfully, some failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-partial-delete-title'), await this.translationService.translateAsync('workflow.partial-delete-body', {\n params: { success: successfulPromises, fail: failedPromises },\n }), 'warning');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n }\n else if (successfulPromises === 0 && failedPromises > 0) {\n // No items deleted, all failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.fail-delete-title'), await this.translationService.translateAsync('workflow.fail-delete-body', {\n params: { item: failedPromises },\n }), 'danger');\n }\n }\n else {\n // No items to delete (no successful or failed promises)\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.no-need'), await this.translationService.translateAsync('workflow.no-item'), 'primary');\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPDeleteEntityWorkflow = {\n startStepId: 'confirm-delete',\n steps: {\n 'confirm-delete': {\n action: 'show-prompt-dialog',\n input: {\n title: 'workflow.warning',\n message: `workflow.confirm-delete`,\n type: 'danger',\n },\n nextSteps: [\n {\n conditions: [\n {\n type: 'AND',\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n },\n ],\n nextStepId: 'perform-delete',\n },\n ],\n },\n 'perform-delete': {\n action: 'entity-perform-delete',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFRRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQTZLM0Q7SUEzS0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFD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QUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix3REFBd0Q7WUFDeEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUM1QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFDaEUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQ2hFLFNBQVMsQ0FDVixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWhMVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7QUFvTFgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdCO0lBQ2xELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsS0FBSyxFQUFFO1FBQ0wsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDO3lCQUNwRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsZ0JBQWdCO2lCQUM3QjthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUmVmcmVzaEV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IGlkczogc3RyaW5nW107IG1ldGE/OiBhbnkgfT4oXG4gICdbRW50aXR5XSBEZWxldGVkJyxcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVsZXRlT3B0aW9ucyB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBpZHM6IHN0cmluZ1tdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIGxvYWRpbmdEaWFsb2cgPSBpbmplY3QoQVhMb2FkaW5nRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZHVsZUVudGl0eSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0eScpO1xuICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ2RhdGEnKTtcbiAgICBjb25zdCBtZXRhID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdtZXRhJyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgcHJvY2VzcyA9IG9wdGlvbnM/LlsncHJvY2VzcyddO1xuXG4gICAgY29uc3Qgc2hvd1Jlc3VsdCA9IHByb2Nlc3M/LnNob3dSZXN1bHQgPz8gdHJ1ZTtcblxuICAgIGNvbnN0IGVudGl0aWVzOiBBWFBFbnRpdHlEZWxldGVPcHRpb25zW10gPSBbXTtcbiAgICBpZiAobW9kdWxlRW50aXR5ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhLm1hcCgoYykgPT4gYy5pZCkgOiBbZGF0YS5pZF07XG4gICAgICBlbnRpdGllcy5wdXNoKHtcbiAgICAgICAgc291cmNlOiBtb2R1bGVFbnRpdHksXG4gICAgICAgIGlkczogaWRzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpc3RFbnRpdGllcyA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0aWVzJyk7XG4gICAgICBlbnRpdGllcy5wdXNoKC4uLmxpc3RFbnRpdGllcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXR5RGVmaW5pdGlvbnM6IHsgW2tleTogc3RyaW5nXTogQVhQRW50aXR5IH0gPSB7fTtcbiAgICBsZXQgZGVsZXRlZENvdW50ID0gMDtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkZWxldGVTdWNjZXNzZnVsJywgZmFsc2UpO1xuICAgIGZvciBhd2FpdCAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBlbnRpdHkuc291cmNlLnNwbGl0KCcuJyk7XG4gICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uLnBhcmVudEtleSAmJiBkYXRhW2VudGl0eURlZmluaXRpb24ucGFyZW50S2V5XSkge1xuICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdtZXRhJywgeyAuLi5tZXRhLCByZWZyZXNoVGFyZ2V0SWQ6IGRhdGFbZW50aXR5RGVmaW5pdGlvbi5wYXJlbnRLZXldIH0pO1xuICAgICAgfVxuICAgICAgZW50aXR5RGVmaW5pdGlvbnNbZW50aXR5LnNvdXJjZV0gPSBlbnRpdHlEZWZpbml0aW9uO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgY29uc29saWRhdGVkIGlkcyBmcm9tIGFsbCBlbnRpdGllc1xuICAgIGNvbnN0IGlkTGVuZ3RoID0gZW50aXRpZXMucmVkdWNlKChhY2M6IG51bWJlciwgY3VycikgPT4gYWNjICsgY3Vyci5pZHMubGVuZ3RoLCAwKTtcbiAgICBsZXQgZGlhbG9nOiBhbnk7XG4gICAgbGV0IHNob3dEaWFsb2dUaW1lb3V0OiBhbnk7XG4gICAgbGV0IGlzRGlhbG9nU2hvd24gPSBmYWxzZTtcblxuICAgIC8vIENyZWF0ZSBkaWFsb2cgY29uZmlnIGJ1dCBkb24ndCBzaG93IGl0IHlldFxuICAgIGNvbnN0IGNyZWF0ZURpYWxvZyA9IGFzeW5jICgpID0+IHtcbiAgICAgIGRpYWxvZyA9IHRoaXMubG9hZGluZ0RpYWxvZy5zaG93KHtcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5kZWxldGluZycpLFxuICAgICAgICBtb2RlOiAnZGV0ZXJtaW5hdGUnLFxuICAgICAgICBzdGF0dXM6ICdEZWxldGluZy4uLicsXG4gICAgICAgIHByb2dyZXNzVmFsdWU6IDAsXG4gICAgICAgIHRleHQ6IGAwLyR7aWRMZW5ndGh9YCxcbiAgICAgICAgYnV0dG9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjYW5jZWwnKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGRpYWxvZykge1xuICAgICAgICAgICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGlzRGlhbG9nU2hvd24gPSB0cnVlO1xuICAgIH07XG5cbiAgICAvLyBTZXQgdGltZW91dCB0byBzaG93IGRpYWxvZyBhZnRlciAyIHNlY29uZHMgaWYgcHJvY2VzcyBpcyBub3QgY29tcGxldGVcbiAgICBzaG93RGlhbG9nVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgY3JlYXRlRGlhbG9nKCk7XG4gICAgfSwgMjAwMCk7XG5cbiAgICBsZXQgYWxsUHJvbWlzZXM6IGFueVtdID0gW107XG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IGVudGl0eURlZmluaXRpb24gPSBlbnRpdHlEZWZpbml0aW9uc1tlbnRpdHkuc291cmNlXTtcbiAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uLmNvbW1hbmRzPy5kZWxldGUgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBkZWxldGVFeGVjID0gZW50aXR5RGVmaW5pdGlvbi5jb21tYW5kcz8uZGVsZXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgICBjb25zdCBlbnRpdHlQcm9taXNlcyA9IChlbnRpdHkuaWRzIGFzIGFueVtdKVxuICAgICAgICAgIC5tYXAoKGlkLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShkZWxldGVFeGVjKGlkKSk7XG4gICAgICAgICAgICAgIH0sIGkgKiAyMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChwKSA9PlxuICAgICAgICAgICAgcD8udGhlbihcbiAgICAgICAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlZENvdW50Kys7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGlhbG9nU2hvd24gJiYgZGlhbG9nKSB7XG4gICAgICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGAke2RlbGV0ZWRDb3VudH0vJHtpZExlbmd0aH1gKTtcbiAgICAgICAgICAgICAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc1ZhbHVlKChkZWxldGVkQ291bnQgLyBpZExlbmd0aCkgKiAxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6ICdmdWxmaWxsZWQnLCB2YWx1ZSB9O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiAoeyBzdGF0dXM6ICdyZWplY3RlZCcsIHJlYXNvbiB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcblxuICAgICAgICBhbGxQcm9taXNlcyA9IGFsbFByb21pc2VzLmNvbmNhdChlbnRpdHlQcm9taXNlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDbGVhciB0aW1lb3V0IGlmIGVycm9yIG9jY3Vyc1xuICAgICAgICBjbGVhclRpbWVvdXQoc2hvd0RpYWxvZ1RpbWVvdXQpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRoZSBkZWxldGUgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gJHtlbnRpdHlEZWZpbml0aW9uLnRpdGxlfS4gVGhpcyBhY3Rpb24gbWlnaHQgYmUgcmVzdHJpY3RlZCBvciBub3QgYXBwbGljYWJsZSBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvbWlzZXMpO1xuICAgIC8vIENsZWFyIHRpbWVvdXQgYXMgcHJvY2VzcyBpcyBjb21wbGV0ZVxuICAgIGNsZWFyVGltZW91dChzaG93RGlhbG9nVGltZW91dCk7XG5cbiAgICBpZiAoaXNEaWFsb2dTaG93bikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICAvLyBTdG9yZSB0aGUgbGFzdCBlbnRpdHkgZm9yIHVzZSBpbiBldmVudCBkaXNwYXRjaGluZ1xuICAgIGNvbnN0IGxhc3RFbnRpdHkgPSBlbnRpdGllc1tlbnRpdGllcy5sZW5ndGggLSAxXTtcblxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGZvciBhbGVydHNcbiAgICBjb25zdCBzdWNjZXNzZnVsUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0OiBhbnkpID0+IHJlc3VsdD8uc3RhdHVzID09PSAnZnVsZmlsbGVkJykubGVuZ3RoO1xuICAgIGNvbnN0IGZhaWxlZFByb21pc2VzID0gcmVzdWx0cy5maWx0ZXIoKHJlc3VsdDogYW55KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykubGVuZ3RoO1xuXG4gICAgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPT09IDApIHtcbiAgICAgIC8vIEFsbCBpdGVtcyBkZWxldGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS10aXRsZScpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS1ib2R5Jywge1xuICAgICAgICAgICAgcGFyYW1zOiB7IGl0ZW06IHN1Y2Nlc3NmdWxQcm9taXNlcyB9LFxuICAgICAgICAgIH0pLCAvL1RPRE8gdGVzdCB0cmFuc2xhdGlvblxuICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcbiAgICAgIHRoaXMuZGlzcGF0Y2goQVhQRW50aXR5RGVsZXRlZEV2ZW50KHsgZW50aXR5OiBsYXN0RW50aXR5LnNvdXJjZSwgaWRzOiBsYXN0RW50aXR5LmlkcywgbWV0YTogbWV0YSB9KSk7XG4gICAgICB0aGlzLmRpc3BhdGNoKEFYUFJlZnJlc2hFdmVudCh7IGVudGl0eTogbGFzdEVudGl0eS5zb3VyY2UsIG1ldGE6IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55PignbWV0YScpIH0pKTtcbiAgICB9IGVsc2UgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPiAwKSB7XG4gICAgICAvLyBTb21lIGl0ZW1zIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzb21lIGZhaWxlZFxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLXBhcnRpYWwtZGVsZXRlLXRpdGxlJyksXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LnBhcnRpYWwtZGVsZXRlLWJvZHknLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHsgc3VjY2Vzczogc3VjY2Vzc2Z1bFByb21pc2VzLCBmYWlsOiBmYWlsZWRQcm9taXNlcyB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgICd3YXJuaW5nJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcbiAgICAgIHRoaXMuZGlzcGF0Y2goQVhQRW50aXR5RGVsZXRlZEV2ZW50KHsgZW50aXR5OiBsYXN0RW50aXR5LnNvdXJjZSwgaWRzOiBsYXN0RW50aXR5LmlkcywgbWV0YTogbWV0YSB9KSk7XG4gICAgfSBlbHNlIGlmIChzdWNjZXNzZnVsUHJvbWlzZXMgPT09IDAgJiYgZmFpbGVkUHJvbWlzZXMgPiAwKSB7XG4gICAgICAvLyBObyBpdGVtcyBkZWxldGVkLCBhbGwgZmFpbGVkXG4gICAgICBpZiAoc2hvd1Jlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LmZhaWwtZGVsZXRlLXRpdGxlJyksXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LmZhaWwtZGVsZXRlLWJvZHknLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHsgaXRlbTogZmFpbGVkUHJvbWlzZXMgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAnZGFuZ2VyJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gaXRlbXMgdG8gZGVsZXRlIChubyBzdWNjZXNzZnVsIG9yIGZhaWxlZCBwcm9taXNlcylcbiAgICAgIGlmIChzaG93UmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5hbGVydChcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnd29ya2Zsb3cubm8tbmVlZCcpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5uby1pdGVtJyksXG4gICAgICAgICAgJ3ByaW1hcnknLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQRGVsZXRlRW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ2NvbmZpcm0tZGVsZXRlJyxcbiAgc3RlcHM6IHtcbiAgICAnY29uZmlybS1kZWxldGUnOiB7XG4gICAgICBhY3Rpb246ICdzaG93LXByb21wdC1kaWFsb2cnLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy53YXJuaW5nJyxcbiAgICAgICAgbWVzc2FnZTogYHdvcmtmbG93LmNvbmZpcm0tZGVsZXRlYCxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdBTkQnLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdwZXJmb3JtLWRlbGV0ZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3BlcmZvcm0tZGVsZXRlJzoge1xuICAgICAgYWN0aW9uOiAnZW50aXR5LXBlcmZvcm0tZGVsZXRlJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, inject, Injectable, Injector, signal } from '@angular/core';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterUpdateElementViewModel {\n constructor(entity, property) {\n this.entity = entity;\n this.property = property;\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n }, ...(ngDevMode ? [{ debugName: \"isRequired\" }] : []));\n this.layout = computed(() => {\n const updateProp = this.entity.interfaces?.master?.update?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(updateProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterUpdateViewModel {\n // Dynamically resolve identifiers when needed\n get moduleName() {\n return this.config.module ?? '';\n }\n get entityName() {\n return this.config.name ?? '';\n }\n get entityId() {\n return this.entityData?.id ?? '';\n }\n constructor(injector, config, entityData, props) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.props = props;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.lockService = this.injector.get(AXPLockService);\n this.sessionService = this.injector.get(AXPSessionService);\n this.isInProgress = signal(false, ...(ngDevMode ? [{ debugName: \"isInProgress\" }] : []));\n this.context = signal(cloneDeep(this.entityData), ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.elements = computed(() => {\n const props = this.entityDef.properties.filter((c) => this.props.includes(c.name) && c.schema.hidden != true);\n return props.map((e) => {\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\n });\n }, ...(ngDevMode ? [{ debugName: \"elements\" }] : []));\n // Lock the record on creation\n if (this.entityId) {\n this.lockService.lock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n date: new Date().toISOString(),\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n }\n }\n async save() {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n try {\n const com = this.entityDef.commands?.update;\n if (com) {\n const exec = com.execute;\n const result = await exec(this.context());\n this.builder.setStatus(AXPPageStatus.Submitted);\n return result;\n }\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n reset() {\n this.context.set(cloneDeep(this.entityData));\n }\n async unlock() {\n if (this.entityId) {\n await this.lockService.unlock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n });\n }\n }\n}\nexport class AXPEntityMasterUpdateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id, props) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBcUYsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUksT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVoRixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELFlBQ1UsTUFBaUIsRUFDakIsUUFBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUdyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxnREFBQyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLHVEQUFDLENB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QUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhDLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBdEJVLHFDQUFxQztrSEFBckMscUNBQXFDLGNBRHhCLE1BQU07OzJGQUNuQixxQ0FBcUM7a0JBRGpELFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlQcm9wZXJ0eSwgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWcsIEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBMb2NrU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvciwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICApIHsgfVxuXG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKTtcbiAgfSk7XG5cbiAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZSgoYykgPT4gYy5ydWxlID09ICdyZXF1aXJlZCcpIHx8IGZhbHNlO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBFbnRpdHlQcm9wZXJ0eUxheW91dENvbmZpZz4oKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVByb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8uZmluZCgoYykgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHVwZGF0ZVByb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucywge1xuICAgICAgICB2YWxpZGF0aW9uczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8ubWFwKChjKSA9PiAoeyBydWxlOiBjLnJ1bGUsIG1lc3NhZ2U6IGMubWVzc2FnZSwgb3B0aW9uczogYy5vcHRpb25zIH0pKSxcbiAgICAgIH0pLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWwge1xuICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2NrU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUExvY2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICAvLyBEeW5hbWljYWxseSByZXNvbHZlIGlkZW50aWZpZXJzIHdoZW4gbmVlZGVkXG4gIHByaXZhdGUgZ2V0IG1vZHVsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29uZmlnIGFzIGFueSkubW9kdWxlID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgYXMgYW55KS5uYW1lID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEYXRhPy5pZCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBidWlsZGVyOiBBWFBMYXlvdXRCdWlsZGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxuICAgIHByaXZhdGUgcHJvcHM6IHN0cmluZ1tdLFxuICApIHtcbiAgICAvLyBMb2NrIHRoZSByZWNvcmQgb24gY3JlYXRpb25cbiAgICBpZiAodGhpcy5lbnRpdHlJZCkge1xuICAgICAgdGhpcy5sb2NrU2VydmljZS5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGxvY2tlZEJ5OiB7XG4gICAgICAgICAgaWQ6IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQgPz8gJ3N5c3RlbScsXG4gICAgICAgICAgdHlwZTogJ29pZGMudXNlcnMnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSW5Qcm9ncmVzcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgZWxlbWVudHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gdGhpcy5wcm9wcy5pbmNsdWRlcyhjLm5hbWUpICYmIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuaXNJblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuU3VibWl0dGluZyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbSA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy51cGRhdGU7XG4gICAgICBpZiAoY29tKSB7XG4gICAgICAgIGNvbnN0IGV4ZWMgPSBjb20uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5FcnJvcik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmxvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZW50aXR5SWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9ja1NlcnZpY2UudW5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG5cbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgZGF0YSwgcHJvcHMpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gIH1cbn1cbiJdfQ==","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const { properties, id, title } = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\n async execute(context) {\n const updatedData = context.getVariable('data');\n this.dispatch(AXPEntityModifyEvent({ entity: context.getVariable('entity'), values: updatedData }));\n const gridItemParentKey = context.getVariable('parentKey');\n this.dispatch(AXPRefreshEvent({\n entity: context.getVariable('entity'),\n meta: {\n refreshTargetId: updatedData[gridItemParentKey],\n },\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPModifyEntitySectionWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifySectionPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTNELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFrQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFEeEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFB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WFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5IH0gZnJvbSAnLi4vZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9lbnRpdHkuY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eU1vZGlmeUV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyB2YWx1ZXM6IGFueSB9PignW0VudGl0eV0gTW9kaWZpZWQnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpZCwgdGl0bGUgfSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHZtID0gYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCwgcHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGhlYWRlclRpdGxlID0gZGVjb3JhdGlvbj8uaGVhZGVyPy50aXRsZTtcblxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLm1vZGlmeSgpO1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogdGl0bGUgPz9cbiAgICAgICAgYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ2VudGl0eS5tb2RpZnknKX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhcbiAgICAgICAgICBlbnRpdHlSZWYuZm9ybWF0cy5pbmRpdmlkdWFsXG4gICAgICAgICl9YCxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxuICAgICAgZGF0YToge1xuICAgICAgICB2bSxcbiAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgZW50aXR5OiBlbnRpdHlSZWYsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgaWYgKHBvcHVwLmRhdGE/LnJlc3VsdCA9PSB0cnVlKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKHBvcHVwLmRhdGEuY29udGV4dCkpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlNb2RpZnlFdmVudCh7IGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSwgdmFsdWVzOiB1cGRhdGVkRGF0YSB9KSk7XG5cbiAgICBjb25zdCBncmlkSXRlbVBhcmVudEtleSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ3BhcmVudEtleScpO1xuXG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUFJlZnJlc2hFdmVudCh7XG4gICAgICAgIGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSxcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIHJlZnJlc2hUYXJnZXRJZDogdXBkYXRlZERhdGFbZ3JpZEl0ZW1QYXJlbnRLZXldLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlTZWN0aW9uUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHN1Y2Nlc3NUb2FzdDoge1xuICAgICAgaWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtdGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, } from '@acorex/platform/core';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDetailListViewModel } from './entity-detail-list.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityService } from './entity.service';\nimport { AXPEntityCommandTriggerViewModel } from './entity.viewmodel';\nimport { AXPEntityDeletedEvent } from './workflows/delete-entity.workflow';\nimport { AXPEntityModifyEvent } from './workflows/modify-section.workflow';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterSingleViewGroupViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.type = signal(this.section.type ?? 'section', ...(ngDevMode ? [{ debugName: \"type\" }] : []));\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = computed(() => {\n return this.group.description;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.props = computed(() => {\n const { properties, interfaces } = this.entity;\n const groupProperties = properties\n .filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)\n .map(({ name }) => name);\n const viewProperties = interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];\n return viewProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n }, ...(ngDevMode ? [{ debugName: \"props\" }] : []));\n this.editableProps = computed(() => {\n const { properties, interfaces } = this.entity;\n const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name));\n return filteredProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n }, ...(ngDevMode ? [{ debugName: \"editableProps\" }] : []));\n this.editable = computed(() => {\n return this.editableProps().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n }\n}\nexport class AXPEntityMasterSingleElementViewModel {\n constructor(entity, section, propertyView) {\n this.entity = entity;\n this.section = section;\n this.propertyView = propertyView;\n this.property = this.entity.properties.find((c) => c.name == this.propertyView.name);\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.path = signal(this.propertyView.dataPath ?? this.property.name, ...(ngDevMode ? [{ debugName: \"path\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.showLabel = signal(this.propertyView.layout?.label?.visible != false, ...(ngDevMode ? [{ debugName: \"showLabel\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const viewProp = this.entity.interfaces?.master?.single?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(viewProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: 'view',\n path: this.path(),\n children: widget.children,\n formula: widget.formula,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterSingleViewModel {\n constructor(injector, config, entityData) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.single);\n this.session = this.injector.get(AXPSessionService);\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.destroyed = new Subject();\n this.translateService = this.injector.get(AXTranslationService);\n this.entityService = this.injector.get(AXPEntityService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.context = signal(cloneDeep(this.entityData), ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.actions = computed(() => {\n return (this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? []);\n }, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.primaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n }, ...(ngDevMode ? [{ debugName: \"primaryActions\" }] : []));\n this.secondaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n }, ...(ngDevMode ? [{ debugName: \"secondaryActions\" }] : []));\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name));\n const groups = interfaces?.master?.single?.sections?.filter(({ id }) => filteredProperties.some(({ groupId }) => groupId === id)) ?? [];\n return groups.map((section) => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));\n }, ...(ngDevMode ? [{ debugName: \"sections\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps)\n suggestedFormat = `{{${suggestedProps.name}}}`;\n return this.formatService.format(this._viewDef.title ?? suggestedFormat, 'string', this.context());\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\n command: {\n name: 'navigate',\n options: {\n path: `/${this.session.application?.name}/m/${this.entityDef.module}/e/${this.entityDef.name}/list`,\n },\n },\n },\n {\n title: this.title(),\n },\n ];\n }, ...(ngDevMode ? [{ debugName: \"beardcrumbs\" }] : []));\n this.evaluateExpressions = async (options, data) => {\n const scope = {\n context: {\n eval: (path) => {\n return get(data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n this.relatedEntities = computed(async () => {\n const relatedEntities = this.entityDef.relatedEntities?.map((re) => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })) ?? [];\n const filteredEntities = await Promise.all(relatedEntities.map(async (re) => ((await re.hidden()) ? null : re)));\n return filteredEntities.filter((re) => re !== null);\n }, ...(ngDevMode ? [{ debugName: \"relatedEntities\" }] : []));\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.ids.includes(this.context().id)) {\n this.workflow.execute('show-list-view', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n });\n this.workflow.events$\n .pipe(ofType(AXPEntityModifyEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe(async (event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.values.id === this.context().id) {\n this.context.set(event.payload.values);\n }\n });\n }\n navigateToUp() {\n this.workflow.execute('navigate', {\n options: {\n path: this.entityService.createPath(this.entityDef.module, this.entityDef.name),\n },\n });\n }\n async executeCommand(commandName, data = null) {\n //TODO: syntact for workflow\n const command = commandName.split('&')[0];\n switch (command) {\n case 'modify-entity-section': {\n this.workflow.execute('modify-entity-section', {\n entity: getEntityInfo(this.entityDef).source,\n data: {\n id: this.context().id,\n properties: data.editableProps().map((m) => m.name()),\n },\n });\n break;\n }\n default: {\n const action = this.actions().find((c) => c.name == commandName);\n const options = await this.evaluateExpressions(action?.options, this.context());\n this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n data: this.context(),\n options,\n });\n }\n }\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name, command.options);\n break;\n }\n }\n //\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityDetailViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityDetailViewModelResolver = (route, state, service = inject(AXPEntityDetailViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n const id = route.paramMap.get('id');\n //\n return service.create(moduleName, entityName, id);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBS0wsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUlMLDZCQUE2QixHQUM5QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUUzRSxNQUFNLE9BQU8sdUNBQXVDO0lBQ2xELFlBQ1UsTUFBaUIsRUFDakIsT0FBNkI7UUFEN0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUd2QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFFLENBQUM7UUFDbEUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsZ0RBQUMsQ0FBQztRQUM3QixjQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUsscURBQUMsQ0FBQztRQUMxQixTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLFNBQVMsZ0RBQUMsQ0FBQztRQUU5QyxVQUFLLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUMsaURBQUMsQ0FBQztRQUVILGdCQUFXLEdBQUcsUUFBUSxDQUE0QixHQUFHLEVBQUU7WUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNoQyxDQUFDLHVEQUFDLENBQUM7UUFFSCxXQUFNLEdBQUcsUUFBUSxDQUF1QixHQUFHLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBVyxDQUFDO1lBQzlELEdBQUcsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTyxNQUE4QixDQUFDO1FBQ3hDLENBQUMsa0RBQUMsQ0FBQztRQUVILFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxNQUFNLGVBQWUsR0FBRyxVQUFVO2lCQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDNUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0IsTUFBTSxjQUFjLEdBQ2xCLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJHLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFHLENBQUMsaURBQUMsQ0FBQztRQUVILGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDL0MsTUFBTSxxQkFBcUIsR0FBRyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXBHLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDMUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUM1QixPQUFPLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FDdEYsQ0FBQztZQUVGLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLHFDQUFxQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUcsQ0FBQyx5REFBQyxDQUFDO1FBRUgsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN6QyxDQUFDLG9EQUFDLENBQUM7SUEvQ0EsQ0FBQztDQWdETDtBQUVELE1BQU0sT0FBTyxxQ0FBcUM7SUFDaEQsWUFDVSxNQUFpQixFQUNqQixPQUFnRCxFQUNoRCxZQUFtQztRQUZuQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQXlDO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUdyQyxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDekYsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksZ0RBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxnREFBQyxDQUFDO1FBQ2hFLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEtBQUsscURBQUMsQ0FBQztRQUN0RSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsdURBQUMsQ0FBQztRQUVoRCxXQUFNLEdBQUcsUUFBUSxDQUF1QixHQUFHLEVBQUU7WUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0csTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFXLENBQUM7WUFDM0QsR0FBRyxDQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLE1BQThCLENBQUM7UUFDeEMsQ0FBQyxrREFBQyxDQUFDO1FBRUgsU0FBSSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7WUFDakMsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO2dCQUN2QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO2FBQ3pCLENBQUM7UUFDckIsQ0FBQyxnREFBQyxDQUFDO0lBNUJBLENBQUM7Q0E2Qkw7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0lBVXpDLFlBQ1UsUUFBa0IsRUFDbEIsTUFBaUIsRUFDakIsVUFBZTtRQUZmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBWnpCLGNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBRSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBRSxDQUFDO1FBQ2pFLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDekMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDcEQsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQWdDeEUsWUFBTyxHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtREFBQyxDQUFDO1FBRWpELFlBQU8sR0FBRyxRQUFRLENBQXFDLEdBQUcsRUFBRTtZQUNsRSxPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUNyRCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUNqRSxJQUFJLEVBQUUsQ0FDUixDQUFDO1FBQ0osQ0FBQyxtREFBQyxDQUFDO1FBRUksbUJBQWMsR0FBRyxRQUFRLENBQXFDLEdBQUcsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLENBQUM7UUFDL0QsQ0FBQywwREFBQyxDQUFDO1FBRUkscUJBQWdCLEdBQUcsUUFBUSxDQUFxQyxHQUFHLEVBQUU7WUFDMUUsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLFdBQVcsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsNERBQUMsQ0FBQztRQUVJLGFBQVEsR0FBRyxRQUFRLENBQTRDLEdBQUcsRUFBRTtZQUN6RSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUV4RixNQUFNLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQzFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ3JGLENBQUM7WUFFRixNQUFNLE1BQU0sR0FDVixVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ3RELGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FDekQsSUFBSSxFQUFFLENBQUM7WUFFVixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksdUNBQXVDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUMsb0RBQUMsQ0FBQztRQVVILCtDQUErQztRQUN4QyxVQUFLLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUNuQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekcsSUFBSSxlQUFlLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksY0FBYztnQkFBRSxlQUFlLEdBQUcsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxlQUFlLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsaURBQUMsQ0FBQztRQUNILHFEQUFxRDtRQUM5QyxnQkFBVyxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2hELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO2dCQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEYsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLENBQUMsdURBQUMsQ0FBQztRQUVILHFEQUFxRDtRQUM5QyxnQkFBVyxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3RELE9BQU87Z0JBQ0w7b0JBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVO29CQUN6RSxPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLE9BQU8sRUFBRTs0QkFDUCxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU87eUJBQ3BHO3FCQUNGO2lCQUNGO2dCQUNEO29CQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO2lCQUNwQjthQUNGLENBQUM7UUFDSixDQUFDLHVEQUFDLENBQUM7UUFFSCx3QkFBbUIsR0FBRyxLQUFLLEVBQUUsT0FBa0MsRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUM1RSxNQUFNLEtBQUssR0FBZ0M7Z0JBQ3pDLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRTt3QkFDckIsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUN6QixDQUFDO2lCQUNGO2FBQ0YsQ0FBQztZQUNGLE9BQU8sTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUM7UUFFSyxvQkFBZSxHQUFHLFFBQVEsQ0FBMEMsS0FBSyxJQUFJLEVBQUU7WUFDcEYsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FDakMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQy9HLElBQUksRUFBRSxDQUFDO1lBRVYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFakgsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQW1DLENBQUM7UUFDeEYsQ0FBQywyREFBQyxDQUFDO1FBeEhELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTzthQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFDRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07Z0JBQzVELEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQzdDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7b0JBQ3RDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07aUJBQzdDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTzthQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0IsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUN6QixJQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtnQkFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQzdDLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBb0NNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ2hDLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7YUFDaEY7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBd0RNLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBbUIsRUFBRSxPQUFZLElBQUk7UUFDL0QsNEJBQTRCO1FBQzVCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsUUFBUSxPQUFPLEVBQUUsQ0FBQztZQUNoQixLQUFLLHVCQUF1QixDQUFDLENBQUMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUU7b0JBQzdDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07b0JBQzVDLElBQUksRUFBRTt3QkFDSixFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7d0JBQ3JCLFVBQVUsRUFBRyxJQUFnRCxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO3FCQUNuRztpQkFDRixDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUNSLENBQUM7WUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDN0IsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtvQkFDNUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ3BCLE9BQU87aUJBQ1IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEwQjtRQUN0QyxRQUFRLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7b0JBQ3RDLE9BQU8sRUFBRTt3QkFDUCxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztxQkFDaEM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxFQUFFO0lBQ0YsRUFBRTtJQUNGLE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUVVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FjckM7SUFaUSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxFQUFVO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQW1CLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBaEJVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW9CbEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXVELENBQ2xHLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQTJDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUN6QyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eVByb3BlcnR5VmlldyxcbiAgQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gIEFYUEdyaWRMYXlvdXRPcHRpb25zLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQRXhlY3V0ZUNvbW1hbmQsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHkudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlbGV0ZWRFdmVudCB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktc2VjdGlvbi53b3JrZmxvdyc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gICkge31cblxuICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZCgoYykgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcbiAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgdHlwZSA9IHNpZ25hbCh0aGlzLnNlY3Rpb24udHlwZSA/PyAnc2VjdGlvbicpO1xuXG4gIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgfSk7XG5cbiAgZGVzY3JpcHRpb24gPSBjb21wdXRlZDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuZGVzY3JpcHRpb247XG4gIH0pO1xuXG4gIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHRoaXMuc2VjdGlvbi5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcbiAgICBzZXQoc291cmNlLCAncG9zaXRpb25zLmRlZmF1bHQuY29sU3BhbicsIDEyKTtcbiAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICB9KTtcblxuICBwcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IHByb3BlcnRpZXMsIGludGVyZmFjZXMgfSA9IHRoaXMuZW50aXR5O1xuICAgIGNvbnN0IGdyb3VwUHJvcGVydGllcyA9IHByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoKHsgZ3JvdXBJZCwgc2NoZW1hIH0pID0+IGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4pXG4gICAgICAubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSk7XG5cbiAgICBjb25zdCB2aWV3UHJvcGVydGllcyA9XG4gICAgICBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8uZmlsdGVyKCh7IG5hbWUgfSkgPT4gZ3JvdXBQcm9wZXJ0aWVzLmluY2x1ZGVzKG5hbWUpKSA/PyBbXTtcblxuICAgIHJldHVybiB2aWV3UHJvcGVydGllcy5tYXAoKHByb3ApID0+IG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wKSk7XG4gIH0pO1xuXG4gIGVkaXRhYmxlUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpbnRlcmZhY2VzIH0gPSB0aGlzLmVudGl0eTtcbiAgICBjb25zdCBlZGl0YWJsZVByb3BlcnR5TmFtZXMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PlxuICAgICAgICBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmICFzY2hlbWEuaGlkZGVuICYmIGVkaXRhYmxlUHJvcGVydHlOYW1lcy5pbmNsdWRlcyhuYW1lKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcGVydGllcy5tYXAoKHByb3ApID0+IG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wKSk7XG4gIH0pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlUHJvcHMoKS5sZW5ndGggPiAwO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsLFxuICAgIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcsXG4gICkge31cblxuICBwcml2YXRlIHByb3BlcnR5ID0gdGhpcy5lbnRpdHkucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eVZpZXcubmFtZSkhO1xuICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XG4gIHBhdGggPSBzaWduYWwodGhpcy5wcm9wZXJ0eVZpZXcuZGF0YVBhdGggPz8gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIHNob3dMYWJlbCA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Vmlldy5sYXlvdXQ/LmxhYmVsPy52aXNpYmxlICE9IGZhbHNlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCB2aWV3UHJvcCA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodmlld1Byb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCgpLFxuICAgICAgY2hpbGRyZW46IHdpZGdldC5jaGlsZHJlbixcbiAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucyksXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB7XG4gIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RGVmID0gY2xvbmVEZWVwKHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlKSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxuICApIHtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UgJiZcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmlkcy5pbmNsdWRlcyh0aGlzLmNvbnRleHQoKS5pZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LWxpc3QtdmlldycsIHtcbiAgICAgICAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlNb2RpZnlFdmVudCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSAmJlxuICAgICAgICAgIGV2ZW50LnBheWxvYWQudmFsdWVzLmlkID09PSB0aGlzLmNvbnRleHQoKS5pZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHQuc2V0KGV2ZW50LnBheWxvYWQudmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29udGV4dCA9IHNpZ25hbDxhbnk+KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcblxuICBwcml2YXRlIGFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5hY3Rpb25zPy5tYXAoXG4gICAgICAgICh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0ciksXG4gICAgICApID8/IFtdXG4gICAgKTtcbiAgfSk7XG5cbiAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoKGMpID0+IGMucHJpb3JpdHkgPT0gJ3ByaW1hcnknKTtcbiAgfSk7XG5cbiAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcigoYykgPT4gYy5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5Jyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCB2aWV3UHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkICYmICFzY2hlbWEuaGlkZGVuICYmIHZpZXdQcm9wcy5pbmNsdWRlcyhuYW1lKSxcbiAgICApO1xuXG4gICAgY29uc3QgZ3JvdXBzID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgIGZpbHRlcmVkUHJvcGVydGllcy5zb21lKCh7IGdyb3VwSWQgfSkgPT4gZ3JvdXBJZCA9PT0gaWQpLFxuICAgICAgKSA/PyBbXTtcblxuICAgIHJldHVybiBncm91cHMubWFwKChzZWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCBzZWN0aW9uKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvVXAoKSB7XG4gICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGF0aDogdGhpcy5lbnRpdHlTZXJ2aWNlLmNyZWF0ZVBhdGgodGhpcy5lbnRpdHlEZWYubW9kdWxlLCB0aGlzLmVudGl0eURlZi5uYW1lKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcbiAgICBsZXQgc3VnZ2VzdGVkRm9ybWF0ID0gJ0l0ZW0gI3t7aWR9fSc7XG4gICAgaWYgKHN1Z2dlc3RlZFByb3BzKSBzdWdnZXN0ZWRGb3JtYXQgPSBge3ske3N1Z2dlc3RlZFByb3BzLm5hbWV9fX1gO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LCAnc3RyaW5nJywgdGhpcy5jb250ZXh0KCkpO1xuICB9KTtcbiAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uXG4gICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiwgJ3N0cmluZycsIHRoaXMuY29udGV4dCgpKVxuICAgICAgOiBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCcmVhZGNydW1iSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMuaW5kaXZpZHVhbCxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke3RoaXMuZW50aXR5RGVmLm1vZHVsZX0vZS8ke3RoaXMuZW50aXR5RGVmLm5hbWV9L2xpc3RgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogdGhpcy50aXRsZSgpLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcblxuICBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KGRhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUob3B0aW9ucywgc2NvcGUpO1xuICB9O1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXMgPSBjb21wdXRlZDxQcm9taXNlPEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWxbXT4+KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZWxhdGVkRW50aXRpZXMgPVxuICAgICAgdGhpcy5lbnRpdHlEZWYucmVsYXRlZEVudGl0aWVzPy5tYXAoXG4gICAgICAgIChyZSkgPT4gbmV3IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgcmUsIHsgZW50aXR5OiB0aGlzLmVudGl0eURlZiwgZGF0YTogdGhpcy5lbnRpdHlEYXRhIH0pLFxuICAgICAgKSA/PyBbXTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChyZWxhdGVkRW50aXRpZXMubWFwKGFzeW5jIChyZSkgPT4gKChhd2FpdCByZS5oaWRkZW4oKSkgPyBudWxsIDogcmUpKSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRFbnRpdGllcy5maWx0ZXIoKHJlKSA9PiByZSAhPT0gbnVsbCkgYXMgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIC8vVE9ETzogc3ludGFjdCBmb3Igd29ya2Zsb3dcbiAgICBjb25zdCBjb21tYW5kID0gY29tbWFuZE5hbWUuc3BsaXQoJyYnKVswXTtcbiAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgIGNhc2UgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IHtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLCB7XG4gICAgICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaWQ6IHRoaXMuY29udGV4dCgpLmlkLFxuICAgICAgICAgICAgcHJvcGVydGllczogKGRhdGEgYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKS5lZGl0YWJsZVByb3BzKCkubWFwKChtKSA9PiBtLm5hbWUoKSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gY29tbWFuZE5hbWUpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucywgdGhpcy5jb250ZXh0KCkpO1xuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgICAgIGRhdGE6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpIHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQ/Lm5hbWUpIHtcbiAgICAgIGNhc2UgJ25hdmlnYXRlJzpcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwYXRoOiBjb21tYW5kLm9wdGlvbnM/LlsncGF0aCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgLy9cbiAgLy9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyOiBSZXNvbHZlRm48UHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+PiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBzZXJ2aWNlOiBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkpLFxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcbiAgY29uc3QgbW9kdWxlTmFtZSA9IHJvdXRlLnBhcmVudD8ucGFyYW1NYXAuZ2V0KCdtb2R1bGUnKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGVudGl0eU5hbWUgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2VudGl0eScpIGFzIHN0cmluZztcbiAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAvL1xuICByZXR1cm4gc2VydmljZS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSwgaWQpO1xufTtcbiJdfQ==","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntityStorageService {\n}\nexport class AXPEntityDataProvider {\n}\nexport class AXPEntityDataProviderImpl {\n constructor(storageService, entityName) {\n this.storageService = storageService;\n this.entityName = entityName;\n }\n async initial(collection) {\n await this.storageService.initial(this.entityName, collection);\n }\n getOne(id) {\n return this.storageService.getOne(this.entityName, id);\n }\n getAll() {\n return this.storageService.getAll(this.entityName);\n }\n query(request) {\n return this.storageService.query(this.entityName, request);\n }\n updateOne(id, keyValues) {\n return this.storageService.updateOne(this.entityName, id, keyValues);\n }\n deleteOne(id) {\n return this.storageService.deleteOne(this.entityName, id);\n }\n insertOne(entity) {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\nexport class AXMEntityCrudService {\n}\nexport class AXMEntityCrudServiceImpl {\n constructor(entityName) {\n this.entityName = entityName;\n this._storageService = inject(AXPEntityStorageService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this._entityDataProvider = new AXPEntityDataProviderImpl(this._storageService, this.entityName);\n }\n async insertOne(request) {\n return this._entityDataProvider.insertOne(request);\n }\n async getOne(id) {\n return this._entityDataProvider.getOne(id);\n }\n async deleteOne(id) {\n return this._entityDataProvider.deleteOne(id);\n }\n async updateOne(id, values) {\n return this._entityDataProvider.updateOne(id, values);\n }\n async query(request = { skip: 0, take: 100 }) {\n const [moduleName, entityName] = this._entityDataProvider.entityName.split('.');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityRef.parentKey) {\n if (!request.filter?.filters?.length && request.filter?.field !== entityRef.parentKey) {\n request.filter = {\n value: true,\n field: entityRef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n };\n }\n }\n return this._entityDataProvider.query(request);\n }\n async findOne(filter) {\n const result = await this._entityDataProvider.query({ filter, skip: 0, take: 1 });\n return result.items[0];\n }\n async getRoots(request) {\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: true,\n field: 'parentId',\n operator: {\n type: 'isEmpty',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n async getChildren(request) {\n const parentKey = request.parentKey ?? 'parentId';\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: request.parentId,\n field: parentKey,\n operator: {\n type: 'equal',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n async getByCategory(request) {\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: request.categoryId,\n field: request.categoryKey ?? 'categoryIds',\n operator: {\n type: 'contains',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n get storageService() {\n return this._storageService;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVdoRixNQUFNLE9BQWdCLHVCQUF1QjtDQXlCNUM7QUFFRCxNQUFNLE9BQWdCLHFCQUFxQjtDQXNCMUM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQ1UsY0FBK0YsRUFDaEcsVUFBa0I7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWlGO1FBQ2hHLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDdkIsQ0FBQztJQUVMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBd0I7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxTQUFTLENBQUMsRUFBUSxFQUFFLFNBQTBDO1FBQzVE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V0FBVyxJQUFJLGFBQWE7Z0JBQzNDLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsVUFBVTtpQkFDakI7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQUGFnZWRMaXN0UmVzdWx0LCBBWFBRdWVyeVJlcXVlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5Q3JlYXRlRHRvLFxuICBBWFBFbnRpdHlEZXRhaWxEdG8sXG4gIEFYUEVudGl0eUxpc3RJdGVtRHRvLFxuICBBWFBFbnRpdHlNb2RlbCxcbiAgQVhQRW50aXR5VXBkYXRlRHRvLFxufSBmcm9tICcuL2VudGl0eS50eXBlcyc7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2U8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgZ2V0IGRiTmFtZSgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbChlbnRpdHlOYW1lOiBzdHJpbmcsIGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSwgb3B0aW9ucz86IHtcbiAgICBtZXJnZVR5cGU/OiAnbWVyZ2UnIHwgJ3JlcGxhY2UnO1xuICAgIHVuaXF1ZUtleXM/OiBzdHJpbmdbXTtcbiAgfSk6IFByb21pc2U8VENyZWF0ZUR0b1tdPjtcblxuICBhYnN0cmFjdCBnZXRPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgdXBkYXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGluc2VydE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGVudGl0eTogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT47XG5cbiAgYWJzdHJhY3QgZ2V0QWxsKGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+O1xuXG4gIGFic3RyYWN0IHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBFbnRpdHlEYXRhUHJvdmlkZXI8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgZ2V0IGVudGl0eU5hbWUoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGluaXRpYWwoY29sbGVjdGlvbjogVENyZWF0ZUR0b1tdKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IGdldEFsbCgpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBpbnNlcnRPbmUoZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PjtcblxuICBhYnN0cmFjdCBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURhdGFQcm92aWRlckltcGw8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IGltcGxlbWVudHMgQVhQRW50aXR5RGF0YVByb3ZpZGVyPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+LFxuICAgIHB1YmxpYyBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICkgeyB9XG5cbiAgYXN5bmMgaW5pdGlhbChjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmluaXRpYWwodGhpcy5lbnRpdHlOYW1lLCBjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldE9uZSh0aGlzLmVudGl0eU5hbWUsIGlkKTtcbiAgfVxuXG4gIGdldEFsbCgpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QWxsKHRoaXMuZW50aXR5TmFtZSk7XG4gIH1cblxuICBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UucXVlcnkodGhpcy5lbnRpdHlOYW1lLCByZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZU9uZShpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlT25lKHRoaXMuZW50aXR5TmFtZSwgaWQsIGtleVZhbHVlcyk7XG4gIH1cblxuICBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5kZWxldGVPbmUodGhpcy5lbnRpdHlOYW1lLCBpZCk7XG4gIH1cblxuICBpbnNlcnRPbmUoZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuaW5zZXJ0T25lKHRoaXMuZW50aXR5TmFtZSwgZW50aXR5KTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNRW50aXR5Q3J1ZFNlcnZpY2U8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgaW5zZXJ0T25lKHJlcXVlc3Q6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+O1xuXG4gIGFic3RyYWN0IGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoaWQ6IFRLZXksIHZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj47XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gT21pdDxURGV0YWlsRHRvLCAnaWQnPixcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgcHJpdmF0ZSBfc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfZW50aXR5RGF0YVByb3ZpZGVyID0gbmV3IEFYUEVudGl0eURhdGFQcm92aWRlckltcGw8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPihcbiAgICB0aGlzLl9zdG9yYWdlU2VydmljZSxcbiAgICB0aGlzLmVudGl0eU5hbWUsXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHlOYW1lOiBzdHJpbmcpIHsgfVxuXG4gIGFzeW5jIGluc2VydE9uZShyZXF1ZXN0OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5pbnNlcnRPbmUocmVxdWVzdCk7XG4gIH1cblxuICBhc3luYyBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmdldE9uZShpZCk7XG4gIH1cblxuICBhc3luYyBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmRlbGV0ZU9uZShpZCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPbmUoaWQ6IFRLZXksIHZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIudXBkYXRlT25lKGlkLCB2YWx1ZXMpO1xuICB9XG5cbiAgYXN5bmMgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0geyBza2lwOiAwLCB0YWtlOiAxMDAgfSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuZW50aXR5TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgaWYgKGVudGl0eVJlZi5wYXJlbnRLZXkpIHtcbiAgICAgIGlmICghcmVxdWVzdC5maWx0ZXI/LmZpbHRlcnM/Lmxlbmd0aCAmJiByZXF1ZXN0LmZpbHRlcj8uZmllbGQgIT09IGVudGl0eVJlZi5wYXJlbnRLZXkpIHtcbiAgICAgICAgcmVxdWVzdC5maWx0ZXIgPSB7XG4gICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgZmllbGQ6IGVudGl0eVJlZi5wYXJlbnRLZXksXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdpc0VtcHR5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHJlcXVlc3QpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZShmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik6IFByb21pc2U8VExpc3RJdGVtRHRvPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHsgZmlsdGVyLCBza2lwOiAwLCB0YWtlOiAxIH0pO1xuICAgIHJldHVybiByZXN1bHQuaXRlbXNbMF07XG4gIH1cblxuICBhc3luYyBnZXRSb290cyhyZXF1ZXN0OiB7fSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBxdWVyeVJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCA9IHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwLFxuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIucXVlcnkocXVlcnlSZXF1ZXN0KTtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBhc3luYyBnZXRDaGlsZHJlbihyZXF1ZXN0OiB7IHBhcmVudElkOiBUS2V5LCBwYXJlbnRLZXk/OiBzdHJpbmcgfSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBwYXJlbnRLZXkgPSByZXF1ZXN0LnBhcmVudEtleSA/PyAncGFyZW50SWQnO1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QucGFyZW50SWQsXG4gICAgICAgIGZpZWxkOiBwYXJlbnRLZXksXG4gICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShxdWVyeVJlcXVlc3QpO1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIGdldEJ5Q2F0ZWdvcnkocmVxdWVzdDogeyBjYXRlZ29yeUlkOiBUS2V5LCBjYXRlZ29yeUtleT86IHN0cmluZyB9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QuY2F0ZWdvcnlJZCxcbiAgICAgICAgZmllbGQ6IHJlcXVlc3QuY2F0ZWdvcnlLZXkgPz8gJ2NhdGVnb3J5SWRzJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnY29udGFpbnMnLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHF1ZXJ5UmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZVNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==","/**\n * Compose entity storage middlewares into a pipeline\n */\nexport function composeEntityStorageMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n // Reverse order composition for proper middleware chain\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context) => mw(context, next);\n }\n return composed;\n };\n}\n/**\n * Helper function to generate unique request ID\n */\nexport function generateRequestId() {\n return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUvZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBUTdDLFdBQTBHO0lBSTFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNqQixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsd0RBQXdEO1FBQ3hELEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7WUFDdEIsUUFBUSxHQUFHLENBQUMsT0FBd0YsRUFBRSxFQUFFLENBQ3RHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQUXVlcnlSZXF1ZXN0LCBBWFBQYWdlZExpc3RSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5Q3JlYXRlRHRvLFxuICBBWFBFbnRpdHlEZXRhaWxEdG8sXG4gIEFYUEVudGl0eUxpc3RJdGVtRHRvLFxuICBBWFBFbnRpdHlVcGRhdGVEdG8sXG59IGZyb20gJy4uL2VudGl0eS50eXBlcyc7XG5cbi8qKlxuICogQ29udGV4dCBvYmplY3QgZm9yIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxcbiAgVEtleSA9IGFueSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IGFueSxcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBhbnksXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBhbnksXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBhbnksXG4+IHtcbiAgLyoqIE9wZXJhdGlvbiB0eXBlIGJlaW5nIHBlcmZvcm1lZCAqL1xuICBvcGVyYXRpb246ICdnZXRPbmUnIHwgJ2dldEFsbCcgfCAnaW5zZXJ0T25lJyB8ICd1cGRhdGVPbmUnIHwgJ2RlbGV0ZU9uZScgfCAncXVlcnknIHwgJ2luaXRpYWwnO1xuICBcbiAgLyoqIEVudGl0eSBuYW1lICovXG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgXG4gIC8qKiBEYXRhYmFzZSBuYW1lICovXG4gIGRiTmFtZTogc3RyaW5nO1xuICBcbiAgLyoqIElucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24gKi9cbiAgaW5wdXQ6IHtcbiAgICBpZD86IFRLZXk7XG4gICAgZW50aXR5PzogVENyZWF0ZUR0bztcbiAgICBrZXlWYWx1ZXM/OiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+O1xuICAgIHJlcXVlc3Q/OiBBWFBRdWVyeVJlcXVlc3Q7XG4gICAgY29sbGVjdGlvbj86IFRDcmVhdGVEdG9bXTtcbiAgICBvcHRpb25zPzoge1xuICAgICAgbWVyZ2VUeXBlPzogJ21lcmdlJyB8ICdyZXBsYWNlJztcbiAgICAgIHVuaXF1ZUtleXM/OiBzdHJpbmdbXTtcbiAgICB9O1xuICB9O1xuICBcbiAgLyoqIE1ldGFkYXRhIGZvciB0aGUgb3BlcmF0aW9uICovXG4gIG1ldGFkYXRhOiB7XG4gICAgc3RhcnRUaW1lOiBudW1iZXI7XG4gICAgcmVxdWVzdElkOiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbi8qKlxuICogRW50aXR5IFN0b3JhZ2UgTWlkZGxld2FyZSBmdW5jdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlPFxuICBUS2V5ID0gYW55LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gYW55LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IGFueSxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IGFueSxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IGFueSxcbiAgVFJlc3VsdCA9IGFueVxuPiA9IChcbiAgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPixcbiAgbmV4dDogKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbikgPT4gUHJvbWlzZTxUUmVzdWx0PjtcblxuLyoqXG4gKiBDb21wb3NlIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmVzIGludG8gYSBwaXBlbGluZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlczxcbiAgVEtleSA9IGFueSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IGFueSxcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBhbnksXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBhbnksXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBhbnksXG4gIFRSZXN1bHQgPSBhbnlcbj4oXG4gIG1pZGRsZXdhcmVzOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8sIFRSZXN1bHQ+W11cbik6IChcbiAgaGFuZGxlcjogKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbikgPT4gKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD4ge1xuICByZXR1cm4gKGhhbmRsZXIpID0+IHtcbiAgICBsZXQgY29tcG9zZWQgPSBoYW5kbGVyO1xuXG4gICAgLy8gUmV2ZXJzZSBvcmRlciBjb21wb3NpdGlvbiBmb3IgcHJvcGVyIG1pZGRsZXdhcmUgY2hhaW5cbiAgICBmb3IgKGxldCBpID0gbWlkZGxld2FyZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IG13ID0gbWlkZGxld2FyZXNbaV07XG4gICAgICBjb25zdCBuZXh0ID0gY29tcG9zZWQ7XG4gICAgICBjb21wb3NlZCA9IChjb250ZXh0OiBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+KSA9PiBcbiAgICAgICAgbXcoY29udGV4dCwgbmV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvc2VkO1xuICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZW5lcmF0ZSB1bmlxdWUgcmVxdWVzdCBJRFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXF1ZXN0SWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGByZXFfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufSJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Registry for managing entity storage middlewares\n */\nexport class AXPEntityStorageRegistry {\n constructor() {\n this.globalMiddlewares = [];\n this.entitySpecificMiddlewares = new Map();\n this.operationSpecificMiddlewares = new Map();\n }\n /**\n * Add a global middleware that applies to all operations\n */\n useGlobal(middleware) {\n this.globalMiddlewares.push(middleware);\n }\n /**\n * Add middleware for specific entity\n */\n useForEntity(entityName, middleware) {\n if (!this.entitySpecificMiddlewares.has(entityName)) {\n this.entitySpecificMiddlewares.set(entityName, []);\n }\n this.entitySpecificMiddlewares.get(entityName).push(middleware);\n }\n /**\n * Add middleware for specific operation (getOne, insertOne, etc.)\n */\n useForOperation(operation, middleware) {\n if (!this.operationSpecificMiddlewares.has(operation)) {\n this.operationSpecificMiddlewares.set(operation, []);\n }\n this.operationSpecificMiddlewares.get(operation).push(middleware);\n }\n /**\n * Get all applicable middlewares for a given context\n */\n getMiddlewares(entityName, operation) {\n const middlewares = [];\n // Add global middlewares\n middlewares.push(...this.globalMiddlewares);\n // Add entity-specific middlewares\n const entityMiddlewares = this.entitySpecificMiddlewares.get(entityName);\n if (entityMiddlewares) {\n middlewares.push(...entityMiddlewares);\n }\n // Add operation-specific middlewares\n const operationMiddlewares = this.operationSpecificMiddlewares.get(operation);\n if (operationMiddlewares) {\n middlewares.push(...operationMiddlewares);\n }\n return middlewares;\n }\n /**\n * Get all global middlewares\n */\n getGlobalMiddlewares() {\n return [...this.globalMiddlewares];\n }\n /**\n * Remove middleware from global middlewares\n */\n removeGlobalMiddleware(middleware) {\n const index = this.globalMiddlewares.indexOf(middleware);\n if (index > -1) {\n this.globalMiddlewares.splice(index, 1);\n return true;\n }\n return false;\n }\n /**\n * Clear all middlewares\n */\n clear() {\n this.globalMiddlewares.length = 0;\n this.entitySpecificMiddlewares.clear();\n this.operationSpecificMiddlewares.clear();\n }\n /**\n * Get registered entity names that have specific middlewares\n */\n getRegisteredEntityNames() {\n return Array.from(this.entitySpecificMiddlewares.keys());\n }\n /**\n * Get registered operation names that have specific middlewares\n */\n getRegisteredOperations() {\n return Array.from(this.operationSpecificMiddlewares.keys());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UucmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLnJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVVLHNCQUFpQixHQUFpQyxFQUFFLENBQUM7UUFDckQsOEJBQXlCLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7UUFDNUUsaUNBQTRCLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7S0E4RnhGO0lBNUZDOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFVBQXNDO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFVBQWtCLEVBQUUsVUFBc0M7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFNBQWlCLEVBQUUsVUFBc0M7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7UUFDbEQsTUFBTSxXQUFXLEdBQWlDLEVBQUUsQ0FBQztRQUVyRCx5QkFBeUI7UUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVDLGtDQUFrQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQixDQUFDLFVBQXNDO1FBQzNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBaEdVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7MkZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZSc7XG5cbi8qKlxuICogUmVnaXN0cnkgZm9yIG1hbmFnaW5nIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmVzXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBnbG9iYWxNaWRkbGV3YXJlczogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSA9IFtdO1xuICBwcml2YXRlIGVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXT4oKTtcbiAgcHJpdmF0ZSBvcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzID0gbmV3IE1hcDxzdHJpbmcsIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW10+KCk7XG5cbiAgLyoqXG4gICAqIEFkZCBhIGdsb2JhbCBtaWRkbGV3YXJlIHRoYXQgYXBwbGllcyB0byBhbGwgb3BlcmF0aW9uc1xuICAgKi9cbiAgdXNlR2xvYmFsKG1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtaWRkbGV3YXJlIGZvciBzcGVjaWZpYyBlbnRpdHlcbiAgICovXG4gIHVzZUZvckVudGl0eShlbnRpdHlOYW1lOiBzdHJpbmcsIG1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMuaGFzKGVudGl0eU5hbWUpKSB7XG4gICAgICB0aGlzLmVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMuc2V0KGVudGl0eU5hbWUsIFtdKTtcbiAgICB9XG4gICAgdGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmdldChlbnRpdHlOYW1lKSEucHVzaChtaWRkbGV3YXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbWlkZGxld2FyZSBmb3Igc3BlY2lmaWMgb3BlcmF0aW9uIChnZXRPbmUsIGluc2VydE9uZSwgZXRjLilcbiAgICovXG4gIHVzZUZvck9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5oYXMob3BlcmF0aW9uKSkge1xuICAgICAgdGhpcy5vcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzLnNldChvcGVyYXRpb24sIFtdKTtcbiAgICB9XG4gICAgdGhpcy5vcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzLmdldChvcGVyYXRpb24pIS5wdXNoKG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYXBwbGljYWJsZSBtaWRkbGV3YXJlcyBmb3IgYSBnaXZlbiBjb250ZXh0XG4gICAqL1xuICBnZXRNaWRkbGV3YXJlcyhlbnRpdHlOYW1lOiBzdHJpbmcsIG9wZXJhdGlvbjogc3RyaW5nKTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSB7XG4gICAgY29uc3QgbWlkZGxld2FyZXM6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW10gPSBbXTtcblxuICAgIC8vIEFkZCBnbG9iYWwgbWlkZGxld2FyZXNcbiAgICBtaWRkbGV3YXJlcy5wdXNoKC4uLnRoaXMuZ2xvYmFsTWlkZGxld2FyZXMpO1xuXG4gICAgLy8gQWRkIGVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICAgIGNvbnN0IGVudGl0eU1pZGRsZXdhcmVzID0gdGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmdldChlbnRpdHlOYW1lKTtcbiAgICBpZiAoZW50aXR5TWlkZGxld2FyZXMpIHtcbiAgICAgIG1pZGRsZXdhcmVzLnB1c2goLi4uZW50aXR5TWlkZGxld2FyZXMpO1xuICAgIH1cblxuICAgIC8vIEFkZCBvcGVyYXRpb24tc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICBjb25zdCBvcGVyYXRpb25NaWRkbGV3YXJlcyA9IHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5nZXQob3BlcmF0aW9uKTtcbiAgICBpZiAob3BlcmF0aW9uTWlkZGxld2FyZXMpIHtcbiAgICAgIG1pZGRsZXdhcmVzLnB1c2goLi4ub3BlcmF0aW9uTWlkZGxld2FyZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGdsb2JhbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgZ2V0R2xvYmFsTWlkZGxld2FyZXMoKTogcmVhZG9ubHkgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmdsb2JhbE1pZGRsZXdhcmVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbWlkZGxld2FyZSBmcm9tIGdsb2JhbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgcmVtb3ZlR2xvYmFsTWlkZGxld2FyZShtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5pbmRleE9mKG1pZGRsZXdhcmUpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLmdsb2JhbE1pZGRsZXdhcmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuZW50aXR5U3BlY2lmaWNNaWRkbGV3YXJlcy5jbGVhcigpO1xuICAgIHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZWdpc3RlcmVkIGVudGl0eSBuYW1lcyB0aGF0IGhhdmUgc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICovXG4gIGdldFJlZ2lzdGVyZWRFbnRpdHlOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlZ2lzdGVyZWQgb3BlcmF0aW9uIG5hbWVzIHRoYXQgaGF2ZSBzcGVjaWZpYyBtaWRkbGV3YXJlc1xuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZE9wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5rZXlzKCkpO1xuICB9XG59Il19","import { Injectable, inject, EnvironmentInjector, runInInjectionContext } from '@angular/core';\nimport { composeEntityStorageMiddlewares, generateRequestId, } from './entity-storage.middleware';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\nimport { AXPEntityStorageService } from '../entity-storage-service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../entity-storage-service\";\n/**\n * Executor that wraps entity storage operations with middleware pipeline\n */\nexport class AXPEntityStorageExecutor {\n constructor(storageService) {\n this.storageService = storageService;\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPEntityStorageRegistry);\n }\n /**\n * Execute getOne operation with middleware pipeline\n */\n async getOne(entityName, id) {\n const context = {\n operation: 'getOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.getOne(ctx.entityName, ctx.input.id);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute getAll operation with middleware pipeline\n */\n async getAll(entityName) {\n const context = {\n operation: 'getAll',\n entityName,\n dbName: this.storageService.dbName,\n input: {},\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.getAll(ctx.entityName);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute insertOne operation with middleware pipeline\n */\n async insertOne(entityName, entity) {\n const context = {\n operation: 'insertOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { entity },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.insertOne(ctx.entityName, ctx.input.entity);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute updateOne operation with middleware pipeline\n */\n async updateOne(entityName, id, keyValues) {\n const context = {\n operation: 'updateOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id, keyValues },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.updateOne(ctx.entityName, ctx.input.id, ctx.input.keyValues);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute deleteOne operation with middleware pipeline\n */\n async deleteOne(entityName, id) {\n const context = {\n operation: 'deleteOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.deleteOne(ctx.entityName, ctx.input.id);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute query operation with middleware pipeline\n */\n async query(entityName, request) {\n const context = {\n operation: 'query',\n entityName,\n dbName: this.storageService.dbName,\n input: { request },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.query(ctx.entityName, ctx.input.request);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute initial operation with middleware pipeline\n */\n async initial(entityName, collection, options) {\n const context = {\n operation: 'initial',\n entityName,\n dbName: this.storageService.dbName,\n input: { collection, options },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.initial(ctx.entityName, ctx.input.collection, ctx.input.options);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute operation with middleware pipeline\n */\n async executeWithMiddleware(context, handler) {\n const middlewares = this.registry.getMiddlewares(context.entityName, context.operation);\n // Wrap middlewares with injection context\n const wrappedMiddlewares = middlewares.map(middleware => {\n return (ctx, next) => runInInjectionContext(this.injector, () => middleware(ctx, next));\n });\n const composed = composeEntityStorageMiddlewares(wrappedMiddlewares)(handler);\n return composed(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, deps: [{ token: i1.AXPEntityStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.AXPEntityStorageService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UuZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9GLE9BQU8sRUFHTCwrQkFBK0IsRUFDL0IsaUJBQWlCLEdBQ2xCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUVwRTs7R0FFRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFDVSxjQUErRjtRQUEvRixtQkFBYyxHQUFkLGNBQWMsQ0FBaUY7UUFKeEYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUkxRCxDQUFDO0lBRUo7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsRUFBUTtRQUN2QyxNQUFNLE9BQU8sR0FBb0Y7WUFDL0YsU0FBUyxFQUFFLFFBQVE7WUFDbkIsVUFBVTtZQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07WUFDbEMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyQixTQUFTLEVBQUUsaUJBQWlCLEVBQUU7YUFDL0I7U0FDRixDQUFDO1FBRUYsTUFBTSxP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LEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsK0JBQStCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQS9MVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBFbnZpcm9ubWVudEluamVjdG9yLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVxdWVzdCwgQVhQUGFnZWRMaXN0UmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eUNyZWF0ZUR0byxcbiAgQVhQRW50aXR5RGV0YWlsRHRvLFxuICBBWFBFbnRpdHlMaXN0SXRlbUR0byxcbiAgQVhQRW50aXR5VXBkYXRlRHRvLFxufSBmcm9tICcuLi9lbnRpdHkudHlwZXMnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5U3RvcmFnZUNvbnRleHQsXG4gIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlLFxuICBjb21wb3NlRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVzLFxuICBnZW5lcmF0ZVJlcXVlc3RJZCxcbn0gZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5taWRkbGV3YXJlJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS1zZXJ2aWNlJztcblxuLyoqXG4gKiBFeGVjdXRvciB0aGF0IHdyYXBzIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnMgd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yPFxuICBUS2V5ID0gYW55LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gYW55LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IGFueSxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IGFueSxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IGFueSxcbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQVhQRW50aXR5U3RvcmFnZVNlcnZpY2U8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPlxuICApIHt9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgZ2V0T25lIG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIGdldE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2dldE9uZScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGlkIH0sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgICAgIHJlcXVlc3RJZDogZ2VuZXJhdGVSZXF1ZXN0SWQoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoY3R4OiB0eXBlb2YgY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0T25lKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuaWQhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgZ2V0QWxsIG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIGdldEFsbChlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2dldEFsbCcsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7fSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBbGwoY3R4LmVudGl0eU5hbWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlV2l0aE1pZGRsZXdhcmUoY29udGV4dCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBpbnNlcnRPbmUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgYXN5bmMgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2luc2VydE9uZScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGVudGl0eSB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgc3RhcnRUaW1lOiBEYXRlLm5vdygpLFxuICAgICAgICByZXF1ZXN0SWQ6IGdlbmVyYXRlUmVxdWVzdElkKCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGN0eDogdHlwZW9mIGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmluc2VydE9uZShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LmVudGl0eSEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlV2l0aE1pZGRsZXdhcmUoY29udGV4dCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB1cGRhdGVPbmUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICd1cGRhdGVPbmUnLFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIGRiTmFtZTogdGhpcy5zdG9yYWdlU2VydmljZS5kYk5hbWUsXG4gICAgICBpbnB1dDogeyBpZCwga2V5VmFsdWVzIH0sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgICAgIHJlcXVlc3RJZDogZ2VuZXJhdGVSZXF1ZXN0SWQoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoY3R4OiB0eXBlb2YgY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlT25lKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuaWQhLCBjdHguaW5wdXQua2V5VmFsdWVzISk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVXaXRoTWlkZGxld2FyZShjb250ZXh0LCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGRlbGV0ZU9uZSBvcGVyYXRpb24gd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gICAqL1xuICBhc3luYyBkZWxldGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICdkZWxldGVPbmUnLFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIGRiTmFtZTogdGhpcy5zdG9yYWdlU2VydmljZS5kYk5hbWUsXG4gICAgICBpbnB1dDogeyBpZCB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgc3RhcnRUaW1lOiBEYXRlLm5vdygpLFxuICAgICAgICByZXF1ZXN0SWQ6IGdlbmVyYXRlUmVxdWVzdElkKCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGN0eDogdHlwZW9mIGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRlbGV0ZU9uZShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LmlkISk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVXaXRoTWlkZGxld2FyZShjb250ZXh0LCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHF1ZXJ5IG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICdxdWVyeScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IHJlcXVlc3QgfSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5xdWVyeShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LnJlcXVlc3QhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgaW5pdGlhbCBvcGVyYXRpb24gd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gICAqL1xuICBhc3luYyBpbml0aWFsKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10sXG4gICAgb3B0aW9ucz86IHsgbWVyZ2VUeXBlPzogJ21lcmdlJyB8ICdyZXBsYWNlJzsgdW5pcXVlS2V5cz86IHN0cmluZ1tdIH1cbiAgKTogUHJvbWlzZTxUQ3JlYXRlRHRvW10+IHtcbiAgICBjb25zdCBjb250ZXh0OiBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+ID0ge1xuICAgICAgb3BlcmF0aW9uOiAnaW5pdGlhbCcsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGNvbGxlY3Rpb24sIG9wdGlvbnMgfSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5pbml0aWFsKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuY29sbGVjdGlvbiEsIGN0eC5pbnB1dC5vcHRpb25zKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlV2l0aE1pZGRsZXdhcmU8VFJlc3VsdD4oXG4gICAgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPixcbiAgICBoYW5kbGVyOiAoY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPikgPT4gUHJvbWlzZTxUUmVzdWx0PlxuICApOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBjb25zdCBtaWRkbGV3YXJlcyA9IHRoaXMucmVnaXN0cnkuZ2V0TWlkZGxld2FyZXMoY29udGV4dC5lbnRpdHlOYW1lLCBjb250ZXh0Lm9wZXJhdGlvbik7XG5cbiAgICAvLyBXcmFwIG1pZGRsZXdhcmVzIHdpdGggaW5qZWN0aW9uIGNvbnRleHRcbiAgICBjb25zdCB3cmFwcGVkTWlkZGxld2FyZXMgPSBtaWRkbGV3YXJlcy5tYXAobWlkZGxld2FyZSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjdHg6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4sXG4gICAgICAgIG5leHQ6IChjdHg6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbiAgICAgICkgPT4gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoY3R4LCBuZXh0KSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb3NlZCA9IGNvbXBvc2VFbnRpdHlTdG9yYWdlTWlkZGxld2FyZXMod3JhcHBlZE1pZGRsZXdhcmVzKShoYW5kbGVyKTtcbiAgICByZXR1cm4gY29tcG9zZWQoY29udGV4dCk7XG4gIH1cbn0iXX0=","import { Injectable } from '@angular/core';\nimport { AXPEntityStorageService } from '../entity-storage-service';\nimport { AXPEntityStorageExecutor } from './entity-storage.executor';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../entity-storage-service\";\nimport * as i2 from \"./entity-storage.registry\";\n/**\n * Entity Storage Service with middleware support\n *\n * This service wraps the original AXPEntityStorageService and adds middleware pipeline support.\n * It delegates all operations to the middleware executor which applies the middleware chain.\n */\nexport class AXPEntityStorageWithMiddlewareService extends AXPEntityStorageService {\n constructor(originalStorageService, registry) {\n super();\n this.originalStorageService = originalStorageService;\n this.registry = registry;\n this.executor = new AXPEntityStorageExecutor(originalStorageService);\n }\n get dbName() {\n return this.originalStorageService.dbName;\n }\n // Middleware Management Methods\n /**\n * Add a global middleware that applies to all operations\n */\n useGlobal(middleware) {\n this.registry.useGlobal(middleware);\n }\n /**\n * Add middleware for specific entity\n */\n useForEntity(entityName, middleware) {\n this.registry.useForEntity(entityName, middleware);\n }\n /**\n * Add middleware for specific operation\n */\n useForOperation(operation, middleware) {\n this.registry.useForOperation(operation, middleware);\n }\n // Storage Operations with Middleware Pipeline\n async initial(entityName, collection, options) {\n return this.executor.initial(entityName, collection, options);\n }\n async getOne(entityName, id) {\n return this.executor.getOne(entityName, id);\n }\n async updateOne(entityName, id, keyValues) {\n return this.executor.updateOne(entityName, id, keyValues);\n }\n async deleteOne(entityName, id) {\n return this.executor.deleteOne(entityName, id);\n }\n async insertOne(entityName, entity) {\n return this.executor.insertOne(entityName, entity);\n }\n async getAll(entityName) {\n return this.executor.getAll(entityName);\n }\n async query(entityName, request) {\n return this.executor.query(entityName, request);\n }\n // Direct access to original service (bypass middleware)\n get originalService() {\n return this.originalStorageService;\n }\n // Access to registry for advanced middleware management\n get middlewareRegistry() {\n return this.registry;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService, deps: [{ token: i1.AXPEntityStorageService }, { token: i2.AXPEntityStorageRegistry }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.AXPEntityStorageService }, { type: i2.AXPEntityStorageRegistry }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utd2l0aC1taWRkbGV3YXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLXdpdGgtbWlkZGxld2FyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFHckU7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8scUNBTVgsU0FBUSx1QkFBK0U7SUFJdkYsWUFDVSxzQkFBdUcsRUFDdkcsUUFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWlGO1FBQ3ZHLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBRzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQUVELGdDQUFnQztJQUVoQzs7T0FFRztJQUNILFNBQVMsQ0FBQyxVQUFzQztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsVUFBa0IsRUFBRSxVQUFzQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFNBQWlCLEVBQUUsVUFBc0M7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCw4Q0FBOEM7SUFFOUMsS0FBSyxDQUFDLE9BQU8sQ0FDWCxVQUFrQixFQUNsQixVQUF3QixFQUN4QixPQUFvRTtRQUVwRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxFQUFRO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQWtCLEVBQUUsRUFBUSxFQUFFLFNBQTBDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFrQixFQUFFLEVBQVE7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBa0IsRUFBRSxNQUFrQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQWtCLEVBQUUsT0FBd0I7UUFDdEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs4R0F2RlUscUNBQXFDO2tIQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlcXVlc3QsIEFYUFBhZ2VkTGlzdFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHlDcmVhdGVEdG8sXG4gIEFYUEVudGl0eURldGFpbER0byxcbiAgQVhQRW50aXR5TGlzdEl0ZW1EdG8sXG4gIEFYUEVudGl0eVVwZGF0ZUR0byxcbn0gZnJvbSAnLi4vZW50aXR5LnR5cGVzJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXN0b3JhZ2Utc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlRXhlY3V0b3IgfSBmcm9tICcuL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgfSBmcm9tICcuL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuXG4vKipcbiAqIEVudGl0eSBTdG9yYWdlIFNlcnZpY2Ugd2l0aCBtaWRkbGV3YXJlIHN1cHBvcnRcbiAqIFxuICogVGhpcyBzZXJ2aWNlIHdyYXBzIHRoZSBvcmlnaW5hbCBBWFBFbnRpdHlTdG9yYWdlU2VydmljZSBhbmQgYWRkcyBtaWRkbGV3YXJlIHBpcGVsaW5lIHN1cHBvcnQuXG4gKiBJdCBkZWxlZ2F0ZXMgYWxsIG9wZXJhdGlvbnMgdG8gdGhlIG1pZGRsZXdhcmUgZXhlY3V0b3Igd2hpY2ggYXBwbGllcyB0aGUgbWlkZGxld2FyZSBjaGFpbi5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVN0b3JhZ2VXaXRoTWlkZGxld2FyZVNlcnZpY2U8XG4gIFRLZXkgPSBhbnksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBhbnksXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gYW55LFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gYW55LFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gYW55LFxuPiBleHRlbmRzIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4ge1xuICBcbiAgcHJpdmF0ZSBleGVjdXRvcjogQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcmlnaW5hbFN0b3JhZ2VTZXJ2aWNlOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+LFxuICAgIHByaXZhdGUgcmVnaXN0cnk6IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZXhlY3V0b3IgPSBuZXcgQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yKG9yaWdpbmFsU3RvcmFnZVNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IGRiTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmFsU3RvcmFnZVNlcnZpY2UuZGJOYW1lO1xuICB9XG5cbiAgLy8gTWlkZGxld2FyZSBNYW5hZ2VtZW50IE1ldGhvZHNcblxuICAvKipcbiAgICogQWRkIGEgZ2xvYmFsIG1pZGRsZXdhcmUgdGhhdCBhcHBsaWVzIHRvIGFsbCBvcGVyYXRpb25zXG4gICAqL1xuICB1c2VHbG9iYWwobWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnVzZUdsb2JhbChtaWRkbGV3YXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbWlkZGxld2FyZSBmb3Igc3BlY2lmaWMgZW50aXR5XG4gICAqL1xuICB1c2VGb3JFbnRpdHkoZW50aXR5TmFtZTogc3RyaW5nLCBtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0cnkudXNlRm9yRW50aXR5KGVudGl0eU5hbWUsIG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtaWRkbGV3YXJlIGZvciBzcGVjaWZpYyBvcGVyYXRpb25cbiAgICovXG4gIHVzZUZvck9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnVzZUZvck9wZXJhdGlvbihvcGVyYXRpb24sIG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLy8gU3RvcmFnZSBPcGVyYXRpb25zIHdpdGggTWlkZGxld2FyZSBQaXBlbGluZVxuXG4gIGFzeW5jIGluaXRpYWwoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSxcbiAgICBvcHRpb25zPzogeyBtZXJnZVR5cGU/OiAnbWVyZ2UnIHwgJ3JlcGxhY2UnOyB1bmlxdWVLZXlzPzogc3RyaW5nW10gfVxuICApOiBQcm9taXNlPFRDcmVhdGVEdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmluaXRpYWwoZW50aXR5TmFtZSwgY29sbGVjdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBnZXRPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmdldE9uZShlbnRpdHlOYW1lLCBpZCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0b3IudXBkYXRlT25lKGVudGl0eU5hbWUsIGlkLCBrZXlWYWx1ZXMpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRvci5kZWxldGVPbmUoZW50aXR5TmFtZSwgaWQpO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0b3IuaW5zZXJ0T25lKGVudGl0eU5hbWUsIGVudGl0eSk7XG4gIH1cblxuICBhc3luYyBnZXRBbGwoZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmdldEFsbChlbnRpdHlOYW1lKTtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLnF1ZXJ5KGVudGl0eU5hbWUsIHJlcXVlc3QpO1xuICB9XG5cbiAgLy8gRGlyZWN0IGFjY2VzcyB0byBvcmlnaW5hbCBzZXJ2aWNlIChieXBhc3MgbWlkZGxld2FyZSlcbiAgZ2V0IG9yaWdpbmFsU2VydmljZSgpOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5hbFN0b3JhZ2VTZXJ2aWNlO1xuICB9XG5cbiAgLy8gQWNjZXNzIHRvIHJlZ2lzdHJ5IGZvciBhZHZhbmNlZCBtaWRkbGV3YXJlIG1hbmFnZW1lbnRcbiAgZ2V0IG1pZGRsZXdhcmVSZWdpc3RyeSgpOiBBWFBFbnRpdHlTdG9yYWdlUmVnaXN0cnkge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5O1xuICB9XG59Il19","import { inject, InjectionToken, makeEnvironmentProviders, } from '@angular/core';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\n/**\n * Injection token for entity storage middleware setup\n */\nexport const AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP = new InjectionToken('AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP');\n/**\n * Injection token for entity storage middleware extensions\n */\nexport const AXP_ENTITY_STORAGE_EXTENSION = new InjectionToken('AXP_ENTITY_STORAGE_EXTENSION');\n/**\n * Provide entity storage middleware configuration\n */\nexport function provideEntityStorageMiddleware(config) {\n const providers = [];\n // Register extension middlewares\n if (config.extensions) {\n providers.push(...config.extensions.map(ext => ({\n provide: AXP_ENTITY_STORAGE_EXTENSION,\n useValue: ext,\n multi: true,\n })));\n }\n // Main setup provider\n providers.push({\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPEntityStorageRegistry);\n // Register global middlewares\n if (config.global) {\n for (const middleware of config.global) {\n registry.useGlobal(middleware);\n }\n }\n // Register entity-specific middlewares\n if (config.entities) {\n for (const [entityName, middlewares] of Object.entries(config.entities)) {\n for (const middleware of middlewares) {\n registry.useForEntity(entityName, middleware);\n }\n }\n }\n // Register operation-specific middlewares\n if (config.operations) {\n for (const [operation, middlewares] of Object.entries(config.operations)) {\n for (const middleware of middlewares) {\n registry.useForOperation(operation, middleware);\n }\n }\n }\n return true;\n },\n multi: true,\n });\n return makeEnvironmentProviders(providers);\n}\n/**\n * Simplified provider for global middleware only\n */\nexport function provideGlobalEntityStorageMiddleware(middlewares) {\n return provideEntityStorageMiddleware({ global: middlewares });\n}\n/**\n * Provider for entity-specific middlewares\n */\nexport function provideEntitySpecificMiddleware(entityName, middlewares) {\n return provideEntityStorageMiddleware({\n entities: { [entityName]: middlewares }\n });\n}\n/**\n * Provider for operation-specific middlewares\n */\nexport function provideOperationSpecificMiddleware(operation, middlewares) {\n return provideEntityStorageMiddleware({\n operations: { [operation]: middlewares }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXN0b3JhZ2UtbWlkZGxld2FyZS9wcm92aWRlLWVudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLE1BQU0sRUFDTixjQUFjLEVBQ2Qsd0JBQXdCLEdBRXpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3JFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxjQUFjLENBQU8scUNBQXFDLENBQUMsQ0FBQztBQUVuSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUczRCw4QkFBOEIsQ0FBQyxDQUFDO0FBMEJuQzs7R0FFRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsTUFBd0M7SUFFeEMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRWpDLGlDQUFpQztJQUNqQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsSUFBSSxDQUNaLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsUUFBUSxFQUFFLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDYixPQUFPLEVBQUUsbUNBQW1DO1FBQzVDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUVsRCw4QkFBOEI7WUFDOUIsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2QyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQztZQUVELHVDQUF1QztZQUN2QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7d0JBQ3JDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNoRCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDekUsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDckMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ2xELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQztJQUVILE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxXQUF5QztJQUV6QyxPQUFPLDhCQUE4QixDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxVQUFrQixFQUNsQixXQUF5QztJQUV6QyxPQUFPLDhCQUE4QixDQUFDO1FBQ3BDLFFBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFO0tBQ3hDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsU0FBaUIsRUFDakIsV0FBeUM7SUFFekMsT0FBTyw4QkFBOEIsQ0FBQztRQUNwQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRTtLQUN6QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgUHJvdmlkZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5IH0gZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBlbnRpdHkgc3RvcmFnZSBtaWRkbGV3YXJlIHNldHVwXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX1NUT1JBR0VfTUlERExFV0FSRV9TRVRVUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjx2b2lkPignQVhQX0VOVElUWV9TVE9SQUdFX01JRERMRVdBUkVfU0VUVVAnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmUgZXh0ZW5zaW9uc1xuICovXG5leHBvcnQgY29uc3QgQVhQX0VOVElUWV9TVE9SQUdFX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjx7XG4gIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICBtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZTtcbn0+KCdBWFBfRU5USVRZX1NUT1JBR0VfRVhURU5TSU9OJyk7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgZW50aXR5LXNwZWNpZmljIG1pZGRsZXdhcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZUNvbmZpZyB7XG4gIC8qKiBHbG9iYWwgbWlkZGxld2FyZXMgdGhhdCBhcHBseSB0byBhbGwgb3BlcmF0aW9ucyAqL1xuICBnbG9iYWw/OiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdO1xuICBcbiAgLyoqIEVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlcyAqL1xuICBlbnRpdGllcz86IHtcbiAgICBbZW50aXR5TmFtZTogc3RyaW5nXTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXTtcbiAgfTtcbiAgXG4gIC8qKiBPcGVyYXRpb24tc3BlY2lmaWMgbWlkZGxld2FyZXMgKi9cbiAgb3BlcmF0aW9ucz86IHtcbiAgICBbb3BlcmF0aW9uOiBzdHJpbmddOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdO1xuICB9O1xuICBcbiAgLyoqIEFkdmFuY2VkIG1pZGRsZXdhcmUgY29uZmlndXJhdGlvbnMgd2l0aCB0YXJnZXRzICovXG4gIGV4dGVuc2lvbnM/OiB7XG4gICAgdGFyZ2V0OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmU7XG4gIH1bXTtcbn1cblxuLyoqXG4gKiBQcm92aWRlIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmUgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKFxuICBjb25maWc6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlQ29uZmlnXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtdO1xuXG4gIC8vIFJlZ2lzdGVyIGV4dGVuc2lvbiBtaWRkbGV3YXJlc1xuICBpZiAoY29uZmlnLmV4dGVuc2lvbnMpIHtcbiAgICBwcm92aWRlcnMucHVzaChcbiAgICAgIC4uLmNvbmZpZy5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgcHJvdmlkZTogQVhQX0VOVElUWV9TVE9SQUdFX0VYVEVOU0lPTixcbiAgICAgICAgdXNlVmFsdWU6IGV4dCxcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgLy8gTWFpbiBzZXR1cCBwcm92aWRlclxuICBwcm92aWRlcnMucHVzaCh7XG4gICAgcHJvdmlkZTogQVhQX0VOVElUWV9TVE9SQUdFX01JRERMRVdBUkVfU0VUVVAsXG4gICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5KTtcblxuICAgICAgLy8gUmVnaXN0ZXIgZ2xvYmFsIG1pZGRsZXdhcmVzXG4gICAgICBpZiAoY29uZmlnLmdsb2JhbCkge1xuICAgICAgICBmb3IgKGNvbnN0IG1pZGRsZXdhcmUgb2YgY29uZmlnLmdsb2JhbCkge1xuICAgICAgICAgIHJlZ2lzdHJ5LnVzZUdsb2JhbChtaWRkbGV3YXJlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZWdpc3RlciBlbnRpdHktc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICAgIGlmIChjb25maWcuZW50aXRpZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbZW50aXR5TmFtZSwgbWlkZGxld2FyZXNdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5lbnRpdGllcykpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG1pZGRsZXdhcmUgb2YgbWlkZGxld2FyZXMpIHtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnVzZUZvckVudGl0eShlbnRpdHlOYW1lLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVnaXN0ZXIgb3BlcmF0aW9uLXNwZWNpZmljIG1pZGRsZXdhcmVzXG4gICAgICBpZiAoY29uZmlnLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbb3BlcmF0aW9uLCBtaWRkbGV3YXJlc10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLm9wZXJhdGlvbnMpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgICByZWdpc3RyeS51c2VGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfSk7XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuXG4vKipcbiAqIFNpbXBsaWZpZWQgcHJvdmlkZXIgZm9yIGdsb2JhbCBtaWRkbGV3YXJlIG9ubHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVHbG9iYWxFbnRpdHlTdG9yYWdlTWlkZGxld2FyZShcbiAgbWlkZGxld2FyZXM6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIHByb3ZpZGVFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSh7IGdsb2JhbDogbWlkZGxld2FyZXMgfSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIGVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVNwZWNpZmljTWlkZGxld2FyZShcbiAgZW50aXR5TmFtZTogc3RyaW5nLFxuICBtaWRkbGV3YXJlczogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXVxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gcHJvdmlkZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKHtcbiAgICBlbnRpdGllczogeyBbZW50aXR5TmFtZV06IG1pZGRsZXdhcmVzIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIG9wZXJhdGlvbi1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9wZXJhdGlvblNwZWNpZmljTWlkZGxld2FyZShcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIG1pZGRsZXdhcmVzOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBwcm92aWRlRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUoe1xuICAgIG9wZXJhdGlvbnM6IHsgW29wZXJhdGlvbl06IG1pZGRsZXdhcmVzIH1cbiAgfSk7XG59Il19","/**\n * Logging middleware for entity storage operations\n */\nexport const loggingMiddleware = async (context, next) => {\n const startTime = Date.now();\n console.group(`🔄 Entity Storage Operation: ${context.operation}`);\n console.log('📋 Entity:', context.entityName);\n console.log('🗄️ Database:', context.dbName);\n console.log('📨 Input:', context.input);\n console.log('🆔 Request ID:', context.metadata.requestId);\n try {\n const result = await next(context);\n const duration = Date.now() - startTime;\n console.log('✅ Success');\n console.log('⏱️ Duration:', `${duration}ms`);\n console.log('📤 Result:', result);\n console.groupEnd();\n return result;\n }\n catch (error) {\n const duration = Date.now() - startTime;\n console.error('❌ Error');\n console.error('⏱️ Duration:', `${duration}ms`);\n console.error('💥 Error:', error);\n console.groupEnd();\n throw error;\n }\n};\n/**\n * Performance monitoring middleware\n */\nexport const performanceMiddleware = async (context, next) => {\n const startTime = performance.now();\n try {\n const result = await next(context);\n const duration = performance.now() - startTime;\n // Log slow operations (> 1000ms)\n if (duration > 1000) {\n console.warn(`⚠️ Slow operation detected: ${context.operation} on ${context.entityName} took ${duration.toFixed(2)}ms`);\n }\n // Add performance metrics to context\n context.metadata['performanceMetrics'] = {\n duration,\n operation: context.operation,\n entityName: context.entityName,\n };\n return result;\n }\n catch (error) {\n const duration = performance.now() - startTime;\n console.error(`❌ Failed operation: ${context.operation} on ${context.entityName} failed after ${duration.toFixed(2)}ms`);\n throw error;\n }\n};\n/**\n * Error handling middleware with retry logic\n */\nexport const errorHandlingMiddleware = async (context, next) => {\n const maxRetries = 3;\n let attempt = 0;\n while (attempt < maxRetries) {\n try {\n const result = await next(context);\n if (attempt > 0) {\n console.log(`✅ Operation succeeded on retry ${attempt}/${maxRetries}`);\n }\n return result;\n }\n catch (error) {\n attempt++;\n // Don't retry for certain operations or error types\n if (context.operation === 'deleteOne' ||\n error?.code === 'VALIDATION_ERROR' ||\n attempt >= maxRetries) {\n console.error(`❌ Operation failed after ${attempt} attempts:`, error);\n throw error;\n }\n console.warn(`⚠️ Attempt ${attempt}/${maxRetries} failed, retrying...`, error.message);\n // Wait before retry (exponential backoff)\n await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 1000));\n }\n }\n throw new Error('Max retries exceeded');\n};\n/**\n * Validation middleware\n */\nexport const validationMiddleware = async (context, next) => {\n // Validate input based on operation\n switch (context.operation) {\n case 'insertOne':\n if (!context.input.entity) {\n throw new Error('Entity is required for insertOne operation');\n }\n break;\n case 'updateOne':\n if (!context.input.id) {\n throw new Error('ID is required for updateOne operation');\n }\n if (!context.input.keyValues) {\n throw new Error('Key values are required for updateOne operation');\n }\n break;\n case 'deleteOne':\n case 'getOne':\n if (!context.input.id) {\n throw new Error(`ID is required for ${context.operation} operation`);\n }\n break;\n case 'query':\n if (!context.input.request) {\n throw new Error('Request is required for query operation');\n }\n break;\n case 'initial':\n if (!context.input.collection || !Array.isArray(context.input.collection)) {\n throw new Error('Collection array is required for initial operation');\n }\n break;\n }\n return next(context);\n};\n/**\n * Caching middleware (simple in-memory cache)\n */\nexport const cachingMiddleware = (() => {\n const cache = new Map();\n const DEFAULT_TTL = 5 * 60 * 1000; // 5 minutes\n return async (context, next) => {\n // Only cache read operations\n if (!['getOne', 'getAll', 'query'].includes(context.operation)) {\n // Clear cache for write operations on the same entity\n const keysToDelete = Array.from(cache.keys()).filter(key => key.includes(`${context.entityName}:`));\n keysToDelete.forEach(key => cache.delete(key));\n return next(context);\n }\n // Generate cache key\n const cacheKey = `${context.entityName}:${context.operation}:${JSON.stringify(context.input)}`;\n // Check cache\n const cached = cache.get(cacheKey);\n if (cached && Date.now() - cached.timestamp < cached.ttl) {\n console.log(`💾 Cache hit for ${cacheKey}`);\n return cached.data;\n }\n // Execute and cache result\n const result = await next(context);\n cache.set(cacheKey, {\n data: result,\n timestamp: Date.now(),\n ttl: DEFAULT_TTL,\n });\n console.log(`💾 Cached result for ${cacheKey}`);\n return result;\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXN0b3JhZ2UtbWlkZGxld2FyZS9taWRkbGV3YXJlcy9sb2dnaW5nLm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBK0IsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNuRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTFELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFFeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxD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QUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSwgQVhQRW50aXR5U3RvcmFnZUNvbnRleHQgfSBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS5taWRkbGV3YXJlJztcblxuLyoqXG4gKiBMb2dnaW5nIG1pZGRsZXdhcmUgZm9yIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ2dpbmdNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9IGFzeW5jIChjb250ZXh0LCBuZXh0KSA9PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gIFxuICBjb25zb2xlLmdyb3VwKGDwn5SEIEVudGl0eSBTdG9yYWdlIE9wZXJhdGlvbjogJHtjb250ZXh0Lm9wZXJhdGlvbn1gKTtcbiAgY29uc29sZS5sb2coJ/Cfk4sgRW50aXR5OicsIGNvbnRleHQuZW50aXR5TmFtZSk7XG4gIGNvbnNvbGUubG9nKCfwn5eE77iPIERhdGFiYXNlOicsIGNvbnRleHQuZGJOYW1lKTtcbiAgY29uc29sZS5sb2coJ/Cfk6ggSW5wdXQ6JywgY29udGV4dC5pbnB1dCk7XG4gIGNvbnNvbGUubG9nKCfwn4aUIFJlcXVlc3QgSUQ6JywgY29udGV4dC5tZXRhZGF0YS5yZXF1ZXN0SWQpO1xuICBcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBcbiAgICBjb25zb2xlLmxvZygn4pyFIFN1Y2Nlc3MnKTtcbiAgICBjb25zb2xlLmxvZygn4o+x77iPIER1cmF0aW9uOicsIGAke2R1cmF0aW9ufW1zYCk7XG4gICAgY29uc29sZS5sb2coJ/Cfk6QgUmVzdWx0OicsIHJlc3VsdCk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIFxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIFxuICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBFcnJvcicpO1xuICAgIGNvbnNvbGUuZXJyb3IoJ+KPse+4jyBEdXJhdGlvbjonLCBgJHtkdXJhdGlvbn1tc2ApO1xuICAgIGNvbnNvbGUuZXJyb3IoJ/CfkqUgRXJyb3I6JywgZXJyb3IpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICBcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuLyoqXG4gKiBQZXJmb3JtYW5jZSBtb25pdG9yaW5nIG1pZGRsZXdhcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHBlcmZvcm1hbmNlTWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgPSBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChjb250ZXh0KTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIFxuICAgIC8vIExvZyBzbG93IG9wZXJhdGlvbnMgKD4gMTAwMG1zKVxuICAgIGlmIChkdXJhdGlvbiA+IDEwMDApIHtcbiAgICAgIGNvbnNvbGUud2Fybihg4pqg77iPIFNsb3cgb3BlcmF0aW9uIGRldGVjdGVkOiAke2NvbnRleHQub3BlcmF0aW9ufSBvbiAke2NvbnRleHQuZW50aXR5TmFtZX0gdG9vayAke2R1cmF0aW9uLnRvRml4ZWQoMil9bXNgKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIHBlcmZvcm1hbmNlIG1ldHJpY3MgdG8gY29udGV4dFxuICAgIGNvbnRleHQubWV0YWRhdGFbJ3BlcmZvcm1hbmNlTWV0cmljcyddID0ge1xuICAgICAgZHVyYXRpb24sXG4gICAgICBvcGVyYXRpb246IGNvbnRleHQub3BlcmF0aW9uLFxuICAgICAgZW50aXR5TmFtZTogY29udGV4dC5lbnRpdHlOYW1lLFxuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBGYWlsZWQgb3BlcmF0aW9uOiAke2NvbnRleHQub3BlcmF0aW9ufSBvbiAke2NvbnRleHQuZW50aXR5TmFtZX0gZmFpbGVkIGFmdGVyICR7ZHVyYXRpb24udG9GaXhlZCgyKX1tc2ApO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG4vKipcbiAqIEVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgd2l0aCByZXRyeSBsb2dpY1xuICovXG5leHBvcnQgY29uc3QgZXJyb3JIYW5kbGluZ01pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgY29uc3QgbWF4UmV0cmllcyA9IDM7XG4gIGxldCBhdHRlbXB0ID0gMDtcbiAgXG4gIHdoaWxlIChhdHRlbXB0IDwgbWF4UmV0cmllcykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICAgICAgXG4gICAgICBpZiAoYXR0ZW1wdCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYOKchSBPcGVyYXRpb24gc3VjY2VlZGVkIG9uIHJldHJ5ICR7YXR0ZW1wdH0vJHttYXhSZXRyaWVzfWApO1xuICAgICAgfVxuICAgICAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGF0dGVtcHQrKztcbiAgICAgIFxuICAgICAgLy8gRG9uJ3QgcmV0cnkgZm9yIGNlcnRhaW4gb3BlcmF0aW9ucyBvciBlcnJvciB0eXBlc1xuICAgICAgaWYgKFxuICAgICAgICBjb250ZXh0Lm9wZXJhdGlvbiA9PT0gJ2RlbGV0ZU9uZScgfHxcbiAgICAgICAgZXJyb3I/LmNvZGUgPT09ICdWQUxJREFUSU9OX0VSUk9SJyB8fFxuICAgICAgICBhdHRlbXB0ID49IG1heFJldHJpZXNcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGDinYwgT3BlcmF0aW9uIGZhaWxlZCBhZnRlciAke2F0dGVtcHR9IGF0dGVtcHRzOmAsIGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnNvbGUud2Fybihg4pqg77iPIEF0dGVtcHQgJHthdHRlbXB0fS8ke21heFJldHJpZXN9IGZhaWxlZCwgcmV0cnlpbmcuLi5gLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIFxuICAgICAgLy8gV2FpdCBiZWZvcmUgcmV0cnkgKGV4cG9uZW50aWFsIGJhY2tvZmYpXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgTWF0aC5wb3coMiwgYXR0ZW1wdCkgKiAxMDAwKSk7XG4gICAgfVxuICB9XG4gIFxuICB0aHJvdyBuZXcgRXJyb3IoJ01heCByZXRyaWVzIGV4Y2VlZGVkJyk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRpb24gbWlkZGxld2FyZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGlvbk1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgLy8gVmFsaWRhdGUgaW5wdXQgYmFzZWQgb24gb3BlcmF0aW9uXG4gIHN3aXRjaCAoY29udGV4dC5vcGVyYXRpb24pIHtcbiAgICBjYXNlICdpbnNlcnRPbmUnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmVudGl0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VudGl0eSBpcyByZXF1aXJlZCBmb3IgaW5zZXJ0T25lIG9wZXJhdGlvbicpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICd1cGRhdGVPbmUnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSUQgaXMgcmVxdWlyZWQgZm9yIHVwZGF0ZU9uZSBvcGVyYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIGlmICghY29udGV4dC5pbnB1dC5rZXlWYWx1ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdLZXkgdmFsdWVzIGFyZSByZXF1aXJlZCBmb3IgdXBkYXRlT25lIG9wZXJhdGlvbicpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdkZWxldGVPbmUnOlxuICAgIGNhc2UgJ2dldE9uZSc6XG4gICAgICBpZiAoIWNvbnRleHQuaW5wdXQuaWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJRCBpcyByZXF1aXJlZCBmb3IgJHtjb250ZXh0Lm9wZXJhdGlvbn0gb3BlcmF0aW9uYCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAgIFxuICAgIGNhc2UgJ3F1ZXJ5JzpcbiAgICAgIGlmICghY29udGV4dC5pbnB1dC5yZXF1ZXN0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWVzdCBpcyByZXF1aXJlZCBmb3IgcXVlcnkgb3BlcmF0aW9uJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAgIFxuICAgIGNhc2UgJ2luaXRpYWwnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmNvbGxlY3Rpb24gfHwgIUFycmF5LmlzQXJyYXkoY29udGV4dC5pbnB1dC5jb2xsZWN0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbGxlY3Rpb24gYXJyYXkgaXMgcmVxdWlyZWQgZm9yIGluaXRpYWwgb3BlcmF0aW9uJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICBcbiAgcmV0dXJuIG5leHQoY29udGV4dCk7XG59O1xuXG4vKipcbiAqIENhY2hpbmcgbWlkZGxld2FyZSAoc2ltcGxlIGluLW1lbW9yeSBjYWNoZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGNhY2hpbmdNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9ICgoKSA9PiB7XG4gIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YTogYW55OyB0aW1lc3RhbXA6IG51bWJlcjsgdHRsOiBudW1iZXIgfT4oKTtcbiAgY29uc3QgREVGQVVMVF9UVEwgPSA1ICogNjAgKiAxMDAwOyAvLyA1IG1pbnV0ZXNcbiAgXG4gIHJldHVybiBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICAgIC8vIE9ubHkgY2FjaGUgcmVhZCBvcGVyYXRpb25zXG4gICAgaWYgKCFbJ2dldE9uZScsICdnZXRBbGwnLCAncXVlcnknXS5pbmNsdWRlcyhjb250ZXh0Lm9wZXJhdGlvbikpIHtcbiAgICAgIC8vIENsZWFyIGNhY2hlIGZvciB3cml0ZSBvcGVyYXRpb25zIG9uIHRoZSBzYW1lIGVudGl0eVxuICAgICAgY29uc3Qga2V5c1RvRGVsZXRlID0gQXJyYXkuZnJvbShjYWNoZS5rZXlzKCkpLmZpbHRlcihrZXkgPT4gXG4gICAgICAgIGtleS5pbmNsdWRlcyhgJHtjb250ZXh0LmVudGl0eU5hbWV9OmApXG4gICAgICApO1xuICAgICAga2V5c1RvRGVsZXRlLmZvckVhY2goa2V5ID0+IGNhY2hlLmRlbGV0ZShrZXkpKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIG5leHQoY29udGV4dCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEdlbmVyYXRlIGNhY2hlIGtleVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7Y29udGV4dC5lbnRpdHlOYW1lfToke2NvbnRleHQub3BlcmF0aW9ufToke0pTT04uc3RyaW5naWZ5KGNvbnRleHQuaW5wdXQpfWA7XG4gICAgXG4gICAgLy8gQ2hlY2sgY2FjaGVcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWQgJiYgRGF0ZS5ub3coKSAtIGNhY2hlZC50aW1lc3RhbXAgPCBjYWNoZWQudHRsKSB7XG4gICAgICBjb25zb2xlLmxvZyhg8J+SviBDYWNoZSBoaXQgZm9yICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuICAgIFxuICAgIC8vIEV4ZWN1dGUgYW5kIGNhY2hlIHJlc3VsdFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5leHQoY29udGV4dCk7XG4gICAgY2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICBkYXRhOiByZXN1bHQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICB0dGw6IERFRkFVTFRfVFRMLFxuICAgIH0pO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKGDwn5K+IENhY2hlZCByZXN1bHQgZm9yICR7Y2FjaGVLZXl9YCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0pKCk7Il19","/**\n * Simple in-memory audit storage (for demo purposes)\n */\nclass InMemoryAuditStorage {\n constructor() {\n this.entries = [];\n }\n async save(entry) {\n this.entries.push(entry);\n console.log('📋 Audit entry saved:', entry);\n }\n getEntries() {\n return [...this.entries];\n }\n getEntriesForEntity(entityName) {\n return this.entries.filter(entry => entry.entityName === entityName);\n }\n clear() {\n this.entries.length = 0;\n }\n}\n// Global audit storage instance\nconst auditStorage = new InMemoryAuditStorage();\n/**\n * Audit middleware that tracks all entity operations\n */\nexport const auditMiddleware = async (context, next) => {\n const auditEntry = {\n id: `audit_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n entityName: context.entityName,\n operation: context.operation,\n user: context.metadata.user?.id || 'system',\n timestamp: new Date(),\n requestId: context.metadata.requestId,\n };\n // Add operation-specific data\n switch (context.operation) {\n case 'insertOne':\n auditEntry.changes = { created: context.input.entity };\n break;\n case 'updateOne':\n auditEntry.entityId = context.input.id;\n auditEntry.changes = { updated: context.input.keyValues };\n break;\n case 'deleteOne':\n auditEntry.entityId = context.input.id;\n auditEntry.changes = { deleted: true };\n break;\n case 'getOne':\n auditEntry.entityId = context.input.id;\n break;\n case 'query':\n auditEntry.metadata = { queryRequest: context.input.request };\n break;\n case 'initial':\n auditEntry.metadata = {\n collectionSize: context.input.collection?.length,\n options: context.input.options\n };\n break;\n }\n try {\n const result = await next(context);\n // For insert operations, capture the generated ID\n if (context.operation === 'insertOne' && result) {\n auditEntry.entityId = result;\n }\n // Save audit entry\n await auditStorage.save(auditEntry);\n return result;\n }\n catch (error) {\n // Save audit entry even for failed operations\n auditEntry.metadata = {\n ...auditEntry.metadata,\n error: error instanceof Error ? error.message : 'Unknown error'\n };\n await auditStorage.save(auditEntry);\n throw error;\n }\n};\n/**\n * User context middleware - adds user information to context\n */\nexport const userContextMiddleware = async (context, next) => {\n // In a real application, you would inject your auth service here\n // const authService = inject(AuthService);\n // const user = authService.getCurrentUser();\n // For demo purposes, we'll use a mock user\n const mockUser = {\n id: 'user123',\n name: 'John Doe',\n role: 'admin',\n };\n context.metadata.user = mockUser;\n return next(context);\n};\n/**\n * Data sanitization middleware - removes sensitive data from logs\n */\nexport const dataSanitizationMiddleware = async (context, next) => {\n const sensitiveFields = ['password', 'ssn', 'creditCard', 'apiKey', 'token'];\n // Sanitize input data\n if (context.input.entity) {\n context.input.entity = sanitizeObject(context.input.entity, sensitiveFields);\n }\n if (context.input.keyValues) {\n context.input.keyValues = sanitizeObject(context.input.keyValues, sensitiveFields);\n }\n const result = await next(context);\n // Sanitize result data if needed\n if (result && typeof result === 'object') {\n return sanitizeObject(result, sensitiveFields);\n }\n return result;\n};\n/**\n * Helper function to sanitize objects by removing sensitive fields\n */\nfunction sanitizeObject(obj, sensitiveFields) {\n if (!obj || typeof obj !== 'object') {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(item => sanitizeObject(item, sensitiveFields));\n }\n const sanitized = { ...obj };\n for (const field of sensitiveFields) {\n if (field in sanitized) {\n sanitized[field] = '[REDACTED]';\n }\n }\n // Recursively sanitize nested objects\n for (const [key, value] of Object.entries(sanitized)) {\n if (value && typeof value === 'object') {\n sanitized[key] = sanitizeObject(value, sensitiveFields);\n }\n }\n return sanitized;\n}\n/**\n * Export audit storage for external access\n */\nexport { auditStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUvbWlkZGxld2FyZXMvYXVkaXQubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QkE7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQjtJQUExQjtRQUNVLFlBQU8sR0FBb0IsRUFBRSxDQUFDO0lBa0J4QyxDQUFDO0lBaEJDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBK0IsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNqRixNQUFNLFVBQVUsR0FBa0I7UUFDaEMsRUFBRSxFQUFFLFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJ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TyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDckQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlLCBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dCB9IGZyb20gJy4uL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuXG4vKipcbiAqIEF1ZGl0IHRyYWlsIGVudHJ5IGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEF1ZGl0RW50cnkge1xuICBpZDogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIG9wZXJhdGlvbjogc3RyaW5nO1xuICBlbnRpdHlJZD86IGFueTtcbiAgY2hhbmdlcz86IGFueTtcbiAgdXNlcj86IHN0cmluZztcbiAgdGltZXN0YW1wOiBEYXRlO1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBhbnk7XG59XG5cbi8qKlxuICogQXVkaXQgdHJhaWwgc3RvcmFnZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBBdWRpdFN0b3JhZ2Uge1xuICBzYXZlKGVudHJ5OiBBWFBBdWRpdEVudHJ5KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBTaW1wbGUgaW4tbWVtb3J5IGF1ZGl0IHN0b3JhZ2UgKGZvciBkZW1vIHB1cnBvc2VzKVxuICovXG5jbGFzcyBJbk1lbW9yeUF1ZGl0U3RvcmFnZSBpbXBsZW1lbnRzIEFYUEF1ZGl0U3RvcmFnZSB7XG4gIHByaXZhdGUgZW50cmllczogQVhQQXVkaXRFbnRyeVtdID0gW107XG5cbiAgYXN5bmMgc2F2ZShlbnRyeTogQVhQQXVkaXRFbnRyeSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICBjb25zb2xlLmxvZygn8J+TiyBBdWRpdCBlbnRyeSBzYXZlZDonLCBlbnRyeSk7XG4gIH1cblxuICBnZXRFbnRyaWVzKCk6IEFYUEF1ZGl0RW50cnlbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmVudHJpZXNdO1xuICB9XG5cbiAgZ2V0RW50cmllc0ZvckVudGl0eShlbnRpdHlOYW1lOiBzdHJpbmcpOiBBWFBBdWRpdEVudHJ5W10ge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmVudGl0eU5hbWUgPT09IGVudGl0eU5hbWUpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5lbnRyaWVzLmxlbmd0aCA9IDA7XG4gIH1cbn1cblxuLy8gR2xvYmFsIGF1ZGl0IHN0b3JhZ2UgaW5zdGFuY2VcbmNvbnN0IGF1ZGl0U3RvcmFnZSA9IG5ldyBJbk1lbW9yeUF1ZGl0U3RvcmFnZSgpO1xuXG4vKipcbiAqIEF1ZGl0IG1pZGRsZXdhcmUgdGhhdCB0cmFja3MgYWxsIGVudGl0eSBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBhdWRpdE1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgY29uc3QgYXVkaXRFbnRyeTogQVhQQXVkaXRFbnRyeSA9IHtcbiAgICBpZDogYGF1ZGl0XyR7RGF0ZS5ub3coKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YCxcbiAgICBlbnRpdHlOYW1lOiBjb250ZXh0LmVudGl0eU5hbWUsXG4gICAgb3BlcmF0aW9uOiBjb250ZXh0Lm9wZXJhdGlvbixcbiAgICB1c2VyOiBjb250ZXh0Lm1ldGFkYXRhLnVzZXI/LmlkIHx8ICdzeXN0ZW0nLFxuICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICByZXF1ZXN0SWQ6IGNvbnRleHQubWV0YWRhdGEucmVxdWVzdElkLFxuICB9O1xuXG4gIC8vIEFkZCBvcGVyYXRpb24tc3BlY2lmaWMgZGF0YVxuICBzd2l0Y2ggKGNvbnRleHQub3BlcmF0aW9uKSB7XG4gICAgY2FzZSAnaW5zZXJ0T25lJzpcbiAgICAgIGF1ZGl0RW50cnkuY2hhbmdlcyA9IHsgY3JlYXRlZDogY29udGV4dC5pbnB1dC5lbnRpdHkgfTtcbiAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgY2FzZSAndXBkYXRlT25lJzpcbiAgICAgIGF1ZGl0RW50cnkuZW50aXR5SWQgPSBjb250ZXh0LmlucHV0LmlkO1xuICAgICAgYXVkaXRFbnRyeS5jaGFuZ2VzID0geyB1cGRhdGVkOiBjb250ZXh0LmlucHV0LmtleVZhbHVlcyB9O1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdkZWxldGVPbmUnOlxuICAgICAgYXVkaXRFbnRyeS5lbnRpdHlJZCA9IGNvbnRleHQuaW5wdXQuaWQ7XG4gICAgICBhdWRpdEVudHJ5LmNoYW5nZXMgPSB7IGRlbGV0ZWQ6IHRydWUgfTtcbiAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgY2FzZSAnZ2V0T25lJzpcbiAgICAgIGF1ZGl0RW50cnkuZW50aXR5SWQgPSBjb250ZXh0LmlucHV0LmlkO1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdxdWVyeSc6XG4gICAgICBhdWRpdEVudHJ5Lm1ldGFkYXRhID0geyBxdWVyeVJlcXVlc3Q6IGNvbnRleHQuaW5wdXQucmVxdWVzdCB9O1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdpbml0aWFsJzpcbiAgICAgIGF1ZGl0RW50cnkubWV0YWRhdGEgPSB7IFxuICAgICAgICBjb2xsZWN0aW9uU2l6ZTogY29udGV4dC5pbnB1dC5jb2xsZWN0aW9uPy5sZW5ndGgsXG4gICAgICAgIG9wdGlvbnM6IGNvbnRleHQuaW5wdXQub3B0aW9ucyBcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChjb250ZXh0KTtcbiAgICBcbiAgICAvLyBGb3IgaW5zZXJ0IG9wZXJhdGlvbnMsIGNhcHR1cmUgdGhlIGdlbmVyYXRlZCBJRFxuICAgIGlmIChjb250ZXh0Lm9wZXJhdGlvbiA9PT0gJ2luc2VydE9uZScgJiYgcmVzdWx0KSB7XG4gICAgICBhdWRpdEVudHJ5LmVudGl0eUlkID0gcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAvLyBTYXZlIGF1ZGl0IGVudHJ5XG4gICAgYXdhaXQgYXVkaXRTdG9yYWdlLnNhdmUoYXVkaXRFbnRyeSk7XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBTYXZlIGF1ZGl0IGVudHJ5IGV2ZW4gZm9yIGZhaWxlZCBvcGVyYXRpb25zXG4gICAgYXVkaXRFbnRyeS5tZXRhZGF0YSA9IHsgXG4gICAgICAuLi5hdWRpdEVudHJ5Lm1ldGFkYXRhLFxuICAgICAgZXJyb3I6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InIFxuICAgIH07XG4gICAgYXdhaXQgYXVkaXRTdG9yYWdlLnNhdmUoYXVkaXRFbnRyeSk7XG4gICAgXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbi8qKlxuICogVXNlciBjb250ZXh0IG1pZGRsZXdhcmUgLSBhZGRzIHVzZXIgaW5mb3JtYXRpb24gdG8gY29udGV4dFxuICovXG5leHBvcnQgY29uc3QgdXNlckNvbnRleHRNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9IGFzeW5jIChjb250ZXh0LCBuZXh0KSA9PiB7XG4gIC8vIEluIGEgcmVhbCBhcHBsaWNhdGlvbiwgeW91IHdvdWxkIGluamVjdCB5b3VyIGF1dGggc2VydmljZSBoZXJlXG4gIC8vIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgLy8gY29uc3QgdXNlciA9IGF1dGhTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG4gIFxuICAvLyBGb3IgZGVtbyBwdXJwb3Nlcywgd2UnbGwgdXNlIGEgbW9jayB1c2VyXG4gIGNvbnN0IG1vY2tVc2VyID0ge1xuICAgIGlkOiAndXNlcjEyMycsXG4gICAgbmFtZTogJ0pvaG4gRG9lJyxcbiAgICByb2xlOiAnYWRtaW4nLFxuICB9O1xuICBcbiAgY29udGV4dC5tZXRhZGF0YS51c2VyID0gbW9ja1VzZXI7XG4gIFxuICByZXR1cm4gbmV4dChjb250ZXh0KTtcbn07XG5cbi8qKlxuICogRGF0YSBzYW5pdGl6YXRpb24gbWlkZGxld2FyZSAtIHJlbW92ZXMgc2Vuc2l0aXZlIGRhdGEgZnJvbSBsb2dzXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRhU2FuaXRpemF0aW9uTWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgPSBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICBjb25zdCBzZW5zaXRpdmVGaWVsZHMgPSBbJ3Bhc3N3b3JkJywgJ3NzbicsICdjcmVkaXRDYXJkJywgJ2FwaUtleScsICd0b2tlbiddO1xuICBcbiAgLy8gU2FuaXRpemUgaW5wdXQgZGF0YVxuICBpZiAoY29udGV4dC5pbnB1dC5lbnRpdHkpIHtcbiAgICBjb250ZXh0LmlucHV0LmVudGl0eSA9IHNhbml0aXplT2JqZWN0KGNvbnRleHQuaW5wdXQuZW50aXR5LCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICBpZiAoY29udGV4dC5pbnB1dC5rZXlWYWx1ZXMpIHtcbiAgICBjb250ZXh0LmlucHV0LmtleVZhbHVlcyA9IHNhbml0aXplT2JqZWN0KGNvbnRleHQuaW5wdXQua2V5VmFsdWVzLCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICBcbiAgLy8gU2FuaXRpemUgcmVzdWx0IGRhdGEgaWYgbmVlZGVkXG4gIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gc2FuaXRpemVPYmplY3QocmVzdWx0LCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gc2FuaXRpemUgb2JqZWN0cyBieSByZW1vdmluZyBzZW5zaXRpdmUgZmllbGRzXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplT2JqZWN0KG9iajogYW55LCBzZW5zaXRpdmVGaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIFxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoaXRlbSA9PiBzYW5pdGl6ZU9iamVjdChpdGVtLCBzZW5zaXRpdmVGaWVsZHMpKTtcbiAgfVxuICBcbiAgY29uc3Qgc2FuaXRpemVkID0geyAuLi5vYmogfTtcbiAgXG4gIGZvciAoY29uc3QgZmllbGQgb2Ygc2Vuc2l0aXZlRmllbGRzKSB7XG4gICAgaWYgKGZpZWxkIGluIHNhbml0aXplZCkge1xuICAgICAgc2FuaXRpemVkW2ZpZWxkXSA9ICdbUkVEQUNURURdJztcbiAgICB9XG4gIH1cbiAgXG4gIC8vIFJlY3Vyc2l2ZWx5IHNhbml0aXplIG5lc3RlZCBvYmplY3RzXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNhbml0aXplZCkpIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgc2FuaXRpemVkW2tleV0gPSBzYW5pdGl6ZU9iamVjdCh2YWx1ZSwgc2Vuc2l0aXZlRmllbGRzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiBzYW5pdGl6ZWQ7XG59XG5cbi8qKlxuICogRXhwb3J0IGF1ZGl0IHN0b3JhZ2UgZm9yIGV4dGVybmFsIGFjY2Vzc1xuICovXG5leHBvcnQgeyBhdWRpdFN0b3JhZ2UgfTsiXX0=","// Core middleware types and utilities\nexport * from './entity-storage.middleware';\nexport * from './entity-storage.registry';\nexport * from './entity-storage.executor';\nexport * from './entity-storage-with-middleware.service';\nexport * from './provide-entity-storage-middleware';\n// Pre-built middleware implementations\nexport * from './middlewares/logging.middleware';\nexport * from './middlewares/audit.middleware';\n// Re-export original service for compatibility\nexport * from '../entity-storage-service';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsdUNBQXVDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQywrQ0FBK0M7QUFDL0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgbWlkZGxld2FyZSB0eXBlcyBhbmQgdXRpbGl0aWVzXG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5yZWdpc3RyeSc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXN0b3JhZ2Utd2l0aC1taWRkbGV3YXJlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWVudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUnO1xuXG4vLyBQcmUtYnVpbHQgbWlkZGxld2FyZSBpbXBsZW1lbnRhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbWlkZGxld2FyZXMvbG9nZ2luZy5taWRkbGV3YXJlJztcbmV4cG9ydCAqIGZyb20gJy4vbWlkZGxld2FyZXMvYXVkaXQubWlkZGxld2FyZSc7XG5cbi8vIFJlLWV4cG9ydCBvcmlnaW5hbCBzZXJ2aWNlIGZvciBjb21wYXRpYmlsaXR5XG5leHBvcnQgKiBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS1zZXJ2aWNlJzsiXX0=","export class AXPEntityCommandSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('command', 'Commands', 'command', 'fa-solid fa-command', 1, {\n format: {\n id: '{{id}}',\n },\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24tY29tbWFuZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHdDQUF3QztJQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJDO1FBQ3ZELE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO1lBQ2hGLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsUUFBUTthQUNiO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUsU0FBUztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciwgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250ZXh0LmFkZERlZmluaXRpb24oJ2NvbW1hbmQnLCAnQ29tbWFuZHMnLCAnY29tbWFuZCcsICdmYS1zb2xpZCBmYS1jb21tYW5kJywgMSwge1xuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIGlkOiAne3tpZH19JyxcbiAgICAgIH0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICAgIHR5cGU6ICd2aWV3JyxcbiAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntitySearchDefinitionProvider {\n constructor() {\n this.entityRegister = inject(AXPEntityDefinitionRegistryService);\n }\n async provide(context) {\n console.log(\"AXPEntitySearchDefinitionProvider\", this.entityRegister.getAll());\n this.entityRegister.getAll().forEach((entity) => {\n context.addDefinition(`Module.${entity.module}.${entity.name}`, entity.formats.searchResult?.description ?? entity.module, `Module.${entity.module}`, 'fa-solid fa-objects-column', 4, {\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n format: {\n title: entity.formats.searchResult?.title,\n description: (entity.formats.searchResult?.description ?? entity.module) + ' / ' + entity.title,\n id: '{{data.id}}',\n },\n });\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE1BQU0sT0FBTyxpQ0FBaUM7SUFBOUM7UUFDRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBNkI5RCxDQUFDO0lBM0JDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkM7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QyxPQUFPLENBQUMsYUFBYSxDQUNuQixVQUFVLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sRUFDekQsVUFBVSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQ3pCLDRCQUE0QixFQUM1QixDQUFDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQO3dCQUNFLElBQUksRUFBRSxhQUFhO3dCQUNuQixJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsU0FBUztxQkFDcEI7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLO29CQUN6QyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSztvQkFDL0YsRUFBRSxFQUFFLGFBQWE7aUJBQ2xCO2FBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBlbnRpdHlSZWdpc3RlciA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhcIkFYUEVudGl0eVNlYXJjaERlZmluaXRpb25Qcm92aWRlclwiLCB0aGlzLmVudGl0eVJlZ2lzdGVyLmdldEFsbCgpKTtcblxuICAgIHRoaXMuZW50aXR5UmVnaXN0ZXIuZ2V0QWxsKCkuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBjb250ZXh0LmFkZERlZmluaXRpb24oXG4gICAgICAgIGBNb2R1bGUuJHtlbnRpdHkubW9kdWxlfS4ke2VudGl0eS5uYW1lfWAsXG4gICAgICAgIGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgYE1vZHVsZS4ke2VudGl0eS5tb2R1bGV9YCxcbiAgICAgICAgJ2ZhLXNvbGlkIGZhLW9iamVjdHMtY29sdW1uJyxcbiAgICAgICAgNCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgdGl0bGU6IGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogKGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSkgKyAnIC8gJyArIGVudGl0eS50aXRsZSxcbiAgICAgICAgICAgIGlkOiAne3tkYXRhLmlkfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXLoadingModule } from '@acorex/components/loading';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, signal } from '@angular/core';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { castArray, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/loading\";\nimport * as i2 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.entityResolver = inject(AXPEntityResolver);\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.badgeClass = computed(() => this.options()['badgeClass'] ?? 'ax-accent1', ...(ngDevMode ? [{ debugName: \"badgeClass\" }] : []));\n this.displayField = computed(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n }, ...(ngDevMode ? [{ debugName: \"displayField\" }] : []));\n this.loading = signal(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.displayItems = signal([], ...(ngDevMode ? [{ debugName: \"displayItems\" }] : []));\n this.efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n }, ...(ngDevMode ? [{ debugName: \"efEntity\" }] : []));\n this.efDisplay = effect(async () => {\n const value = this.getValue();\n if (isNil(value)) {\n this.displayItems.set([]);\n }\n else {\n const items = castArray(value).map(async (item) => await this.extractItem(item));\n this.displayItems.set(await Promise.all(items));\n }\n }, ...(ngDevMode ? [{ debugName: \"efDisplay\" }] : []));\n }\n async extractItem(item) {\n if (typeof item == 'object') {\n return {\n id: item[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', item),\n };\n }\n else {\n const def = this.entityDef();\n const byKey = def?.queries.byKey?.execute;\n if (byKey) {\n this.loading.set(true);\n const fetchedItem = await byKey(item);\n this.loading.set(false);\n return {\n id: fetchedItem[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', fetchedItem),\n };\n }\n return {\n id: item,\n text: item\n };\n }\n }\n get __class() {\n const cls = {};\n cls[`ax-flex`] = true;\n cls[`ax-gap-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetViewComponent, isStandalone: true, selector: \"axp-lookup-widget-view\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @if(displayItems().length > 1) {\n @for (item of displayItems(); track $index) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"item.text\" ></ax-badge>\n }\n }\n @else if(displayItems().length == 1) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"displayItems()[0].text\" ></ax-badge>\n }\n @else {\n <span class=\"ax-text-muted\">---</span>\n }\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i1.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i2.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-view',\n template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @if(displayItems().length > 1) {\n @for (item of displayItems(); track $index) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"item.text\" ></ax-badge>\n }\n }\n @else if(displayItems().length == 1) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"displayItems()[0].text\" ></ax-badge>\n }\n @else {\n <span class=\"ax-text-muted\">---</span>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXLoadingModule, AXBadgeModule]\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQTBCN0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUE0QjtJQXhCOUU7O1FBeUJxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3BELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBVyxrREFBQyxDQUFDO1FBQ3BFLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxD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cm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEhvc3RCaW5kaW5nLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb29rdXAtd2lkZ2V0LXZpZXcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihsb2FkaW5nKCkpXG4gICAge1xuICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgIH1cbiAgICBAZWxzZXtcbiAgICAgICAgQGlmKGRpc3BsYXlJdGVtcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXlJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxheC1iYWRnZSBjbGFzcz1cImF4LXAtMC41IHt7YmFkZ2VDbGFzcygpfX1cIiAgW3RleHRdPVwiaXRlbS50ZXh0XCIgPjwvYXgtYmFkZ2U+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKGRpc3BsYXlJdGVtcygpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgPGF4LWJhZGdlIGNsYXNzPVwiYXgtcC0wLjUge3tiYWRnZUNsYXNzKCl9fVwiICBbdGV4dF09XCJkaXNwbGF5SXRlbXMoKVswXS50ZXh0XCIgPjwvYXgtYmFkZ2U+XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1tdXRlZFwiPi0tLTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWExvYWRpbmdNb2R1bGUsIEFYQmFkZ2VNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcblxuXG4gIHByb3RlY3RlZCBlbnRpdHkgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydlbnRpdHknXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHZhbHVlRmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndmFsdWVGaWVsZCddIGFzIHN0cmluZykgPz8gJ2lkJyk7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcbiAgcHJvdGVjdGVkIGJhZGdlQ2xhc3MgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsnYmFkZ2VDbGFzcyddIGFzIHN0cmluZykgPz8gJ2F4LWFjY2VudDEnKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEZpZWxkKCkgPz8gdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5sb29rdXAgPz8gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgIT0gJ2lkJyk/Lm5hbWUgPz8gJ3RpdGxlJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIGVudGl0eURlZiA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheUl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cblxuICBwcml2YXRlIGVmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICB9KTtcblxuICBwcml2YXRlIGVmRGlzcGxheSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuc2V0KFtdKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGNhc3RBcnJheSh2YWx1ZSkubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IGF3YWl0IHRoaXMuZXh0cmFjdEl0ZW0oaXRlbSkpO1xuICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuc2V0KGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zKSk7XG4gICAgfVxuICB9KVxuXG5cbiAgcHJpdmF0ZSBhc3luYyBleHRyYWN0SXRlbShpdGVtOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSxcbiAgICAgICAgdGV4dDogdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmRpc3BsYXlGaWVsZCgpLCAnc3RyaW5nJywgaXRlbSksXG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgZGVmID0gdGhpcy5lbnRpdHlEZWYoKTtcbiAgICAgIGNvbnN0IGJ5S2V5ID0gZGVmPy5xdWVyaWVzLmJ5S2V5Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgaWYgKGJ5S2V5KSB7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IGZldGNoZWRJdGVtID0gYXdhaXQgYnlLZXkoaXRlbSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiBmZXRjaGVkSXRlbVt0aGlzLnZhbHVlRmllbGQoKV0sXG4gICAgICAgICAgdGV4dDogdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmRpc3BsYXlGaWVsZCgpLCAnc3RyaW5nJywgZmV0Y2hlZEl0ZW0pLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbSxcbiAgICAgICAgdGV4dDogaXRlbVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2NsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xzOiBhbnkgPSB7fTtcbiAgICBjbHNbYGF4LWZsZXhgXSA9IHRydWU7XG4gICAgY2xzW2BheC1nYXAtMWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/data-table\";\nimport * as i5 from \"@acorex/components/search-box\";\nimport * as i6 from \"@acorex/platform/layout/builder\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.initialSelectedItems = [];\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.allowSelect = computed(() => this.selectedItems().length > 0, ...(ngDevMode ? [{ debugName: \"allowSelect\" }] : []));\n }\n ngAfterViewInit() {\n if (this.initialSelectedItems.length > 0 && this.grid()) {\n this.grid()?.selectRows(...this.initialSelectedItems);\n }\n if (this.searchTerm) {\n this.vm.applyInlineFilter(this.searchTerm);\n }\n else {\n this.vm.applyFilterAndSort();\n }\n }\n handleRowDbClick(e) {\n this.close({ items: [e.data] });\n }\n handleRowClick(e) {\n if (this.vm.allowMultiple()) {\n this.selectedItems.set([...this.selectedItems(), e.data]);\n }\n else if (this.selectedItems().length > 0) {\n const selected = this.selectedItems().find((item) => item.id === e.data.id);\n if (selected) {\n this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n else if (this.selectedItems().length === 0) {\n this.selectedItems.set([e.data]);\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n async handleSelectedRowsChange(rows) {\n this.selectedItems.set(rows);\n }\n handleChangeSearchValue(e) {\n if (e.isUserInteraction) {\n this.vm.applyInlineFilter(e.value);\n }\n }\n async handleCreateNewClick() {\n this.close();\n await this.vm.create();\n }\n handleCloseClick() {\n this.close();\n }\n handleSelectClick() {\n this.close({ items: this.selectedItems() });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetSelectorComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i1.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i4.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"selectedRows\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"noDataTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i4.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i5.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i6.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXCommonModule,\n AXButtonModule,\n AXFormModule,\n AXDecoratorModule,\n AXDropdownButtonModule,\n AXDataTableModule,\n AXSearchBoxModule,\n AXPLayoutBuilderModule,\n AXTranslationModule,\n ],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUQsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBRUwsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQW9GL0QsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWxGekU7O1FBdUZZLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sZ0RBQUMsQ0FBQztR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QUssQ0FBQyxvQkFBb0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FsRVUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNk1BakZqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQsMkRBR0MsWUFBWSw4QkFDWixjQUFjLDJKQUNkLGNBQWMsNlhBQ2QsWUFBWSw4QkFDWixpQkFBaUIsc2NBQ2pCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLDJvQkFDakIsaUJBQWlCLDRZQUNqQixzQkFBc0IsbVNBQ3RCLG1CQUFtQjs7MkZBSVYsZ0NBQWdDO2tCQWxGNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00ICBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIEBpZiAodm0uaGFzSW5saW5lRmlsdGVycygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgdm0uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPjxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b25cbiAgICAgICAgICA+PC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxheC1kYXRhLXRhYmxlXG4gICAgICAgICNncmlkXG4gICAgICAgIFtzaG93Rm9vdGVyXT1cImZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJheC1oLVs1MHZoXVwiXG4gICAgICAgIFtwYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCJcbiAgICAgICAgW2xvYWRpbmddPVwieyBlbmFibGVkOiB0cnVlLCBhbmltYXRpb246IHRydWUgfVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cInZtLmRhdGFTb3VyY2VcIlxuICAgICAgICBbcGFyZW50RmllbGRdPVwidm0ucGFyZW50S2V5KClcIlxuICAgICAgICAoc2VsZWN0ZWRSb3dzQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uUm93Q2xpY2spPVwiaGFuZGxlUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmICh2bS5hbGxvd011bHRpcGxlKCkpIHtcbiAgICAgICAgICA8YXgtc2VsZWN0LWNvbHVtbiBmaXhlZD1cInN0YXJ0XCIgW3dpZHRoXT1cIic1MHB4J1wiPjwvYXgtc2VsZWN0LWNvbHVtbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChjb2wgb2Ygdm0uY29sdW1ucygpOyB0cmFjayBjb2wubmFtZSkge1xuICAgICAgICAgIEBpZiAoY29sLnZpc2libGUpIHtcbiAgICAgICAgICAgIDxheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbZXhwYW5kSGFuZGxlcl09XCIkaW5kZXggPT09IDAgJiYgdm0ucGFyZW50S2V5KCkgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFtub2RlXT1cImNvbC5ub2RlKClcIlxuICAgICAgICAgICAgPjwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2F4LWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGF4LWZvb3Rlcj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgW3RleHRdPVwiKCdjbG9zZScgfCB0cmFuc2xhdGUgfCBhc3luYykhXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIignc2VsZWN0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNlbGVjdENsaWNrKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxvd1NlbGVjdCgpID09PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIEBpZiAoIXZtLmNhbkNyZWF0ZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbdGV4dF09XCInQ3JlYXRlLU5ldycgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDcmVhdGVOZXdDbGljaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtZm9vdGVyPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIF0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB2bTogQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWw7XG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICBwcm90ZWN0ZWQgZ3JpZCA9IHZpZXdDaGlsZDxBWERhdGFUYWJsZUNvbXBvbmVudD4oJ2dyaWQnKTtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbFNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcm90ZWN0ZWQgYWxsb3dTZWxlY3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKTtcblxuICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluaXRpYWxTZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5ncmlkKCkpIHtcbiAgICAgIHRoaXMuZ3JpZCgpPy5zZWxlY3RSb3dzKC4uLnRoaXMuaW5pdGlhbFNlbGVjdGVkSXRlbXMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudm0uYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiBbZS5kYXRhXSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhlOiBBWERhdGFUYWJsZVJvd0NsaWNrKSB7XG4gICAgaWYgKHRoaXMudm0uYWxsb3dNdWx0aXBsZSgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXMoKSwgZS5kYXRhXSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGUuZGF0YS5pZCk7XG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldCh0aGlzLnNlbGVjdGVkSXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IHNlbGVjdGVkLmlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtlLmRhdGFdKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbZS5kYXRhXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW2UuZGF0YV0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2Uocm93czogdW5rbm93bltdKSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChyb3dzKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy52bS5hcHBseUlubGluZUZpbHRlcihlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIGF3YWl0IHRoaXMudm0uY3JlYXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSB9KTtcbiAgfVxufVxuIl19","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPCleanNestedFilters, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed } from '@angular/core';\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\nexport class AXPLookupWidgetSelectorViewModel {\n constructor(injector, entityDef, options = {\n parentFilters: null,\n customFilter: null,\n sortedFields: [],\n columns: [],\n }) {\n this.injector = injector;\n this.entityDef = entityDef;\n this.options = options;\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n this.mergeFilter(e, this.options.customFilter);\n return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n this.canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n }, ...(ngDevMode ? [{ debugName: \"canCreate\" }] : []));\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n }, ...(ngDevMode ? [{ debugName: \"allowMultiple\" }] : []));\n this.inlineFiltersPlaceholders = computed(() => {\n return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n this.columns = () => {\n const listColumns = this.entityDef.columns ?? [];\n const columns = listColumns?.map((c) => c.name) ?? [];\n const props = this.entityDef.properties.filter((p) => p.schema.hidden != true);\n const displayColumns = props.filter((p) => (this.options.columns?.length ?? 0) > 0\n ? this.options.columns.some((c) => c == p.name)\n : columns.some((c) => c == p.name));\n //\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, listColumns?.find((c) => c.name == p.name));\n });\n };\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n this.advanceFilters = {\n field: null,\n logic: 'and',\n operator: null,\n filters: [],\n };\n }\n async create() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n applyInlineFilter(value, refresh = true) {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.inline?.enabled);\n this.inlineFilters.filters = [];\n if (value) {\n props.forEach((p) => {\n this.inlineFilters.filters?.push({\n field: p.name,\n operator: {\n type: 'contains',\n },\n value,\n });\n });\n }\n if (refresh)\n this.applyFilterAndSort();\n }\n applyFilterAndSort() {\n // this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n // Check if inlineFilters or parentFilters have any filters\n const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;\n const hasParentFilters = (this.options.parentFilters?.filters?.length ?? 0) > 0;\n // Construct the filters array based on the presence of filters\n const filters = [];\n console.log(this.options.customFilter);\n if (this.options.customFilter) {\n const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);\n if (cleanedFilters.length > 0) {\n filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));\n }\n }\n if (hasInlineFilters) {\n filters.push(this.inlineFilters);\n }\n if (hasParentFilters && this.options.parentFilters) {\n filters.push(this.options.parentFilters);\n }\n // Apply the filters to the dataSource\n this.dataSource.filter({\n field: null,\n logic: 'and',\n operator: null,\n filters: filters,\n });\n // Refresh the dataSource\n this.dataSource.refresh();\n }\n async find(value) {\n this.applyInlineFilter(value.trim(), false);\n const func = this.entityDef.queries.list?.execute;\n return (await func({ filter: this.inlineFilters, take: 10 })) ?? [];\n }\n setCustomFilter(filter) {\n this.options.customFilter = filter;\n this.applyFilterAndSort();\n }\n mergeFilter(request, filter) {\n if (!filter) {\n return request;\n }\n if (request.filter) {\n request.filter = {\n logic: 'and',\n filters: [...[request.filter], ...(filter.filters ?? [])]\n };\n }\n else {\n request.filter = filter;\n }\n return request;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBMkUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzSCxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtDQUFrQyxFQUNsQyxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFDVSxRQUFrQixFQUNsQixTQUFvQixFQUNwQixVQU1KO1FBQ0EsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7S0FDWjtRQWJLLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQVdaO1FBakJHLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELDZCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFtQnpGLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtn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O1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLEdBQUc7Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMxRCxDQUFBO1FBQ0gsQ0FBQzthQUNJLENBQUM7WUFDSixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VRdWVyeSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBDbGVhbk5lc3RlZEZpbHRlcnMsXG4gIEFYUEVudGl0eSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vZW50aXR5LnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlcXVlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwge1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSB0aGlzLmluamVjdG9yLmdldChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGVudGl0eURlZjogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgb3B0aW9uczoge1xuICAgICAgcGFyZW50RmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IG51bGw7XG4gICAgICBjdXN0b21GaWx0ZXI/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuICAgICAgc29ydGVkRmllbGRzPzogeyBuYW1lOiBzdHJpbmc7IGRpcjogJ2FzYycgfCAnZGVzYycgfVtdO1xuICAgICAgYWxsb3dNdWx0aXBsZT86IGJvb2xlYW47XG4gICAgICBjb2x1bW5zPzogc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgICAgcGFyZW50RmlsdGVyczogbnVsbCxcbiAgICAgICAgY3VzdG9tRmlsdGVyOiBudWxsLFxuICAgICAgICBzb3J0ZWRGaWVsZHM6IFtdLFxuICAgICAgICBjb2x1bW5zOiBbXSxcbiAgICAgIH0sXG4gICkgeyB9XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgdGhpcy5tZXJnZUZpbHRlcihlLCB0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyKTtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIGNhbkNyZWF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSAhPSBudWxsO1xuICB9KTtcblxuICBwdWJsaWMgcGFyZW50S2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXk7XG4gIH0pO1xuXG4gIHB1YmxpYyBhbGxvd011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZSA/PyBmYWxzZTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWY/LnByb3BlcnRpZXMuZmlsdGVyKChwKSA9PiBwLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKS5tYXAoKGMpID0+IGMudGl0bGUgPz8gYy5uYW1lKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY29sdW1ucyA9ICgpID0+IHtcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3QgY29sdW1ucyA9IGxpc3RDb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpO1xuICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PlxuICAgICAgKHRoaXMub3B0aW9ucy5jb2x1bW5zPy5sZW5ndGggPz8gMCkgPiAwXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmNvbHVtbnMhLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKVxuICAgICAgICA6IGNvbHVtbnMuc29tZSgoYykgPT4gYyA9PSBwLm5hbWUpLFxuICAgICk7XG4gICAgLy9cbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gcC5uYW1lKSEpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBhZHZhbmNlRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ2FuZCcsXG4gICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgIGZpbHRlcnM6IFtdLFxuICB9O1xuXG4gIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcsIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnMgPSBbXTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHByb3BzLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2gpIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgLy8gdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuc29ydGVkRmllbGRzKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIC8vIENoZWNrIGlmIGlubGluZUZpbHRlcnMgb3IgcGFyZW50RmlsdGVycyBoYXZlIGFueSBmaWx0ZXJzXG4gICAgY29uc3QgaGFzSW5saW5lRmlsdGVycyA9ICh0aGlzLmlubGluZUZpbHRlcnM/LmZpbHRlcnM/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gICAgY29uc3QgaGFzUGFyZW50RmlsdGVycyA9ICh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgZmlsdGVycyBhcnJheSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgZmlsdGVyc1xuICAgIGNvbnN0IGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XG4gICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlcik7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21GaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWRGaWx0ZXJzID0gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKFt0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyXSk7XG4gICAgICBpZiAoY2xlYW5lZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKGNsZWFuZWRGaWx0ZXJzWzBdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNJbmxpbmVGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5pbmxpbmVGaWx0ZXJzKTtcbiAgICB9XG4gICAgaWYgKGhhc1BhcmVudEZpbHRlcnMgJiYgdGhpcy5vcHRpb25zLnBhcmVudEZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycyk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIGZpbHRlcnMgdG8gdGhlIGRhdGFTb3VyY2VcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSk7XG5cbiAgICAvLyBSZWZyZXNoIHRoZSBkYXRhU291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xuICAgIHRoaXMuYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWUudHJpbSgpLCBmYWxzZSk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICByZXR1cm4gKGF3YWl0IGZ1bmMoeyBmaWx0ZXI6IHRoaXMuaW5saW5lRmlsdGVycywgdGFrZTogMTAgfSkpID8/IFtdO1xuICB9XG5cbiAgc2V0Q3VzdG9tRmlsdGVyKGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uKSB7XG4gICAgdGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlciA9IGZpbHRlcjtcbiAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICB9XG5cblxuICBtZXJnZUZpbHRlcihyZXF1ZXN0OiBBWERhdGFTb3VyY2VRdWVyeSwgZmlsdGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBpZiAocmVxdWVzdC5maWx0ZXIpIHtcbiAgICAgIHJlcXVlc3QuZmlsdGVyID0ge1xuICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgIGZpbHRlcnM6IFsuLi5bcmVxdWVzdC5maWx0ZXJdLCAuLi4oZmlsdGVyLmZpbHRlcnMgPz8gW10pXVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcXVlc3QuZmlsdGVyID0gZmlsdGVyO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Injector, computed, effect, inject, signal, viewChild, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, get, isEmpty, isNil, set } from 'lodash-es';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\nimport { extractValue, setSmart } from '@acorex/platform/core';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSearchBoxComponent } from \"@acorex/components/search-box\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/loading\";\nimport * as i5 from \"@acorex/components/form\";\nimport * as i6 from \"@acorex/components/tag-box\";\nimport * as i7 from \"@acorex/components/select-box\";\nimport * as i8 from \"@angular/common\";\nimport * as i9 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.injector = inject(Injector);\n this.entityResolver = inject(AXPEntityResolver);\n this.formatService = inject(AXFormatService);\n this.popupService = inject(AXPopupService);\n this.translateService = inject(AXTranslationService);\n this.expose = computed(() => this.options()['expose'], ...(ngDevMode ? [{ debugName: \"expose\" }] : []));\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.disabled = computed(() => this.options()['disabled'], ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n this.columns = computed(() => this.options()['columns'] ?? [], ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.customFilter = computed(() => this.options()['filter'], ...(ngDevMode ? [{ debugName: \"customFilter\" }] : []));\n this.multiple = computed(() => (this.options()['multiple'] ?? false), ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.look = computed(() => this.options()['look'] ?? 'lookup', ...(ngDevMode ? [{ debugName: \"look\" }] : []));\n this.textField = computed(() => {\n return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');\n }, ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.searchTerm = signal(null, ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.textbox = viewChild(AXTagBoxComponent, ...(ngDevMode ? [{ debugName: \"textbox\" }] : []));\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.vm = signal(null, ...(ngDevMode ? [{ debugName: \"vm\" }] : []));\n this.placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n }, ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n this.#efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }));\n }, ...(ngDevMode ? [{ debugName: \"#efEntity\" }] : []));\n this.#efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n else {\n this.clear();\n }\n }, ...(ngDevMode ? [{ debugName: \"#efValue\" }] : []));\n this.#efCustomFilter = effect(() => {\n if (this.customFilter()) {\n this.vm()?.setCustomFilter(this.customFilter());\n }\n }, ...(ngDevMode ? [{ debugName: \"#efCustomFilter\" }] : []));\n }\n #efEntity;\n #efValue;\n #efCustomFilter;\n async findByValue() {\n this.isLoading.set(true);\n const rawValue = this.getValue();\n const values = castArray(rawValue);\n const byKey = this.entityDef()?.queries.byKey?.execute;\n if (byKey && values.length) {\n if (this.multiple()) {\n const items = await Promise.all(values.map((value) => byKey(extractValue(value, this.valueField()))));\n this.setItems(items);\n }\n else {\n const id = extractValue(values[0], this.valueField());\n const item = await byKey(id);\n this.setItems(item);\n }\n }\n else {\n this.setItems([]);\n }\n this.isLoading.set(false);\n }\n handleOnClick(e) {\n this.showSelector();\n }\n showSelector() {\n this.isOpen.set(true);\n const columnsCount = this.columns().length > 0 ? this.columns().length : this.vm()?.columns().length ?? 0;\n this.popupService\n .open(AXPLookupWidgetSelectorComponent, {\n title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,\n size: columnsCount < 4 ? 'md' : 'lg',\n data: {\n vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n customFilter: this.customFilter(),\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n columns: this.columns(),\n }),\n searchTerm: this.searchTerm(),\n initialSelectedItems: this.selectedItems(),\n },\n })\n .then((e) => {\n this.isOpen.set(false);\n this.textbox()?.focus();\n if (e.data?.items) {\n this.setItems(e.data?.items);\n }\n });\n }\n selectBoxValueChange(e) {\n const items = e.component.selectedItems;\n this.setItems(items);\n }\n handleValueChange(e) {\n if (e.isUserInteraction) {\n if (isNil(e.value) || isEmpty(e.value)) {\n this.clear();\n }\n else {\n this.setValue(this.singleOrMultiple(e.value));\n }\n }\n }\n handleOnBlur(e) {\n setTimeout(() => {\n if (!this.isOpen()) {\n this.clearInput();\n }\n }, 100);\n }\n async handleKeyUp(e) {\n const keyEvent = e.nativeEvent;\n const value = this.textbox()?.inputValue();\n this.searchTerm.set(value);\n if ((keyEvent.code == 'Enter' || keyEvent.code == 'NumpadEnter') && value) {\n this.isLoading.set(true);\n const result = await this.vm()?.find(value);\n if (result?.total == 1) {\n this.setItems(result.items[0]);\n }\n else {\n this.showSelector();\n }\n this.isLoading.set(false);\n }\n if (keyEvent.code == 'ArrowDown') {\n this.showSelector();\n }\n }\n setItems(items) {\n debugger;\n if (!items || items.length == 0) {\n this.selectedItems.set([]);\n return;\n }\n //\n items = castArray(items);\n this.clearInput();\n this.selectedItems.set(items);\n //\n const keys = items.map((item) => get(item, this.valueField()));\n //\n // extract data from valueField and set context by expose path\n if (this.expose()) {\n const exposeValue = castArray(this.expose());\n const itemToExpose = {};\n //\n exposeValue.forEach((i) => {\n if (typeof i == 'string') {\n const values = items.map((item) => set({}, i, get(item, i)));\n setSmart(itemToExpose, i, this.singleOrMultiple(values));\n }\n else {\n // extract data from item by source path and set context by target path\n const values = this.multiple()\n ? items.map((item) => set({}, i.source, get(item, i.source)))\n : items.map((item) => get(item, i.source));\n setSmart(itemToExpose, i.target, this.singleOrMultiple(values));\n }\n });\n this.contextService.patch(itemToExpose);\n // fire triggers\n this.setValue(this.singleOrMultiple(keys));\n }\n else {\n this.setValue(this.singleOrMultiple(keys));\n }\n }\n handleClearClick() {\n this.clear();\n }\n refresh() {\n this.clear();\n if (this.customFilter()) {\n this.vm()?.setCustomFilter(this.customFilter());\n }\n this.vm()?.dataSource.refresh();\n }\n clear() {\n this.setValue(null);\n this.clearInput();\n this.selectedItems.set([]);\n }\n clearInput() {\n this.textbox()?.inputValue.set('');\n this.searchTerm.set('');\n }\n singleOrMultiple(values) {\n return this.multiple() ? values : values[0];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: \"axp-lookup-widget-edit\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTagBoxComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n @if (look() == 'select') {\n <ax-select-box\n [dataSource]=\"vm()?.dataSource!\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n (onValueChanged)=\"selectBoxValueChange($event)\"\n >\n <ax-search-box>\n </ax-search-box>\n </ax-select-box>\n } @else {\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n //\n AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i4.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i5.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i6.AXTagBoxComponent, selector: \"ax-tag-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"allowNull\", \"type\", \"look\", \"addOnComma\", \"addOnEnter\", \"valueField\", \"textField\", \"readonlyField\", \"allowDuplicateValues\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i7.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i9.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-edit',\n template: `\n @if (look() == 'select') {\n <ax-select-box\n [dataSource]=\"vm()?.dataSource!\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n (onValueChanged)=\"selectBoxValueChange($event)\"\n >\n <ax-search-box>\n </ax-search-box>\n </ax-select-box>\n } @else {\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n //\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXTagBoxModule,\n AXTranslationModule,\n AXSelectBoxModule,\n AXSearchBoxComponent\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVEzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFF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QWlCLHNjQUNqQixlQUFlLDhLQUNmLGtCQUFrQiw4QkFDbEIsWUFBWSw2S0FDWixjQUFjLDZkQUNkLG1CQUFtQiw4QkFDbkIsaUJBQWlCLCtwQkFDakIsb0JBQW9COzsyRkFHWCw0QkFBNEI7a0JBcEV4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxFQUFFO3dCQUNGLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gIEFYQ2xpY2tFdmVudCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWEZvY3VzRXZlbnQsXG4gIEFYSHRtbEV2ZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFRhZ0JveENvbXBvbmVudCwgQVhUYWdCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnLWJveCc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUXVlcnlGaWx0ZXIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBnZXQsIGlzRW1wdHksIGlzTmlsLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgZXh0cmFjdFZhbHVlLCBzZXRTbWFydCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRMb29rVHlwZSB9IGZyb20gJy4vbG9va3VwLXdpZGdldC50eXBlcyc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCwgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbG9va3VwLXdpZGdldC1lZGl0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGxvb2soKSA9PSAnc2VsZWN0Jykge1xuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwidm0oKT8uZGF0YVNvdXJjZSFcIlxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZEl0ZW1zKClcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZCgpXCJcbiAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJzZWxlY3RCb3hWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDxheC1zZWFyY2gtYm94PlxuICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXgtdGFnLWJveFxuICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRJdGVtcygpXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkKClcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZCgpXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgW2FkZE9uRW50ZXJdPVwiZmFsc2VcIlxuICAgICAgW2FkZE9uQ29tbWFdPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgKG9uS2V5VXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiXG4gICAgICAob25CbHVyKT1cImhhbmRsZU9uQmx1cigkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZVxuICAgICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJ2YWxpZGF0aW9uLm9wdGlvbnNcIlxuICAgICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICBAaWYgKHNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgIDxheC1jbGVhci1idXR0b24gKGNsaWNrKT1cImhhbmRsZUNsZWFyQ2xpY2soKVwiPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwiYmxhbmtcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKCkgfHwgZGlzYWJsZWQoKVwiIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgZmEtc2VhcmNoXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC10YWctYm94PlxuICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIC8vXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhUYWdCb3hNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveENvbXBvbmVudFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRFZGl0Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGV4cG9zZSA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZCB8IGFueVtdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZXhwb3NlJ10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGVudGl0eSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2Rpc2FibGVkJ10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGNvbHVtbnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4gKHRoaXMub3B0aW9ucygpWydjb2x1bW5zJ10gYXMgc3RyaW5nW10pID8/IFtdKTtcbiAgcHJvdGVjdGVkIGN1c3RvbUZpbHRlciA9IGNvbXB1dGVkPEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbj4oXG4gICAgKCkgPT4gdGhpcy5vcHRpb25zKClbJ2ZpbHRlciddIGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbixcbiAgKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gPz8gZmFsc2UpIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbG9vayA9IGNvbXB1dGVkPEFYUExvb2t1cFdpZGdldExvb2tUeXBlPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9vayddIGFzIEFYUExvb2t1cFdpZGdldExvb2tUeXBlID8/ICdsb29rdXAnKTtcblxuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMubG9va3VwID8/IHRoaXMuZW50aXR5RGVmKCk/LnByb3BlcnRpZXMuZmluZCgoYykgPT4gYy5uYW1lICE9ICdpZCcpPy5uYW1lID8/ICd0aXRsZSdcbiAgICApO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgPT0gJ2lkJyk/Lm5hbWUgPz8gJ2lkJyk7XG5cbiAgcHJvdGVjdGVkIGNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IG51bGw7XG5cbiAgcHJpdmF0ZSBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICB0ZXh0Ym94ID0gdmlld0NoaWxkKEFYVGFnQm94Q29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdm0gPSBzaWduYWw8QVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYygnd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnKSArIHRoaXMudm0oKT8uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJyk7XG4gIH0pO1xuXG4gICNlZkVudGl0eSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IHRoaXMuZW50aXR5KCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmVudGl0eURlZi5zZXQoYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlLCBlbnRpdHkpKTtcbiAgICB0aGlzLnZtLnNldChcbiAgICAgIG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZigpISwge1xuICAgICAgICBwYXJlbnRGaWx0ZXJzOiB0aGlzLmZpbHRlcixcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogdGhpcy5tdWx0aXBsZSgpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfSk7XG5cblxuXG4gICNlZlZhbHVlID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLmZpbmRCeVZhbHVlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cbiAgfSk7XG5cblxuICAjZWZDdXN0b21GaWx0ZXIgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmN1c3RvbUZpbHRlcigpKSB7XG4gICAgICB0aGlzLnZtKCk/LnNldEN1c3RvbUZpbHRlcih0aGlzLmN1c3RvbUZpbHRlcigpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgYXN5bmMgZmluZEJ5VmFsdWUoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGNhc3RBcnJheShyYXdWYWx1ZSk7XG4gICAgY29uc3QgYnlLZXkgPSB0aGlzLmVudGl0eURlZigpPy5xdWVyaWVzLmJ5S2V5Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgIGlmIChieUtleSAmJiB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgUHJvbWlzZS5hbGwodmFsdWVzLm1hcCgodmFsdWUpID0+IGJ5S2V5KGV4dHJhY3RWYWx1ZSh2YWx1ZSwgdGhpcy52YWx1ZUZpZWxkKCkpKSkpO1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlkID0gZXh0cmFjdFZhbHVlKHZhbHVlc1swXSwgdGhpcy52YWx1ZUZpZWxkKCkpO1xuICAgICAgICBjb25zdCBpdGVtID0gYXdhaXQgYnlLZXkoaWQpO1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEl0ZW1zKFtdKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPbkNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTZWxlY3RvcigpIHtcbiAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgY29uc3QgY29sdW1uc0NvdW50ID0gdGhpcy5jb2x1bW5zKCkubGVuZ3RoID4gMCA/IHRoaXMuY29sdW1ucygpLmxlbmd0aCA6IHRoaXMudm0oKT8uY29sdW1ucygpLmxlbmd0aCA/PyAwO1xuICAgIHRoaXMucG9wdXBTZXJ2aWNlXG4gICAgICAub3BlbihBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgICB0aXRsZTogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ3dpZGdldC5sb29rdXAuc2VhcmNoJyl9ICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoXG4gICAgICAgICAgdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5wbHVyYWwgPz8gJycsXG4gICAgICAgICl9YCxcbiAgICAgICAgc2l6ZTogY29sdW1uc0NvdW50IDwgNCA/ICdtZCcgOiAnbGcnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdm06IG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZigpISwge1xuICAgICAgICAgICAgY3VzdG9tRmlsdGVyOiB0aGlzLmN1c3RvbUZpbHRlcigpLFxuICAgICAgICAgICAgcGFyZW50RmlsdGVyczogdGhpcy5maWx0ZXIsXG4gICAgICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlKCksXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMoKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRlcm0oKSxcbiAgICAgICAgICBpbml0aWFsU2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zKCksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnRleHRib3goKT8uZm9jdXMoKTtcbiAgICAgICAgaWYgKGUuZGF0YT8uaXRlbXMpIHtcbiAgICAgICAgICB0aGlzLnNldEl0ZW1zKGUuZGF0YT8uaXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCb3hWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgY29uc3QgaXRlbXMgPSAoZS5jb21wb25lbnQgYXMgQVhTZWxlY3RCb3hDb21wb25lbnQpLnNlbGVjdGVkSXRlbXM7XG4gICAgdGhpcy5zZXRJdGVtcyhpdGVtcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoaXNOaWwoZS52YWx1ZSkgfHwgaXNFbXB0eShlLnZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShlLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmx1cihlOiBBWEZvY3VzRXZlbnQpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xuICAgICAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleVVwKGU6IEFYSHRtbEV2ZW50KSB7XG4gICAgY29uc3Qga2V5RXZlbnQgPSBlLm5hdGl2ZUV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRleHRib3goKT8uaW5wdXRWYWx1ZSgpITtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KHZhbHVlKTtcbiAgICBpZiAoKGtleUV2ZW50LmNvZGUgPT0gJ0VudGVyJyB8fCBrZXlFdmVudC5jb2RlID09ICdOdW1wYWRFbnRlcicpICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnZtKCk/LmZpbmQodmFsdWUpO1xuICAgICAgaWYgKHJlc3VsdD8udG90YWwgPT0gMSkge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKHJlc3VsdC5pdGVtc1swXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dTZWxlY3RvcigpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKGtleUV2ZW50LmNvZGUgPT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyhpdGVtczogYW55W10pIHtcbiAgICBkZWJ1Z2dlclxuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvL1xuICAgIGl0ZW1zID0gY2FzdEFycmF5KGl0ZW1zKTtcbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KGl0ZW1zKTtcbiAgICAvL1xuICAgIGNvbnN0IGtleXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCB0aGlzLnZhbHVlRmllbGQoKSkpO1xuICAgIC8vXG4gICAgLy8gZXh0cmFjdCBkYXRhIGZyb20gdmFsdWVGaWVsZCBhbmQgc2V0IGNvbnRleHQgYnkgZXhwb3NlIHBhdGhcbiAgICBpZiAodGhpcy5leHBvc2UoKSkge1xuICAgICAgY29uc3QgZXhwb3NlVmFsdWUgPSBjYXN0QXJyYXkodGhpcy5leHBvc2UoKSk7XG4gICAgICBjb25zdCBpdGVtVG9FeHBvc2U6IGFueSA9IHt9O1xuICAgICAgLy9cbiAgICAgIGV4cG9zZVZhbHVlLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBzZXQoe30sIGkgYXMgc3RyaW5nLCBnZXQoaXRlbSwgaSkpKTtcbiAgICAgICAgICBzZXRTbWFydChpdGVtVG9FeHBvc2UsIGksIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBleHRyYWN0IGRhdGEgZnJvbSBpdGVtIGJ5IHNvdXJjZSBwYXRoIGFuZCBzZXQgY29udGV4dCBieSB0YXJnZXQgcGF0aFxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubXVsdGlwbGUoKVxuICAgICAgICAgICAgPyBpdGVtcy5tYXAoKGl0ZW0pID0+IHNldCh7fSwgaS5zb3VyY2UsIGdldChpdGVtLCBpLnNvdXJjZSkpKVxuICAgICAgICAgICAgOiBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCBpLnNvdXJjZSkpO1xuICAgICAgICAgIHNldFNtYXJ0KGl0ZW1Ub0V4cG9zZSwgaS50YXJnZXQsIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnBhdGNoKGl0ZW1Ub0V4cG9zZSk7XG4gICAgICAvLyBmaXJlIHRyaWdnZXJzXG4gICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShrZXlzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNpbmdsZU9yTXVsdGlwbGUoa2V5cykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGVhckNsaWNrKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgICBpZiAodGhpcy5jdXN0b21GaWx0ZXIoKSkge1xuICAgICAgdGhpcy52bSgpPy5zZXRDdXN0b21GaWx0ZXIodGhpcy5jdXN0b21GaWx0ZXIoKSk7XG4gICAgfVxuICAgIHRoaXMudm0oKT8uZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCkge1xuICAgIHRoaXMudGV4dGJveCgpPy5pbnB1dFZhbHVlLnNldCgnJyk7XG4gICAgdGhpcy5zZWFyY2hUZXJtLnNldCgnJyk7XG4gIH1cblxuICBwcml2YXRlIHNpbmdsZU9yTXVsdGlwbGUodmFsdWVzOiBhbnlbXSk6IGFueSB8IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSgpID8gdmFsdWVzIDogdmFsdWVzWzBdO1xuICB9XG59XG4iXX0=","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { castArray, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent {\n constructor() {\n super(...arguments);\n this.valueField = this.options['valueField'] ?? 'id';\n this.textField = this.options['textField'] ?? 'title';\n this.badgeClass = this.options['badgeClass'] ?? 'ax-accent1';\n this.displayItems = computed(() => isNil(this.rawValue)\n ? []\n : castArray(this.rawValue).map((item) => this.extractItem(item)).filter((c) => c != null), ...(ngDevMode ? [{ debugName: \"displayItems\" }] : []));\n }\n extractItem(item) {\n if (isNil(item)) {\n return null;\n }\n return typeof item == 'object'\n ? {\n [this.valueField]: item?.[this.valueField],\n [this.textField]: item?.[this.textField],\n }\n : {\n [this.valueField]: item,\n [this.textField]: item,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\", rowData: \"rowData\" }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" [class]=\"badgeClass\"></ax-badge>\n }\n @empty {\n <span class=\"ax-text-muted\">---</span>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" [class]=\"badgeClass\"></ax-badge>\n }\n @empty {\n <span class=\"ax-text-muted\">---</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: ['rawValue', 'rowData'],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9sb29rdXAtd2lkZ2V0L2xvb2t1cC13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWdCN0MsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUE2QjtJQWZqRjs7UUFnQlksZUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hELGNBQVMsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUN6RCxlQUFVLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUM7UUFFaEUsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLHdEQUNqRyxDQUFDO0tBZ0JIO0lBZFMsV0FBVyxDQUFDLElBQVM7UUFDM0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLE9BQU8sSUFBSSxJQUFJLFFBQVE7WUFDNUIsQ0FBQyxDQUFDO2dCQUNBLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDekM7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSTtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSTthQUN2QixDQUFDO0lBQ04sQ0FBQzs4R0F4QlUsOEJBQThCO2tHQUE5Qiw4QkFBOEIscUpBZC9COzs7Ozs7Ozs7R0FTVCwyREFFUyxhQUFhOzsyRkFHWiw4QkFBOEI7a0JBZjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7R0FTVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIGlzTmlsIH0gZnJvbSAnbG9kYXNoLWVzJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXlJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJpdGVtW3RoaXMudGV4dEZpZWxkXVwiIFtjbGFzc109XCJiYWRnZUNsYXNzXCI+PC9heC1iYWRnZT5cbiAgICAgIH1cbiAgICAgIEBlbXB0eSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1tdXRlZFwiPi0tLTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWEJhZGdlTW9kdWxlXSxcbiAgaW5wdXRzOiBbJ3Jhd1ZhbHVlJywgJ3Jvd0RhdGEnXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd2YWx1ZUZpZWxkJ10gPz8gJ2lkJztcbiAgcHJvdGVjdGVkIHRleHRGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd0ZXh0RmllbGQnXSA/PyAndGl0bGUnO1xuICBwcm90ZWN0ZWQgYmFkZ2VDbGFzczogc3RyaW5nID0gdGhpcy5vcHRpb25zWydiYWRnZUNsYXNzJ10gPz8gJ2F4LWFjY2VudDEnO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5SXRlbXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGlzTmlsKHRoaXMucmF3VmFsdWUpXG4gICAgICA/IFtdXG4gICAgICA6IGNhc3RBcnJheSh0aGlzLnJhd1ZhbHVlKS5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5leHRyYWN0SXRlbShpdGVtKSkuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpLFxuICApO1xuXG4gIHByaXZhdGUgZXh0cmFjdEl0ZW0oaXRlbTogYW55KTogYW55IHtcbiAgICBpZiAoaXNOaWwoaXRlbSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gJ29iamVjdCdcbiAgICAgID8ge1xuICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogaXRlbT8uW3RoaXMudmFsdWVGaWVsZF0sXG4gICAgICAgIFt0aGlzLnRleHRGaWVsZF06IGl0ZW0/Llt0aGlzLnRleHRGaWVsZF0sXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IGl0ZW0sXG4gICAgICAgIFt0aGlzLnRleHRGaWVsZF06IGl0ZW0sXG4gICAgICB9O1xuICB9XG59XG4iXX0=","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { AXP_ALLOW_MULTIPLE_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DISABLED_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPLookupWidget = {\n name: 'lookup-editor',\n title: 'Lookup',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n defaultFilterWidgetName: 'lookup-filter',\n type: 'editor',\n properties: [\n AXP_DISABLED_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n {\n name: 'expose',\n title: 'Expose',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'expose',\n path: 'options.expose',\n type: AXPWidgetsCatalog.select,\n },\n },\n visible: true,\n },\n {\n name: 'entity',\n title: 'Entity',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'entity',\n path: 'options.entity',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n AXP_ALLOW_MULTIPLE_PROPERTY\n ],\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n designer: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9JLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0I7SUFDOUMsSUFBSSxFQUFFLGVBQWU7SUFDckIsS0FBSyxFQUFFLFFBQVE7SUFDZixVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQztJQUN6Qyx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QjtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2lCQUMvQjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsMkJBQTJCO0tBQzVCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQzFHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0sIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBfQUxMT1dfTVVMVElQTEVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLCBBWFBfRElTQUJMRURfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dpZGdldHMnO1xuXG5leHBvcnQgY29uc3QgQVhQTG9va3VwV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdsb29rdXAtZWRpdG9yJyxcbiAgdGl0bGU6ICdMb29rdXAnLFxuICBjYXRlZ29yaWVzOiBbXSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkVudGl0eVdpZGdldF0sXG4gIGRlZmF1bHRGaWx0ZXJXaWRnZXROYW1lOiAnbG9va3VwLWZpbHRlcicsXG4gIHR5cGU6ICdlZGl0b3InLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgQVhQX0RJU0FCTEVEX1BST1BFUlRZLFxuICAgIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksXG4gICAge1xuICAgICAgbmFtZTogJ2V4cG9zZScsXG4gICAgICB0aXRsZTogJ0V4cG9zZScsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZXhwb3NlJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5leHBvc2UnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2VudGl0eScsXG4gICAgICB0aXRsZTogJ0VudGl0eScsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZW50aXR5JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5lbnRpdHknLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIEFYUF9BTExPV19NVUxUSVBMRV9QUk9QRVJUWVxuICBdLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQTG9va3VwV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMb29rdXBXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGNvbHVtbjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMb29rdXBXaWRnZXRDb2x1bW5Db21wb25lbnQpLFxuICAgIH0sXG4gICAgZGVzaWduZXI6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2xvb2t1cC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG59O1xuXG5cbiJdfQ==","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetColumnComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCO0lBaEJwRjs7UUFpQlksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMseURBQUMsQ0FBQztRQUV2RyxhQUFRLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQVksb0RBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSx3REFBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBWSxJQUFJLE9BQU8scURBQUMsQ0FBQztRQUVqRyw2QkFBNkI7UUFDbkIsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUMsbURBQUMsQ0FBQztLQUNKOzhHQXRCWSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrRkFmbkM7Ozs7Ozs7Ozs7R0FVVCwyREFFUyxhQUFhOzsyRkFHWixrQ0FBa0M7a0JBaEI5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7OztHQVVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxFQUFFO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1mbGV4LXdyYXBcIj5cbiAgICAgIEBpZiAodXNlU2VsZWN0Qm94KCkgJiYgZ2V0RGF0YSgpLmxlbmd0aCA+IDApIHsgQGZvciAoaXRlbSBvZiBnZXREYXRhKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LWJhZGdlIFtsb29rXT1cIid0d290b25lJ1wiIFt0ZXh0XT1cIml0ZW1bdGV4dEZpZWxkKCldXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICAgIH0gfSBAZWxzZSB7IEBpZihtdWx0aXBsZSgpKSB7IEBmb3IgKGl0ZW0gb2YgaW50ZXJuYWxWYWx1ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LWlubGluZS1ibG9ja1wiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2Uge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtaW5saW5lLWJsb2NrXCI+e3sgaW50ZXJuYWxWYWx1ZSgpWzBdIH19PC9zcGFuPlxuICAgICAgfSB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCYWRnZU1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoQXJyYXkuaXNBcnJheSh0aGlzLmdldFZhbHVlKCkpID8gdGhpcy5nZXRWYWx1ZSgpIDogW3RoaXMuZ2V0VmFsdWUoKV0pKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcblxuICAvLyDZiNuM2pjar9uM4oCM2YfYp9uMINmF2LHYqtio2Lcg2KjYpyBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIHVzZVNlbGVjdEJveCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWyd1c2VTZWxlY3RCb3gnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIC8vINin2LPYqtiu2LHYp9isINiv2KfYr9mH4oCM2YfYpyDYqNix2KfbjCDZhtmF2KfbjNi0XG4gIHByb3RlY3RlZCBnZXREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy51c2VTZWxlY3RCb3goKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH0pO1xufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\n// import { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/search-box\";\nexport class AXPTagableBoxWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.entityResolver = inject(AXPEntityResolver);\n this.hasClearButton = computed(() => this.options()['hasClearButton'], ...(ngDevMode ? [{ debugName: \"hasClearButton\" }] : []));\n this.disabled = computed(() => this.options()['disabled'], ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n this.placeholder = computed(() => this.options()['placeholder'], ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n // پارامترهای SelectBox\n this.moduleName = computed(() => this.options()['module'], ...(ngDevMode ? [{ debugName: \"moduleName\" }] : []));\n this.entityName = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entityName\" }] : []));\n this.allowSearch = computed(() => this.options()['allowSearch'], ...(ngDevMode ? [{ debugName: \"allowSearch\" }] : []));\n // منبع داده برای SelectBox\n this._dataSource = new AXDataSource({\n load: async (e) => {\n const entity = await this.entityResolver.get(this.moduleName(), this.entityName());\n const func = entity?.queries.list?.execute;\n const result = await func(e);\n console.log(result);\n return {\n items: result?.items || [],\n total: result?.total || 0,\n };\n },\n pageSize: 10,\n });\n }\n handleSelectValueChange(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n addItem() { }\n get __class() {\n const cls = {};\n cls[`ax-block`] = true;\n cls[`ax-flex-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetEditComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i2.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i6.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXTextBoxModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXValidationModule,\n AXButtonModule,\n AXSelectBoxModule,\n AXSearchBoxModule\n ],\n inputs: [],\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBeUR4RCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsdUJBQTRCO0lBdkRsRjs7UUF3RFksbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENB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QkFBaUI7d0JBQ2pCLGlCQUFpQjtxQkFDcEI7b0JBQ0MsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7OEJBcUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94Jztcbi8vIGltcG9ydCB7IEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICA8IS0tINmG2YXYp9uM2LQgU2VsZWN0IEJveCDYqNinINiv2qnZhdmHINin2LbYp9mB2Ycg2qnYsdiv2YYg2KLbjNiq2YUgLS0+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBjbGFzcz1cImF4LWNvbC1zcGFuLTEyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJfZGF0YVNvdXJjZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImdldFZhbHVlKClcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIid0aXRsZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChhbGxvd1NlYXJjaCgpKSB7XG4gICAgICAgICAgPGF4LXNlYXJjaC1ib3g+PGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj48L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNDbGVhckJ1dHRvbigpKSB7XG4gICAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgICAgICBbcnVsZV09XCJ2YWxpZGF0aW9uLnJ1bGVcIlxuICAgICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICAgICAgPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICB9XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIFt0ZXh0XT1cIifYp9mB2LLZiNiv2YYg2KLbjNiq2YUg2KzYr9uM2K8nXCJcbiAgICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTggbWQ6YXgtY29sLXN0YXJ0LTkgMnhsOmF4LWNvbC1zdGFydC0xMCBheC1jb2wtZW5kLTEzXCJcbiAgICAgID5cbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZVxuXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFnYWJsZUJveFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcblxuICBwcm90ZWN0ZWQgaGFzQ2xlYXJCdXR0b24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzQ2xlYXJCdXR0b24nXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2Rpc2FibGVkJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3BsYWNlaG9sZGVyJ10gYXMgc3RyaW5nKTtcblxuICAvLyDZvtin2LHYp9mF2KrYsdmH2KfbjCBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIG1vZHVsZU5hbWUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydtb2R1bGUnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5TmFtZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBhbGxvd1NlYXJjaCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydhbGxvd1NlYXJjaCddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmF2YbYqNi5INiv2KfYr9mHINio2LHYp9uMIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+ID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgbG9hZDogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQodGhpcy5tb2R1bGVOYW1lKCksIHRoaXMuZW50aXR5TmFtZSgpKTtcbiAgICAgIGNvbnN0IGZ1bmMgPSBlbnRpdHk/LnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZ1bmMoZSk7XG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlc3VsdD8uaXRlbXMgfHwgW10sXG4gICAgICAgIHRvdGFsOiByZXN1bHQ/LnRvdGFsIHx8IDAsXG4gICAgICB9O1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0VmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKGUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2BheC1ibG9ja2BdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWZsZXgtMWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetFilterComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetFilterComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3QyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCOzhHQUF2RSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrRkFMbkMsRUFBRSwyREFFRixXQUFXOzsyRkFHVixrQ0FBa0M7a0JBTjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHsgfVxuIl19","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetPrintComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetPrintComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjdFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx1QkFBNEI7SUFwQm5GOztRQXFCWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyx5REFBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxDQUFDO1FBRXBGLCtCQUErQjtRQUNyQixpQkFBWSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFZLHdEQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxxREFBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxtREFBQyxDQUFDO0tBQ0o7OEdBdEJZLGlDQUFpQztrR0FBakMsaUNBQWlDLCtGQW5CbEM7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7OzJGQUtVLGlDQUFpQztrQkFwQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXY+XG4gICAgICBAaWYgKHVzZVNlbGVjdEJveCgpICYmIGdldERhdGEoKS5sZW5ndGggPiAwKSB7IEBmb3IgKGl0ZW0gb2YgZ2V0RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LW1yLTIgYXgtbWItMiBheC1pbmxpbmUtYmxvY2tcIj57e1xuICAgICAgICBpdGVtW3RleHRGaWVsZCgpXVxuICAgICAgfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2UgeyBAaWYobXVsdGlwbGUoKSkgeyBAZm9yIChpdGVtIG9mIGludGVybmFsVmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3sgaXRlbSB9fTwvc3Bhbj5cbiAgICAgIH0gfSBAZWxzZSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgaW50ZXJuYWxWYWx1ZSgpWzBdXG4gICAgICB9fTwvc3Bhbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW10sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRQcmludENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChBcnJheS5pc0FycmF5KHRoaXMuZ2V0VmFsdWUoKSkgPyB0aGlzLmdldFZhbHVlKCkgOiBbdGhpcy5nZXRWYWx1ZSgpXSkpO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmI24zamNqv24zigIzZh9in24wg2YXYsdiq2KjYtyDYqNinIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgdXNlU2VsZWN0Qm94ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3VzZVNlbGVjdEJveCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG5cbiAgLy8g2KfYs9iq2K7Ysdin2Kwg2K/Yp9iv2YfigIzZh9inINio2LHYp9uMINmG2YXYp9uM2LRcbiAgcHJvdGVjdGVkIGdldERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnVzZVNlbGVjdEJveCgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfSk7XG59XG4iXX0=","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetViewComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", usesInheritance: true, ngImport: i0, template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFhN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUE0QjtJQVhsRjs7UUFZWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyx5REFBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxDQUFDO1FBRXBGLCtCQUErQjtRQUNyQixpQkFBWSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFZLHdEQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxxREFBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxtREFBQyxDQUFDO0tBQ0o7OEdBdEJZLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHlHQVRqQzs7OztHQUlULDJEQUVTLGFBQWE7OzJGQUdaLGdDQUFnQztrQkFYNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGZvciAoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxheC1iYWRnZSBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJpdGVtXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCYWRnZU1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKEFycmF5LmlzQXJyYXkodGhpcy5nZXRWYWx1ZSgpKSA/IHRoaXMuZ2V0VmFsdWUoKSA6IFt0aGlzLmdldFZhbHVlKCldKSk7XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG5cbiAgLy8g2YjbjNqY2q/bjOKAjNmH2KfbjCDZhdix2KrYqNi3INio2KcgU2VsZWN0Qm94XG4gIHByb3RlY3RlZCB1c2VTZWxlY3RCb3ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndXNlU2VsZWN0Qm94J10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcblxuICAvLyDYp9iz2KrYrtix2KfYrCDYr9in2K/Zh+KAjNmH2Kcg2KjYsdin24wg2YbZhdin24zYtFxuICBwcm90ZWN0ZWQgZ2V0RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlU2VsZWN0Qm94KCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9KTtcbn1cbiJdfQ==","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPTagableBoxWidget = {\n name: 'tagable-editor',\n title: 'Tagable Box',\n icon: 'fa-light fa-tags',\n description: 'Inputs text with tags',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./tagable-box-widget-view.component').then((c) => c.AXPTagableBoxWidgetViewComponent),\n },\n edit: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n filter: {\n component: () => import('./tagable-box-widget-filter.component').then((c) => c.AXPTagableBoxWidgetFilterComponent),\n },\n column: {\n component: () => import('./tagable-box-widget-column.component').then((c) => c.AXPTagableBoxWidgetColumnComponent),\n },\n print: {\n component: () => import('./tagable-box-widget-print.component').then((c) => c.AXPTagableBoxWidgetPrintComponent),\n },\n designer: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2xELElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixXQUFXLEVBQUUsdUJBQXVCO0lBQ3BDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsSUFBSSxFQUFFLFFBQVE7SUFDZCx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLFVBQVUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO0lBQ3ZELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQztTQUNqSDtRQUNELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSwgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9OQU1FX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcblxuZXhwb3J0IGNvbnN0IEFYUFRhZ2FibGVCb3hXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3RhZ2FibGUtZWRpdG9yJyxcbiAgdGl0bGU6ICdUYWdhYmxlIEJveCcsXG4gIGljb246ICdmYS1saWdodCBmYS10YWdzJyxcbiAgZGVzY3JpcHRpb246ICdJbnB1dHMgdGV4dCB3aXRoIHRhZ3MnLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBkZWZhdWx0RmlsdGVyV2lkZ2V0TmFtZTogJ3N0cmluZy1maWx0ZXInLFxuICBwcm9wZXJ0aWVzOiBbQVhQX05BTUVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGZpbHRlcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQpLFxuICAgIH0sXG4gICAgY29sdW1uOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtY29sdW1uLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBwcmludDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldFByaW50Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGRlc2lnbmVyOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxufTtcbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgdGFnYWJsZTogJ3RhZ2FibGUtZWRpdG9yJztcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent, AXPWidgetRegistryService, } from '@acorex/platform/layout/builder';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/text-box\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/form\";\nexport class AXPWidgetSelectorWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.widgetRegisteryService = inject(AXPWidgetRegistryService);\n this.searchTerm = signal(null, ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.textField = signal('', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.displayText = computed(() => this.getValue()?.title || '', ...(ngDevMode ? [{ debugName: \"displayText\" }] : []));\n this.selectedWidgetNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedWidgetNode\" }] : []));\n this.selectedItem = signal(null, ...(ngDevMode ? [{ debugName: \"selectedItem\" }] : []));\n this.placeholder = computed(() => this.options()['placeholder'] ?? '', ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n this.loading = computed(() => this.options()['loading'] ?? false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n }\n ngAfterViewInit() {\n if (this.getValue()) {\n this.selectedWidgetNode.set(this.getValue());\n }\n }\n async showSelector() {\n const com = await import('@acorex/platform/layout/designer').then((c) => c.AXPDesignerWidgetPickerComponent);\n const result = await this.popupService.open(com, {\n title: 'Widget Gallery',\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(this.widgetRegisteryService.all(), (c) => c.title),\n },\n });\n if ((result.data?.widgets ?? []).length) {\n const selected = result.data?.widgets;\n const selectedNode = this.convertWidgetConfigToNode(selected[0]);\n this.selectedWidgetNode.set(selectedNode);\n }\n }\n convertWidgetConfigToNode(config) {\n return {\n type: config.name,\n };\n }\n handleChangeWidget(e) {\n const widget = this.widgetRegisteryService.resolve(e.values.type);\n this.setValue({ title: widget?.title, ...e.values });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPWidgetSelectorWidgetEditComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i2.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i5.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n AXSelectBoxModule,\n AXTextBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXPWidgetPropertyViewerComponent\n ]\n }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLHdCQUF3QixHQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBbUMsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVySCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7OztBQW9DbkMs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QWtCLHVFQXJDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQsMkRBR0MsV0FBVyw4VkFDWCxpQkFBaUIsOEJBQ2pCLGVBQWUscWJBQ2YsY0FBYyw2WEFDZCxpQkFBaUIsc1ZBQ2pCLGVBQWUsOEJBQ2Ysa0JBQWtCLDhCQUNsQixZQUFZLDhLQUNaLGdDQUFnQzs7MkZBR3ZCLG9DQUFvQztrQkFsQ2hELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGdDQUFnQztxQkFDbkM7aUJBQ0E7OEJBTUMsT0FBTztzQkFETixTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50LCBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQsXG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBXaWRnZXRUeXBlc01hcCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBXaWRnZXRQcm9wZXJ0aWVzQ2hhbmdlZEV2ZW50LCBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4LXRleHQtYm94IFtuZ01vZGVsXT1cImRpc3BsYXlUZXh0KClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiIFtyZWFkb25seV09XCJ0cnVlXCI+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGVcbiAgICAgICAgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCJcbiAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCJcbiAgICAgID48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgIH1cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCIgKG9uQ2xpY2spPVwic2hvd1NlbGVjdG9yKClcIj5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmFyIGZhLXNlYXJjaFwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC10ZXh0LWJveD5cbiAgICBAaWYoc2VsZWN0ZWRXaWRnZXROb2RlKCkpe1xuICAgIDxheHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlciBbd2lkZ2V0XT1cInNlbGVjdGVkV2lkZ2V0Tm9kZSgpIVwiIChvbkNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlV2lkZ2V0KCRldmVudClcIj5cbiAgICA8L2F4cC13aWRnZXQtcHJvcGVydHktdmlld2VyPlxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnRcbl1cbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXRFZGl0Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RlcnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZChBWFRleHRCb3hDb21wb25lbnQpXG4gIHRleHRib3g6IEFYVGV4dEJveENvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRWYWx1ZSgpPy50aXRsZSB8fCAnJyk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldE5vZGUgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtID0gc2lnbmFsPGFueSB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydwbGFjZWhvbGRlciddID8/ICcnKTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9hZGluZyddID8/IGZhbHNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldE5vZGUuc2V0KHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2hvd1NlbGVjdG9yKCkge1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IGltcG9ydCgnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXInKS50aGVuKChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6ICdXaWRnZXQgR2FsbGVyeScsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHdpZGdldHM6IHNvcnRCeShcbiAgICAgICAgICB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UuYWxsKCksXG4gICAgICAgICAgKGMpID0+IGMudGl0bGVcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKChyZXN1bHQuZGF0YT8ud2lkZ2V0cyA/PyBbXSkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHJlc3VsdC5kYXRhPy53aWRnZXRzIGFzIEFYUFdpZGdldENvbmZpZ1tdO1xuICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5jb252ZXJ0V2lkZ2V0Q29uZmlnVG9Ob2RlKHNlbGVjdGVkWzBdKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXROb2RlLnNldChzZWxlY3RlZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0V2lkZ2V0Q29uZmlnVG9Ob2RlKGNvbmZpZzogQVhQV2lkZ2V0Q29uZmlnKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGNvbmZpZy5uYW1lIGFzIChrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VXaWRnZXQoZTogQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCkge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGUudmFsdWVzLnR5cGUpO1xuICAgIHRoaXMuc2V0VmFsdWUoeyB0aXRsZTogd2lkZ2V0Py50aXRsZSwgLi4uZS52YWx1ZXMgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetSelectorWidgetViewComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPWidgetSelectorWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `{{ getValue()?.title }}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: `{{ getValue()?.title }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHVCQUE0Qjs4R0FBekUsb0NBQW9DO2tHQUFwQyxvQ0FBb0MsK0ZBSm5DLHlCQUF5Qjs7MkZBSTFCLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBge3sgZ2V0VmFsdWUoKT8udGl0bGUgfX1gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4geyB9XG4iXX0=","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPWidgetSelectorWidget = {\n name: 'widget-selector',\n title: 'Widget Selector',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n icon: 'fa-light fa-square',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () => import('./widget-selector-widget-view.component').then((c) => c.AXPWidgetSelectorWidgetViewComponent),\n },\n edit: {\n component: () => import('./widget-selector-widget-edit.component').then((c) => c.AXPWidgetSelectorWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvci93aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9CO0lBQ3RELElBQUksRUFBRSxpQkFBaUI7SUFDdkIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQztJQUM5RSxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7UUFDRCxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX0RJU0FCTEVEX1BST1BFUlRZLCBBWFBfTkFNRV9QUk9QRVJUWSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWFBXaWRnZXRTZWxlY3RvcldpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGl0bGU6ICdXaWRnZXQgU2VsZWN0b3InLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtc3F1YXJlJyxcbiAgcHJvcGVydGllczogW0FYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZLCBBWFBfRElTQUJMRURfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGVkaXQ6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbn07XG5cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgd2lkZ2V0U2VsZWN0b3I6ICd3aWRnZXQtc2VsZWN0b3InO1xuICB9XG59XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.factory = inject(AXPEntityCreateViewModelFactory);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.translateService = inject(AXTranslationService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const options = context.getVariable('options');\n const process = options?.['process'];\n const decoration = options?.['decoration'];\n const layout = options?.['layout'];\n const headerTitle = decoration?.header?.title;\n const size = layout?.size;\n const entityRef = await this.entityRegistery.resolve(module, entity);\n const com = await this.config.viewers.master.create();\n if (entityRef.parentKey) {\n context.setVariable('parentKey', entityRef.parentKey);\n }\n const result = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : `${await this.translateService.translateAsync('create-new')} ${await this.translateService.translateAsync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm: await this.factory.create(module, entity, data, options),\n entity,\n },\n });\n context.setOutput('result', false);\n if (result.data?.save) {\n context.setOutput('result', true);\n const prevData = context.getVariable('data');\n const prevMeta = context.getVariable('meta');\n context.setVariable('data', { ...prevData, ...result.data.item });\n if (entityRef.parentKey && result.data.item[entityRef.parentKey]) {\n context.setVariable('meta', { ...prevMeta, refreshTargetId: result.data.item[entityRef.parentKey] });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\n async execute(context) {\n this.dispatch(AXPEntityCreateEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n this.dispatch(AXPRefreshEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPCreateEntityWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPEntityCreatePopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-toast',\n },\n ],\n },\n 'show-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-created',\n content: 'workflow.entity-created-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'dispatch-event',\n },\n ],\n },\n 'dispatch-event': {\n action: 'AXPEntityCreateSubmittedAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"options\")?.process?.redirect != false' }],\n nextStepId: 'show-entity',\n },\n ],\n },\n 'show-entity': {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBZSxpQkFBaUIsRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQWlDLG1CQUFtQixDQUFDLENBQUM7QUFHN0csTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQURqRTs7UUFFVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELFdBQU0s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cUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUseUJBQXlCO2dCQUNoQyxPQUFPLEVBQUUsOEJBQThCO2FBQ3hDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCO2FBQ0Y7U0FDRjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsNERBQTRELEVBQUUsQ0FBQztvQkFDMUcsVUFBVSxFQUFFLGFBQWE7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLE1BQU0sRUFBRSx5QkFBeUI7U0FDbEM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLWNyZWF0ZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2VudGl0eS5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5Q3JlYXRlRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4oJ1tFbnRpdHldIENyZWF0ZWQhJyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSBmYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ2RhdGEnKTtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG5cbiAgICBjb25zdCBwcm9jZXNzID0gb3B0aW9ucz8uWydwcm9jZXNzJ107XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGxheW91dCA9IG9wdGlvbnM/LlsnbGF5b3V0J107XG5cbiAgICBjb25zdCBoZWFkZXJUaXRsZSA9IGRlY29yYXRpb24/LmhlYWRlcj8udGl0bGU7XG5cbiAgICBjb25zdCBzaXplID0gbGF5b3V0Py5zaXplO1xuXG4gICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGUsIGVudGl0eSk7XG4gICAgY29uc3QgY29tID0gYXdhaXQgdGhpcy5jb25maWcudmlld2Vycy5tYXN0ZXIuY3JlYXRlKCk7XG5cbiAgICBpZiAoZW50aXR5UmVmLnBhcmVudEtleSkge1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgncGFyZW50S2V5JywgZW50aXR5UmVmLnBhcmVudEtleSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogYCR7YXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjcmVhdGUtbmV3Jyl9ICR7YXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICAgICAgIGVudGl0eVJlZi5mb3JtYXRzLmluZGl2aWR1YWxcbiAgICAgICAgKX1gLFxuICAgICAgc2l6ZTogdGhpcy5wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5wbGF0Zm9ybS5pcygnU00nKSA/ICdmdWxsJyA6IHNpemUgPyBzaXplIDogJ21kJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdm06IGF3YWl0IHRoaXMuZmFjdG9yeS5jcmVhdGUobW9kdWxlLCBlbnRpdHksIGRhdGEsIG9wdGlvbnMpLFxuICAgICAgICBlbnRpdHksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgaWYgKHJlc3VsdC5kYXRhPy5zYXZlKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgICBjb25zdCBwcmV2RGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICAgIGNvbnN0IHByZXZNZXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnbWV0YScpO1xuXG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgeyAuLi5wcmV2RGF0YSwgLi4ucmVzdWx0LmRhdGEuaXRlbSB9KTtcbiAgICAgIGlmIChlbnRpdHlSZWYucGFyZW50S2V5ICYmIHJlc3VsdC5kYXRhLml0ZW1bZW50aXR5UmVmLnBhcmVudEtleV0pIHtcbiAgICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnbWV0YScsIHsgLi4ucHJldk1ldGEsIHJlZnJlc2hUYXJnZXRJZDogcmVzdWx0LmRhdGEuaXRlbVtlbnRpdHlSZWYucGFyZW50S2V5XSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbkBJbmplY3RhYmxlKCkgLy9hdm9pZCBERVBSRUNBVEVEOiBESSBpcyBpbnN0YW50aWF0aW5nIGEgdG9rZW4gXCJBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb25cIiB0aGF0IGluaGVyaXRzIGl0cyBASW5qZWN0YWJsZSBkZWNvcmF0b3IgYnV0IGRvZXMgbm90IHByb3ZpZGUgb25lIGl0c2VsZi4gVGhpcyB3aWxsIGJlY29tZSBhbiBlcnJvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIEFuZ3VsYXIuIFBsZWFzZSBhZGQgQEluamVjdGFibGUoKSB0byB0aGUgXCJBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb25cIiBjbGFzcy5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUEVudGl0eUNyZWF0ZUV2ZW50KHsgZW50aXR5OiBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLCBtZXRhOiBjb250ZXh0LmdldFZhcmlhYmxlKCdtZXRhJykgfSlcbiAgICApO1xuICAgIHRoaXMuZGlzcGF0Y2goXG4gICAgICBBWFBSZWZyZXNoRXZlbnQoeyBlbnRpdHk6IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5JyksIG1ldGE6IGNvbnRleHQuZ2V0VmFyaWFibGUoJ21ldGEnKSB9KVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUENyZWF0ZUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdzaG93LXBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICAnc2hvdy1wb3B1cCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy10b2FzdCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3Nob3ctdG9hc3QnOiB7XG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXG4gICAgICBpbnB1dDoge1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ3dvcmtmbG93LmVudGl0eS1jcmVhdGVkJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1jcmVhdGVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ2Rpc3BhdGNoLWV2ZW50JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAnZGlzcGF0Y2gtZXZlbnQnOiB7XG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0VmFyaWFibGUoXCJvcHRpb25zXCIpPy5wcm9jZXNzPy5yZWRpcmVjdCAhPSBmYWxzZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctZW50aXR5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAnc2hvdy1lbnRpdHknOiB7XG4gICAgICBhY3Rpb246ICdBWFBTaG93RGV0YWlsVmlld0FjdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPQuickEntityModifyPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const { parentKey } = entityRef;\n console.log(data);\n const { id } = data;\n const { interfaces, title } = entityRef;\n const properties = interfaces?.master?.update?.properties?.map((p) => p.name) || [];\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const layout = options?.['layout'];\n const size = layout?.size;\n if (parentKey) {\n context.setVariable('parentKey', parentKey);\n }\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : (title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`),\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPQuickModifyEntityWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPQuickEntityModifyPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\nexport class AXPEntityApplyUpdatesAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n try {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const exec = entityRef.commands?.update?.execute;\n const result = await exec(data);\n context.setVariable('data', result);\n context.setOutput('result', true);\n }\n catch (error) {\n context.setOutput('result', false);\n context.setOutput('error', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxpQkFBaUI7SUFEdEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7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T0FBTyxDQUFDLFdBQVcsQ0FBUyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM3RSxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7OEdBaEJVLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvdywgQVhQV29ya2Zsb3dBY3Rpb24sIEFYUFdvcmtmbG93Q29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB9IGZyb20gJy4uL2VudGl0eS1tYXN0ZXItdXBkYXRlLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vZW50aXR5LmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgZmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5KTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBkYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZGF0YScpO1xuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgY29uc3QgeyBwYXJlbnRLZXkgfSA9IGVudGl0eVJlZjtcblxuICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgIFxuXG4gICAgY29uc3QgeyBpZCB9ID0gZGF0YTtcbiAgICBjb25zdCB7IGludGVyZmFjZXMsIHRpdGxlIH0gPSBlbnRpdHlSZWY7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHApID0+IHAubmFtZSkgfHwgW107XG5cbiAgICBjb25zdCB2bSA9IGF3YWl0IHRoaXMuZmFjdG9yeS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSwgaWQsIHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55Pignb3B0aW9ucycpO1xuICAgIGNvbnN0IGRlY29yYXRpb24gPSBvcHRpb25zPy5bJ2RlY29yYXRpb24nXTtcbiAgICBjb25zdCBoZWFkZXJUaXRsZSA9IGRlY29yYXRpb24/LmhlYWRlcj8udGl0bGU7XG5cbiAgICBjb25zdCBsYXlvdXQgPSBvcHRpb25zPy5bJ2xheW91dCddO1xuICAgIGNvbnN0IHNpemUgPSBsYXlvdXQ/LnNpemU7XG5cbiAgICBpZiAocGFyZW50S2V5KSB7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXJlbnRLZXknLCBwYXJlbnRLZXkpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLm1vZGlmeSgpO1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogKHRpdGxlID8/XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ2VudGl0eS5tb2RpZnknKX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhcbiAgICAgICAgICAgIGVudGl0eVJlZi5mb3JtYXRzLmluZGl2aWR1YWwsXG4gICAgICAgICAgKX1gKSxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiBzaXplID8gc2l6ZSA6ICdtZCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHZtLFxuICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICBlbnRpdHk6IGVudGl0eVJlZixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBpZiAocG9wdXAuZGF0YT8ucmVzdWx0ID09IHRydWUpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCBjbG9uZURlZXAocG9wdXAuZGF0YS5jb250ZXh0KSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdtb2RpZnlQb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgbW9kaWZ5UG9wdXA6IHtcbiAgICAgIGlkOiAnbW9kaWZ5UG9wdXAnLFxuICAgICAgYWN0aW9uOiAnQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgc3VjY2Vzc1RvYXN0OiB7XG4gICAgICBpZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXG4gICAgICBpbnB1dDoge1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC10aXRsZScsXG4gICAgICAgIGNvbnRlbnQ6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtYm9keScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtb2RpZnlDb25maXJtZWQ6IHtcbiAgICAgIGlkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgICAgY29uc3QgZXhlYyA9IGVudGl0eVJlZi5jb21tYW5kcz8udXBkYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyhkYXRhKTtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCByZXN1bHQpO1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split(\".\");\n const { id } = context.getVariable('data');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${id}/view`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowDetailsViewWorkflow = {\n startStepId: 'showDetailView',\n steps: {\n showDetailView: {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR25ELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFEOUQ7O1FBRVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FXcEQ7SUFUQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUc7WUFDakIsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksRUFBRSxPQUFPO1NBQ3pGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVpVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQWlCWCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBZ0I7SUFDckQsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixLQUFLLEVBQUU7UUFDTCxjQUFjLEVBQUU7WUFDZCxNQUFNLEVBQUUseUJBQXlCO1NBQ2xDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbik7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0eScpLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCB7IGlkIH0gPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgY29uc3QgbmV3UGF5bG9hZCA9IHtcbiAgICAgIGNvbW1hbmRzOiBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke21vZHVsZX0vZS8ke2VudGl0eX0vJHtpZH0vdmlld2AsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0RldGFpbHNWaWV3V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3dEZXRhaWxWaWV3JyxcbiAgc3RlcHM6IHtcbiAgICBzaG93RGV0YWlsVmlldzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { AXPFileUploaderWidgetService } from '@acorex/platform/widgets';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowFileUploaderPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.fileUploaderWidgetService = inject(AXPFileUploaderWidgetService);\n this.entityRegistryService = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n // *********** get options ***********\n const key = context.getVariable('options.key');\n const readOnly = context.getVariable('options.readOnly');\n const multiple = context.getVariable('options.multiple');\n const accept = context.getVariable('options.accept');\n const maxFileSize = context.getVariable('options.maxFileSize');\n const files = context.getVariable('options.files');\n const fileEditable = context.getVariable('options.fileEditable');\n // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\n fileEditable: fileEditable,\n });\n // Handle case when result is undefined or empty array\n if (!res || res.length === 0) {\n context.setOutput('result', false);\n return;\n }\n // *********** save files to entity ***********\n const [module, entity] = context.getVariable('entity').split('.');\n const entityDefinition = await this.entityRegistryService.resolve(module, entity);\n if (entityDefinition) {\n const updateExec = entityDefinition.commands?.update?.execute;\n const entityData = await updateExec({\n id: context.getVariable('options.id'),\n [key]: res,\n });\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(entityData));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowFileUploaderPopupWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPShowFileUploaderPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZmlsZS11cGxvYWRlci1wb3B1cC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQURyRTs7UUFFVSw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQTBDNUU7SUF4Q0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUV2QyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBUyxhQUFhLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFVLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFDdEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxzQkFBc0IsQ0FBQyxDQUFDO1FBRTFFLHlDQUF5QztRQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUM7WUFDNUQsS0FBSyxFQUFFLEtBQUs7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUNILHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFFRywrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBbUIsQ0FBQztZQUUxRSxNQUFNLFVBQVUsR0FBRyxNQUFNLFVBQVUsQ0FBQztnQkFDbEMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQVMsWUFBWSxDQUFDO2dCQUM3QyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0wsQ0FBQzs4R0EzQ1UsOEJBQThCO2tIQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBRDFDLFVBQVU7O0FBK0NYLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFnQjtJQUMzRCxXQUFXLEVBQUUsWUFBWTtJQUN6QixLQUFLLEVBQUU7UUFDTCxZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsZ0NBQWdDO1lBQ3hDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLHFDQUFxQyxFQUFFLENBQUM7b0JBQ25GLFVBQVUsRUFBRSxjQUFjO2lCQUMzQjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsS0FBSyxFQUFFLGdDQUFnQztnQkFDdkMsT0FBTyxFQUFFLCtCQUErQjthQUN6QztZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsRUFBRTtvQkFDZCxVQUFVLEVBQUUsaUJBQWlCO2lCQUM5QjthQUNGO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZixFQUFFLEVBQUUsaUJBQWlCO1lBQ3JCLE1BQU0sRUFBRSxnQ0FBZ0M7U0FDekM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBGaWxlTGlzdEl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQRmlsZVVwbG9hZGVyV2lkZ2V0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZmlsZVVwbG9hZGVyV2lkZ2V0U2VydmljZSA9IGluamVjdChBWFBGaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIC8vICoqKioqKioqKioqIGdldCBvcHRpb25zICoqKioqKioqKioqXG4gICAgY29uc3Qga2V5ID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmtleScpO1xuICAgIGNvbnN0IHJlYWRPbmx5ID0gY29udGV4dC5nZXRWYXJpYWJsZTxib29sZWFuPignb3B0aW9ucy5yZWFkT25seScpO1xuICAgIGNvbnN0IG11bHRpcGxlID0gY29udGV4dC5nZXRWYXJpYWJsZTxib29sZWFuPignb3B0aW9ucy5tdWx0aXBsZScpO1xuICAgIGNvbnN0IGFjY2VwdCA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignb3B0aW9ucy5hY2NlcHQnKTtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8bnVtYmVyPignb3B0aW9ucy5tYXhGaWxlU2l6ZScpO1xuICAgIGNvbnN0IGZpbGVzID0gY29udGV4dC5nZXRWYXJpYWJsZTxBWFBGaWxlTGlzdEl0ZW1bXT4oJ29wdGlvbnMuZmlsZXMnKTtcbiAgICBjb25zdCBmaWxlRWRpdGFibGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLmZpbGVFZGl0YWJsZScpO1xuICAgIFxuICAgIC8vICoqKioqKioqKioqIHNob3cgZmlsZSBsaXN0ICoqKioqKioqKioqXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlLnNob3dGaWxlTGlzdCh7XG4gICAgICBmaWxlczogZmlsZXMsXG4gICAgICByZWFkT25seTogcmVhZE9ubHksXG4gICAgICBtdWx0aXBsZTogbXVsdGlwbGUsXG4gICAgICBhY2NlcHQ6IGFjY2VwdCxcbiAgICAgIGZpbGVFZGl0YWJsZTogZmlsZUVkaXRhYmxlLFxuICAgIH0pO1xuICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gcmVzdWx0IGlzIHVuZGVmaW5lZCBvciBlbXB0eSBhcnJheVxuICAgIGlmICghcmVzIHx8IHJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgICAgIC8vICoqKioqKioqKioqIHNhdmUgZmlsZXMgdG8gZW50aXR5ICoqKioqKioqKioqXG4gICAgICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IGVudGl0eURlZmluaXRpb24gPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdHJ5U2VydmljZS5yZXNvbHZlKG1vZHVsZSwgZW50aXR5KTtcbiAgICBcbiAgICAgICAgaWYgKGVudGl0eURlZmluaXRpb24pIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVFeGVjID0gZW50aXR5RGVmaW5pdGlvbi5jb21tYW5kcz8udXBkYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgIFxuICAgICAgICAgIGNvbnN0IGVudGl0eURhdGEgPSBhd2FpdCB1cGRhdGVFeGVjKHtcbiAgICAgICAgICAgIGlkOiBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ29wdGlvbnMuaWQnKSxcbiAgICAgICAgICAgIFtrZXldOiByZXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgICAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCBjbG9uZURlZXAoZW50aXR5RGF0YSkpO1xuICAgICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XG4gIHN0YXJ0U3RlcElkOiAnc2hvdy1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctcG9wdXAnOiB7XG4gICAgICBhY3Rpb246ICdBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHN1Y2Nlc3NUb2FzdDoge1xuICAgICAgaWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtdGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowListViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split(\".\");\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${moduleName}/e/${entityName}/list`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowListViewWorkflow = {\n startStepId: 'showListView',\n steps: {\n showListView: {\n id: 'showListView',\n action: 'AXPShowListViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1saXN0LndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJbkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUQ1RDs7UUFFVSxlQUFVLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQVNwRDtJQVJDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBYTtRQUN6QixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxVQUFVLE1BQU0sVUFBVSxPQUFPO1NBQzNGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVZVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOztBQWNYLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxXQUFXLEVBQUUsY0FBYztJQUMzQixLQUFLLEVBQUU7UUFDTCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dMaXN0Vmlld0FjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uID0gaW5qZWN0KEFYUFdvcmtmbG93TmF2aWdhdGVBY3Rpb24pO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0PzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXR5Jykuc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XG4gICAgICBjb21tYW5kczogYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGVOYW1lfS9lLyR7ZW50aXR5TmFtZX0vbGlzdGAsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUFNob3dMaXN0Vmlld1dvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdzaG93TGlzdFZpZXcnLFxuICBzdGVwczoge1xuICAgIHNob3dMaXN0Vmlldzoge1xuICAgICAgaWQ6ICdzaG93TGlzdFZpZXcnLFxuICAgICAgYWN0aW9uOiAnQVhQU2hvd0xpc3RWaWV3QWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetViewComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2VudGl0eS1yZWZlcmVuY2UvZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUTNFLE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSx3QkFBd0I7OEdBQXRFLHFDQUFxQztrR0FBckMscUNBQXFDLCtGQUx0QyxFQUFFLDJEQUdGLFlBQVk7OzJGQUVYLHFDQUFxQztrQkFOakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG4gfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Injector, computed, effect, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetEditComponent extends AXPLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.injector = inject(Injector);\n this.entityResolver = inject(AXPEntityResolver);\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.#efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n console.log(this.entityDef());\n }, ...(ngDevMode ? [{ debugName: \"#efEntity\" }] : []));\n }\n #efEntity;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetEditComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2VudGl0eS1yZWZlcmVuY2UvZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBU3hELE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSx3QkFBd0I7SUFObkY7O1FBT3FCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVwRCxXQUFNLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQVcsa0RBQUMsQ0FBQztRQUVwRSxjQUFTLEdBQUcsTUFBTSxDQUFtQixJQUFJLHFEQUFDLENBQUM7UUFFckQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMscURBQUMsQ0FBQztLQUNKO0lBTEMsU0FBUyxDQUlOOzhHQVpRLHFDQUFxQztrR0FBckMscUNBQXFDLCtGQUx0QyxFQUFFLDJEQUdGLFlBQVksOEJBQUUsV0FBVzs7MkZBRXhCLHFDQUFxQztrQkFOakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UmVzb2x2ZXIgPSBpbmplY3QoQVhQRW50aXR5UmVzb2x2ZXIpO1xuXG4gIHByb3RlY3RlZCBlbnRpdHkgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydlbnRpdHknXSBhcyBzdHJpbmcpO1xuXG4gIHByb3RlY3RlZCBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgI2VmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZW50aXR5RGVmKCkpO1xuICB9KTtcbn0iXX0=","import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetColumnComponent extends AXPColumnWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\" }, usesInheritance: true, ngImport: i0, template: `{{rawValue}}`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `{{rawValue}}`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue']\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvZW50aXR5LXJlZmVyZW5jZS9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFuRSxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsd0JBQTZCOzhHQUE3RSx1Q0FBdUM7a0dBQXZDLHVDQUF1QyxpSUFOeEMsY0FBYywyREFHZCxZQUFZOzsyRkFHWCx1Q0FBdUM7a0JBUG5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBge3tyYXdWYWx1ZX19YCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFsncmF3VmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8YW55PiB7IH0iXX0=","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetPrintComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetPrintComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetPrintComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtcHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLHdCQUF3Qjs4R0FBdkUsc0NBQXNDO2tHQUF0QyxzQ0FBc0MsK0ZBTnZDLEVBQUUsMkRBR0YsWUFBWTs7MkZBR1gsc0NBQXNDO2tCQVBsRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUExheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldFByaW50Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetDesignerComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetDesignerComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetDesignerComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LWRlc2lnbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0UsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLHdCQUF3Qjs4R0FBMUUseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsK0ZBTDFDLEVBQUUsMkRBR0YsWUFBWTs7MkZBRVgseUNBQXlDO2tCQU5yRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUExheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldERlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPWidgetGroupEnum } from '@acorex/platform/layout/builder';\nimport { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPEntityReferenceWidget = {\n name: \"entity-reference\",\n title: \"Entity Reference\",\n description: '',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.FormElement],\n icon: \"fa-solid fa-square\",\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./entity-reference-widget-view.component').then((c) => c.AXPEntityReferenceWidgetViewComponent),\n },\n edit: {\n component: () => import('./entity-reference-widget-edit.component').then((c) => c.AXPEntityReferenceWidgetEditComponent),\n },\n column: {\n component: () => import('./entity-reference-widget-column.component').then((c) => c.AXPEntityReferenceWidgetColumnComponent),\n },\n print: {\n component: () => import('./entity-reference-widget-print.component').then((c) => c.AXPEntityReferenceWidgetPrintComponent),\n },\n designer: {\n component: () => import('./entity-reference-widget-designer.component').then((c) => c.AXPEntityReferenceWidgetDesignerComponent),\n },\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHckYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQW9CO0lBQ3ZELElBQUksRUFBRSxrQkFBa0I7SUFDeEIsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixXQUFXLEVBQUUsRUFBRTtJQUNmLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLEVBQUU7SUFDZCxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7SUFDeEMsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixVQUFVLEVBQUU7UUFDVixpQkFBaUI7UUFDakIsc0JBQXNCO0tBQ3ZCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO1NBQ3pIO1FBQ0QsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1NBQzdIO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDO1NBQzNIO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDO1NBQ2pJO0tBQ0Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcblxuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6IFwiZW50aXR5LXJlZmVyZW5jZVwiLFxuICB0aXRsZTogXCJFbnRpdHkgUmVmZXJlbmNlXCIsXG4gIGRlc2NyaXB0aW9uOiAnJyxcbiAgdHlwZTogJ3ZpZXcnLFxuICBjYXRlZ29yaWVzOiBbXSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkZvcm1FbGVtZW50XSxcbiAgaWNvbjogXCJmYS1zb2xpZCBmYS1zcXVhcmVcIixcbiAgcHJvcGVydGllczogW1xuICAgIEFYUF9OQU1FX1BST1BFUlRZLFxuICAgIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgICBjb2x1bW46IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUEVudGl0eVJlZmVyZW5jZVdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBwcmludDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtcHJpbnQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRQcmludENvbXBvbmVudCksXG4gICAgfSxcbiAgICBkZXNpZ25lcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXREZXNpZ25lckNvbXBvbmVudCksXG4gICAgfSxcbiAgfVxufSJdfQ==","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXPToastAction, AXPWorkflowNavigateAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { Injector, NgModule, inject } from '@angular/core';\nimport { ROUTES, RouterModule } from '@angular/router';\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\nimport { AXPEntityCommandSearchDefinitionProvider } from './search-definition-command.provider';\nimport { AXPEntitySearchDefinitionProvider } from './search-definition.provider';\nimport { AXPLookupWidget } from './widgets/lookup-widget';\nimport { AXPTagableBoxWidget } from './widgets/tagable-box';\nimport { AXPWidgetSelectorWidget } from './widgets/widget-selector';\nimport { AXPCreateEntityWorkflow, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, } from './workflows/create-entity.workflow';\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\nimport { AXPEntityApplyUpdatesAction, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, } from './workflows/modify-entity.workflow';\nimport { AXPEntityModifyConfirmedAction, AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow, } from './workflows/modify-section.workflow';\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\nimport { AXPShowFileUploaderPopupAction, AXPShowFileUploaderPopupWorkflow, } from './workflows/show-file-uploader-popup.workflow';\nimport { AXPShowListViewAction, AXPShowListViewWorkflow } from './workflows/show-list.workflow';\nimport { AXPEntityReferenceWidget } from './widgets/entity-reference';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nimport * as i2 from \"@acorex/platform/workflow\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n let routes = [];\n routes = [\n {\n path: ':app/m',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: ':module',\n children: [\n {\n path: 'e/:entity/list',\n loadComponent: () => {\n return config.viewers.master.list();\n },\n resolve: {\n vm: AXPEntityListViewModelResolver,\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id/view',\n resolve: { vm: AXPEntityDetailViewModelResolver },\n loadComponent: () => {\n return config.viewers.master.single();\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id',\n redirectTo: 'e/:entity/:id/view',\n pathMatch: 'full',\n },\n {\n path: 'e/:entity',\n redirectTo: ':entity/list',\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXPEntityModule {\n constructor(appInitService, injector) {\n const service = injector.get(AXPEntityDefinitionRegistryService);\n appInitService.registerTask({\n name: 'layout-theme',\n statusText: 'Preload entities ...',\n priority: 100,\n run: async () => {\n // load in background\n service.preload();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, imports: [RouterModule, i2.AXPWorkflowModule, i3.AXPLayoutBuilderModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ], imports: [RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget, AXPEntityReferenceWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget, AXPEntityReferenceWidget],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVC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QUUsd0NBQXdDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBUb2FzdEFjdGlvbiwgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBBWFBBcHBTdGFydFVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUywgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvbG9va3VwLXdpZGdldCc7XG5pbXBvcnQgeyBBWFBUYWdhYmxlQm94V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3RhZ2FibGUtYm94JztcbmltcG9ydCB7IEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvcic7XG5pbXBvcnQge1xuICBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24sXG4gIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdywgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uLFxuICBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uLFxuICBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbixcbiAgQVhQRW50aXR5TW9kaWZ5U2VjdGlvblBvcHVwQWN0aW9uLFxuICBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3csXG59IGZyb20gJy4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uLCBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24sXG4gIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cFdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9zaG93LWZpbGUtdXBsb2FkZXItcG9wdXAud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLCBBWFBTaG93TGlzdFZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvZW50aXR5LXJlZmVyZW5jZSc7XG5cbmZ1bmN0aW9uIHJvdXRlc0ZhY29yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgbGV0IHJvdXRlczogUm91dGVzID0gW107XG4gIHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9tJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy52aWV3ZXJzLnJvb3QoKTtcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW0FYUEF1dGhHdWFyZF0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJzptb2R1bGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHkvbGlzdCcsXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMubWFzdGVyLmxpc3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHZtOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudmlld2Vycy5tYXN0ZXIuc2luZ2xlKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZCcsXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHknLFxuICAgICAgICAgICAgICByZWRpcmVjdFRvOiAnOmVudGl0eS9saXN0JyxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhQV29ya2Zsb3dNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbixcbiAgICAgICAgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbixcbiAgICAgICAgJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZSc6IEFYUEVudGl0eVBlcmZvcm1EZWxldGVBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbixcbiAgICAgICAgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uLFxuICAgICAgICBBWFBUb2FzdEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLFxuICAgICAgICAnZW50aXR5LWFwcGx5LXVwZGF0ZXMnOiBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24sXG4gICAgICAgIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ2NyZWF0ZS1lbnRpdHknOiBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ2RlbGV0ZS1lbnRpdHknOiBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IEFYUE1vZGlmeUVudGl0eVNlY3Rpb25Xb3JrZmxvdyxcbiAgICAgICAgJ3F1aWNrLW1vZGlmeS1lbnRpdHknOiBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxuICAgICAgICAnb3Blbi1lbnRpdHknOiBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyxcbiAgICAgICAgJ3Nob3ctbGlzdC12aWV3JzogQVhQU2hvd0xpc3RWaWV3V29ya2Zsb3csXG4gICAgICAgICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnOiBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdyxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbnM6IHt9LFxuICAgIH0pLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW0FYUExvb2t1cFdpZGdldCwgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXQsIEFYUFRhZ2FibGVCb3hXaWRnZXQsIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldF0sXG4gICAgfSksXG4gIF0sXG4gIGV4cG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHJvdXRlc0ZhY29yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBFbnRpdHlTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBFbnRpdHlDb21tYW5kU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICAgIGFwcEluaXRTZXJ2aWNlLnJlZ2lzdGVyVGFzayh7XG4gICAgICBuYW1lOiAnbGF5b3V0LXRoZW1lJyxcbiAgICAgIHN0YXR1c1RleHQ6ICdQcmVsb2FkIGVudGl0aWVzIC4uLicsXG4gICAgICBwcmlvcml0eTogMTAwLFxuICAgICAgcnVuOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGxvYWQgaW4gYmFja2dyb3VuZFxuICAgICAgICBzZXJ2aWNlLnByZWxvYWQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXPEntityCommandScope } from \"@acorex/platform/common\";\n// #region Master\nexport function entityMasterCreateAction() {\n return {\n title: '@general:actions.create.title',\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\nexport function entityMasterBulkDeleteAction() {\n return {\n title: '@general:actions.delete-items.title',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n };\n}\nexport function entityMasterViewAction() {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityMasterDeleteAction() {\n return {\n title: '@general:actions.delete.title',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityMasterCrudActions() {\n return [\n entityMasterCreateAction(),\n entityMasterBulkDeleteAction(),\n entityMasterViewAction(),\n entityMasterDeleteAction(),\n ];\n}\nexport function entityMasterRecordActions() {\n return [\n entityMasterDeleteAction(),\n ];\n}\n// #endregion\n// #region Details\nexport function entityDetailsCreateActions(parentId) {\n return {\n title: '@general:actions.create.title',\n command: {\n name: 'create-entity',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n [parentId]: '{{context.eval(\"id\")}}',\n },\n },\n },\n },\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\nexport function entityDetailsSimpleCondition(fk) {\n return {\n name: fk,\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n };\n}\nexport function entityDetailsReferenceCondition() {\n return [{\n name: 'reference.id',\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n },\n {\n name: 'reference.type',\n operator: { type: 'equal' },\n value: '{{context.eval(\"entityName\")}}',\n }\n ];\n}\nexport function entityDetailsEditAction() {\n return {\n title: '@general:actions.edit.title',\n command: 'quick-modify-entity',\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityOverrideDetailsViewAction() {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n hidden: true,\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityDetailsCrudActions(parentId) {\n return [\n entityDetailsCreateActions(parentId),\n entityDetailsEditAction(),\n entityOverrideDetailsViewAction(),\n ];\n}\nexport function entityDetailsReferenceCreateActions() {\n return [\n {\n title: '@general:actions.create.title',\n command: {\n name: 'create-entity',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n 'reference': {\n 'id': '{{context.eval(\"id\")}}',\n 'type': '{{context.eval(\"entityName\")}}'\n }\n },\n },\n },\n },\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n entityDetailsEditAction(),\n entityOverrideDetailsViewAction(),\n ];\n}\n// #endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLHFCQUFxQixFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBTWpHLGlCQUFpQjtBQUVqQixNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVM7S0FDekMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQ3hDLE9BQU87UUFDSCxLQUFLLEVBQUUscUNBQXFDO1FBQzVDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDeEMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE9BQU87UUFDSCxLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxN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O1FBQ0QsdUJBQXVCLEVBQUU7UUFDekIsK0JBQStCLEVBQUU7S0FDcEMsQ0FBQztBQUNOLENBQUM7QUFFRCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5QWN0aW9uLCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUFF1ZXJ5RmlsdGVyIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5cblxuXG5cblxuLy8gI3JlZ2lvbiBNYXN0ZXJcblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckNyZWF0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnY3JlYXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUtaXRlbXMudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlclZpZXdBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMudmlldy50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdvcGVuLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5TWFzdGVyRGVsZXRlQWN0aW9uKCk6IEFYUEVudGl0eUFjdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmRlbGV0ZS50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckNydWRBY3Rpb25zKCk6IEFYUEVudGl0eUFjdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBlbnRpdHlNYXN0ZXJDcmVhdGVBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJWaWV3QWN0aW9uKCksXG4gICAgICAgIGVudGl0eU1hc3RlckRlbGV0ZUFjdGlvbigpLFxuICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zKCk6IEFYUEVudGl0eUFjdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuLy8gI3JlZ2lvbiBEZXRhaWxzXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzQ3JlYXRlQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjYW5DcmVhdGVOZXdPbmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRJZF06ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1NpbXBsZUNvbmRpdGlvbihmazogc3RyaW5nKTogQVhQUXVlcnlGaWx0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGZrLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJpZFwiKX19JyxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1JlZmVyZW5jZUNvbmRpdGlvbigpOiBBWFBRdWVyeUZpbHRlcltdIHtcbiAgICByZXR1cm4gW3tcbiAgICAgICAgbmFtZTogJ3JlZmVyZW5jZS5pZCcsXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgICAgdmFsdWU6ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiAncmVmZXJlbmNlLnR5cGUnLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJlbnRpdHlOYW1lXCIpfX0nLFxuICAgIH1cbiAgICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZWRpdC50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdxdWljay1tb2RpZnktZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU92ZXJyaWRlRGV0YWlsc1ZpZXdBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMudmlldy50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdvcGVuLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB0eXBlOiAndmlldycsXG4gICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eURldGFpbHNDcnVkQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGVudGl0eURldGFpbHNDcmVhdGVBY3Rpb25zKHBhcmVudElkKSxcbiAgICAgICAgZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5T3ZlcnJpZGVEZXRhaWxzVmlld0FjdGlvbigpLFxuICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzUmVmZXJlbmNlQ3JlYXRlQWN0aW9ucygpOiBBWFBFbnRpdHlBY3Rpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmNyZWF0ZS50aXRsZScsXG4gICAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuQ3JlYXRlTmV3T25lOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWZlcmVuY2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICd7e2NvbnRleHQuZXZhbChcImVudGl0eU5hbWVcIil9fSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgICAgIH0sXG4gICAgICAgIGVudGl0eURldGFpbHNFZGl0QWN0aW9uKCksXG4gICAgICAgIGVudGl0eU92ZXJyaWRlRGV0YWlsc1ZpZXdBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuXG5cblxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2Fjb3JleC1wbGF0Zm9ybS1sYXlvdXQtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.AXPEntityStorageService","i2.AXPEntityStorageRegistry","i2","i1","i4","i5","i6","i7","i8","i9","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGY,MAAC,qBAAqB,GAAG,IAAI,cAAc,CAAC,uBAAuB;AACxE,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxE;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AACtD,YAAY,MAAM,MAAM,EAAE,IAAI,EAAE;AAChC;AACA;AACA,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,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACvL,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,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACjBD,MAAC,uBAAuB,GAAG,IAAI,cAAc,CAAC,yBAAyB;AACvE,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,gCAAgC;AACxF,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC7D;AACA,IAAI,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE;AACtC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC3C,YAAY,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AACjD,gBAAgB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AACvE,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,OAAO,MAAM;AACjC;AACA;AACA;AACA,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AACnE;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,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,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACpL,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,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;AC1BN,MAAM,gCAAgC,CAAC;AAC9C,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AACjH,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS;AAC9F,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS;AAChG,QAAQ,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AACvC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,KAAK;AAClD,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK;AACvD,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK;AAChD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK;AAC9C,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACjC;AACA;AACO,MAAM,gCAAgC,CAAC;AAC9C,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClC,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;AACtC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC7D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,IAAI;AAC5D,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG;AACxC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO;AAC/D,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM;AACnC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;AACzD,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI;AAChE,gBAAgB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjC,gBAAgB,OAAO,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE;AACxE,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD;AACA;;AC5BO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,WAAW,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE;AACtD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;AACpD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC;AAC7F,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACnF,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC;AAC3C,YAAY,KAAK,EAAE,CAAC,GAAG,KAAK;AAC5B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;AACvE,gBAAgB,OAAO,IAAI,EAAE;AAC7B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK;AACzB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;AACvE,gBAAgB,OAAO,IAAI,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS;AACjD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,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,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;AAClD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,QAAQ,IAAI,CAAC,kBAAkB,CAAC,KAAK;AACjD,gBAAgB,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK;AACpE,gBAAgB,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,CAAC,MAAM;AACnD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,YAAY;AAC3C,YAAY,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,QAAQ,EAAE;AACnE,gBAAgB,MAAM,KAAK,GAAG;AAC9B,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,IAAI,EAAE,CAAC,IAAI,KAAK;AACxC,4BAA4B,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9D,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC;AACrG;AACA,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,KAAK;AAC9D;AACA,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD;AACA,YAAY,OAAO,EAAE;AACrB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,GAAG,CAAC;AAC9D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;AAC7F,YAAY,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE;AAChF;AACA,YAAY,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE;AACjD;AACA,YAAY,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK;AACvE,gBAAgB,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,GAAG,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI;AAC7I,gBAAgB,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AAC/E,oBAAoB,MAAM,iBAAiB,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI;AACvH,oBAAoB,OAAO,iBAAiB,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI;AAC3G,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,cAAc,EAAE;AACpC;AACA,oBAAoB,MAAM,WAAW,GAAG,CAAC,EAAE,OAAO,cAAc,CAAC,OAAO,KAAK,QAAQ,GAAG,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;AACrK,oBAAoB,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC;AACxD,oBAAoB,OAAO,IAAI,gCAAgC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC;AACpG;AACA,gBAAgB,OAAO,IAAI,gCAAgC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,CAAC;AAChG,aAAa,CAAC;AACd;AACA,YAAY,MAAM,iBAAiB,GAAG;AACtC,iBAAiB,MAAM,CAAC,CAAC,MAAM,KAAK;AACpC,gBAAgB,MAAM,SAAS,GAAG,CAAC,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/H,gBAAgB,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC;AAC1D,aAAa;AACb,iBAAiB,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,gCAAgC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;AACnG,YAAY,OAAO,CAAC,GAAG,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;AACpF,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,MAAM;AACpG,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM;AAC7C,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,SAAS;AAC1E,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACtF,qBAAqB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC9F,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,WAAW;AAC5E,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACtF,qBAAqB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC9F,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrN,QAAQ,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3N;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,EAAE;AACvB,SAAS;AACT;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrC,gBAAgB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE;AAC3E,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACtF,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC,IAAI,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;AAC7K,gBAAgB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5F,gBAAgB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACjD,oBAAoB,OAAO,IAAI,gCAAgC,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC/H,iBAAiB,CAAC;AAClB;AACA,YAAY,OAAO,EAAE;AACrB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,OAAO,UAAU,KAAK;AACzD,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAC/C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACnD,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,CAAC,IAAI,KAAK;AACpC,wBAAwB,OAAO,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC;AACpD,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;AAC7E,SAAS;AACT,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB;AACA,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACnE,QAAQ,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAClF,QAAQ,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,KAAK,CAAC,CAAC,sBAAsB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF;AACA,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC;AACA,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACrC;AACA;AACA;AACA,QAAQ,MAAM,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK;AACtG,YAAY,OAAO;AACnB,gBAAgB,KAAK,EAAE,CAAC,CAAC,IAAI;AAC7B,gBAAgB,QAAQ,EAAE,CAAC,CAAC,QAAQ;AACpC;AACA,gBAAgB,KAAK,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9D,aAAa;AACb,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AACxB,QAAQ,MAAM,mBAAmB,GAAG;AACpC,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,aAAa;AAClC,SAAS;AACT;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;AAC9D,QAAQ,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;AAC/D;AACA,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACrG;AACA,aAAa,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE;AACpC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AACtG;AACA,aAAa,IAAI,MAAM,IAAI,MAAM,EAAE;AACnC,YAAY,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;AACjF,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC;AAClE,aAAa,CAAC,CAAC;AACf;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC;AACA;AACA,IAAI,MAAM,cAAc,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE;AACnD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACrD,YAAY,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACzD,kBAAkB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC;AACnD,kBAAkB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,UAAU;AAC7D,YAAY,OAAO,CAAC,CAAC,IAAI,IAAI,WAAW,KAAK,eAAe,IAAI,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,CAAC;AAC3G,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM;AACnB,YAAY;AACZ,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI;AACxD,QAAQ,MAAM,WAAW,GAAG,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,IAAI;AAC5G,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC;AACvE,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,YAAY,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM;AAC7D,YAAY,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,WAAW;AACrG,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI;AAC/C,gBAAgB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM;AACnD,gBAAgB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK;AACjD,gBAAgB,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS;AACzD,gBAAgB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM;AACnD,aAAa;AACb,YAAY,OAAO;AACnB,SAAS,CAAC;AACV;AACA;;AClPO,SAAS,qBAAqB,CAAC,MAAM,EAAE;AAC9C,IAAI,MAAM,GAAG,GAAG;AAChB,QAAQ,MAAM;AACd,QAAQ,KAAK,EAAE;AACf,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,KAAK;AACnC,YAAY,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC/B,gBAAgB,MAAM,CAAC,KAAK,GAAG,QAAQ;AACvC,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM;AACpC,YAAY,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC/B,gBAAgB,MAAM,CAAC,MAAM,GAAG,QAAQ;AACxC,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,IAAI;AAClC,YAAY,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC/B,gBAAgB,MAAM,CAAC,IAAI,GAAG,QAAQ;AACtC,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,MAAM;AACpC,YAAY,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC/B,gBAAgB,MAAM,CAAC,MAAM,GAAG,QAAQ;AACxC,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,SAAS,EAAE;AACnB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,SAAS;AACvC,YAAY,GAAG,EAAE,CAAC,QAAQ,KAAK;AAC/B,gBAAgB,MAAM,CAAC,SAAS,GAAG,QAAQ;AAC3C,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,QAAQ;AACtC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1D,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,IAAI,EAAE,MAAM,MAAM,CAAC,UAAU;AACzC,YAAY,GAAG,EAAE,CAAC,GAAG,KAAK,KAAK;AAC/B,gBAAgB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAChD,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE,CAAC,SAAS,KAAK;AACnC,gBAAgB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAClF,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,MAAM;AAC7B,gBAAgB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACzE,gBAAgB,MAAM,EAAE,CAAC,OAAO,KAAK;AACrC,oBAAoB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACrF,oBAAoB,IAAI,KAAK,KAAK,CAAC,CAAC;AACpC,wBAAwB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACpF,oBAAoB,OAAO,GAAG;AAC9B,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,MAAM,MAAM,CAAC,OAAO;AACtC,YAAY,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK;AAC9B,gBAAgB,MAAM,CAAC,OAAO,KAAK,EAAE;AACrC,gBAAgB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAC5C,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE,CAAC,SAAS,KAAK;AACnC,gBAAgB,IAAI,MAAM,CAAC,OAAO;AAClC,oBAAoB,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChF,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,IAAI,MAAM;AAC7B,gBAAgB,GAAG,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACvE,gBAAgB,MAAM,EAAE,CAAC,OAAO,KAAK;AACrC,oBAAoB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AACnF,oBAAoB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO;AAC7E,wBAAwB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,oBAAoB,OAAO,GAAG;AAC9B,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,OAAO;AACrC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,IAAI,EAAE,MAAM,MAAM,CAAC,eAAe;AAC9C,YAAY,GAAG,EAAE,CAAC,GAAG,KAAK,KAAK;AAC/B,gBAAgB,MAAM,CAAC,eAAe,KAAK,EAAE;AAC7C,gBAAgB,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AACrD,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE,CAAC,SAAS,KAAK;AACnC,gBAAgB,IAAI,MAAM,CAAC,eAAe;AAC1C,oBAAoB,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAChG,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM;AACrC,YAAY,GAAG,EAAE,CAAC,GAAG,KAAK,KAAK;AAC/B,gBAAgB,MAAM,CAAC,MAAM,KAAK,EAAE;AACpC,gBAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAC5C,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE,CAAC,SAAS,KAAK;AACnC,gBAAgB,IAAI,MAAM,CAAC,MAAM;AACjC,oBAAoB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC9E,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,QAAQ;AACtC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1D,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,OAAO,EAAE;AACjB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,OAAO;AACrC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,WAAW,EAAE;AACrB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,WAAW;AACzC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;AAChE,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,SAAS;AACT,QAAQ,UAAU,EAAE;AACpB,YAAY,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU;AACxC,YAAY,MAAM,EAAE,CAAC,OAAO,KAAK;AACjC,gBAAgB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;AAC9D,gBAAgB,OAAO,GAAG;AAC1B,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM;AACpD,gBAAgB,MAAM,EAAE,CAAC,OAAO,KAAK;AACrC,oBAAoB,MAAM,CAAC,UAAU,KAAK,EAAE;AAC5C,oBAAoB,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AAChF,oBAAoB,OAAO,GAAG;AAC9B,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM;AAChE,oBAAoB,MAAM,EAAE,CAAC,OAAO,KAAK;AACzC,wBAAwB,MAAM,CAAC,UAAU,KAAK,EAAE;AAChD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE;AACvD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAClG,wBAAwB,OAAO,GAAG;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM;AAChE,oBAAoB,MAAM,EAAE,CAAC,OAAO,KAAK;AACzC,wBAAwB,MAAM,CAAC,UAAU,KAAK,EAAE;AAChD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE;AACvD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAClG,wBAAwB,OAAO,GAAG;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM;AAChE,oBAAoB,MAAM,EAAE,CAAC,OAAO,KAAK;AACzC,wBAAwB,MAAM,CAAC,UAAU,KAAK,EAAE;AAChD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE;AACvD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAClG,wBAAwB,OAAO,GAAG;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM;AACpD,gBAAgB,MAAM,EAAE,CAAC,OAAO,KAAK;AACrC,oBAAoB,MAAM,CAAC,UAAU,KAAK,EAAE;AAC5C,oBAAoB,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AAChF,oBAAoB,OAAO,GAAG;AAC9B,iBAAiB;AACjB,gBAAgB,IAAI,EAAE;AACtB,oBAAoB,GAAG,EAAE,MAAM,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI;AAC9D,oBAAoB,MAAM,EAAE,CAAC,OAAO,KAAK;AACzC,wBAAwB,MAAM,CAAC,UAAU,KAAK,EAAE;AAChD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE;AACvD,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;AAC9F,wBAAwB,OAAO,GAAG;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE,MAAM,MAAM;AAC9B,KAAK;AACL,IAAI,OAAO,GAAG;AACd;;AC1MY,MAAC,mBAAmB,GAAG,IAAI,cAAc,CAAC,qBAAqB;;ACGpE,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE;AAClC,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;AACtF,QAAQ,KAAK,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACvE,YAAY,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;AAC/C;AACA;AACA,IAAI,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE;AACnC,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC;AAChD;AACA,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AACxD,QAAQ,IAAI,CAAC,QAAQ;AACrB,YAAY,OAAO,MAAM;AACzB,QAAQ,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC;AACrD,QAAQ,QAAQ,CAAC,OAAO,CAAC;AACzB,QAAQ,OAAO,OAAO,CAAC,QAAQ,EAAE;AACjC;AACA,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,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtL,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,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,CAAC;;ACxBhC,MAAM,kCAAkC,CAAC;AAChD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC7D,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACjD,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACrD;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE;AACjC;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AACxD;AACA,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;AACtD,cAAc,IAAI,CAAC;AACnB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9B,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B;AACA,QAAQ,SAAS,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE;AAC7D,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC;AAChC,gBAAgB,OAAO;AACvB,gBAAgB,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACpH,aAAa,CAAC;AACd;AACA,QAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK;AACxC,YAAY,MAAM,KAAK,GAAG,OAAO,QAAQ,CAAC,OAAO,IAAI,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;AACzF,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACpC;AACA,gBAAgB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM;AACpF,qBAAqB,KAAK,CAAC,GAAG,IAAI;AAClC,oBAAoB,OAAO,CAAC,KAAK,CAAC,CAAC,2DAA2D,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACnI,oBAAoB,OAAO,IAAI;AAC/B,iBAAiB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC3D,aAAa,CAAC;AACd,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;AAC1D,QAAQ,MAAM,cAAc,GAAG,EAAE;AACjC,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK;AACzC,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,EAAE;AACvE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,gBAAgB,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACjD;AACA,iBAAiB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE;AACnD,gBAAgB,OAAO,CAAC,KAAK,CAAC,6DAA6D,EAAE,MAAM,CAAC,MAAM,CAAC;AAC3G;AACA,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;AACpE,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE;AAC1C,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;AAChE,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;AACnD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,IAAI;AAChB,gBAAgB,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AAC9E,gBAAgB,IAAI,MAAM,EAAE;AAC5B,oBAAoB,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;AAC3E,oBAAoB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AAClD,oBAAoB,OAAO,eAAe;AAC1C;AACA;AACA,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,MAAM,KAAK,CAAC;AAC5B;AACA,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9D;AACA;AACA,QAAQ,OAAO,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;AAC5C,QAAQ,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC5C;AACA,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,EAAE,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,kCAAkC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC5K;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,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC7GN,MAAM,mCAAmC,CAAC;AACjD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7E,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACpD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;AACzC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/D,YAAY,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC;AACxD,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM;AAC1D,YAAY,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,IAAI,EAAE;AAC5E,YAAY,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AAChF,YAAY,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjK,YAAY,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AACxD,gBAAgB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC;AACzF,gBAAgB,OAAO,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC;AACvG,aAAa,CAAC;AACd,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D;AACA;AACO,MAAM,mCAAmC,CAAC;AACjD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC5D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK;AACxF,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;AAClE,YAAY,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC;AACxD,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM;AACnC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC/C,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;AAC3C,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,MAAM;AACvD,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,eAAe,EAAE,MAAM,CAAC,eAAe;AACvD,gBAAgB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC1D,oBAAoB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClI,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD;AACA;AACO,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,cAAc,EAAE;AACpE,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW;AACtC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACnF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1G,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,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,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS;AAC7D,YAAY,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACrG,YAAY,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/I,YAAY,MAAM,QAAQ,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;AACpJ,YAAY,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,mCAAmC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAC9G,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,WAAW;AACxB,YAAY,WAAW,GAAG,EAAE;AAC5B,QAAQ,MAAM,KAAK,GAAG;AACtB,YAAY,OAAO,EAAE;AACrB,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK;AAChC,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpD,wBAAwB,UAAU,CAAC,MAAM;AACzC,4BAA4B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC3D,yBAAyB,CAAC;AAC1B,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK;AAChD,YAAY,IAAI,OAAO,KAAK,IAAI,UAAU,EAAE;AAC5C,gBAAgB,OAAO,KAAK,EAAE;AAC9B;AACA,iBAAiB,IAAI,OAAO,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACzE,gBAAgB,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;AAC5E;AACA,YAAY,OAAO,KAAK;AACxB,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC;AACpB,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACxD,aAAa,OAAO,CAAC,OAAO,CAAC,KAAK;AAClC,YAAY,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;AACrE,YAAY,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3C,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACxC;AACA,QAAQ,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC,IAAI,EAAE;AAC7F,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI;AACZ,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;AAC5D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO;AACjE,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACrD,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC7D,YAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AAC5C,gBAAgB,UAAU,CAAC,MAAM;AACjC,oBAAoB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;AACnE,oBAAoB,OAAO,CAAC,MAAM,CAAC;AACnC,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;AACvD,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC;AACA,gBAAgB;AAChB,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AACxC;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;AACrD,YAAY,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AACxD,YAAY,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACnC,YAAY,IAAI,EAAE,IAAI,CAAC,WAAW;AAClC;AACA,SAAS,CAAC;AACV;AACA;AACO,MAAM,+BAA+B,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;AAClH,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC9C,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;AAC9F;AACA,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,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClM,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,+BAA+B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACzK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACzKN,MAAM,qCAAqC,CAAC;AACnD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI;AAClC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AACpC,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;AACpC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;AACxC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU;AAC9C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1C;AACA;AACO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE;AACnC,QAAQ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5E,QAAQ,MAAM,gBAAgB,GAAG,aAAa,EAAE,IAAI,EAAE,WAAW;AACjE,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,gBAAgB,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAChH,YAAY,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC,YAAY,IAAI,CAAC,gBAAgB,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC;AACA;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE;AAClC,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC;AAC1E,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/D,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC3D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC;AACzE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACnF,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC;AAC7F,QAAQ,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3E,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE;AACpC;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;AAC9E,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACpC,gBAAgB,OAAO,IAAI,qCAAqC,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzF,aAAa,CAAC;AACd,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1F,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC;AAC3C,YAAY,KAAK,EAAE,CAAC,GAAG,KAAK;AAC5B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AACjE,gBAAgB,OAAO,IAAI,EAAE;AAC7B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK;AACzB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;AACjE,gBAAgB,OAAO,IAAI,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,YAAY,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE;AAChD,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS,CAAC;AACV,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,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS;AAC3C,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;AAClD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM;AACvE,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI;AACpD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC;AAC5H,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,GAAG,CAAC;AAC9D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO;AACnB,gBAAgB;AAChB,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;AAC/E,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;AACnG,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD,YAAY,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,MAAM;AACpG,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrN;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;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM;AACzC,YAAY,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS;AAC/D,YAAY,MAAM,iBAAiB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;AACxF,YAAY,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;AACvF,YAAY,OAAO;AACnB,iBAAiB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAChE,iBAAiB,GAAG,CAAC,CAAC,MAAM,KAAK;AACjC,gBAAgB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;AAC3F,gBAAgB,OAAO,IAAI,gCAAgC,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC7E,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM;AACzE,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnF;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;AACpC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AAC3F,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACpC,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,EAAE,CAAC,CAAC,IAAI;AAChC,oBAAoB,KAAK,EAAE,CAAC,CAAC,KAAK;AAClC,oBAAoB,GAAG,EAAE,SAAS;AAClC,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC;AAChG,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,YAAY,OAAO,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM;AACpC,YAAY,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAClE,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM;AACjC,YAAY,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM;AAClE,SAAS;AACT,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,mBAAmB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC5D,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,CAAC,IAAI,KAAK;AACpC,wBAAwB,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1E,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC;AACtB,aAAa,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;AACzC,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;AAC9E,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,gBAAgB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAClF;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AACpD;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACjC,QAAQ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC9E,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO;AAChF,YAAY,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ;AAClF,YAAY,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9F,YAAY,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACxF;AACA;AACA;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AAC1C,iBAAiB,GAAG,CAAC,CAAC,CAAC,KAAK;AAC5B,gBAAgB,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;AAC1H,aAAa,CAAC;AACd,iBAAiB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AAC/E,gBAAgB,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACjE;AACA;AACA,IAAI,MAAM,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE;AAC1C,QAAQ,MAAM,cAAc,GAAG,CAAC,QAAQ,KAAK;AAC7C,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC;AAC9F,SAAS;AACT,QAAQ,QAAQ,WAAW;AAC3B,YAAY,KAAK,aAAa;AAC9B,gBAAgB,cAAc,CAAC,CAAC,IAAI,KAAK;AACzC,oBAAoB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,oBAAoB,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE;AACnD,oBAAoB,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3I,wBAAwB,GAAG,CAAC;AAC5B,wBAAwB,KAAK,EAAE,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AACtE,qBAAqB,CAAC,CAAC,CAAC;AACxB,oBAAoB,OAAO,WAAW;AACtC,iBAAiB,CAAC;AAClB,gBAAgB;AAChB,YAAY,KAAK,cAAc;AAC/B,gBAAgB,cAAc,CAAC,CAAC,IAAI,KAAK;AACzC,oBAAoB,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,EAAE;AACnD,oBAAoB,GAAG,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAChG,wBAAwB,IAAI,EAAE,CAAC,CAAC,IAAI;AACpC,wBAAwB,OAAO,EAAE,CAAC,CAAC,OAAO;AAC1C,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK;AACtC,qBAAqB,CAAC,CAAC,CAAC;AACxB,oBAAoB,OAAO,WAAW;AACtC,iBAAiB,CAAC;AAClB,gBAAgB;AAChB,YAAY,KAAK,MAAM;AACvB,gBAAgB,cAAc,CAAC,CAAC,IAAI,MAAM;AAC1C,oBAAoB,GAAG,IAAI;AAC3B,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,GAAG,IAAI,EAAE,IAAI;AACrC,wBAAwB,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI;AACrD,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,gBAAgB;AAChB,YAAY,KAAK,UAAU;AAC3B,gBAAgB,cAAc,CAAC,CAAC,IAAI,MAAM;AAC1C,oBAAoB,GAAG,IAAI;AAC3B,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,GAAG,IAAI,EAAE,IAAI;AACrC,wBAAwB,KAAK,EAAE;AAC/B,4BAA4B,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK;AAChD,4BAA4B,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG;AAChD,gCAAgC,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;AACxE,gCAAgC,QAAQ,EAAE,IAAI;AAC9C,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB;AAChB;AACA;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC;AACA,IAAI,MAAM,iBAAiB,GAAG;AAC9B,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;AACzD,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,SAAS;AAClD,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAClF,iBAAiB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACzF,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;AACrF,YAAY,IAAI,QAAQ;AACxB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;AACvF,YAAY,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,OAAO;AACtB;AACA,IAAI,MAAM,mBAAmB,GAAG;AAChC,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;AACzD,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,WAAW;AACpD,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAClF,iBAAiB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AACzF,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;AACrF,YAAY,IAAI,QAAQ;AACxB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;AACvF,YAAY,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,OAAO;AACtB;AACA,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE;AACvC,QAAQ,MAAM,KAAK,GAAG;AACtB,YAAY,OAAO,EAAE;AACrB,gBAAgB,IAAI,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAClD,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU;AACzD,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,qBAAqB,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,WAAW;AACrG,aAAa,GAAG,CAAC,OAAO,CAAC,KAAK;AAC9B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC;AACrF,YAAY,IAAI,QAAQ;AACxB,gBAAgB,OAAO,IAAI;AAC3B,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC;AACvF,YAAY,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE;AACrC,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AACtC;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU;AACxC;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACxI,QAAQ,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAChC,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACtF,YAAY,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;AAChE,gBAAgB,YAAY,EAAE,uBAAuB;AACrD,gBAAgB,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,KAAK,EAAE,CAAC,CAAC,KAAK;AAC9B,gBAAgB,KAAK,EAAE,CAAC,CAAC,IAAI;AAC7B,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,IAAI,EAAE,UAAU;AACpC,iBAAiB;AACjB,gBAAgB,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE;AACrE,gBAAgB,OAAO,EAAE,EAAE;AAC3B,gBAAgB,YAAY,EAAE,KAAK;AACnC,gBAAgB,IAAI,EAAE,YAAY,EAAE,IAAI;AACxC,gBAAgB,UAAU,EAAE;AAC5B,oBAAoB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK;AACzE,oBAAoB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;AACvE,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,GAAG;AAC7B,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC/D,YAAY,KAAK,EAAE,CAAC,CAAC,IAAI;AACzB,YAAY,QAAQ,EAAE,CAAC,CAAC,QAAQ;AAChC,YAAY,KAAK,EAAE,CAAC,CAAC,KAAK;AAC1B,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;AAChF;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B;AACA,IAAI,MAAM,kBAAkB,GAAG;AAC/B,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY;AACjD,aAAa,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG;AAClC,aAAa,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;AAC7E,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE;AACzC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC/B;AACA,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE;AACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;AAClD;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO;AACxC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7D,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AAClF,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AAChF,YAAY,MAAM,GAAG,GAAG,IAAI,gCAAgC,CAAC,IAAI,EAAE,MAAM,CAAC;AAC1E,YAAY,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK;AAClF,YAAY,OAAO,GAAG;AACtB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AAChC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,cAAc,EAAE;AAC7B;AACA,IAAI,cAAc,GAAG;AACrB,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK;AAC3C,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AAC3C,YAAY,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9E,YAAY,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACpC,gBAAgB,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;AAC7D,gBAAgB,IAAI,WAAW,EAAE;AACjC,oBAAoB,OAAO,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE;AAC9D;AACA,gBAAgB,OAAO,EAAE;AACzB,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA;AACA,IAAI,MAAM,cAAc,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE;AACnD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;AACrD,YAAY,QAAQ,CAAC,CAAC,IAAI,IAAI,WAAW;AACzC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI;AACtD,sBAAsB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC;AACvD,sBAAsB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,UAAU;AACjE,oBAAoB,CAAC,CAAC,KAAK,IAAI,qBAAqB,CAAC,SAAS,CAAC;AAC/D,SAAS,CAAC;AACV,QAAQ,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAC7E,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AAC7C,YAAY,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AACxD,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACzC,gBAAgB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;AAC7C,gBAAgB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK;AAC3C,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS;AACnD,gBAAgB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;AAC7C,aAAa;AACb,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,qBAAqB,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI;AAC/F,YAAY,OAAO,EAAE,OAAO;AAC5B,YAAY,QAAQ,EAAE,MAAM,EAAE,QAAQ;AACtC,SAAS,CAAC;AACV;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,QAAQ,OAAO,EAAE,IAAI;AAC7B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;AACxD,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;AACvD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;AACjD,gBAAgB;AAChB;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACjC;AACA;AACO,MAAM,6BAA6B,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE;AACzC,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC9C,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;AACtE;AACA,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,UAAU,EAAE,CAAC,CAAC;AAChM,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,6BAA6B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACvK;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,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,8BAA8B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,6BAA6B,CAAC,KAAK;AACjH,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3D,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD;AACA,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;AACjD;;ACzcO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD;AACA,IAAI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE;AAC9C,QAAQ,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC1F;AACA,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,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACnL,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,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC1J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACRD,MAAC,qBAAqB,GAAG,mBAAmB,CAAC,kBAAkB;AACpE,MAAM,4BAA4B,SAAS,iBAAiB,CAAC;AACpE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC3D,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC9D;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC1D,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACtD,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5C,QAAQ,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI;AACtD,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,IAAI,YAAY,IAAI,IAAI,EAAE;AAClC,YAAY,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/E,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,gBAAgB,MAAM,EAAE,YAAY;AACpC,gBAAgB,GAAG,EAAE,GAAG;AACxB,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC;AAChE,YAAY,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;AAC1C;AACA,QAAQ,MAAM,iBAAiB,GAAG,EAAE;AACpC,QAAQ,IAAI,YAAY,GAAG,CAAC;AAC5B,QAAQ,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC;AACtD,QAAQ,WAAW,MAAM,MAAM,IAAI,QAAQ,EAAE;AAC7C,YAAY,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACrE,YAAY,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AAC/F,YAAY,IAAI,gBAAgB,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;AAChF,gBAAgB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;AAC3G;AACA,YAAY,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,gBAAgB;AAC/D;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,MAAM;AAClB,QAAQ,IAAI,iBAAiB;AAC7B,QAAQ,IAAI,aAAa,GAAG,KAAK;AACjC;AACA,QAAQ,MAAM,YAAY,GAAG,YAAY;AACzC,YAAY,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AAC7C,gBAAgB,KAAK,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,mBAAmB,CAAC;AACxF,gBAAgB,IAAI,EAAE,aAAa;AACnC,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrC,gBAAgB,OAAO,EAAE;AACzB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC;AACpF,wBAAwB,KAAK,EAAE,QAAQ;AACvC,wBAAwB,OAAO,EAAE,MAAM;AACvC,4BAA4B,IAAI,MAAM,EAAE;AACxC,gCAAgC,MAAM,CAAC,KAAK,EAAE;AAC9C;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,aAAa,GAAG,IAAI;AAChC,SAAS;AACT;AACA,QAAQ,iBAAiB,GAAG,UAAU,CAAC,YAAY;AACnD,YAAY,MAAM,YAAY,EAAE;AAChC,SAAS,EAAE,IAAI,CAAC;AAChB,QAAQ,IAAI,WAAW,GAAG,EAAE;AAC5B,QAAQ,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE;AACvC,YAAY,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC;AACrE,YAAY,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,EAAE;AAC3D,gBAAgB,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO;AAC7E,gBAAgB,MAAM,cAAc,GAAG,MAAM,CAAC;AAC9C,qBAAqB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK;AACpC,oBAAoB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK;AACpD,wBAAwB,UAAU,CAAC,MAAM;AACzC,4BAA4B,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACnD,yBAAyB,EAAE,CAAC,GAAG,GAAG,CAAC;AACnC,qBAAqB,CAAC;AACtB,iBAAiB;AACjB,qBAAqB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK;AACnD,oBAAoB,YAAY,EAAE;AAClC,oBAAoB,IAAI,aAAa,IAAI,MAAM,EAAE;AACjD,wBAAwB,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7E,wBAAwB,MAAM,CAAC,gBAAgB,CAAC,CAAC,YAAY,GAAG,QAAQ,IAAI,GAAG,CAAC;AAChF;AACA,oBAAoB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE;AACzD,iBAAiB,EAAE,CAAC,MAAM,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AACjE,gBAAgB,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;AAChE;AACA,iBAAiB;AACjB;AACA,gBAAgB,YAAY,CAAC,iBAAiB,CAAC;AAC/C,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,4CAA4C,EAAE,gBAAgB,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;AAClL;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AACtD;AACA,QAAQ,YAAY,CAAC,iBAAiB,CAAC;AACvC,QAAQ,IAAI,aAAa,EAAE;AAC3B,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,MAAM,CAAC,KAAK,EAAE;AAC9B,aAAa,EAAE,GAAG,CAAC;AACnB;AACA;AACA,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AACxD;AACA,QAAQ,MAAM,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;AACpG,QAAQ,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,MAAM;AAC/F,QAAQ,IAAI,kBAAkB,GAAG,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE;AAC5D;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,+BAA+B,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,8BAA8B,EAAE;AAC3M,oBAAoB,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE;AACxD,iBAAiB,CAAC;AAClB,gBAAgB,SAAS,CAAC;AAC1B;AACA;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAChH,YAAY,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5G;AACA,aAAa,IAAI,kBAAkB,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE;AAC/D;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,uCAAuC,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,8BAA8B,EAAE;AACnN,oBAAoB,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,cAAc,EAAE;AACjF,iBAAiB,CAAC,EAAE,SAAS,CAAC;AAC9B;AACA;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAChH;AACA,aAAa,IAAI,kBAAkB,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE;AACjE;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,4BAA4B,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,2BAA2B,EAAE;AACrM,oBAAoB,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;AACpD,iBAAiB,CAAC,EAAE,QAAQ,CAAC;AAC7B;AACA;AACA,aAAa;AACb;AACA,YAAY,IAAI,UAAU,EAAE;AAC5B,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE,SAAS,CAAC;AAC7L;AACA;AACA;AACA,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;AACD,MAAC,uBAAuB,GAAG;AACvC,IAAI,WAAW,EAAE,gBAAgB;AACjC,IAAI,KAAK,EAAE;AACX,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,MAAM,EAAE,oBAAoB;AACxC,YAAY,KAAK,EAAE;AACnB,gBAAgB,KAAK,EAAE,kBAAkB;AACzC,gBAAgB,OAAO,EAAE,CAAC,uBAAuB,CAAC;AAClD,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE;AAChC,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,KAAK;AACvC,4BAA4B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,qCAAqC,EAAE,CAAC;AAC/G,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,UAAU,EAAE,gBAAgB;AAChD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,MAAM,EAAE,uBAAuB;AAC3C,SAAS;AACT,KAAK;AACL;;ACpLO,MAAM,qCAAqC,CAAC;AACnD,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE;AAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;AAC5D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM;AACzC,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK;AACxF,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5H,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;AAC9D,YAAY,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC;AACxD,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM;AACnC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC/C,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;AAC3C,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,MAAM;AACvD,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,eAAe,EAAE,MAAM,CAAC,eAAe;AACvD,gBAAgB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC1D,oBAAoB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClI,iBAAiB,CAAC;AAClB,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD;AACA;AACO,MAAM,8BAA8B,CAAC;AAC5C;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE;AACvC;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;AACrC;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE;AACxC;AACA,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE;AACrD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAClE,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AACzH,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACpC,gBAAgB,OAAO,IAAI,qCAAqC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AACnF,aAAa,CAAC;AACd,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClC,gBAAgB,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpC,gBAAgB,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC9C,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,IAAI,QAAQ;AAChE,oBAAoB,IAAI,EAAE,YAAY;AACtC,iBAAiB;AACjB,aAAa,CAAC;AACd;AACA;AACA,IAAI,MAAM,IAAI,GAAG;AACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;AACxD,QAAQ,IAAI;AACZ,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM;AACvD,YAAY,IAAI,GAAG,EAAE;AACrB,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO;AACxC,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACzD,gBAAgB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC;AAC/D,gBAAgB,OAAO,MAAM;AAC7B;AACA;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC;AACvD,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;AACxC;AACA,gBAAgB;AAChB,YAAY,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AACxC;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpD;AACA,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC3B,YAAY,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AAC1C,gBAAgB,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpC,gBAAgB,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChE,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC;AACd;AACA;AACA;AACO,MAAM,qCAAqC,CAAC;AACnD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE;AACpD,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AAClC,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AACrD,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACnD,YAAY,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC;AACzF;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;AAC9C;AACA,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,qCAAqC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACxM,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,qCAAqC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;ACvID,MAAC,oBAAoB,GAAG,mBAAmB,CAAC,mBAAmB;AACpE,MAAM,iCAAiC,SAAS,iBAAiB,CAAC;AACzE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qCAAqC,CAAC;AACpE;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACjF,QAAQ,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AACrE,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AACpF,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC;AACpF,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACtD,QAAQ,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;AAClD,QAAQ,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK;AACrD,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7D,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACxD,YAAY,KAAK,EAAE;AACnB,kBAAkB;AAClB,kBAAkB,KAAK;AACvB,oBAAoB,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAClJ,YAAY,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI;AACtF,YAAY,IAAI,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,UAAU;AAC1B,gBAAgB,MAAM,EAAE,SAAS;AACjC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE;AACxC,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE;AACA;AACA,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;AACN,MAAM,8BAA8B,SAAS,iBAAiB,CAAC;AACtE,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AACvD,QAAQ,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3G,QAAQ,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AACtC,YAAY,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;AACjD,YAAY,IAAI,EAAE;AAClB,gBAAgB,eAAe,EAAE,WAAW,CAAC,iBAAiB,CAAC;AAC/D,aAAa;AACb,SAAS,CAAC,CAAC;AACX;AACA,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,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACnM,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,8BAA8B,EAAE,CAAC,CAAC;AACpJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,8BAA8B,GAAG;AAC9C,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,KAAK,EAAE;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,EAAE,EAAE,aAAa;AAC7B,YAAY,MAAM,EAAE,mCAAmC;AACvD,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,qCAAqC,EAAE,CAAC;AACvG,oBAAoB,UAAU,EAAE,cAAc;AAC9C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,MAAM,EAAE,gBAAgB;AACpC,YAAY,KAAK,EAAE;AACnB,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,KAAK,EAAE,gCAAgC;AACvD,gBAAgB,OAAO,EAAE,+BAA+B;AACxD,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,EAAE;AAClC,oBAAoB,UAAU,EAAE,iBAAiB;AACjD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,EAAE,EAAE,iBAAiB;AACjC,YAAY,MAAM,EAAE,gCAAgC;AACpD,SAAS;AACT,KAAK;AACL;;ACzFO,MAAM,uCAAuC,CAAC;AACrD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7E,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,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,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACpD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW;AACzC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/D,YAAY,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC;AACxD,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM;AAC1D,YAAY,MAAM,eAAe,GAAG;AACpC,iBAAiB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AAC5F,iBAAiB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AACxC,YAAY,MAAM,cAAc,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AACrI,YAAY,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,qCAAqC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnH,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM;AAC1D,YAAY,MAAM,qBAAqB,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AAC/G,YAAY,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC5K,YAAY,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,qCAAqC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvH,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC;AAClD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D;AACA;AACO,MAAM,qCAAqC,CAAC;AACnD,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY;AACxC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC5F,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtI,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;AACrC,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC1H,YAAY,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAC5D,YAAY,GAAG,CAAC,MAAM,EAAE,2BAA2B,EAAE,EAAE,CAAC;AACxD,YAAY,OAAO,MAAM;AACzB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3D,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM;AACnC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;AAC/C,YAAY,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS;AAC3C,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,MAAM,CAAC,IAAI;AACjC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjC,gBAAgB,QAAQ,EAAE,MAAM,CAAC,QAAQ;AACzC,gBAAgB,OAAO,EAAE,MAAM,CAAC,OAAO;AACvC,gBAAgB,eAAe,EAAE,MAAM,CAAC,eAAe;AACvD,gBAAgB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;AACzD,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzD;AACA;AACO,MAAM,8BAA8B,CAAC;AAC5C,IAAI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE;AAC9C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC;AAC5E,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC3D,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC;AAC/D,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC;AACvE,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAChE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,6BAA6B,CAAC;AACnF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,gCAAgC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;AACnJ,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM;AAC7C,YAAY,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC;AACxE,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC;AAC1E,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM;AACvC,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS;AAC7D,YAAY,MAAM,SAAS,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE;AACnG,YAAY,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC9I,YAAY,MAAM,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;AACnJ,YAAY,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,uCAAuC,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AAChH,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;AACpC,YAAY,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACpH,YAAY,IAAI,eAAe,GAAG,cAAc;AAChD,YAAY,IAAI,cAAc;AAC9B,gBAAgB,eAAe,GAAG,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9D,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,eAAe,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC9G,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1D;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;AACjC,kBAAkB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;AAC/F,kBAAkB,IAAI;AACtB,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO;AACnB,gBAAgB;AAChB,oBAAoB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU;AAC7F,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,IAAI,EAAE,UAAU;AACxC,wBAAwB,OAAO,EAAE;AACjC,4BAA4B,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC/H,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB;AAChB,oBAAoB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC5D,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,IAAI,EAAE,CAAC,IAAI,KAAK;AACpC,wBAAwB,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAC9C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1E,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,YAAY;AACpD,YAAY,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE;AAC7L,YAAY,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5H,YAAY,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;AAC/D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE,QAAQ,IAAI,CAAC,QAAQ,CAAC;AACtB,aAAa,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAC/C,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,aAAa,SAAS,CAAC,CAAC,KAAK,KAAK;AAClC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AAC5E,gBAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE;AAC/D,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE;AACxD,oBAAoB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AAChE,iBAAiB,CAAC;AAClB;AACA,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,CAAC;AACtB,aAAa,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;AAC9C,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;AAC3C,aAAa,SAAS,CAAC,OAAO,KAAK,KAAK;AACxC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AAC5E,gBAAgB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AAC/D,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACtD;AACA,SAAS,CAAC;AACV;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;AAC1C,YAAY,OAAO,EAAE;AACrB,gBAAgB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC/F,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,MAAM,cAAc,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,EAAE;AACnD;AACA,QAAQ,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjD,QAAQ,QAAQ,OAAO;AACvB,YAAY,KAAK,uBAAuB,EAAE;AAC1C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE;AAC/D,oBAAoB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AAChE,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;AAC7C,wBAAwB,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7E,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB;AAChB;AACA,YAAY,SAAS;AACrB,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,WAAW,CAAC;AAChF,gBAAgB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;AAC/F,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;AAC/C,oBAAoB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AAChE,oBAAoB,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;AACxC,oBAAoB,OAAO;AAC3B,iBAAiB,CAAC;AAClB;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,QAAQ,OAAO,EAAE,IAAI;AAC7B,YAAY,KAAK,UAAU;AAC3B,gBAAgB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;AACxD,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;AACvD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB;AAChB,YAAY;AACZ,gBAAgB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;AAClE,gBAAgB;AAChB;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;AAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACjC;AACA;AACO,MAAM,+BAA+B,CAAC;AAC7C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACvE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE;AAC7C,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;AAC9C,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;AAClC,YAAY,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AACrD,YAAY,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC;AACvC,YAAY,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AACnD,YAAY,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC;AAClF;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC/C,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;AAC9C;AACA,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,+BAA+B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClM,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,+BAA+B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACzK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,gCAAgC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,+BAA+B,CAAC,KAAK;AACrH,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3D,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,IAAI,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC;AACA,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC;AACrD;;AC3QO,MAAM,uBAAuB,CAAC;AACrC;AACO,MAAM,qBAAqB,CAAC;AACnC;AACO,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,CAAC,cAAc,EAAE,UAAU,EAAE;AAC5C,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC;AACA,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE;AAC9B,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;AACtE;AACA,IAAI,MAAM,CAAC,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AAC9D;AACA,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D;AACA,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;AAClE;AACA,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC;AAC5E;AACA,IAAI,SAAS,CAAC,EAAE,EAAE;AAClB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;AACjE;AACA,IAAI,SAAS,CAAC,MAAM,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC;AACrE;AACA;AACO,MAAM,oBAAoB,CAAC;AAClC;AACO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,CAAC,UAAU,EAAE;AAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU;AACpC,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC9D,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC;AACvG;AACA,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC;AAC1D;AACA,IAAI,MAAM,MAAM,CAAC,EAAE,EAAE;AACrB,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC;AAClD;AACA,IAAI,MAAM,SAAS,CAAC,EAAE,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;AACrD;AACA,IAAI,MAAM,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC;AAC7D;AACA,IAAI,MAAM,KAAK,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AAClD,QAAQ,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;AACvF,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AACpF,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE;AACjC,YAAY,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,SAAS,EAAE;AACnG,gBAAgB,OAAO,CAAC,MAAM,GAAG;AACjC,oBAAoB,KAAK,EAAE,IAAI;AAC/B,oBAAoB,KAAK,EAAE,SAAS,CAAC,SAAS;AAC9C,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE,SAAS;AACvC,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,QAAQ,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC;AACtD;AACA,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACzF,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9B;AACA,IAAI,MAAM,QAAQ,CAAC,OAAO,EAAE;AAC5B,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,MAAM,EAAE;AACpB,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,KAAK,EAAE,UAAU;AACjC,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,IAAI,EAAE,SAAS;AACnC,iBAAiB;AACjB;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;AACzE,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,WAAW,CAAC,OAAO,EAAE;AAC/B,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU;AACzD,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,MAAM,EAAE;AACpB,gBAAgB,KAAK,EAAE,OAAO,CAAC,QAAQ;AACvC,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,IAAI,EAAE,OAAO;AACjC,iBAAiB;AACjB;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;AACzE,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,MAAM,aAAa,CAAC,OAAO,EAAE;AACjC,QAAQ,MAAM,YAAY,GAAG;AAC7B,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,MAAM,EAAE;AACpB,gBAAgB,KAAK,EAAE,OAAO,CAAC,UAAU;AACzC,gBAAgB,KAAK,EAAE,OAAO,CAAC,WAAW,IAAI,aAAa;AAC3D,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,IAAI,EAAE,UAAU;AACpC,iBAAiB;AACjB;AACA,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC;AACzE,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,eAAe;AACnC;AACA;;AC3HA;AACA;AACA;AACO,SAAS,+BAA+B,CAAC,WAAW,EAAE;AAC7D,IAAI,OAAO,CAAC,OAAO,KAAK;AACxB,QAAQ,IAAI,QAAQ,GAAG,OAAO;AAC9B;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1D,YAAY,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC;AACrC,YAAY,MAAM,IAAI,GAAG,QAAQ;AACjC,YAAY,QAAQ,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD;AACA,QAAQ,OAAO,QAAQ;AACvB,KAAK;AACL;AACA;AACA;AACA;AACO,SAAS,iBAAiB,GAAG;AACpC,IAAI,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE;;AClBA;AACA;AACA;AACO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,iBAAiB,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE;AAClD,QAAQ,IAAI,CAAC,4BAA4B,GAAG,IAAI,GAAG,EAAE;AACrD;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/C;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC7D,YAAY,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC;AAC9D;AACA,QAAQ,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACvE;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE;AAC3C,QAAQ,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AAC/D,YAAY,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;AAChE;AACA,QAAQ,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;AACzE;AACA;AACA;AACA;AACA,IAAI,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE;AAC1C,QAAQ,MAAM,WAAW,GAAG,EAAE;AAC9B;AACA,QAAQ,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACnD;AACA,QAAQ,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC;AAChF,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,WAAW,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC;AAClD;AACA;AACA,QAAQ,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,SAAS,CAAC;AACrF,QAAQ,IAAI,oBAAoB,EAAE;AAClC,YAAY,WAAW,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC;AACrD;AACA,QAAQ,OAAO,WAAW;AAC1B;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC;AAC1C;AACA;AACA;AACA;AACA,IAAI,sBAAsB,CAAC,UAAU,EAAE;AACvC,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC;AAChE,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACnD,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;AACzC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;AAC9C,QAAQ,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE;AACjD;AACA;AACA;AACA;AACA,IAAI,wBAAwB,GAAG;AAC/B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;AAChE;AACA;AACA;AACA;AACA,IAAI,uBAAuB,GAAG;AAC9B,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,CAAC;AACnE;AACA,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,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;AC3Fb;AACA;AACA;AACO,MAAM,wBAAwB,CAAC;AACtC,IAAI,WAAW,CAAC,cAAc,EAAE;AAChC,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc;AAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACxD;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE;AACjC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,QAAQ;AAC/B,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,EAAE,EAAE;AACzB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAC3E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE;AAC7B,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,QAAQ;AAC/B,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;AAC7D,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE;AACxC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,WAAW;AAClC,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,MAAM,EAAE;AAC7B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;AAClF,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE;AAC/C,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,WAAW;AAClC,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;AACpC,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;AACnG,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE;AACpC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,WAAW;AAClC,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,EAAE,EAAE;AACzB,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACrC,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,OAAO;AAC9B,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AAC/E,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;AACnD,QAAQ,MAAM,OAAO,GAAG;AACxB,YAAY,SAAS,EAAE,SAAS;AAChC,YAAY,UAAU;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM;AAC9C,YAAY,KAAK,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE;AAC1C,YAAY,QAAQ,EAAE;AACtB,gBAAgB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACrC,gBAAgB,SAAS,EAAE,iBAAiB,EAAE;AAC9C,aAAa;AACb,SAAS;AACT,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AACvG,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC;AAC3D;AACA;AACA;AACA;AACA,IAAI,MAAM,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE;AAClD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC;AAC/F;AACA,QAAQ,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,IAAI;AACjE,YAAY,OAAO,CAAC,GAAG,EAAE,IAAI,KAAK,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACnG,SAAS,CAAC;AACV,QAAQ,MAAM,QAAQ,GAAG,+BAA+B,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC;AACrF,QAAQ,OAAO,QAAQ,CAAC,OAAO,CAAC;AAChC;AACA,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,CAAC,EAAE,KAAK,EAAEA,uBAA0B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChO,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,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEA,uBAA0B,EAAE,CAAC,EAAE,CAAC;;AC/J3E;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,qCAAqC,SAAS,uBAAuB,CAAC;AACnF,IAAI,WAAW,CAAC,sBAAsB,EAAE,QAAQ,EAAE;AAClD,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,sBAAsB,GAAG,sBAAsB;AAC5D,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,wBAAwB,CAAC,sBAAsB,CAAC;AAC5E;AACA,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM;AACjD;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC,UAAU,EAAE;AAC1B,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;AAC3C;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;AAC1D;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,SAAS,EAAE,UAAU,EAAE;AAC3C,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC;AAC5D;AACA;AACA,IAAI,MAAM,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;AACnD,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;AACrE;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,EAAE;AACjC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;AACnD;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE;AAC/C,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC;AACjE;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,EAAE,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC;AACtD;AACA,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE;AACxC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;AAC1D;AACA,IAAI,MAAM,MAAM,CAAC,UAAU,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;AAC/C;AACA,IAAI,MAAM,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACrC,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC;AACvD;AACA;AACA,IAAI,IAAI,eAAe,GAAG;AAC1B,QAAQ,OAAO,IAAI,CAAC,sBAAsB;AAC1C;AACA;AACA,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,QAAQ;AAC5B;AACA,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,qCAAqC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEA,uBAA0B,EAAE,EAAE,EAAE,KAAK,EAAEC,wBAA2B,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrR,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,qCAAqC,EAAE,CAAC,CAAC;AAC3J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAED,uBAA0B,EAAE,EAAE,EAAE,IAAI,EAAEC,wBAA2B,EAAE,CAAC,EAAE,CAAC;;AC3ElH;AACA;AACA;AACY,MAAC,mCAAmC,GAAG,IAAI,cAAc,CAAC,qCAAqC;AAC3G;AACA;AACA;AACY,MAAC,4BAA4B,GAAG,IAAI,cAAc,CAAC,8BAA8B;AAC7F;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,MAAM,EAAE;AACvD,IAAI,MAAM,SAAS,GAAG,EAAE;AACxB;AACA,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE;AAC3B,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK;AACxD,YAAY,OAAO,EAAE,4BAA4B;AACjD,YAAY,QAAQ,EAAE,GAAG;AACzB,YAAY,KAAK,EAAE,IAAI;AACvB,SAAS,CAAC,CAAC,CAAC;AACZ;AACA;AACA,IAAI,SAAS,CAAC,IAAI,CAAC;AACnB,QAAQ,OAAO,EAAE,mCAAmC;AACpD,QAAQ,UAAU,EAAE,MAAM;AAC1B,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAC7D;AACA,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AAC/B,gBAAgB,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE;AACxD,oBAAoB,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;AAClD;AACA;AACA;AACA,YAAY,IAAI,MAAM,CAAC,QAAQ,EAAE;AACjC,gBAAgB,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AACzF,oBAAoB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1D,wBAAwB,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC;AACrE;AACA;AACA;AACA;AACA,YAAY,IAAI,MAAM,CAAC,UAAU,EAAE;AACnC,gBAAgB,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;AAC1F,oBAAoB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC1D,wBAAwB,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC;AACvE;AACA;AACA;AACA,YAAY,OAAO,IAAI;AACvB,SAAS;AACT,QAAQ,KAAK,EAAE,IAAI;AACnB,KAAK,CAAC;AACN,IAAI,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC9C;AACA;AACA;AACA;AACO,SAAS,oCAAoC,CAAC,WAAW,EAAE;AAClE,IAAI,OAAO,8BAA8B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AAClE;AACA;AACA;AACA;AACO,SAAS,+BAA+B,CAAC,UAAU,EAAE,WAAW,EAAE;AACzE,IAAI,OAAO,8BAA8B,CAAC;AAC1C,QAAQ,QAAQ,EAAE,EAAE,CAAC,UAAU,GAAG,WAAW;AAC7C,KAAK,CAAC;AACN;AACA;AACA;AACA;AACO,SAAS,kCAAkC,CAAC,SAAS,EAAE,WAAW,EAAE;AAC3E,IAAI,OAAO,8BAA8B,CAAC;AAC1C,QAAQ,UAAU,EAAE,EAAE,CAAC,SAAS,GAAG,WAAW;AAC9C,KAAK,CAAC;AACN;;AC7EA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC1D,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,6BAA6B,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACtE,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC;AACjD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC;AAChD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC;AAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC7D,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC1C,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC/C,QAAQ,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;AAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC;AACzC,QAAQ,OAAO,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;AAC/C,QAAQ,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;AAChC,QAAQ,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtD,QAAQ,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC;AACzC,QAAQ,OAAO,CAAC,QAAQ,EAAE;AAC1B,QAAQ,MAAM,KAAK;AACnB;AACA;AACA;AACA;AACA;AACY,MAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC9D,IAAI,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;AACvC,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC1C,QAAQ,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;AACtD;AACA,QAAQ,IAAI,QAAQ,GAAG,IAAI,EAAE;AAC7B,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,4BAA4B,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnI;AACA;AACA,QAAQ,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,GAAG;AACjD,YAAY,QAAQ;AACpB,YAAY,SAAS,EAAE,OAAO,CAAC,SAAS;AACxC,YAAY,UAAU,EAAE,OAAO,CAAC,UAAU;AAC1C,SAAS;AACT,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS;AACtD,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChI,QAAQ,MAAM,KAAK;AACnB;AACA;AACA;AACA;AACA;AACY,MAAC,uBAAuB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAChE,IAAI,MAAM,UAAU,GAAG,CAAC;AACxB,IAAI,IAAI,OAAO,GAAG,CAAC;AACnB,IAAI,OAAO,OAAO,GAAG,UAAU,EAAE;AACjC,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC9C,YAAY,IAAI,OAAO,GAAG,CAAC,EAAE;AAC7B,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACtF;AACA,YAAY,OAAO,MAAM;AACzB;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,EAAE;AACrB;AACA,YAAY,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW;AACjD,gBAAgB,KAAK,EAAE,IAAI,KAAK,kBAAkB;AAClD,gBAAgB,OAAO,IAAI,UAAU,EAAE;AACvC,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC;AACrF,gBAAgB,MAAM,KAAK;AAC3B;AACA,YAAY,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC;AAClG;AACA,YAAY,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1F;AACA;AACA,IAAI,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC;AAC3C;AACA;AACA;AACA;AACY,MAAC,oBAAoB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC7D;AACA,IAAI,QAAQ,OAAO,CAAC,SAAS;AAC7B,QAAQ,KAAK,WAAW;AACxB,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AACvC,gBAAgB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;AAC7E;AACA,YAAY;AACZ,QAAQ,KAAK,WAAW;AACxB,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;AACnC,gBAAgB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;AACzE;AACA,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;AAC1C,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC;AAClF;AACA,YAAY;AACZ,QAAQ,KAAK,WAAW;AACxB,QAAQ,KAAK,QAAQ;AACrB,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE;AACnC,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACpF;AACA,YAAY;AACZ,QAAQ,KAAK,OAAO;AACpB,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AACxC,gBAAgB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;AAC1E;AACA,YAAY;AACZ,QAAQ,KAAK,SAAS;AACtB,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACvF,gBAAgB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;AACrF;AACA,YAAY;AACZ;AACA,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,CAAC,MAAM;AACxC,IAAI,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE;AAC3B,IAAI,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACtC,IAAI,OAAO,OAAO,OAAO,EAAE,IAAI,KAAK;AACpC;AACA,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AACxE;AACA,YAAY,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,YAAY,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,YAAY,OAAO,IAAI,CAAC,OAAO,CAAC;AAChC;AACA;AACA,QAAQ,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;AACtG;AACA,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,QAAQ,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,GAAG,EAAE;AAClE,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvD,YAAY,OAAO,MAAM,CAAC,IAAI;AAC9B;AACA;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC1C,QAAQ,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;AAC5B,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;AACjC,YAAY,GAAG,EAAE,WAAW;AAC5B,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,GAAG,CAAC,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACvD,QAAQ,OAAO,MAAM;AACrB,KAAK;AACL,CAAC;;AC1JD;AACA;AACA;AACA,MAAM,oBAAoB,CAAC;AAC3B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE;AACzB;AACA,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC;AACnD;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAChC;AACA,IAAI,mBAAmB,CAAC,UAAU,EAAE;AACpC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC;AAC5E;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;AAC/B;AACA;AACA;AACK,MAAC,YAAY,GAAG,IAAI,oBAAoB;AAC7C;AACA;AACA;AACY,MAAC,eAAe,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AACxD,IAAI,MAAM,UAAU,GAAG;AACvB,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAQ,UAAU,EAAE,OAAO,CAAC,UAAU;AACtC,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS;AACpC,QAAQ,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,QAAQ;AACnD,QAAQ,SAAS,EAAE,IAAI,IAAI,EAAE;AAC7B,QAAQ,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS;AAC7C,KAAK;AACL;AACA,IAAI,QAAQ,OAAO,CAAC,SAAS;AAC7B,QAAQ,KAAK,WAAW;AACxB,YAAY,UAAU,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAClE,YAAY;AACZ,QAAQ,KAAK,WAAW;AACxB,YAAY,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;AAClD,YAAY,UAAU,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;AACrE,YAAY;AACZ,QAAQ,KAAK,WAAW;AACxB,YAAY,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;AAClD,YAAY,UAAU,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;AAClD,YAAY;AACZ,QAAQ,KAAK,QAAQ;AACrB,YAAY,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;AAClD,YAAY;AACZ,QAAQ,KAAK,OAAO;AACpB,YAAY,UAAU,CAAC,QAAQ,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE;AACzE,YAAY;AACZ,QAAQ,KAAK,SAAS;AACtB,YAAY,UAAU,CAAC,QAAQ,GAAG;AAClC,gBAAgB,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM;AAChE,gBAAgB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;AACvC,aAAa;AACb,YAAY;AACZ;AACA,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AAC1C;AACA,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,WAAW,IAAI,MAAM,EAAE;AACzD,YAAY,UAAU,CAAC,QAAQ,GAAG,MAAM;AACxC;AACA;AACA,QAAQ,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,OAAO,KAAK,EAAE;AAClB;AACA,QAAQ,UAAU,CAAC,QAAQ,GAAG;AAC9B,YAAY,GAAG,UAAU,CAAC,QAAQ;AAClC,YAAY,KAAK,EAAE,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG;AAC5D,SAAS;AACT,QAAQ,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C,QAAQ,MAAM,KAAK;AACnB;AACA;AACA;AACA;AACA;AACY,MAAC,qBAAqB,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AAC9D;AACA;AACA;AACA;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,EAAE,EAAE,SAAS;AACrB,QAAQ,IAAI,EAAE,UAAU;AACxB,QAAQ,IAAI,EAAE,OAAO;AACrB,KAAK;AACL,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ;AACpC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC;AACxB;AACA;AACA;AACA;AACY,MAAC,0BAA0B,GAAG,OAAO,OAAO,EAAE,IAAI,KAAK;AACnE,IAAI,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC;AAChF;AACA,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9B,QAAQ,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC;AACpF;AACA,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;AACjC,QAAQ,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC;AAC1F;AACA,IAAI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;AACtC;AACA,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC9C,QAAQ,OAAO,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC;AACtD;AACA,IAAI,OAAO,MAAM;AACjB;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,GAAG,EAAE,eAAe,EAAE;AAC9C,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzC,QAAQ,OAAO,GAAG;AAClB;AACA,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AAC5B,QAAQ,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACrE;AACA,IAAI,MAAM,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE;AAChC,IAAI,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;AACzC,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;AAChC,YAAY,SAAS,CAAC,KAAK,CAAC,GAAG,YAAY;AAC3C;AACA;AACA;AACA,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;AAC1D,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAChD,YAAY,SAAS,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,eAAe,CAAC;AACnE;AACA;AACA,IAAI,OAAO,SAAS;AACpB;;AC3IA;;ACAO,MAAM,wCAAwC,CAAC;AACtD,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE;AAC1F,YAAY,MAAM,EAAE;AACpB,gBAAgB,EAAE,EAAE,QAAQ;AAC5B,aAAa;AACb,YAAY,OAAO,EAAE;AACrB,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,aAAa;AACvC,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,QAAQ,EAAE,SAAS;AACvC,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV;AACA;;ACbO,MAAM,iCAAiC,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACxE;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;AACtF,QAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AACzD,YAAY,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,4BAA4B,EAAE,CAAC,EAAE;AACnM,gBAAgB,OAAO,EAAE;AACzB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,aAAa;AAC3C,wBAAwB,IAAI,EAAE,MAAM;AACpC,wBAAwB,QAAQ,EAAE,SAAS;AAC3C,qBAAqB;AACrB,iBAAiB;AACjB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK;AAC7D,oBAAoB,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK;AACnH,oBAAoB,EAAE,EAAE,aAAa;AACrC,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA;;ACfO,MAAM,4BAA4B,SAAS,uBAAuB,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,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,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,YAAY,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3I,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO;AACpJ,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7F,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,YAAY;AAC3C,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7D,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7E,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY;AAC5C,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;AAC9B,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC;AACA,iBAAiB;AACjB,gBAAgB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChG,gBAAgB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/D;AACA,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D;AACA,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AACrC,YAAY,OAAO;AACnB,gBAAgB,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;AACpF,aAAa;AACb;AACA,aAAa;AACb,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AACxC,YAAY,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO;AACrD,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACtC,gBAAgB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC;AACrD,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AACvC,gBAAgB,OAAO;AACvB,oBAAoB,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AACtD,oBAAoB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;AAC/F,iBAAiB;AACjB;AACA,YAAY,OAAO;AACnB,gBAAgB,EAAE,EAAE,IAAI;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa;AACb;AACA;AACA,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;AAC7B,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;AAC9B,QAAQ,OAAO,GAAG;AAClB;AACA,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,SAAS,EAAE,CAAC,CAAC;AAChM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC1R;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,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9a;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,wBAAwB;AACtD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,eAAe,EAAE,aAAa;AAC5D,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;;;;;;ACrGZ,MAAM,gCAAgC,SAAS,mBAAmB,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,oBAAoB,GAAG,EAAE;AACtC,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,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChI;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACjE,YAAY,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;AACjE;AACA,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AAC7B,YAAY,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC;AACtD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE;AACxC;AACA;AACA,IAAI,gBAAgB,CAAC,CAAC,EAAE;AACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACvC;AACA,IAAI,cAAc,CAAC,CAAC,EAAE;AACtB,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE;AACrC,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;AACrE;AACA,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;AACvF,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC;AACtG;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChD;AACA;AACA,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACpD,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C;AACA,aAAa;AACb,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC5C;AACA;AACA,IAAI,MAAM,wBAAwB,CAAC,IAAI,EAAE;AACzC,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC;AACA,IAAI,uBAAuB,CAAC,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9C;AACA;AACA,IAAI,MAAM,oBAAoB,GAAG;AACjC,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;AAC9B;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;AACnD;AACA,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,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC/U;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;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;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,0BAA0B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gCAAgC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,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;AACtwF;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;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;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;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,cAAc;AACtC,wBAAwB,cAAc;AACtC,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB;AACzC,wBAAwB,sBAAsB;AAC9C,wBAAwB,iBAAiB;AACzC,wBAAwB,iBAAiB;AACzC,wBAAwB,sBAAsB;AAC9C,wBAAwB,mBAAmB;AAC3C,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACpON,MAAM,gCAAgC,CAAC;AAC9C,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAG;AAC/C,QAAQ,aAAa,EAAE,IAAI;AAC3B,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,YAAY,EAAE,EAAE;AACxB,QAAQ,OAAO,EAAE,EAAE;AACnB,KAAK,EAAE;AACP,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO;AAC9B,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC7D,QAAQ,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC;AAC7F,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC;AAC3C,YAAY,KAAK,EAAE,CAAC,GAAG,KAAK;AAC5B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AACjE,gBAAgB,OAAO,IAAI,EAAE;AAC7B,aAAa;AACb,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK;AACzB,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;AACjE,gBAAgB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC9D,gBAAgB,OAAO,IAAI,CAAC,CAAC,CAAC;AAC9B,aAAa;AACb,YAAY,QAAQ,EAAE,EAAE;AACxB,YAAY,GAAG,EAAE,IAAI;AACrB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,IAAI;AACnE,SAAS,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,SAAS,CAAC,SAAS;AAC3C,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK;AACtD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM;AACxD,YAAY,QAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACpI,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9E,QAAQ,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM;AAC/C,YAAY,OAAO,IAAI,CAAC,yBAAyB,EAAE,CAAC,MAAM,GAAG,CAAC;AAC9D,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrE,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE;AAC5D,YAAY,MAAM,OAAO,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AACjE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;AAC1F,YAAY,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI;AAC7F,kBAAkB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI;AAC9D,kBAAkB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACnD;AACA,YAAY,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC7C,gBAAgB,OAAO,IAAI,gCAAgC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAC1G,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,EAAE;AACvB,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG;AAC9B,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,EAAE;AACvB,SAAS;AACT;AACA,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;AACrD,YAAY,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM;AACxD,SAAS,CAAC;AACV;AACA,IAAI,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE;AAC7C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AACjG,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,EAAE;AACvC,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACjC,gBAAgB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC;AACjD,oBAAoB,KAAK,EAAE,CAAC,CAAC,IAAI;AACjC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,IAAI,EAAE,UAAU;AACxC,qBAAqB;AACrB,oBAAoB,KAAK;AACzB,iBAAiB,CAAC;AAClB,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,OAAO;AACnB,YAAY,IAAI,CAAC,kBAAkB,EAAE;AACrC;AACA,IAAI,kBAAkB,GAAG;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AAC/E,QAAQ,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AACvF;AACA,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC9C,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AACvC,YAAY,MAAM,cAAc,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACrF,YAAY,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F;AACA;AACA,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC5C;AACA,QAAQ,IAAI,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;AAC5D,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACpD;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AAC/B,YAAY,KAAK,EAAE,IAAI;AACvB,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,IAAI;AAC1B,YAAY,OAAO,EAAE,OAAO;AAC5B,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACjC;AACA,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC;AACnD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;AACzD,QAAQ,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE;AAC3E;AACA,IAAI,eAAe,CAAC,MAAM,EAAE;AAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,MAAM;AAC1C,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AACjC;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE;AAC5B,YAAY,OAAO,CAAC,MAAM,GAAG;AAC7B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,gBAAgB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;AACxE,aAAa;AACb;AACA,aAAa;AACb,YAAY,OAAO,CAAC,MAAM,GAAG,MAAM;AACnC;AACA,QAAQ,OAAO,OAAO;AACtB;AACA;;ACvHO,MAAM,4BAA4B,SAAS,uBAAuB,CAAC;AAC1E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxH,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChI,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,MAAM;AACxC,YAAY,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,OAAO;AACjI,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrK,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,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,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,OAAO,GAAG,SAAS,CAAC,iBAAiB,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrG,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,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3E,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;AACxC,kBAAkB;AAClB,kBAAkB,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AACjI,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY;AAC5C,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7D,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7E,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;AAC9F,gBAAgB,aAAa,EAAE,IAAI,CAAC,MAAM;AAC1C,gBAAgB,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC9C,aAAa,CAAC,CAAC;AACf,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM;AACrC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjC,gBAAgB,IAAI,CAAC,WAAW,EAAE;AAClC;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B;AACA,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM;AAC5C,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrC,gBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC/D;AACA,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpE;AACA,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AAChC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,QAAQ,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC1C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO;AAC9D,QAAQ,IAAI,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;AACpC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACjC,gBAAgB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AACrH,gBAAgB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpC;AACA,iBAAiB;AACjB,gBAAgB,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AACrE,gBAAgB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,CAAC;AAC5C,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AACnC;AACA;AACA,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7B;AACA,QAAQ,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACjC;AACA,IAAI,aAAa,CAAC,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,MAAM,IAAI,CAAC;AACjH,QAAQ,IAAI,CAAC;AACb,aAAa,IAAI,CAAC,gCAAgC,EAAE;AACpD,YAAY,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;AAClK,YAAY,IAAI,EAAE,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;AAChD,YAAY,IAAI,EAAE;AAClB,gBAAgB,EAAE,EAAE,IAAI,gCAAgC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE;AAC1F,oBAAoB,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACrD,oBAAoB,aAAa,EAAE,IAAI,CAAC,MAAM;AAC9C,oBAAoB,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClD,oBAAoB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AAC3C,iBAAiB,CAAC;AAClB,gBAAgB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AAC7C,gBAAgB,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE;AAC1D,aAAa;AACb,SAAS;AACT,aAAa,IAAI,CAAC,CAAC,CAAC,KAAK;AACzB,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,YAAY,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE;AACnC,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;AAC/B,gBAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC5C;AACA,SAAS,CAAC;AACV;AACA,IAAI,oBAAoB,CAAC,CAAC,EAAE;AAC5B,QAAQ,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa;AAC/C,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC5B;AACA,IAAI,iBAAiB,CAAC,CAAC,EAAE;AACzB,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;AACpD,gBAAgB,IAAI,CAAC,KAAK,EAAE;AAC5B;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC7D;AACA;AACA;AACA,IAAI,YAAY,CAAC,CAAC,EAAE;AACpB,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAChC,gBAAgB,IAAI,CAAC,UAAU,EAAE;AACjC;AACA,SAAS,EAAE,GAAG,CAAC;AACf;AACA,IAAI,MAAM,WAAW,CAAC,CAAC,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW;AACtC,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;AAClC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,IAAI,aAAa,KAAK,KAAK,EAAE;AACnF,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;AACpC,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;AACvD,YAAY,IAAI,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACpC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,YAAY,EAAE;AACnC;AACA,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC;AACA,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,WAAW,EAAE;AAC1C,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B;AACA;AACA,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACzC,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AACtC,YAAY;AACZ;AACA;AACA,QAAQ,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAChC,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;AACrC;AACA,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;AACtE;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AAC3B,YAAY,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACxD,YAAY,MAAM,YAAY,GAAG,EAAE;AACnC;AACA,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACvC,gBAAgB,IAAI,OAAO,CAAC,IAAI,QAAQ,EAAE;AAC1C,oBAAoB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,oBAAoB,QAAQ,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAC5E;AACA,qBAAqB;AACrB;AACA,oBAAoB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;AAChD,0BAA0B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AACpF,0BAA0B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,oBAAoB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACnF;AACA,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC;AACnD;AACA,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtD;AACA,aAAa;AACb,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACtD;AACA;AACA,IAAI,gBAAgB,GAAG;AACvB,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACjC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;AAC3D;AACA,QAAQ,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE;AACvC;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC;AACA,IAAI,UAAU,GAAG;AACjB,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/B;AACA,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7B,QAAQ,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;AACnD;AACA,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,SAAS,EAAE,CAAC,CAAC;AAChM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,4BAA4B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjW;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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI;AAC/c;AACA,gBAAgB,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,sBAAsB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACh+F;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,wBAAwB;AACtD,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;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC;AACA,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB,cAAc;AACtC,wBAAwB,mBAAmB;AAC3C,wBAAwB,iBAAiB;AACzC,wBAAwB;AACxB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACnWN,MAAM,8BAA8B,SAAS,wBAAwB,CAAC;AAC7E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI;AAC5D,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,OAAO;AAC7D,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY;AACpE,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ;AAC9D,cAAc;AACd,cAAc,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7J;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE;AACzB,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,OAAO,IAAI,IAAI;AAC9B,cAAc;AACd,gBAAgB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAC1D,gBAAgB,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;AACxD;AACA,cAAc;AACd,gBAAgB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI;AACvC,gBAAgB,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI;AACtC,aAAa;AACb;AACA,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,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,8BAA8B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjP;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,aAAa,CAAC;AAC5C,oBAAoB,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AACnD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACzDN,MAAM,eAAe,GAAG;AAC/B,IAAI,IAAI,EAAE,eAAe;AACzB,IAAI,KAAK,EAAE,QAAQ;AACnB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC;AAC7C,IAAI,uBAAuB,EAAE,eAAe;AAC5C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,UAAU,EAAE;AAChB,QAAQ,qBAAqB;AAC7B,QAAQ,sBAAsB;AAC9B,QAAQ;AACR,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,KAAK,EAAE,uBAAuB;AAC1C,YAAY,MAAM,EAAE;AACpB,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,QAAQ;AAClC,oBAAoB,IAAI,EAAE,gBAAgB;AAC1C,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,MAAM;AAClD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,QAAQ;AAC3B,YAAY,KAAK,EAAE,uBAAuB;AAC1C,YAAY,MAAM,EAAE;AACpB,gBAAgB,QAAQ,EAAE,QAAQ;AAClC,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,IAAI,EAAE,QAAQ;AAClC,oBAAoB,IAAI,EAAE,gBAAgB;AAC1C,oBAAoB,IAAI,EAAE,iBAAiB,CAAC,IAAI;AAChD,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS;AACT,QAAQ;AACR,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,0EAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AACjH,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,0EAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AACjH,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,SAAS,EAAE,MAAM,4EAA0C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,8BAA8B,CAAC;AACrH,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,SAAS,EAAE,MAAM,0EAAwC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,4BAA4B,CAAC;AACjH,SAAS;AACT,KAAK;AACL,CAAC;;ACnDM,MAAM,kCAAkC,SAAS,uBAAuB,CAAC;AAChF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3K,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,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;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACtC,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACzD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D;AACA,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,SAAS,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjP;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,aAAa,CAAC;AAC5C,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACpCN,MAAM,gCAAgC,SAAS,uBAAuB,CAAC;AAC9E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvI,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9H;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvH,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9H;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CAAC;AAC5C,YAAY,IAAI,EAAE,OAAO,CAAC,KAAK;AAC/B,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;AAClG,gBAAgB,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;AAC1D,gBAAgB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC;AAC5C,gBAAgB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;AACnC,gBAAgB,OAAO;AACvB,oBAAoB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;AAC9C,oBAAoB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;AAC7C,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE,EAAE;AACxB,SAAS,CAAC;AACV;AACA,IAAI,uBAAuB,CAAC,CAAC,EAAE;AAC/B,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;AAClC;AACA;AACA,IAAI,OAAO,GAAG;AACd,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,MAAM,GAAG,GAAG,EAAE;AACtB,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI;AAC9B,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI;AAC/B,QAAQ,OAAO,GAAG;AAClB;AACA,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,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC9R;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,+BAA+B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACxoF;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,wBAAwB;AACtD,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,eAAe;AACvC,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB;AACzC,wBAAwB,kBAAkB;AAC1C,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB;AACxB,qBAAqB;AACrB,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE,WAAW;AACjC,gBAAgB,IAAI,EAAE,CAAC,OAAO;AAC9B,aAAa,CAAC,EAAE,EAAE,CAAC;;;;;;;AC5JZ,MAAM,kCAAkC,SAAS,uBAAuB,CAAC;AAChF,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,SAAS,EAAE,CAAC,CAAC;AACtM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kCAAkC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACtW;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAChC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,WAAW,CAAC;AAC1C,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACbN,MAAM,iCAAiC,SAAS,uBAAuB,CAAC;AAC/E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3K,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,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;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACtC,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACzD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D;AACA,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,SAAS,EAAE,CAAC,CAAC;AACrM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iCAAiC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAClO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3E;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACzDN,MAAM,gCAAgC,SAAS,uBAAuB,CAAC;AAC9E,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3K,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjI,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;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM;AACtC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACtC,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzC,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB,OAAO,EAAE;AACzB;AACA,YAAY,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC;AACzD,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D;AACA,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,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3O;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACjP;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,wBAAwB;AACtD,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,aAAa,CAAC;AAC5C,oBAAoB,MAAM,EAAE,EAAE;AAC9B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;AC3CN,MAAM,mBAAmB,GAAG;AACnC,IAAI,IAAI,EAAE,gBAAgB;AAC1B,IAAI,KAAK,EAAE,aAAa;AACxB,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,WAAW,EAAE,uBAAuB;AACxC,IAAI,UAAU,EAAE,2BAA2B;AAC3C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,uBAAuB,EAAE,eAAe;AAC5C,IAAI,UAAU,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;AAC3D,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,8EAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC1H,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,8EAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC1H,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,SAAS,EAAE,MAAM,gFAA+C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC;AAC9H,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,SAAS,EAAE,MAAM,gFAA+C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kCAAkC,CAAC;AAC9H,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,SAAS,EAAE,MAAM,+EAA8C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,iCAAiC,CAAC;AAC5H,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,SAAS,EAAE,MAAM,8EAA6C,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AAC1H,SAAS;AACT,KAAK;AACL,CAAC;;ACZM,MAAM,oCAAoC,SAAS,uBAAuB,CAAC;AAClF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AACtE,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,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7H,QAAQ,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3G,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACpI,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC3H;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC7B,YAAY,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxD;AACA;AACA,IAAI,MAAM,YAAY,GAAG;AACzB,QAAQ,MAAM,GAAG,GAAG,MAAM,OAAO,kCAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gCAAgC,CAAC;AACpH,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,YAAY,KAAK,EAAE,gBAAgB;AACnC,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,WAAW,EAAE,IAAI;AAC7B,YAAY,IAAI,EAAE;AAClB,gBAAgB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAClF,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,EAAE;AACjD,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO;AACjD,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC5E,YAAY,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC;AACrD;AACA;AACA,IAAI,yBAAyB,CAAC,MAAM,EAAE;AACtC,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,MAAM,CAAC,IAAI;AAC7B,SAAS;AACT;AACA,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACzE,QAAQ,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;AAC5D;AACA,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,SAAS,EAAE,CAAC,CAAC;AACxM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChV;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,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAED,IAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEQ,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEN,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,yBAAyB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1lE;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,WAAW;AACnC,wBAAwB,iBAAiB;AACzC,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,iBAAiB;AACzC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,YAAY;AACpC,wBAAwB;AACxB;AACA,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC;AACxC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,kBAAkB;AACzC,aAAa,CAAC,EAAE,EAAE,CAAC;;;;;;;ACzHZ,MAAM,oCAAoC,SAAS,uBAAuB,CAAC;AAClF,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,SAAS,EAAE,CAAC,CAAC;AACxM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACtU;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,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,uBAAuB,CAAC;AACvD,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE;AAC7B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACZN,MAAM,uBAAuB,GAAG;AACvC,IAAI,IAAI,EAAE,iBAAiB;AAC3B,IAAI,KAAK,EAAE,iBAAiB;AAC5B,IAAI,UAAU,EAAE,2BAA2B;AAC3C,IAAI,IAAI,EAAE,QAAQ;AAClB,IAAI,IAAI,EAAE,oBAAoB;AAC9B,IAAI,UAAU,EAAE,CAAC,iBAAiB,EAAE,sBAAsB,EAAE,qBAAqB,CAAC;AAClF,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,kFAAiD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAAC;AAClI,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,kFAAiD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oCAAoC,CAAC;AAClI,SAAS;AACT,KAAK;AACL,CAAC;;ACPW,MAAC,oBAAoB,GAAG,mBAAmB,CAAC,mBAAmB;AACpE,MAAM,0BAA0B,SAAS,iBAAiB,CAAC;AAClE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,+BAA+B,CAAC;AAC9D,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACrD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACzE,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACtD,QAAQ,MAAM,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5C,QAAQ,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;AAClD,QAAQ,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC1C,QAAQ,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK;AACrD,QAAQ,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI;AACjC,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5E,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7D,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE;AACjC,YAAY,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,SAAS,CAAC;AACjE;AACA,QAAQ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACzD,YAAY,KAAK,EAAE;AACnB,kBAAkB;AAClB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC3J,YAAY,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpG,YAAY,IAAI,EAAE;AAClB,gBAAgB,EAAE,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC;AAC5E,gBAAgB,MAAM;AACtB,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;AAC/B,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAY,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AACxD,YAAY,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AACxD,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AAC7E,YAAY,IAAI,SAAS,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC9E,gBAAgB,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;AACpH;AACA;AACA;AACA,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,8BAA8B,SAAS,iBAAiB,CAAC;AACtE,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACzH,QAAQ,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACpH;AACA,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,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACnM,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,8BAA8B,EAAE,CAAC,CAAC;AACpJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,uBAAuB,GAAG;AACvC,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,KAAK,EAAE;AACX,QAAQ,YAAY,EAAE;AACtB,YAAY,MAAM,EAAE,4BAA4B;AAChD,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,qCAAqC,EAAE,CAAC;AACvG,oBAAoB,UAAU,EAAE,YAAY;AAC5C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,MAAM,EAAE,gBAAgB;AACpC,YAAY,KAAK,EAAE;AACnB,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,KAAK,EAAE,yBAAyB;AAChD,gBAAgB,OAAO,EAAE,8BAA8B;AACvD,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,EAAE;AAClC,oBAAoB,UAAU,EAAE,gBAAgB;AAChD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,gBAAgB,EAAE;AAC1B,YAAY,MAAM,EAAE,gCAAgC;AACpD,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,4DAA4D,EAAE,CAAC;AAC9H,oBAAoB,UAAU,EAAE,aAAa;AAC7C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,aAAa,EAAE;AACvB,YAAY,MAAM,EAAE,yBAAyB;AAC7C,SAAS;AACT,KAAK;AACL;;ACtGO,MAAM,+BAA+B,SAAS,iBAAiB,CAAC;AACvE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAC5D,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,qCAAqC,CAAC;AACpE;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACjF,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAChD,QAAQ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AACpF,QAAQ,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS;AACvC,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,QAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI;AAC3B,QAAQ,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS;AAC/C,QAAQ,MAAM,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;AAC3F,QAAQ,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC;AACpF,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;AACtD,QAAQ,MAAM,UAAU,GAAG,OAAO,GAAG,YAAY,CAAC;AAClD,QAAQ,MAAM,WAAW,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK;AACrD,QAAQ,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC1C,QAAQ,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI;AACjC,QAAQ,IAAI,SAAS,EAAE;AACvB,YAAY,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC;AACvD;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC7D,QAAQ,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;AACxD,YAAY,KAAK,EAAE;AACnB,kBAAkB;AAClB,mBAAmB,KAAK;AACxB,oBAAoB,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACnJ,YAAY,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpG,YAAY,IAAI,EAAE;AAClB,gBAAgB,EAAE;AAClB,gBAAgB,UAAU;AAC1B,gBAAgB,MAAM,EAAE,SAAS;AACjC,aAAa;AACb,SAAS,CAAC;AACV,QAAQ,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC1C,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,EAAE;AACxC,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtE;AACA;AACA,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,+BAA+B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACpM,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,+BAA+B,EAAE,CAAC,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,4BAA4B,GAAG;AAC5C,IAAI,WAAW,EAAE,aAAa;AAC9B,IAAI,KAAK,EAAE;AACX,QAAQ,WAAW,EAAE;AACrB,YAAY,EAAE,EAAE,aAAa;AAC7B,YAAY,MAAM,EAAE,iCAAiC;AACrD,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,qCAAqC,EAAE,CAAC;AACvG,oBAAoB,UAAU,EAAE,cAAc;AAC9C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,MAAM,EAAE,gBAAgB;AACpC,YAAY,KAAK,EAAE;AACnB,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,KAAK,EAAE,gCAAgC;AACvD,gBAAgB,OAAO,EAAE,+BAA+B;AACxD,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,EAAE;AAClC,oBAAoB,UAAU,EAAE,iBAAiB;AACjD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,EAAE,EAAE,iBAAiB;AACjC,YAAY,MAAM,EAAE,gCAAgC;AACpD,SAAS;AACT,KAAK;AACL;AACO,MAAM,2BAA2B,SAAS,iBAAiB,CAAC;AACnE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kCAAkC,CAAC;AACzE;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,IAAI;AACZ,YAAY,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACrF,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AACpD,YAAY,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;AACxF,YAAY,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO;AAC5D,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;AAC3C,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;AAC/C,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9C,YAAY,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;AAC7C;AACA;AACA,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,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChM,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,2BAA2B,EAAE,CAAC,CAAC;AACjJ;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;AAClB,SAAS,CAAC,EAAE,CAAC;;ACrHN,MAAM,uBAAuB,SAAS,iBAAiB,CAAC;AAC/D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC3D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACzE,QAAQ,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC;AAClD,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;AACpG,SAAS;AACT,QAAQ,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AACxC;AACA,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;AACD,MAAC,0BAA0B,GAAG;AAC1C,IAAI,WAAW,EAAE,gBAAgB;AACjC,IAAI,KAAK,EAAE;AACX,QAAQ,cAAc,EAAE;AACxB,YAAY,MAAM,EAAE,yBAAyB;AAC7C,SAAS;AACT,KAAK;AACL;;AC3BO,MAAM,8BAA8B,SAAS,iBAAiB,CAAC;AACtE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC,4BAA4B,CAAC;AAC7E,QAAQ,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,kCAAkC,CAAC;AAC/E;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B;AACA,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC;AACtD,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC;AAChE,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC;AAChE,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC;AAC5D,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC;AACtE,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC;AAC1D,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC;AACxE;AACA,QAAQ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC;AACtE,YAAY,KAAK,EAAE,KAAK;AACxB,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,QAAQ,EAAE,QAAQ;AAC9B,YAAY,MAAM,EAAE,MAAM;AAC1B,YAAY,YAAY,EAAE,YAAY;AACtC,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC9C,YAAY;AACZ;AACA;AACA,QAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACzE,QAAQ,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;AACzF,QAAQ,IAAI,gBAAgB,EAAE;AAC9B,YAAY,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO;AACzE,YAAY,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC;AAChD,gBAAgB,EAAE,EAAE,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC;AACrD,gBAAgB,CAAC,GAAG,GAAG,GAAG;AAC1B,aAAa,CAAC;AACd,YAAY,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC7C,YAAY,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AAC9D;AACA;AACA,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,8BAA8B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACnM,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,8BAA8B,EAAE,CAAC,CAAC;AACpJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,gCAAgC,GAAG;AAChD,IAAI,WAAW,EAAE,YAAY;AAC7B,IAAI,KAAK,EAAE;AACX,QAAQ,YAAY,EAAE;AACtB,YAAY,MAAM,EAAE,gCAAgC;AACpD,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,qCAAqC,EAAE,CAAC;AACvG,oBAAoB,UAAU,EAAE,cAAc;AAC9C,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,YAAY,EAAE;AACtB,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,MAAM,EAAE,gBAAgB;AACpC,YAAY,KAAK,EAAE;AACnB,gBAAgB,KAAK,EAAE,SAAS;AAChC,gBAAgB,KAAK,EAAE,gCAAgC;AACvD,gBAAgB,OAAO,EAAE,+BAA+B;AACxD,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,UAAU,EAAE,EAAE;AAClC,oBAAoB,UAAU,EAAE,iBAAiB;AACjD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,eAAe,EAAE;AACzB,YAAY,EAAE,EAAE,iBAAiB;AACjC,YAAY,MAAM,EAAE,gCAAgC;AACpD,SAAS;AACT,KAAK;AACL,CAAC;;AChFM,MAAM,qBAAqB,SAAS,iBAAiB,CAAC;AAC7D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC3D,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD;AACA,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AACjF,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC;AACtG,SAAS;AACT,QAAQ,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC;AAClD,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AACxC;AACA,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,qBAAqB,EAAE,IAAI,EAAE,IAAI,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,qBAAqB,EAAE,CAAC,CAAC;AAC3I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACD,MAAC,uBAAuB,GAAG;AACvC,IAAI,WAAW,EAAE,cAAc;AAC/B,IAAI,KAAK,EAAE;AACX,QAAQ,YAAY,EAAE;AACtB,YAAY,EAAE,EAAE,cAAc;AAC9B,YAAY,MAAM,EAAE,uBAAuB;AAC3C,SAAS;AACT,KAAK;AACL;;AC7BO,MAAM,qCAAqC,SAAS,wBAAwB,CAAC;AACpF,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,qCAAqC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1W;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAChC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY;AAC1C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACVN,MAAM,qCAAqC,SAAS,wBAAwB,CAAC;AACpF,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AACxC,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzF,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY;AAC5C,YAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7D,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7E,YAAY,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;AACzC,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9D;AACA,IAAI,SAAS;AACb,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,qCAAqC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACnZ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAChC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;AACxD,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;AC3BN,MAAM,uCAAuC,SAAS,wBAAwB,CAAC;AACtF,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,uCAAuC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,uCAAuC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1Z;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uCAAuC,EAAE,UAAU,EAAE,CAAC;AACjJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,YAAY,CAAC;AAC5C,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,oBAAoB,MAAM,EAAE,CAAC,UAAU;AACvC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACbN,MAAM,sCAAsC,SAAS,wBAAwB,CAAC;AACrF,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,sCAAsC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sCAAsC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3W;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sCAAsC,EAAE,UAAU,EAAE,CAAC;AAChJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAChC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,oBAAoB,MAAM,EAAE;AAC5B,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACbN,MAAM,yCAAyC,SAAS,wBAAwB,CAAC;AACxF,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,yCAAyC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7M,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yCAAyC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9W;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yCAAyC,EAAE,UAAU,EAAE,CAAC;AACnJ,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,CAAC,CAAC;AAChC,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AACnE,oBAAoB,OAAO,EAAE,CAAC,YAAY;AAC1C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;;;;;;ACdN,MAAM,wBAAwB,GAAG;AACxC,IAAI,IAAI,EAAE,kBAAkB;AAC5B,IAAI,KAAK,EAAE,kBAAkB;AAC7B,IAAI,WAAW,EAAE,EAAE;AACnB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,UAAU,EAAE,EAAE;AAClB,IAAI,MAAM,EAAE,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAC5C,IAAI,IAAI,EAAE,oBAAoB;AAC9B,IAAI,UAAU,EAAE;AAChB,QAAQ,iBAAiB;AACzB,QAAQ,sBAAsB;AAC9B,KAAK;AACL,IAAI,UAAU,EAAE;AAChB,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,mFAAkD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAAC;AACpI,SAAS;AACT,QAAQ,IAAI,EAAE;AACd,YAAY,SAAS,EAAE,MAAM,mFAAkD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,qCAAqC,CAAC;AACpI,SAAS;AACT,QAAQ,MAAM,EAAE;AAChB,YAAY,SAAS,EAAE,MAAM,qFAAoD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,uCAAuC,CAAC;AACxI,SAAS;AACT,QAAQ,KAAK,EAAE;AACf,YAAY,SAAS,EAAE,MAAM,oFAAmD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,sCAAsC,CAAC;AACtI,SAAS;AACT,QAAQ,QAAQ,EAAE;AAClB,YAAY,SAAS,EAAE,MAAM,uFAAsD,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC,CAAC;AAC5I,SAAS;AACT;AACA,CAAC;;ACHD,SAAS,YAAY,GAAG;AACxB,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAClD,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,MAAM,GAAG;AACb,QAAQ;AACR,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,aAAa,EAAE,MAAM;AACjC,gBAAgB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;AAC5C,aAAa;AACb,YAAY,WAAW,EAAE,CAAC,YAAY,CAAC;AACvC,YAAY,QAAQ,EAAE;AACtB,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,gBAAgB;AAClD,4BAA4B,aAAa,EAAE,MAAM;AACjD,gCAAgC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;AACnE,6BAA6B;AAC7B,4BAA4B,OAAO,EAAE;AACrC,gCAAgC,EAAE,EAAE,8BAA8B;AAClE,6BAA6B;AAC7B,4BAA4B,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAClD,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,oBAAoB;AACtD,4BAA4B,OAAO,EAAE,EAAE,EAAE,EAAE,gCAAgC,EAAE;AAC7E,4BAA4B,aAAa,EAAE,MAAM;AACjD,gCAAgC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AACrE,6BAA6B;AAC7B,4BAA4B,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;AAClD,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,eAAe;AACjD,4BAA4B,UAAU,EAAE,oBAAoB;AAC5D,4BAA4B,SAAS,EAAE,MAAM;AAC7C,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,WAAW;AAC7C,4BAA4B,UAAU,EAAE,cAAc;AACtD,4BAA4B,SAAS,EAAE,MAAM;AAC7C,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;AACL,IAAI,OAAO,MAAM;AACjB;AACO,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE;AAC1C,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,kCAAkC,CAAC;AACxE,QAAQ,cAAc,CAAC,YAAY,CAAC;AACpC,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,UAAU,EAAE,sBAAsB;AAC9C,YAAY,QAAQ,EAAE,GAAG;AACzB,YAAY,GAAG,EAAE,YAAY;AAC7B;AACA,gBAAgB,OAAO,CAAC,OAAO,EAAE;AACjC,aAAa;AACb,SAAS,CAAC;AACV;AACA,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,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEF,IAAE,CAAC,oBAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1O,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,eAAe,EAAE,OAAO,EAAE,CAAC,YAAY,EAAED,IAAE,CAAC,iBAAiB,EAAEQ,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAC5M,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,eAAe,EAAE,SAAS,EAAE;AAC3I,YAAY;AACZ,gBAAgB,OAAO,EAAE,MAAM;AAC/B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,UAAU,EAAE,YAAY;AACxC,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,8BAA8B;AACvD,gBAAgB,QAAQ,EAAE,iCAAiC;AAC3D,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,YAAY;AACZ,gBAAgB,OAAO,EAAE,8BAA8B;AACvD,gBAAgB,QAAQ,EAAE,wCAAwC;AAClE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,SAAS,EAAE,OAAO,EAAE,CAAC,YAAY;AACjC,YAAY,iBAAiB,CAAC,QAAQ,CAAC;AACvC,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,0BAA0B;AAC9C,oBAAoB,4BAA4B;AAChD,oBAAoB,yBAAyB;AAC7C,oBAAoB,uBAAuB,EAAE,4BAA4B;AACzE,oBAAoB,iCAAiC;AACrD,oBAAoB,+BAA+B;AACnD,oBAAoB,8BAA8B;AAClD,oBAAoB,cAAc;AAClC,oBAAoB,uBAAuB;AAC3C,oBAAoB,8BAA8B;AAClD,oBAAoB,qBAAqB;AACzC,oBAAoB,sBAAsB,EAAE,2BAA2B;AACvE,oBAAoB,8BAA8B;AAClD,iBAAiB;AACjB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB,eAAe,EAAE,uBAAuB;AAC5D,oBAAoB,eAAe,EAAE,uBAAuB;AAC5D,oBAAoB,uBAAuB,EAAE,8BAA8B;AAC3E,oBAAoB,qBAAqB,EAAE,4BAA4B;AACvE,oBAAoB,aAAa,EAAE,0BAA0B;AAC7D,oBAAoB,gBAAgB,EAAE,uBAAuB;AAC7D,oBAAoB,0BAA0B,EAAE,gCAAgC;AAChF,iBAAiB;AACjB,gBAAgB,SAAS,EAAE,EAAE;AAC7B,aAAa,CAAC;AACd,YAAY,sBAAsB,CAAC,QAAQ,CAAC;AAC5C,gBAAgB,OAAO,EAAE,CAAC,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;AAClH,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,iBAAiB,CAAC,QAAQ,CAAC;AACnD,4BAA4B,OAAO,EAAE;AACrC,gCAAgC,0BAA0B;AAC1D,gCAAgC,4BAA4B;AAC5D,gCAAgC,yBAAyB;AACzD,gCAAgC,uBAAuB,EAAE,4BAA4B;AACrF,gCAAgC,iCAAiC;AACjE,gCAAgC,+BAA+B;AAC/D,gCAAgC,8BAA8B;AAC9D,gCAAgC,cAAc;AAC9C,gCAAgC,uBAAuB;AACvD,gCAAgC,8BAA8B;AAC9D,gCAAgC,qBAAqB;AACrD,gCAAgC,sBAAsB,EAAE,2BAA2B;AACnF,gCAAgC,8BAA8B;AAC9D,6BAA6B;AAC7B,4BAA4B,SAAS,EAAE;AACvC,gCAAgC,eAAe,EAAE,uBAAuB;AACxE,gCAAgC,eAAe,EAAE,uBAAuB;AACxE,gCAAgC,uBAAuB,EAAE,8BAA8B;AACvF,gCAAgC,qBAAqB,EAAE,4BAA4B;AACnF,gCAAgC,aAAa,EAAE,0BAA0B;AACzE,gCAAgC,gBAAgB,EAAE,uBAAuB;AACzE,gCAAgC,0BAA0B,EAAE,gCAAgC;AAC5F,6BAA6B;AAC7B,4BAA4B,SAAS,EAAE,EAAE;AACzC,yBAAyB,CAAC;AAC1B,wBAAwB,sBAAsB,CAAC,QAAQ,CAAC;AACxD,4BAA4B,OAAO,EAAE,CAAC,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,wBAAwB,CAAC;AAC9H,yBAAyB,CAAC;AAC1B,qBAAqB;AACrB,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,YAAY,EAAE,EAAE;AACpC,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,MAAM;AAC3C,4BAA4B,KAAK,EAAE,IAAI;AACvC,4BAA4B,UAAU,EAAE,YAAY;AACpD,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,8BAA8B;AACnE,4BAA4B,QAAQ,EAAE,iCAAiC;AACvE,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,8BAA8B;AACnE,4BAA4B,QAAQ,EAAE,wCAAwC;AAC9E,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEP,IAAE,CAAC,oBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;;ACnM/F;AACO,SAAS,wBAAwB,GAAG;AAC3C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,+BAA+B;AAC9C,QAAQ,OAAO,EAAE,eAAe;AAChC,QAAQ,QAAQ,EAAE,SAAS;AAC3B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,SAAS;AAC9C,KAAK;AACL;AACO,SAAS,4BAA4B,GAAG;AAC/C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,qCAAqC;AACpD,QAAQ,OAAO,EAAE,eAAe;AAChC,QAAQ,QAAQ,EAAE,SAAS;AAC3B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,QAAQ;AAC7C,KAAK;AACL;AACO,SAAS,sBAAsB,GAAG;AACzC,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,6BAA6B;AAC5C,QAAQ,OAAO,EAAE,aAAa;AAC9B,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AAC/C,KAAK;AACL;AACO,SAAS,wBAAwB,GAAG;AAC3C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,+BAA+B;AAC9C,QAAQ,OAAO,EAAE,eAAe;AAChC,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AAC/C,KAAK;AACL;AACO,SAAS,uBAAuB,GAAG;AAC1C,IAAI,OAAO;AACX,QAAQ,wBAAwB,EAAE;AAClC,QAAQ,4BAA4B,EAAE;AACtC,QAAQ,sBAAsB,EAAE;AAChC,QAAQ,wBAAwB,EAAE;AAClC,KAAK;AACL;AACO,SAAS,yBAAyB,GAAG;AAC5C,IAAI,OAAO;AACX,QAAQ,wBAAwB,EAAE;AAClC,KAAK;AACL;AACA;AACA;AACO,SAAS,0BAA0B,CAAC,QAAQ,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,+BAA+B;AAC9C,QAAQ,OAAO,EAAE;AACjB,YAAY,IAAI,EAAE,eAAe;AACjC,YAAY,OAAO,EAAE;AACrB,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,QAAQ,EAAE,KAAK;AACnC,oBAAoB,eAAe,EAAE,IAAI;AACzC,oBAAoB,IAAI,EAAE;AAC1B,wBAAwB,CAAC,QAAQ,GAAG,wBAAwB;AAC5D,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,QAAQ,QAAQ,EAAE,SAAS;AAC3B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,SAAS;AAC9C,KAAK;AACL;AACO,SAAS,4BAA4B,CAAC,EAAE,EAAE;AACjD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,EAAE;AAChB,QAAQ,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACnC,QAAQ,KAAK,EAAE,wBAAwB;AACvC,KAAK;AACL;AACO,SAAS,+BAA+B,GAAG;AAClD,IAAI,OAAO,CAAC;AACZ,YAAY,IAAI,EAAE,cAAc;AAChC,YAAY,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,YAAY,KAAK,EAAE,wBAAwB;AAC3C,SAAS;AACT,QAAQ;AACR,YAAY,IAAI,EAAE,gBAAgB;AAClC,YAAY,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AACvC,YAAY,KAAK,EAAE,gCAAgC;AACnD;AACA,KAAK;AACL;AACO,SAAS,uBAAuB,GAAG;AAC1C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,6BAA6B;AAC5C,QAAQ,OAAO,EAAE,qBAAqB;AACtC,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AAC/C,KAAK;AACL;AACO,SAAS,+BAA+B,GAAG;AAClD,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE,6BAA6B;AAC5C,QAAQ,OAAO,EAAE,aAAa;AAC9B,QAAQ,QAAQ,EAAE,WAAW;AAC7B,QAAQ,MAAM,EAAE,IAAI;AACpB,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,KAAK,EAAE,qBAAqB,CAAC,UAAU;AAC/C,KAAK;AACL;AACO,SAAS,wBAAwB,CAAC,QAAQ,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,0BAA0B,CAAC,QAAQ,CAAC;AAC5C,QAAQ,uBAAuB,EAAE;AACjC,QAAQ,+BAA+B,EAAE;AACzC,KAAK;AACL;AACO,SAAS,mCAAmC,GAAG;AACtD,IAAI,OAAO;AACX,QAAQ;AACR,YAAY,KAAK,EAAE,+BAA+B;AAClD,YAAY,OAAO,EAAE;AACrB,gBAAgB,IAAI,EAAE,eAAe;AACrC,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,QAAQ,EAAE,KAAK;AACvC,wBAAwB,eAAe,EAAE,IAAI;AAC7C,wBAAwB,IAAI,EAAE;AAC9B,4BAA4B,WAAW,EAAE;AACzC,gCAAgC,IAAI,EAAE,wBAAwB;AAC9D,gCAAgC,MAAM,EAAE;AACxC;AACA,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,YAAY,QAAQ,EAAE,SAAS;AAC/B,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,KAAK,EAAE,qBAAqB,CAAC,SAAS;AAClD,SAAS;AACT,QAAQ,uBAAuB,EAAE;AACjC,QAAQ,+BAA+B,EAAE;AACzC,KAAK;AACL;AACA;;AClJA;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-layout-entity.mjs","sources":["../tmp-esm2022/layout/entity/lib/entity-data-seeder.js","../tmp-esm2022/layout/entity/lib/entity.config.js","../tmp-esm2022/layout/entity/lib/entity.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-detail-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-modifier.context.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-provider.js","../tmp-esm2022/layout/entity/lib/entity-middleware/entity-middleware.js","../tmp-esm2022/layout/entity/lib/entity-registery.service.js","../tmp-esm2022/layout/entity/lib/entity-master-create.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-master-list.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity.service.js","../tmp-esm2022/layout/entity/lib/workflows/delete-entity.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-update.viewmodel.js","../tmp-esm2022/layout/entity/lib/workflows/modify-section.workflow.js","../tmp-esm2022/layout/entity/lib/entity-master-single.viewmodel.js","../tmp-esm2022/layout/entity/lib/entity-storage-service.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.registry.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage.executor.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/entity-storage-with-middleware.service.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/provide-entity-storage-middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/middlewares/logging.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/middlewares/audit.middleware.js","../tmp-esm2022/layout/entity/lib/entity-storage-middleware/index.js","../tmp-esm2022/layout/entity/lib/search-definition-command.provider.js","../tmp-esm2022/layout/entity/lib/search-definition.provider.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-filter.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-print.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/tagable-box/tagable-box-widget.config.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/widget-selector/widget-selector-widget.config.js","../tmp-esm2022/layout/entity/lib/workflows/create-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/modify-entity.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-details.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-file-uploader-popup.workflow.js","../tmp-esm2022/layout/entity/lib/workflows/show-list.workflow.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-view.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-edit.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-column.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-print.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget-designer.component.js","../tmp-esm2022/layout/entity/lib/widgets/entity-reference/entity-reference-widget.config.js","../tmp-esm2022/layout/entity/lib/entity.module.js","../tmp-esm2022/layout/entity/lib/utils.js","../tmp-esm2022/layout/entity/acorex-platform-layout-entity.js"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport { castArray } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport const AXP_DATA_SEEDER_TOKEN = new InjectionToken('AXP_DATA_SEEDER_TOKEN');\nexport class AXPDataSeederService {\n constructor() {\n this.loaders = inject(AXP_DATA_SEEDER_TOKEN, { optional: true });\n }\n async seed() {\n for (const loader of castArray(this.loaders)) {\n await loader?.seed();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPDataSeederService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRhdGEtc2VlZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LWRhdGEtc2VlZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQU10QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsdUJBQXVCLENBQUMsQ0FBQztBQUdsRyxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRVUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBT3JFO0lBTEMsS0FBSyxDQUFDLElBQUk7UUFDUixLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQzs4R0FQVSxvQkFBb0I7a0hBQXBCLG9CQUFvQixjQURQLE1BQU07OzJGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBEYXRhU2VlZGVyIHtcbiAgc2VlZCgpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgY29uc3QgQVhQX0RBVEFfU0VFREVSX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFYUERhdGFTZWVkZXJbXT4oJ0FYUF9EQVRBX1NFRURFUl9UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUERhdGFTZWVkZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsb2FkZXJzID0gaW5qZWN0KEFYUF9EQVRBX1NFRURFUl9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBhc3luYyBzZWVkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgbG9hZGVyIG9mIGNhc3RBcnJheSh0aGlzLmxvYWRlcnMpKSB7XG4gICAgICBhd2FpdCBsb2FkZXI/LnNlZWQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable, InjectionToken } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport const AXP_ENTITY_CONFIG_TOKEN = new InjectionToken('AXP_ENTITY_CONFIG_TOKEN');\nexport const AXP_ENTITY_DEFINITION_LOADER = new InjectionToken('AXP_ENTITY_DEFINITION_PROVIDER');\nexport class AXPEntityResolver {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n }\n async get(moduleName, entityName) {\n if (Array.isArray(this.providers)) {\n for (const loader of this.providers) {\n const entity = await loader.get(moduleName, entityName);\n if (entity) {\n return entity;\n }\n }\n }\n else {\n return await this.providers.get(moduleName, entityName);\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityResolver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQWlCekUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQW1CLHlCQUF5QixDQUFDLENBQUM7QUFRdkcsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxjQUFjLENBQzVELGdDQUFnQyxDQUNqQyxDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFpQjtJQUQ5QjtRQUVVLGNBQVMsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztLQWUxRDtJQWJDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3hELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBZlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FESixNQUFNOzsyRkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlDb25maWdzIHtcbiAgdmlld2Vyczoge1xuICAgIHJvb3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICBkZXRhaWw6IHtcbiAgICAgIGxpc3Q6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICB9O1xuICAgIG1hc3Rlcjoge1xuICAgICAgc2luZ2xlOiAoKSA9PiBUeXBlPGFueT4gfCBQcm9taXNlPFR5cGU8YW55Pj47XG4gICAgICBjcmVhdGU6ICgpID0+IFR5cGU8YW55PiB8IFByb21pc2U8VHlwZTxhbnk+PjtcbiAgICAgIG1vZGlmeTogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgICAgbGlzdDogKCkgPT4gVHlwZTxhbnk+IHwgUHJvbWlzZTxUeXBlPGFueT4+O1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBFbnRpdHlDb25maWdzPignQVhQX0VOVElUWV9DT05GSUdfVE9LRU4nKTtcblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciB7XG4gIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD47XG59XG5cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXI+KFxuICAnQVhQX0VOVElUWV9ERUZJTklUSU9OX1BST1ZJREVSJ1xuKTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZXNvbHZlciB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xuXG4gIGFzeW5jIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMucHJvdmlkZXJzKSkge1xuICAgICAgZm9yIChjb25zdCBsb2FkZXIgb2YgdGhpcy5wcm92aWRlcnMpIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgbG9hZGVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvdmlkZXJzLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==","import { resolveActionLook, } from '@acorex/platform/common';\nimport { computed } from '@angular/core';\nexport class AXPEntityCommandTriggerViewModel {\n constructor(entity, action) {\n this.name = `${typeof action.command === 'string' ? action.command : action.command.name}&${action.name}`;\n this.options = typeof action.command === 'object' ? action.command.options : undefined;\n this.metadata = typeof action.command === 'object' ? action.command.metadata : undefined;\n const resolvedLook = resolveActionLook(action);\n this.priority = action.priority;\n this.title = action.title;\n this.separated = action.separated ?? false;\n this.color = action.color ?? resolvedLook.color;\n this.icon = action.icon ?? resolvedLook.icon;\n this.hidden = action.hidden ?? false;\n this.disabled = action.disabled ?? false;\n this.default = action.default ?? false;\n this.scope = action.scope;\n }\n}\nexport class AXPEntityListViewColumnViewModel {\n constructor(property, column) {\n this.property = property;\n this.column = column;\n this.name = this.property.name;\n this.title = this.column.title ?? this.property.title;\n this.visible = this.column?.options?.visible ?? true;\n this.dir = this.column.sort?.dir;\n this.sortEnabled = this.property.options?.sort?.enabled;\n this.node = computed(() => {\n const widget = this.property.schema.interface;\n return {\n path: this.column.options?.dataPath ?? this.name,\n type: widget.type,\n options: { ...widget?.options, ...this.column?.options },\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU1MLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUFZLE1BQWlCLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLFFBQTJCLEVBQzNCLE1BQTRCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBR3RDLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsUUFBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFHbkQsU0FBSSxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQztZQUMvQyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUk7Z0JBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7YUFDbEMsQ0FBQztRQUMzQixDQUFDLGdEQUFDLENBQUM7SUFoQkEsQ0FBQztDQWlCTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlBY3Rpb24sXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRW50aXR5UHJvcGVydHksXG4gIEFYUEVudGl0eVRhYmxlQ29sdW1uLFxuICByZXNvbHZlQWN0aW9uTG9vayxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTWV0YURhdGEgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Q29sdW1uTm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIHtcbiAgcHJpb3JpdHk6ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknO1xuICBjb2xvcjogQVhTdHlsZUNvbG9yVHlwZTtcbiAgaWNvbjogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGtleT86IHN0cmluZztcbiAgc2VwYXJhdGVkOiBib29sZWFuO1xuICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlO1xuICBkaXNhYmxlZDogYm9vbGVhbiB8IHN0cmluZztcbiAgaGlkZGVuOiBib29sZWFuIHwgc3RyaW5nO1xuICBvcHRpb25zOiBhbnk7XG4gIG1ldGFkYXRhPzogQVhQTWV0YURhdGE7XG4gIGRlZmF1bHQ/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0eTogQVhQRW50aXR5LCBhY3Rpb246IEFYUEVudGl0eUFjdGlvbikge1xuICAgIHRoaXMubmFtZSA9IGAke3R5cGVvZiBhY3Rpb24uY29tbWFuZCA9PT0gJ3N0cmluZycgPyBhY3Rpb24uY29tbWFuZCA6IGFjdGlvbi5jb21tYW5kLm5hbWV9JiR7YWN0aW9uLm5hbWV9YDtcbiAgICB0aGlzLm9wdGlvbnMgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdvYmplY3QnID8gYWN0aW9uLmNvbW1hbmQub3B0aW9ucyA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLm1ldGFkYXRhID0gdHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnb2JqZWN0JyA/IGFjdGlvbi5jb21tYW5kLm1ldGFkYXRhIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlc29sdmVkTG9vayA9IHJlc29sdmVBY3Rpb25Mb29rKGFjdGlvbik7XG4gICAgdGhpcy5wcmlvcml0eSA9IGFjdGlvbi5wcmlvcml0eTtcbiAgICB0aGlzLnRpdGxlID0gYWN0aW9uLnRpdGxlO1xuICAgIHRoaXMuc2VwYXJhdGVkID0gYWN0aW9uLnNlcGFyYXRlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmNvbG9yID0gYWN0aW9uLmNvbG9yID8/IHJlc29sdmVkTG9vay5jb2xvcjtcbiAgICB0aGlzLmljb24gPSBhY3Rpb24uaWNvbiA/PyByZXNvbHZlZExvb2suaWNvbjtcbiAgICB0aGlzLmhpZGRlbiA9IGFjdGlvbi5oaWRkZW4gPz8gZmFsc2U7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGFjdGlvbi5kaXNhYmxlZCA/PyBmYWxzZTtcbiAgICB0aGlzLmRlZmF1bHQgPSBhY3Rpb24uZGVmYXVsdCA/PyBmYWxzZTtcbiAgICB0aGlzLnNjb3BlID0gYWN0aW9uLnNjb3BlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICAgIHByaXZhdGUgY29sdW1uOiBBWFBFbnRpdHlUYWJsZUNvbHVtbixcbiAgKSB7fVxuXG4gIG5hbWUgPSB0aGlzLnByb3BlcnR5Lm5hbWU7XG4gIHRpdGxlID0gdGhpcy5jb2x1bW4udGl0bGUgPz8gdGhpcy5wcm9wZXJ0eS50aXRsZTtcbiAgdmlzaWJsZSA9IHRoaXMuY29sdW1uPy5vcHRpb25zPy52aXNpYmxlID8/IHRydWU7XG4gIGRpciA9IHRoaXMuY29sdW1uLnNvcnQ/LmRpcjtcbiAgc29ydEVuYWJsZWQgPSB0aGlzLnByb3BlcnR5Lm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQ7XG4gIHdpZHRoOiAnJztcblxuICBub2RlID0gY29tcHV0ZWQ8QVhQV2lkZ2V0Q29sdW1uTm9kZT4oKCkgPT4ge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMucHJvcGVydHkuc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IHRoaXMuY29sdW1uLm9wdGlvbnM/LmRhdGFQYXRoID8/IHRoaXMubmFtZSxcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgb3B0aW9uczogeyAuLi53aWRnZXQ/Lm9wdGlvbnMsIC4uLnRoaXMuY29sdW1uPy5vcHRpb25zIH0sXG4gICAgfSBhcyBBWFBXaWRnZXRDb2x1bW5Ob2RlO1xuICB9KTtcbn1cbiJdfQ==","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, signal } from '@angular/core';\nimport { get } from 'lodash-es';\nimport { AXPEntityResolver } from './entity.config';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nexport class AXPEntityDetailListViewModel {\n constructor(injector, detailEntityConfig, parent) {\n this.injector = injector;\n this.detailEntityConfig = detailEntityConfig;\n this.parent = parent;\n this.detailEntity = signal(null, ...(ngDevMode ? [{ debugName: \"detailEntity\" }] : []));\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.detailEntity()?.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.detailEntity()?.queries.list?.execute;\n return func(e);\n },\n pageSize: 5,\n key: 'id',\n });\n this.parentKey = computed(() => {\n return this.detailEntity()?.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasSelectedItems\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n return (this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title ??\n this.detailEntity()?.formats.plural);\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Visibility ******************//\n this.hidden = computed(async () => {\n if (typeof this.detailEntityConfig.hidden == 'string') {\n const scope = {\n context: {\n eval: (path) => {\n return get(this.parent.data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(this.detailEntityConfig.hidden, scope);\n }\n else {\n return this.detailEntityConfig.hidden ?? false;\n }\n }, ...(ngDevMode ? [{ debugName: \"hidden\" }] : []));\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n //return this.entityDef.properties.filter(p => p.options?.filter?.inline?.enabled).map(c => c.title);\n return [];\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const originalList = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n // Create a map to track which actions from detailEntityActionList have been used\n const usedOverrideActions = new Set();\n // Start with original actions, applying overrides where they exist\n const mergedActions = originalList.map((originalAction) => {\n const originalCommandName = typeof originalAction.command === 'string' ? originalAction.command : originalAction.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === originalCommandName && action.name === originalAction.name;\n });\n if (overrideAction) {\n // Mark this override action as used\n const overrideKey = `${typeof overrideAction.command === 'string' ? overrideAction.command : overrideAction.command.name}_${overrideAction.name}`;\n usedOverrideActions.add(overrideKey);\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), overrideAction);\n }\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), originalAction);\n });\n // Add any remaining actions from detailEntityActionList that weren't used as overrides\n const additionalActions = detailEntityActionList\n .filter((action) => {\n const actionKey = `${typeof action.command === 'string' ? action.command : action.command.name}_${action.name}`;\n return !usedOverrideActions.has(actionKey);\n })\n .map((action) => new AXPEntityCommandTriggerViewModel(this.detailEntity(), action));\n return [...additionalActions, ...mergedActions].filter((a) => !a.hidden);\n }, ...(ngDevMode ? [{ debugName: \"allActions\" }] : []));\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n }, ...(ngDevMode ? [{ debugName: \"selectedScopeActionsCount\" }] : []));\n this.primaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n }, ...(ngDevMode ? [{ debugName: \"primaryActions\" }] : []));\n this.secondaryActions = computed(() => {\n return this.allActions().filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())));\n }, ...(ngDevMode ? [{ debugName: \"secondaryActions\" }] : []));\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'), ...(ngDevMode ? [{ debugName: \"primaryRowActions\" }] : []));\n this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'), ...(ngDevMode ? [{ debugName: \"secondaryRowActions\" }] : []));\n //****************** Filter ******************//\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n //****************** Columns ******************//\n this.columns = computed(() => {\n if (this.detailEntity()) {\n const detailColumns = this.detailEntityConfig.columns ?? [];\n const columns = this.detailEntity()?.columns?.map((c) => c.name) ?? [];\n const props = this.detailEntity()?.properties.filter((p) => p.schema.hidden != true && (detailColumns?.length == 0 || detailColumns?.includes(p.name))) ?? [];\n const displayColumns = props.filter((p) => columns.some((c) => c == p.name));\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, this.detailEntity()?.columns?.find((c) => c.name == p.name));\n });\n }\n return [];\n }, ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.evaluateExpressions = async (actionData) => {\n const parentData = this.parent.data;\n console.log({ actionData, parentData });\n const scope = {\n context: {\n eval: (path) => {\n return get(parentData, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(actionData, scope);\n };\n this.initialize();\n }\n async initialize() {\n const entityResolver = this.injector.get(AXPEntityResolver);\n const [moduleName, entityName] = this.detailEntityConfig.entity.split('.');\n const entity = await entityResolver.get(moduleName, entityName);\n if (!entity) {\n throw Error(`Invalid enitity name: ${this.detailEntityConfig.entity}`);\n }\n this.detailEntity.set(entity);\n this.applyFilterAndSort();\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n applyInlineFilter(value) {\n // const props = this.entityDef.properties.filter(c => c.options?.filter?.inline?.enabled);\n // this.inlineFilters.filters = [];\n // if (value) {\n // props.forEach(p => {\n // this.inlineFilters.filters?.push({\n // field: p.name,\n // operator: {\n // type: 'contains'\n // },\n // value\n // })\n // })\n // }\n this.applyFilterAndSort();\n }\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.detailEntity.().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n const parentFilters = (await Promise.all(this.detailEntityConfig.conditions?.map(async (c) => {\n return {\n field: c.name,\n operator: c.operator,\n // value: this.parent.data?.id,\n value: await this.evaluateExpressions(c.value),\n };\n }) ?? [])) ?? [];\n const parentFilterWrapper = {\n field: null,\n logic: 'and',\n operator: null,\n filters: parentFilters,\n };\n //\n const inline = this.inlineFilters.filters?.length ?? 0;\n const parent = parentFilterWrapper.filters?.length ?? 0;\n //\n if (inline) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(this.inlineFilters));\n }\n else if (!inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter(parentFilterWrapper));\n }\n else if (inline && parent) {\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: [this.inlineFilters, parentFilterWrapper],\n }));\n }\n //\n this.dataSource.refresh();\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n const isSelectedScope = this.selectedItems().length\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual;\n return c.name == commandName && (isSelectedScope || c.scope == AXPEntityCommandScope.TypeLevel);\n });\n if (!action)\n return;\n const actionData = action.options?.process?.data;\n const initialData = actionData ? { ...data, ...(await this.evaluateExpressions(actionData)) } : data;\n const options = await this.evaluateExpressions(action?.options);\n await this.workflow.execute(commandName.split('&')[0], {\n entity: getEntityInfo(this.detailEntity()).source,\n data: action.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : initialData,\n entityInfo: {\n name: this.detailEntity()?.name,\n module: this.detailEntity()?.module,\n title: this.detailEntity()?.title,\n parentKey: this.detailEntity()?.parentKey,\n source: this.detailEntity()?.source,\n },\n options,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUErQiw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEcsTUFBTSxPQUFPLDRCQUE0QjtJQXdCdkMsWUFDVSxRQUFrQixFQUNsQixrQkFBb0MsRUFDcEMsTUFBd0M7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBMUIxQyxpQkFBWSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSx3REFBQyxDQUFDO1FBQzlDLGtCQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkQs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LE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNoRSxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDckQsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFHLENBQUMsQ0FBQyxNQUFNO1lBQ2xELElBQUksRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ3pGLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUk7Z0JBQy9CLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTtnQkFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLO2dCQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLFNBQVM7Z0JBQ3pDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTTthQUNwQztZQUNELE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDO0NBZUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlT3BlcmF0b3IgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQUmVsYXRlZEVudGl0eSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlLCBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdG9yLCBjb21wdXRlZCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuL2VudGl0eS5jb25maWcnO1xuaW1wb3J0IHsgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwsIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHkudmlld21vZGVsJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwge1xuICBwcml2YXRlIGRldGFpbEVudGl0eSA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcblxuICBkYXRhU291cmNlID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgYnlLZXk6IChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYygpO1xuICAgIH0sXG4gICAgbG9hZDogKGUpID0+IHtcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICByZXR1cm4gZnVuYyhlKTtcbiAgICB9LFxuICAgIHBhZ2VTaXplOiA1LFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGRldGFpbEVudGl0eUNvbmZpZzogQVhQUmVsYXRlZEVudGl0eSxcbiAgICBwcml2YXRlIHBhcmVudDogeyBlbnRpdHk6IEFYUEVudGl0eTsgZGF0YTogYW55IH0sXG4gICkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICBjb25zdCBlbnRpdHlSZXNvbHZlciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHkuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBlbnRpdHkgPSBhd2FpdCBlbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIGVuaXRpdHkgbmFtZTogJHt0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5lbnRpdHl9YCk7XG4gICAgfVxuICAgIHRoaXMuZGV0YWlsRW50aXR5LnNldChlbnRpdHkpO1xuICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBoYXNTZWxlY3RlZEl0ZW1zID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcudGl0bGUgPz9cbiAgICAgIHRoaXMuZGV0YWlsRW50aXR5KCk/LmludGVyZmFjZXM/LmRldGFpbD8ubGlzdD8udGl0bGUhID8/XG4gICAgICB0aGlzLmRldGFpbEVudGl0eSgpPy5mb3JtYXRzLnBsdXJhbCFcbiAgICApO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBWaXNpYmlsaXR5ICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBoaWRkZW4gPSBjb21wdXRlZDxQcm9taXNlPGJvb2xlYW4+Pihhc3luYyAoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4gPT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMucGFyZW50LmRhdGEsIHBhdGgpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZSh0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4sIHNjb3BlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB9XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIC8vcmV0dXJuIHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKGMgPT4gYy50aXRsZSk7XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQWN0aW9ucyAqKioqKioqKioqKioqKioqKiovL1xuICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWxMaXN0ID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8uaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0Py5hY3Rpb25zID8/IFtdO1xuICAgIGNvbnN0IGRldGFpbEVudGl0eUFjdGlvbkxpc3QgPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5hY3Rpb25zID8/IFtdO1xuXG4gICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHRyYWNrIHdoaWNoIGFjdGlvbnMgZnJvbSBkZXRhaWxFbnRpdHlBY3Rpb25MaXN0IGhhdmUgYmVlbiB1c2VkXG4gICAgY29uc3QgdXNlZE92ZXJyaWRlQWN0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgLy8gU3RhcnQgd2l0aCBvcmlnaW5hbCBhY3Rpb25zLCBhcHBseWluZyBvdmVycmlkZXMgd2hlcmUgdGhleSBleGlzdFxuICAgIGNvbnN0IG1lcmdlZEFjdGlvbnMgPSBvcmlnaW5hbExpc3QubWFwKChvcmlnaW5hbEFjdGlvbikgPT4ge1xuICAgICAgY29uc3Qgb3JpZ2luYWxDb21tYW5kTmFtZSA9IHR5cGVvZiBvcmlnaW5hbEFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IG9yaWdpbmFsQWN0aW9uLmNvbW1hbmQgOiBvcmlnaW5hbEFjdGlvbi5jb21tYW5kLm5hbWU7XG5cbiAgICAgIGNvbnN0IG92ZXJyaWRlQWN0aW9uID0gZGV0YWlsRW50aXR5QWN0aW9uTGlzdC5maW5kKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uQ29tbWFuZE5hbWUgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdzdHJpbmcnID8gYWN0aW9uLmNvbW1hbmQgOiBhY3Rpb24uY29tbWFuZC5uYW1lO1xuICAgICAgICByZXR1cm4gYWN0aW9uQ29tbWFuZE5hbWUgPT09IG9yaWdpbmFsQ29tbWFuZE5hbWUgJiYgYWN0aW9uLm5hbWUgPT09IG9yaWdpbmFsQWN0aW9uLm5hbWU7XG4gICAgICB9KTtcblxuICAgICAgaWYgKG92ZXJyaWRlQWN0aW9uKSB7XG4gICAgICAgIC8vIE1hcmsgdGhpcyBvdmVycmlkZSBhY3Rpb24gYXMgdXNlZFxuICAgICAgICBjb25zdCBvdmVycmlkZUtleSA9IGAke3R5cGVvZiBvdmVycmlkZUFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IG92ZXJyaWRlQWN0aW9uLmNvbW1hbmQgOiBvdmVycmlkZUFjdGlvbi5jb21tYW5kLm5hbWV9XyR7b3ZlcnJpZGVBY3Rpb24ubmFtZX1gO1xuICAgICAgICB1c2VkT3ZlcnJpZGVBY3Rpb25zLmFkZChvdmVycmlkZUtleSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5kZXRhaWxFbnRpdHkoKSEsIG92ZXJyaWRlQWN0aW9uKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmRldGFpbEVudGl0eSgpISwgb3JpZ2luYWxBY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgLy8gQWRkIGFueSByZW1haW5pbmcgYWN0aW9ucyBmcm9tIGRldGFpbEVudGl0eUFjdGlvbkxpc3QgdGhhdCB3ZXJlbid0IHVzZWQgYXMgb3ZlcnJpZGVzXG4gICAgY29uc3QgYWRkaXRpb25hbEFjdGlvbnMgPSBkZXRhaWxFbnRpdHlBY3Rpb25MaXN0XG4gICAgICAuZmlsdGVyKChhY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgYWN0aW9uS2V5ID0gYCR7dHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZX1fJHthY3Rpb24ubmFtZX1gO1xuICAgICAgICByZXR1cm4gIXVzZWRPdmVycmlkZUFjdGlvbnMuaGFzKGFjdGlvbktleSk7XG4gICAgICB9KVxuICAgICAgLm1hcCgoYWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5kZXRhaWxFbnRpdHkoKSEsIGFjdGlvbikpO1xuXG4gICAgcmV0dXJuIFsuLi5hZGRpdGlvbmFsQWN0aW9ucywgLi4ubWVyZ2VkQWN0aW9uc10uZmlsdGVyKChhKSA9PiAhYS5oaWRkZW4pO1xuICB9KTtcblxuICBwdWJsaWMgc2VsZWN0ZWRTY29wZUFjdGlvbnNDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkKS5sZW5ndGg7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKFxuICAgICAgKGEpID0+XG4gICAgICAgIGEucHJpb3JpdHkgPT0gJ3ByaW1hcnknICYmXG4gICAgICAgICgoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgJiYgdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpIHx8XG4gICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICApO1xuICB9KTtcblxuICBwdWJsaWMgc2Vjb25kYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKFxuICAgICAgKGEpID0+XG4gICAgICAgIGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScgJiZcbiAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICk7XG4gIH0pO1xuICBwdWJsaWMgcHJpbWFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAncHJpbWFyeScpLFxuICApO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlSb3dBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT5cbiAgICB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgJiYgYS5wcmlvcml0eSA9PT0gJ3NlY29uZGFyeScpLFxuICApO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEZpbHRlciAqKioqKioqKioqKioqKioqKiovL1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIC8vIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKTtcbiAgICAvLyB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycyA9IFtdO1xuICAgIC8vIGlmICh2YWx1ZSkge1xuICAgIC8vICAgICBwcm9wcy5mb3JFYWNoKHAgPT4ge1xuICAgIC8vICAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgIC8vICAgICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgLy8gICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAvLyAgICAgICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJ1xuICAgIC8vICAgICAgICAgICAgIH0sXG4gICAgLy8gICAgICAgICAgICAgdmFsdWVcbiAgICAvLyAgICAgICAgIH0pXG4gICAgLy8gICAgIH0pXG4gICAgLy8gfVxuICAgIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhc3luYyBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuZGV0YWlsRW50aXR5LigpLm1hcChzID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSkpO1xuICAgIC8vXG5cbiAgICBjb25zdCBwYXJlbnRGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb25bXSA9XG4gICAgICAoYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmNvbmRpdGlvbnM/Lm1hcChhc3luYyAoYykgPT4ge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWVsZDogYy5uYW1lLFxuICAgICAgICAgICAgb3BlcmF0b3I6IGMub3BlcmF0b3IgYXMgdW5rbm93biBhcyBBWERhdGFTb3VyY2VPcGVyYXRvcixcbiAgICAgICAgICAgIC8vIHZhbHVlOiB0aGlzLnBhcmVudC5kYXRhPy5pZCxcbiAgICAgICAgICAgIHZhbHVlOiBhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYy52YWx1ZSksXG4gICAgICAgICAgfSBhcyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb247XG4gICAgICAgIH0pID8/IFtdLFxuICAgICAgKSkgPz8gW107XG4gICAgY29uc3QgcGFyZW50RmlsdGVyV3JhcHBlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgZmlsdGVyczogcGFyZW50RmlsdGVycyxcbiAgICB9O1xuICAgIC8vXG4gICAgY29uc3QgaW5saW5lID0gdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/Lmxlbmd0aCA/PyAwO1xuICAgIGNvbnN0IHBhcmVudCA9IHBhcmVudEZpbHRlcldyYXBwZXIuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgLy9cbiAgICBpZiAoaW5saW5lKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih0aGlzLmlubGluZUZpbHRlcnMpKTtcbiAgICB9IGVsc2UgaWYgKCFpbmxpbmUgJiYgcGFyZW50KSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcihwYXJlbnRGaWx0ZXJXcmFwcGVyKSk7XG4gICAgfSBlbHNlIGlmIChpbmxpbmUgJiYgcGFyZW50KSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKFxuICAgICAgICB0aGlzLmZpbHRlck9wZXJhdG9yTWlkZGxld2FyZS50cmFuc2Zvcm1GaWx0ZXIoe1xuICAgICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgICAgICAgIGZpbHRlcnM6IFt0aGlzLmlubGluZUZpbHRlcnMsIHBhcmVudEZpbHRlcldyYXBwZXJdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIENvbHVtbnMgKioqKioqKioqKioqKioqKioqLy9cblxuICBjb2x1bW5zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmRldGFpbEVudGl0eSgpKSB7XG4gICAgICBjb25zdCBkZXRhaWxDb2x1bW5zID0gdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuY29sdW1ucyA/PyBbXTtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5jb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgICBjb25zdCBwcm9wcyA9XG4gICAgICAgIHRoaXMuZGV0YWlsRW50aXR5KCk/LnByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgICAgIChwKSA9PiBwLnNjaGVtYS5oaWRkZW4gIT0gdHJ1ZSAmJiAoZGV0YWlsQ29sdW1ucz8ubGVuZ3RoID09IDAgfHwgZGV0YWlsQ29sdW1ucz8uaW5jbHVkZXMocC5uYW1lKSksXG4gICAgICAgICkgPz8gW107XG4gICAgICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IHByb3BzLmZpbHRlcigocCkgPT4gY29sdW1ucy5zb21lKChjKSA9PiBjID09IHAubmFtZSkpO1xuICAgICAgcmV0dXJuIGRpc3BsYXlDb2x1bW5zLm1hcCgocCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIHRoaXMuZGV0YWlsRW50aXR5KCk/LmNvbHVtbnM/LmZpbmQoKGMpID0+IGMubmFtZSA9PSBwLm5hbWUpISk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiAgQ29tbWFuZHMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFsbEFjdGlvbnMoKS5maW5kKChjKSA9PiB7XG4gICAgICBjb25zdCBpc1NlbGVjdGVkU2NvcGUgPSB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGhcbiAgICAgICAgPyBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZFxuICAgICAgICA6IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWw7XG4gICAgICByZXR1cm4gYy5uYW1lID09IGNvbW1hbmROYW1lICYmIChpc1NlbGVjdGVkU2NvcGUgfHwgYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsKTtcbiAgICB9KTtcblxuICAgIGlmICghYWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCBhY3Rpb25EYXRhID0gYWN0aW9uLm9wdGlvbnM/LnByb2Nlc3M/LmRhdGE7XG4gICAgY29uc3QgaW5pdGlhbERhdGEgPSBhY3Rpb25EYXRhID8geyAuLi5kYXRhLCAuLi4oYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbkRhdGEpKSB9IDogZGF0YTtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF0sIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmRldGFpbEVudGl0eSgpISkuc291cmNlLFxuICAgICAgZGF0YTogYWN0aW9uLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogaW5pdGlhbERhdGEsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZGV0YWlsRW50aXR5KCk/Lm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8udGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZGV0YWlsRW50aXR5KCk/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKGFjdGlvbkRhdGE6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pID0+IHtcbiAgICBjb25zdCBwYXJlbnREYXRhID0gdGhpcy5wYXJlbnQuZGF0YTtcbiAgICBjb25zb2xlLmxvZyh7IGFjdGlvbkRhdGEsIHBhcmVudERhdGEgfSk7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXQocGFyZW50RGF0YSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGFjdGlvbkRhdGEsIHNjb3BlKTtcbiAgfTtcbn1cbiJdfQ==","export function createModifierContext(entity) {\n const ctx = {\n entity,\n title: {\n get: () => entity.title,\n set: (newTitle) => {\n entity.title = newTitle;\n return ctx;\n },\n },\n module: {\n get: () => entity.module,\n set: (newValue) => {\n entity.module = newValue;\n return ctx;\n },\n },\n name: {\n get: () => entity.name,\n set: (newValue) => {\n entity.name = newValue;\n return ctx;\n },\n },\n source: {\n get: () => entity.source,\n set: (newValue) => {\n entity.source = newValue;\n return ctx;\n },\n },\n parentKey: {\n get: () => entity.parentKey,\n set: (newValue) => {\n entity.parentKey = newValue;\n return ctx;\n },\n },\n category: {\n get: () => entity.category,\n update: (updater) => {\n entity.category = updater(entity.category);\n return ctx;\n },\n },\n properties: {\n list: () => entity.properties,\n add: (...props) => {\n entity.properties.push(...props);\n return ctx;\n },\n remove: (predicate) => {\n entity.properties = entity.properties.filter((p) => !predicate(p));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.properties.find((p) => p.name === name),\n update: (updater) => {\n const index = entity.properties.findIndex((p) => p.name === name);\n if (index !== -1)\n entity.properties[index] = updater(entity.properties[index]);\n return ctx;\n },\n }),\n },\n columns: {\n list: () => entity.columns,\n add: (...cols) => {\n entity.columns ??= [];\n entity.columns.push(...cols);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.columns)\n entity.columns = entity.columns.filter((c) => !predicate(c));\n return ctx;\n },\n find: (name) => ({\n get: () => entity.columns?.find((c) => c.name === name),\n update: (updater) => {\n const index = entity.columns?.findIndex((c) => c.name === name);\n if (index !== undefined && index !== -1 && entity.columns)\n entity.columns[index] = updater(entity.columns[index]);\n return ctx;\n },\n }),\n },\n formats: {\n get: () => entity.formats,\n update: (updater) => {\n entity.formats = updater(entity.formats);\n return ctx;\n },\n },\n relatedEntities: {\n list: () => entity.relatedEntities,\n add: (...items) => {\n entity.relatedEntities ??= [];\n entity.relatedEntities.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.relatedEntities)\n entity.relatedEntities = entity.relatedEntities.filter((r) => !predicate(r));\n return ctx;\n },\n },\n groups: {\n list: () => entity.groups,\n add: (...items) => {\n entity.groups ??= [];\n entity.groups.push(...items);\n return ctx;\n },\n remove: (predicate) => {\n if (entity.groups)\n entity.groups = entity.groups.filter((g) => !predicate(g));\n return ctx;\n },\n },\n commands: {\n get: () => entity.commands,\n update: (updater) => {\n entity.commands = updater(entity.commands);\n return ctx;\n },\n },\n queries: {\n get: () => entity.queries,\n update: (updater) => {\n entity.queries = updater(entity.queries);\n return ctx;\n },\n },\n validations: {\n get: () => entity.validations,\n update: (updater) => {\n entity.validations = updater(entity.validations);\n return ctx;\n },\n },\n interfaces: {\n get: () => entity.interfaces,\n update: (updater) => {\n entity.interfaces = updater(entity.interfaces);\n return ctx;\n },\n master: {\n get: () => entity.interfaces?.master,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master = updater(entity.interfaces.master);\n return ctx;\n },\n create: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.create = updater(entity.interfaces.master.create);\n return ctx;\n },\n },\n modify: {\n get: () => entity.interfaces?.master?.create,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.update = updater(entity.interfaces.master.update);\n return ctx;\n },\n },\n single: {\n get: () => entity.interfaces?.master?.single,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.master ??= {};\n entity.interfaces.master.single = updater(entity.interfaces.master.single);\n return ctx;\n },\n },\n },\n detail: {\n get: () => entity.interfaces?.detail,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail = updater(entity.interfaces.detail);\n return ctx;\n },\n list: {\n get: () => entity.interfaces?.detail?.list,\n update: (updater) => {\n entity.interfaces ??= {};\n entity.interfaces.detail ??= {};\n entity.interfaces.detail.list = updater(entity.interfaces.detail.list);\n return ctx;\n },\n },\n },\n },\n toEntity: () => entity,\n };\n return ctx;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1vZGlmaWVyLmNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbW9kaWZpZXIuY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLFVBQVUscUJBQXFCLENBQUMsTUFBaUI7SUFDckQsTUFBTSxHQUFHLEdBQTZCO1FBQ3BDLE1BQU07UUFFTixLQUFLLEVBQUU7WUFDTCxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUs7WUFDdkIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO2dCQUN4QixPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUM7U0FDRjtRQUVELE1BQU0sRUFBRTtZQUNOLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUN4QixHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDaEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztTQUNGO1FBRUQsSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1lBQ3RCLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNoQixNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1NBQ0Y7UUFFRCxNQUFNLEVBQUU7WUFDTixHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDeEIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2hCLE1BQU0sQ0FBQyxNQUFN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Q04sR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTTtnQkFDcEMsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2xCLE1BQU0sQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDO29CQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDN0QsT0FBTyxHQUFHLENBQUM7Z0JBQ2IsQ0FBQztnQkFFRCxJQUFJLEVBQUU7b0JBQ0osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUk7b0JBQzFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUNsQixNQUFNLENBQUMsVUFBVSxLQUFLLEVBQUUsQ0FBQzt3QkFDekIsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO3dCQUNoQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN2RSxPQUFPLEdBQUcsQ0FBQztvQkFDYixDQUFDO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0tBQ3ZCLENBQUM7SUFFRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQgfSBmcm9tICcuL2VudGl0eS1tb2RpZmllci50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2RpZmllckNvbnRleHQoZW50aXR5OiBBWFBFbnRpdHkpOiBBWFBFbnRpdHlNb2RpZmllckNvbnRleHQge1xuICBjb25zdCBjdHg6IEFYUEVudGl0eU1vZGlmaWVyQ29udGV4dCA9IHtcbiAgICBlbnRpdHksXG5cbiAgICB0aXRsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudGl0bGUsXG4gICAgICBzZXQ6IChuZXdUaXRsZSkgPT4ge1xuICAgICAgICBlbnRpdHkudGl0bGUgPSBuZXdUaXRsZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIG1vZHVsZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubW9kdWxlLFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5Lm1vZHVsZSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgbmFtZToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkubmFtZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5uYW1lID0gbmV3VmFsdWU7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBzb3VyY2U6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnNvdXJjZSxcbiAgICAgIHNldDogKG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgIGVudGl0eS5zb3VyY2UgPSBuZXdWYWx1ZTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHBhcmVudEtleToge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkucGFyZW50S2V5LFxuICAgICAgc2V0OiAobmV3VmFsdWUpID0+IHtcbiAgICAgICAgZW50aXR5LnBhcmVudEtleSA9IG5ld1ZhbHVlO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICB9LFxuXG4gICAgY2F0ZWdvcnk6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmNhdGVnb3J5LFxuICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICBlbnRpdHkuY2F0ZWdvcnkgPSB1cGRhdGVyKGVudGl0eS5jYXRlZ29yeSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsaXN0OiAoKSA9PiBlbnRpdHkucHJvcGVydGllcyxcbiAgICAgIGFkZDogKC4uLnByb3BzKSA9PiB7XG4gICAgICAgIGVudGl0eS5wcm9wZXJ0aWVzLnB1c2goLi4ucHJvcHMpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIHJlbW92ZTogKHByZWRpY2F0ZSkgPT4ge1xuICAgICAgICBlbnRpdHkucHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gIXByZWRpY2F0ZShwKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgZmluZDogKG5hbWUpID0+ICh7XG4gICAgICAgIGdldDogKCkgPT4gZW50aXR5LnByb3BlcnRpZXMuZmluZCgocCkgPT4gcC5uYW1lID09PSBuYW1lKSxcbiAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZW50aXR5LnByb3BlcnRpZXMuZmluZEluZGV4KChwKSA9PiBwLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIGVudGl0eS5wcm9wZXJ0aWVzW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LnByb3BlcnRpZXNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGNvbHVtbnM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5jb2x1bW5zLFxuICAgICAgYWRkOiAoLi4uY29scykgPT4ge1xuICAgICAgICBlbnRpdHkuY29sdW1ucyA/Pz0gW107XG4gICAgICAgIGVudGl0eS5jb2x1bW5zLnB1c2goLi4uY29scyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgICAgcmVtb3ZlOiAocHJlZGljYXRlKSA9PiB7XG4gICAgICAgIGlmIChlbnRpdHkuY29sdW1ucykgZW50aXR5LmNvbHVtbnMgPSBlbnRpdHkuY29sdW1ucy5maWx0ZXIoKGMpID0+ICFwcmVkaWNhdGUoYykpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgfSxcbiAgICAgIGZpbmQ6IChuYW1lKSA9PiAoe1xuICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5jb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT09IG5hbWUpLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBlbnRpdHkuY29sdW1ucz8uZmluZEluZGV4KChjKSA9PiBjLm5hbWUgPT09IG5hbWUpO1xuICAgICAgICAgIGlmIChpbmRleCAhPT0gdW5kZWZpbmVkICYmIGluZGV4ICE9PSAtMSAmJiBlbnRpdHkuY29sdW1ucylcbiAgICAgICAgICAgIGVudGl0eS5jb2x1bW5zW2luZGV4XSA9IHVwZGF0ZXIoZW50aXR5LmNvbHVtbnNbaW5kZXhdKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSxcblxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmZvcm1hdHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5mb3JtYXRzID0gdXBkYXRlcihlbnRpdHkuZm9ybWF0cyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICByZWxhdGVkRW50aXRpZXM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5yZWxhdGVkRW50aXRpZXMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkucmVsYXRlZEVudGl0aWVzID8/PSBbXTtcbiAgICAgICAgZW50aXR5LnJlbGF0ZWRFbnRpdGllcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5yZWxhdGVkRW50aXRpZXMpIGVudGl0eS5yZWxhdGVkRW50aXRpZXMgPSBlbnRpdHkucmVsYXRlZEVudGl0aWVzLmZpbHRlcigocikgPT4gIXByZWRpY2F0ZShyKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBncm91cHM6IHtcbiAgICAgIGxpc3Q6ICgpID0+IGVudGl0eS5ncm91cHMsXG4gICAgICBhZGQ6ICguLi5pdGVtcykgPT4ge1xuICAgICAgICBlbnRpdHkuZ3JvdXBzID8/PSBbXTtcbiAgICAgICAgZW50aXR5Lmdyb3Vwcy5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgICByZW1vdmU6IChwcmVkaWNhdGUpID0+IHtcbiAgICAgICAgaWYgKGVudGl0eS5ncm91cHMpIGVudGl0eS5ncm91cHMgPSBlbnRpdHkuZ3JvdXBzLmZpbHRlcigoZykgPT4gIXByZWRpY2F0ZShnKSk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBjb21tYW5kczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuY29tbWFuZHMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5jb21tYW5kcyA9IHVwZGF0ZXIoZW50aXR5LmNvbW1hbmRzKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHF1ZXJpZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LnF1ZXJpZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5xdWVyaWVzID0gdXBkYXRlcihlbnRpdHkucXVlcmllcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB2YWxpZGF0aW9uczoge1xuICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkudmFsaWRhdGlvbnMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS52YWxpZGF0aW9ucyA9IHVwZGF0ZXIoZW50aXR5LnZhbGlkYXRpb25zKTtcbiAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGludGVyZmFjZXM6IHtcbiAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXMsXG4gICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcyk7XG4gICAgICAgIHJldHVybiBjdHg7XG4gICAgICB9LFxuXG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIGdldDogKCkgPT4gZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlLFxuICAgICAgICAgIHVwZGF0ZTogKHVwZGF0ZXIpID0+IHtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3RlciA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIuY3JlYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBjdHg7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbW9kaWZ5OiB7XG4gICAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGUsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUgPSB1cGRhdGVyKGVudGl0eS5pbnRlcmZhY2VzLm1hc3Rlci51cGRhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIGN0eDtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSxcbiAgICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcyA/Pz0ge307XG4gICAgICAgICAgICBlbnRpdHkuaW50ZXJmYWNlcy5tYXN0ZXIgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMubWFzdGVyLnNpbmdsZSk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuXG4gICAgICBkZXRhaWw6IHtcbiAgICAgICAgZ2V0OiAoKSA9PiBlbnRpdHkuaW50ZXJmYWNlcz8uZGV0YWlsLFxuICAgICAgICB1cGRhdGU6ICh1cGRhdGVyKSA9PiB7XG4gICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbCA9IHVwZGF0ZXIoZW50aXR5LmludGVyZmFjZXMuZGV0YWlsKTtcbiAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICB9LFxuXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBnZXQ6ICgpID0+IGVudGl0eS5pbnRlcmZhY2VzPy5kZXRhaWw/Lmxpc3QsXG4gICAgICAgICAgdXBkYXRlOiAodXBkYXRlcikgPT4ge1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMgPz89IHt9O1xuICAgICAgICAgICAgZW50aXR5LmludGVyZmFjZXMuZGV0YWlsID8/PSB7fTtcbiAgICAgICAgICAgIGVudGl0eS5pbnRlcmZhY2VzLmRldGFpbC5saXN0ID0gdXBkYXRlcihlbnRpdHkuaW50ZXJmYWNlcy5kZXRhaWwubGlzdCk7XG4gICAgICAgICAgICByZXR1cm4gY3R4O1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICB0b0VudGl0eTogKCkgPT4gZW50aXR5LFxuICB9O1xuXG4gIHJldHVybiBjdHg7XG59XG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_ENTITY_MODIFIER = new InjectionToken('AXP_ENTITY_MODIFIER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1pZGRsZXdhcmUvZW50aXR5LXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQThCLHFCQUFxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZpZXJQcm92aWRlciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFYUF9FTlRJVFlfTU9ESUZJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhQRW50aXR5TW9kaWZpZXJQcm92aWRlcltdPignQVhQX0VOVElUWV9NT0RJRklFUicpO1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { createModifierContext } from './entity-modifier.context';\nimport { AXP_ENTITY_MODIFIER } from './entity-provider';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMiddleware {\n constructor() {\n this.modifiers = new Map();\n this.providedModifiers = inject(AXP_ENTITY_MODIFIER, { optional: true }) || [];\n for (const { entityName, modifier } of this.providedModifiers) {\n this.register(entityName, modifier);\n }\n }\n register(entityName, modifier) {\n this.modifiers.set(entityName, modifier);\n }\n process(entity) {\n const modifier = this.modifiers.get(entity.name);\n if (!modifier)\n return entity;\n const context = createModifierContext(entity);\n modifier(context);\n return context.toEntity();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMiddleware, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktbWlkZGxld2FyZS9lbnRpdHktbWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFHeEQsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QjtRQUhRLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQztRQUMvQyxzQkFBaUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFHbEYsS0FBSyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQWtCLEVBQUUsUUFBMkI7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBaUI7UUFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBcEJVLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY3JlYXRlTW9kaWZpZXJDb250ZXh0IH0gZnJvbSAnLi9lbnRpdHktbW9kaWZpZXIuY29udGV4dCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNb2RpZmllciB9IGZyb20gJy4vZW50aXR5LW1vZGlmaWVyLnR5cGVzJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfTU9ESUZJRVIgfSBmcm9tICcuL2VudGl0eS1wcm92aWRlcic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWlkZGxld2FyZSB7XG4gIHByaXZhdGUgbW9kaWZpZXJzID0gbmV3IE1hcDxzdHJpbmcsIEFYUEVudGl0eU1vZGlmaWVyPigpO1xuICBwcm90ZWN0ZWQgcHJvdmlkZWRNb2RpZmllcnMgPSBpbmplY3QoQVhQX0VOVElUWV9NT0RJRklFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGNvbnN0IHsgZW50aXR5TmFtZSwgbW9kaWZpZXIgfSBvZiB0aGlzLnByb3ZpZGVkTW9kaWZpZXJzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKGVudGl0eU5hbWUsIG1vZGlmaWVyKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlcihlbnRpdHlOYW1lOiBzdHJpbmcsIG1vZGlmaWVyOiBBWFBFbnRpdHlNb2RpZmllcik6IHZvaWQge1xuICAgIHRoaXMubW9kaWZpZXJzLnNldChlbnRpdHlOYW1lLCBtb2RpZmllcik7XG4gIH1cblxuICBwcm9jZXNzKGVudGl0eTogQVhQRW50aXR5KTogQVhQRW50aXR5IHtcbiAgICBjb25zdCBtb2RpZmllciA9IHRoaXMubW9kaWZpZXJzLmdldChlbnRpdHkubmFtZSk7XG4gICAgaWYgKCFtb2RpZmllcikgcmV0dXJuIGVudGl0eTtcbiAgICBjb25zdCBjb250ZXh0ID0gY3JlYXRlTW9kaWZpZXJDb250ZXh0KGVudGl0eSk7XG4gICAgbW9kaWZpZXIoY29udGV4dCk7XG4gICAgcmV0dXJuIGNvbnRleHQudG9FbnRpdHkoKTtcbiAgfVxufVxuIl19","import { inject, Injectable } from '@angular/core';\n// import { AXPEntityMiddleware } from './entity-middleware';\nimport { AXPEntityMiddleware } from './entity-middleware/entity-middleware';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXPEntityResolver } from './entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityDefinitionRegistryService {\n constructor() {\n this.providers = inject(AXP_ENTITY_DEFINITION_LOADER);\n this.resolver = inject(AXPEntityResolver);\n this.middleware = inject(AXPEntityMiddleware);\n // Stores AXPEntityConfig objects, keyed by a combination of module and entity name.\n this.entities = new Map();\n // Entity resolver service for dynamically loading entity configurations.\n this.entityResolver = inject(AXPEntityResolver); // Assuming AXPEntityLoader is the correct type\n }\n async preload() {\n const providers = Array.isArray(this.providers)\n ? this.providers\n : [this.providers];\n const promises = [];\n // Helper to wrap a promise with a timeout\n function withTimeout(promise, ms = 10000, info = '') {\n return Promise.race([\n promise,\n new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout after ${ms}ms: ${info}`)), ms))\n ]);\n }\n providers.forEach((provider) => {\n const items = typeof provider.preload == 'function' ? provider.preload() : [];\n items.forEach((item) => {\n //console.log('[AXPEntityDefinitionRegistryService] Preloading entity:', item.module, item.entity);\n promises.push(withTimeout(this.resolver.get(item.module, item.entity)\n .catch(err => {\n console.error(`[AXPEntityDefinitionRegistryService] Failed to load entity ${item.module}.${item.entity}:`, err);\n return null;\n }), 3000, `${item.module}.${item.entity}`));\n });\n });\n const results = await Promise.allSettled(promises);\n const loadedEntities = [];\n results.forEach((result, idx) => {\n if (result.status === 'fulfilled' && result.value != null) {\n this.register(this.middleware.process(result.value));\n loadedEntities.push(result.value);\n }\n else if (result.status === 'rejected') {\n console.error('[AXPEntityDefinitionRegistryService] Entity preload failed:', result.reason);\n }\n });\n //console.log('[AXPEntityDefinitionRegistryService] Loaded entities:', loadedEntities);\n }\n /**\n * Registers a new entity configuration. Entities are identified uniquely by a combination\n * of their module and name.\n *\n * @param config The configuration object of the entity to be registered.\n */\n register(config) {\n const key = this.createEntityKey(config.module, config.name);\n this.entities.set(key, config);\n }\n /**\n * Returns an array of all registered entity configurations.\n *\n * @returns An array of AXPEntity objects.\n */\n getAll() {\n return Array.from(this.entities.values());\n }\n /**\n * Resolves an entity configuration based on module and entity name. If the configuration\n * is not already registered, attempts to load it dynamically. Throws an error if the\n * entity cannot be found or loaded.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns A promise resolving to the entity configuration.\n * @throws Error if the entity configuration cannot be resolved.\n */\n async resolve(moduleName, entityName) {\n const key = this.createEntityKey(moduleName, entityName);\n let config = this.entities.get(key) ?? null;\n if (!config) {\n try {\n config = await this.entityResolver.get(moduleName, entityName);\n if (config) {\n const processedConfig = this.middleware.process(config);\n this.register(processedConfig);\n return processedConfig;\n }\n }\n catch (error) {\n throw error; // Rethrow to allow error handling by caller\n }\n if (!config) {\n throw new Error(`Invalid entity name: ${key}`);\n }\n }\n return config;\n }\n /**\n * Creates a unique key for an entity based on its module and name.\n *\n * @param moduleName The module name of the entity.\n * @param entityName The name of the entity.\n * @returns The unique key for the entity.\n */\n createEntityKey(moduleName, entityName) {\n return `${moduleName}.${entityName}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDefinitionRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNEJBQTRCLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYzdHLE1BQU0sT0FBTyxrQ0FBa0M7SUFIL0M7UUFJVSxjQUFTLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDakQsYUFBUSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQStDakQsb0ZBQW9GO1FBQzVFLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUVoRCx5RUFBeUU7UUFDakUsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLCtDQUErQztLQWlFcEc7SUFsSEMsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDN0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2hCLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQWlDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQWdDLEVBQUUsQ0FBQztRQUVqRCwwQ0FBMEM7UUFDMUMsU0FBUyxXQUFXLENBQUksT0FBbUIsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUks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LENBQUM7UUFDekQsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDO1FBRTVDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQztnQkFDSCxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQy9ELElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQy9CLE9BQU8sZUFBZSxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxLQUFLLENBQUMsQ0FBQyw0Q0FBNEM7WUFDM0QsQ0FBQztZQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLGVBQWUsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzVELE9BQU8sR0FBRyxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs4R0F0SFUsa0NBQWtDO2tIQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTs7MkZBRVAsa0NBQWtDO2tCQUg5QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHsgQVhQRW50aXR5TWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LW1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LW1pZGRsZXdhcmUvZW50aXR5LW1pZGRsZXdhcmUnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUiwgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciwgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuL2VudGl0eS5jb25maWcnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eVByZWxvYWRFbnRpdHkge1xuICBtb2R1bGU6IHN0cmluZztcbiAgZW50aXR5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVmaW5pdGlvblByZWxvYWRlciB7XG4gIHByZWxvYWQoKTogQVhQRW50aXR5UHJlbG9hZEVudGl0eVtdO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB7XG4gIHByaXZhdGUgcHJvdmlkZXJzID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xuICBwcml2YXRlIHJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJpdmF0ZSBtaWRkbGV3YXJlID0gaW5qZWN0KEFYUEVudGl0eU1pZGRsZXdhcmUpO1xuXG4gIGFzeW5jIHByZWxvYWQoKSB7XG4gICAgY29uc3QgcHJvdmlkZXJzID0gQXJyYXkuaXNBcnJheSh0aGlzLnByb3ZpZGVycylcbiAgICAgID8gdGhpcy5wcm92aWRlcnNcbiAgICAgIDogKFt0aGlzLnByb3ZpZGVyc10gYXMgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlcltdKTtcbiAgICBjb25zdCBwcm9taXNlczogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPltdID0gW107XG5cbiAgICAvLyBIZWxwZXIgdG8gd3JhcCBhIHByb21pc2Ugd2l0aCBhIHRpbWVvdXRcbiAgICBmdW5jdGlvbiB3aXRoVGltZW91dDxUPihwcm9taXNlOiBQcm9taXNlPFQ+LCBtcyA9IDEwMDAwLCBpbmZvID0gJycpOiBQcm9taXNlPFQ+IHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJhY2UoW1xuICAgICAgICBwcm9taXNlLFxuICAgICAgICBuZXcgUHJvbWlzZTxUPigoXywgcmVqZWN0KSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoYFRpbWVvdXQgYWZ0ZXIgJHttc31tczogJHtpbmZvfWApKSwgbXMpKVxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgcHJvdmlkZXJzLmZvckVhY2goKHByb3ZpZGVyKSA9PiB7XG4gICAgICBjb25zdCBpdGVtcyA9IHR5cGVvZiBwcm92aWRlci5wcmVsb2FkID09ICdmdW5jdGlvbicgPyBwcm92aWRlci5wcmVsb2FkKCkgOiBbXTtcbiAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IEFYUEVudGl0eVByZWxvYWRFbnRpdHkpID0+IHtcbiAgICAgICAgLy9jb25zb2xlLmxvZygnW0FYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2VdIFByZWxvYWRpbmcgZW50aXR5OicsIGl0ZW0ubW9kdWxlLCBpdGVtLmVudGl0eSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgd2l0aFRpbWVvdXQoXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVyLmdldChpdGVtLm1vZHVsZSwgaXRlbS5lbnRpdHkpXG4gICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlXSBGYWlsZWQgdG8gbG9hZCBlbnRpdHkgJHtpdGVtLm1vZHVsZX0uJHtpdGVtLmVudGl0eX06YCwgZXJyKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAzMDAwLFxuICAgICAgICAgICAgYCR7aXRlbS5tb2R1bGV9LiR7aXRlbS5lbnRpdHl9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChwcm9taXNlcyk7XG4gICAgY29uc3QgbG9hZGVkRW50aXRpZXM6IEFYUEVudGl0eVtdID0gW107XG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQsIGlkeCkgPT4ge1xuICAgICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnICYmIHJlc3VsdC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXIodGhpcy5taWRkbGV3YXJlLnByb2Nlc3MocmVzdWx0LnZhbHVlKSk7XG4gICAgICAgIGxvYWRlZEVudGl0aWVzLnB1c2gocmVzdWx0LnZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZV0gRW50aXR5IHByZWxvYWQgZmFpbGVkOicsIHJlc3VsdC5yZWFzb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIC8vY29uc29sZS5sb2coJ1tBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlXSBMb2FkZWQgZW50aXRpZXM6JywgbG9hZGVkRW50aXRpZXMpO1xuICB9XG5cbiAgLy8gU3RvcmVzIEFYUEVudGl0eUNvbmZpZyBvYmplY3RzLCBrZXllZCBieSBhIGNvbWJpbmF0aW9uIG9mIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuXG4gIHByaXZhdGUgZW50aXRpZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQRW50aXR5PigpO1xuXG4gIC8vIEVudGl0eSByZXNvbHZlciBzZXJ2aWNlIGZvciBkeW5hbWljYWxseSBsb2FkaW5nIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgcHJpdmF0ZSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7IC8vIEFzc3VtaW5nIEFYUEVudGl0eUxvYWRlciBpcyB0aGUgY29ycmVjdCB0eXBlXG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIG5ldyBlbnRpdHkgY29uZmlndXJhdGlvbi4gRW50aXRpZXMgYXJlIGlkZW50aWZpZWQgdW5pcXVlbHkgYnkgYSBjb21iaW5hdGlvblxuICAgKiBvZiB0aGVpciBtb2R1bGUgYW5kIG5hbWUuXG4gICAqXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIHRoZSBlbnRpdHkgdG8gYmUgcmVnaXN0ZXJlZC5cbiAgICovXG4gIHJlZ2lzdGVyKGNvbmZpZzogQVhQRW50aXR5KTogdm9pZCB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkoY29uZmlnLm1vZHVsZSwgY29uZmlnLm5hbWUpO1xuICAgIHRoaXMuZW50aXRpZXMuc2V0KGtleSwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIGFsbCByZWdpc3RlcmVkIGVudGl0eSBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgQVhQRW50aXR5IG9iamVjdHMuXG4gICAqL1xuICBnZXRBbGwoKTogQVhQRW50aXR5W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW50aXRpZXMudmFsdWVzKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGFuIGVudGl0eSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIG1vZHVsZSBhbmQgZW50aXR5IG5hbWUuIElmIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIGlzIG5vdCBhbHJlYWR5IHJlZ2lzdGVyZWQsIGF0dGVtcHRzIHRvIGxvYWQgaXQgZHluYW1pY2FsbHkuIFRocm93cyBhbiBlcnJvciBpZiB0aGVcbiAgICogZW50aXR5IGNhbm5vdCBiZSBmb3VuZCBvciBsb2FkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBtb2R1bGVOYW1lIFRoZSBtb2R1bGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSBUaGUgbmFtZSBvZiB0aGUgZW50aXR5LlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBlbnRpdHkgY29uZmlndXJhdGlvbi5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgZW50aXR5IGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIHJlc29sdmVkLlxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZShtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZW50aXRpZXMuZ2V0KGtleSkgPz8gbnVsbDtcblxuICAgIGlmICghY29uZmlnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZENvbmZpZyA9IHRoaXMubWlkZGxld2FyZS5wcm9jZXNzKGNvbmZpZyk7XG4gICAgICAgICAgdGhpcy5yZWdpc3Rlcihwcm9jZXNzZWRDb25maWcpO1xuICAgICAgICAgIHJldHVybiBwcm9jZXNzZWRDb25maWc7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRocm93IGVycm9yOyAvLyBSZXRocm93IHRvIGFsbG93IGVycm9yIGhhbmRsaW5nIGJ5IGNhbGxlclxuICAgICAgfVxuXG4gICAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZW50aXR5IG5hbWU6ICR7a2V5fWApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSB1bmlxdWUga2V5IGZvciBhbiBlbnRpdHkgYmFzZWQgb24gaXRzIG1vZHVsZSBhbmQgbmFtZS5cbiAgICpcbiAgICogQHBhcmFtIG1vZHVsZU5hbWUgVGhlIG1vZHVsZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEBwYXJhbSBlbnRpdHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBlbnRpdHkuXG4gICAqIEByZXR1cm5zIFRoZSB1bmlxdWUga2V5IGZvciB0aGUgZW50aXR5LlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVFbnRpdHlLZXkobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHttb2R1bGVOYW1lfS4ke2VudGl0eU5hbWV9YDtcbiAgfVxufVxuIl19","import { getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, isNil, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityCreateViewSectionViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = computed(() => {\n return this.group.description;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.elements = computed(() => {\n const { interfaces, properties } = this.entity;\n const createProps = interfaces?.master?.create?.properties ?? [];\n const createPropNames = new Set(createProps.map(({ name }) => name));\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && createPropNames.has(name));\n return filteredProperties.map((property) => {\n const createProp = createProps.find(({ name }) => name === property.name);\n return new AXPEntityCreateViewElementViewModel(this.entity, this, property, createProp);\n });\n }, ...(ngDevMode ? [{ debugName: \"elements\" }] : []));\n }\n}\nexport class AXPEntityCreateViewElementViewModel {\n constructor(entity, section, property, createProp) {\n this.entity = entity;\n this.section = section;\n this.property = property;\n this.createProp = createProp;\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n }, ...(ngDevMode ? [{ debugName: \"isRequired\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.createProp.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterCreateViewModel {\n constructor(injector, config, initialData = {}, commandOptions) {\n this.injector = injector;\n this.config = config;\n this.initialData = initialData;\n this.commandOptions = commandOptions;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.context = signal(this.initialData ?? {}, ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.options = signal(this.commandOptions ?? {}, ...(ngDevMode ? [{ debugName: \"options\" }] : []));\n this.isInProgress = signal(false, ...(ngDevMode ? [{ debugName: \"isInProgress\" }] : []));\n this.canCreateNewOne = signal(true, ...(ngDevMode ? [{ debugName: \"canCreateNewOne\" }] : []));\n this.redirect = signal(true, ...(ngDevMode ? [{ debugName: \"redirect\" }] : []));\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const createProps = interfaces?.master?.create?.properties?.map(({ name }) => name) ?? [];\n const visibleProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && createProps.includes(name));\n const sections = interfaces?.master?.create?.sections?.filter(({ id }) => visibleProperties.some(({ groupId }) => groupId === id)) ?? [];\n return sections.map((section) => new AXPEntityCreateViewSectionViewModel(this.entityDef, section));\n }, ...(ngDevMode ? [{ debugName: \"sections\" }] : []));\n if (!initialData)\n initialData = {};\n const scope = {\n context: {\n eval: (path) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(get(initialData, path));\n });\n });\n },\n },\n };\n const processDefault = async (value) => {\n if (typeof value == 'function') {\n return value();\n }\n else if (typeof value == 'string' && value.startsWith('{{')) {\n return await this.expressionEvaluator.evaluate(value, scope);\n }\n return value;\n };\n this.config.properties\n .filter((c) => !isNil(c.schema.defaultValue))\n .forEach(async (p) => {\n const value = await processDefault(p.schema.defaultValue);\n set(initialData, p.name, value);\n });\n //\n this.context.set(initialData);\n this.options.set(commandOptions);\n //\n const { redirect = true, canCreateNewOne = true } = commandOptions?.['process'] ?? {};\n this.canCreateNewOne.set(canCreateNewOne);\n this.redirect.set(redirect);\n }\n async save() {\n try {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n const exec = this.entityDef.commands?.create?.execute;\n const result = await exec(this.context());\n this.context.update((c) => ({ ...c, ...result }));\n return new Promise((resolve) => {\n setTimeout(() => {\n this.builder.setStatus(AXPPageStatus.Submitted);\n resolve(result);\n });\n });\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n async createNewOne() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n options: this.options(),\n data: this.initialData,\n // entityInfo\n });\n }\n}\nexport class AXPEntityCreateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, initialData = null, options = { canCreateNewOne: true, redirect: true }) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterCreateViewModel(this.injector, config, initialData, options);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFPTCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkcsT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhGLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFNUUsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxNQUFNLENBQUMsSUFB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OzhHQWZVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3LFxuICBBWFBFbnRpdHlQcm9wZXJ0eUxheW91dENvbmZpZyxcbiAgQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gIEFYUEdyaWRMYXlvdXRPcHRpb25zLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUsIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgaXNOaWwsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlTZWN0aW9uVmlldykgeyB9XG5cbiAgZ3JvdXAgPSB0aGlzLmVudGl0eS5ncm91cHM/LmZpbmQoKGMpID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XG5cbiAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC50aXRsZSA/PyB0aGlzLmdyb3VwLmlkO1xuICB9KTtcblxuICBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcbiAgfSk7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIGVsZW1lbnRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcyA/PyBbXTtcbiAgICBjb25zdCBjcmVhdGVQcm9wTmFtZXMgPSBuZXcgU2V0KGNyZWF0ZVByb3BzLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKTtcblxuICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+IGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcE5hbWVzLmhhcyhuYW1lKVxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLm1hcCgocHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZVByb3AgPSBjcmVhdGVQcm9wcy5maW5kKCh7IG5hbWUgfSkgPT4gbmFtZSA9PT0gcHJvcGVydHkubmFtZSk7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wZXJ0eSwgY3JlYXRlUHJvcCEpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNyZWF0ZVZpZXdFbGVtZW50Vmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsLFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICAgIHByaXZhdGUgY3JlYXRlUHJvcDogQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3XG4gICkgeyB9XG5cbiAgbmFtZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICEodGhpcy5wcm9wZXJ0eS5zY2hlbWEucmVhZG9ubHkgPz8gZmFsc2UpO1xuICB9KTtcblxuICBpc1JlcXVpcmVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zPy5zb21lKChjKSA9PiBjLnJ1bGUgPT0gJ3JlcXVpcmVkJykgfHwgZmFsc2U7XG4gIH0pO1xuXG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5jcmVhdGVQcm9wLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucywge1xuICAgICAgICB2YWxpZGF0aW9uczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8ubWFwKChjKSA9PiAoeyBydWxlOiBjLnJ1bGUsIG1lc3NhZ2U6IGMubWVzc2FnZSwgb3B0aW9uczogYy5vcHRpb25zIH0pKSxcbiAgICAgIH0pLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWwge1xuICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuXG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgcHVibGljIGJ1aWxkZXI6IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbml0aWFsRGF0YTogYW55ID0ge30sXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kT3B0aW9uczogYW55XG4gICkge1xuICAgIGlmICghaW5pdGlhbERhdGEpIGluaXRpYWxEYXRhID0ge307XG5cbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBldmFsOiAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzb2x2ZShnZXQoaW5pdGlhbERhdGEsIHBhdGgpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgcHJvY2Vzc0RlZmF1bHQgPSBhc3luYyAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSgpO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT0gJ3N0cmluZycgJiYgdmFsdWUuc3RhcnRzV2l0aCgne3snKSkge1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKHZhbHVlLCBzY29wZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfTtcblxuICAgIHRoaXMuY29uZmlnLnByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoKGMpID0+ICFpc05pbChjLnNjaGVtYS5kZWZhdWx0VmFsdWUpKVxuICAgICAgLmZvckVhY2goYXN5bmMgKHApID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwcm9jZXNzRGVmYXVsdChwLnNjaGVtYS5kZWZhdWx0VmFsdWUpO1xuICAgICAgICBzZXQoaW5pdGlhbERhdGEsIHAubmFtZSwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgLy9cbiAgICB0aGlzLmNvbnRleHQuc2V0KGluaXRpYWxEYXRhKTtcbiAgICB0aGlzLm9wdGlvbnMuc2V0KGNvbW1hbmRPcHRpb25zKTtcbiAgICAvL1xuICAgIGNvbnN0IHsgcmVkaXJlY3QgPSB0cnVlLCBjYW5DcmVhdGVOZXdPbmUgPSB0cnVlIH0gPSBjb21tYW5kT3B0aW9ucz8uWydwcm9jZXNzJ10gPz8ge307XG4gICAgdGhpcy5jYW5DcmVhdGVOZXdPbmUuc2V0KGNhbkNyZWF0ZU5ld09uZSk7XG4gICAgdGhpcy5yZWRpcmVjdC5zZXQocmVkaXJlY3QpO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55Pih0aGlzLmluaXRpYWxEYXRhID8/IHt9KTtcbiAgcHVibGljIG9wdGlvbnMgPSBzaWduYWw8YW55Pih0aGlzLmNvbW1hbmRPcHRpb25zID8/IHt9KTtcblxuICBwdWJsaWMgaXNJblByb2dyZXNzID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGNhbkNyZWF0ZU5ld09uZSA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlZGlyZWN0ID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuXG4gIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNyZWF0ZVZpZXdTZWN0aW9uVmlld01vZGVsW10+KCgpID0+IHtcbiAgICBjb25zdCB7IGludGVyZmFjZXMsIHByb3BlcnRpZXMgfSA9IHRoaXMuZW50aXR5RGVmO1xuICAgIGNvbnN0IGNyZWF0ZVByb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkICYmICFzY2hlbWEuaGlkZGVuICYmIGNyZWF0ZVByb3BzLmluY2x1ZGVzKG5hbWUpXG4gICAgKTtcblxuICAgIGNvbnN0IHNlY3Rpb25zID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgIHZpc2libGVQcm9wZXJ0aWVzLnNvbWUoKHsgZ3JvdXBJZCB9KSA9PiBncm91cElkID09PSBpZClcbiAgICAgICkgPz8gW107XG5cbiAgICByZXR1cm4gc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHNlY3Rpb24pKTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIHNhdmUoKTogUHJvbWlzZTxhbnkgfCB2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuaXNJblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0aW5nKTtcbiAgICAgIGNvbnN0IGV4ZWMgPSB0aGlzLmVudGl0eURlZi5jb21tYW5kcz8uY3JlYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICB0aGlzLmNvbnRleHQudXBkYXRlKChjKSA9PiAoeyAuLi5jLCAuLi5yZXN1bHQgfSkpO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQpO1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuRXJyb3IpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlTmV3T25lKCkge1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zKCksXG4gICAgICBkYXRhOiB0aGlzLmluaXRpYWxEYXRhLFxuICAgICAgLy8gZW50aXR5SW5mb1xuICAgIH0pO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGluaXRpYWxEYXRhOiBhbnkgPSBudWxsLFxuICAgIG9wdGlvbnM6IHsgY2FuQ3JlYXRlTmV3T25lOiBib29sZWFuOyByZWRpcmVjdDogYm9vbGVhbiB9ID0geyBjYW5DcmVhdGVOZXdPbmU6IHRydWUsIHJlZGlyZWN0OiB0cnVlIH1cbiAgKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWw+IHtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJDcmVhdGVWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnLCBpbml0aWFsRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityCommandScope, AXPFilterOperatorMiddlewareService, AXPRefreshEvent, AXPSettingService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, AXPPlatformScope, } from '@acorex/platform/core';\nimport { AXPWidgetRegistryService } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityCommandTriggerViewModel, AXPEntityListViewColumnViewModel } from './entity.viewmodel';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterListViewQueryViewModel {\n constructor(entity, section, view) {\n this.entity = entity;\n this.section = section;\n this.view = view;\n this.name = this.view.name;\n this.title = this.view.title;\n this.sorts = this.view.sorts;\n this.columns = this.view.columns;\n this.conditions = this.view.conditions;\n this.indexCol = this.view.indexCol;\n this.pageSize = this.view.pageSize;\n }\n}\nexport class AXPEntityMasterListViewModel {\n async setView(viewName = null) {\n const entitySetting = await this.settings.get(this.settingEntityKey);\n const selectedViewName = entitySetting?.list?.currentView;\n if (viewName != this.view().name) {\n this.view.set(this.views().find((c) => c.name == (viewName || selectedViewName)) ?? this.views()[0]);\n this.applyViewSorts();\n this.applyViewColumns();\n this.applyViewFilters();\n // this.applyFilterAndSort();\n this.applySettings();\n }\n }\n constructor(injector, config) {\n this.injector = injector;\n this.config = config;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.list);\n this.formatService = this.injector.get(AXFormatService);\n this.session = this.injector.get(AXPSessionService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.settings = this.injector.get(AXPSettingService);\n this.widgetResolver = this.injector.get(AXPWidgetRegistryService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.settingEntityKey = `${this.config.module}:${this.config.name}`;\n this.destroyed = new Subject();\n this.events$ = new Subject();\n //****************** Views ******************//\n this.views = computed(() => {\n const views = this.entityDef.interfaces?.master?.list?.views ?? [];\n return views.map((v) => {\n return new AXPEntityMasterListViewQueryViewModel(this.entityDef, this, v);\n });\n }, ...(ngDevMode ? [{ debugName: \"views\" }] : []));\n this.view = signal(this.views()[0], ...(ngDevMode ? [{ debugName: \"view\" }] : []));\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n return func(e);\n },\n pageSize: this.view().pageSize || 10,\n key: 'id',\n });\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasSelectedItems\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description ?? null;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n //****************** Inline filter ******************//\n this.inlineFiltersPlaceholders = computed(() => {\n return this.entityDef.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name);\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.title(),\n },\n ];\n }, ...(ngDevMode ? [{ debugName: \"beardcrumbs\" }] : []));\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.entityDef.interfaces?.master?.list?.actions ?? [];\n return list.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? [];\n }, ...(ngDevMode ? [{ debugName: \"allActions\" }] : []));\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n }, ...(ngDevMode ? [{ debugName: \"selectedScopeActionsCount\" }] : []));\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'), ...(ngDevMode ? [{ debugName: \"primaryRowActions\" }] : []));\n //****************** Filter ******************//\n this.filterQueries = signal([], ...(ngDevMode ? [{ debugName: \"filterQueries\" }] : []));\n //****************** Columns ******************//\n this.allAvailableColumns = () => {\n const { columns = [], properties } = this.entityDef;\n const visibleProperties = properties.filter(({ schema }) => !schema?.hidden);\n const visiblePropNames = new Set(visibleProperties.map(({ name }) => name));\n return columns\n .filter(({ name }) => visiblePropNames.has(name))\n .map((column) => {\n const property = visibleProperties.find(({ name }) => name === column.name);\n return new AXPEntityListViewColumnViewModel(property, column);\n });\n };\n this.visibleColumnCount = () => {\n return this.columns().filter((c) => c.visible == true).length;\n };\n this.columns = signal([], ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n //****************** Sort ******************//\n this.sortableFields = () => {\n const props = this.entityDef.properties.filter((c) => c.options?.sort?.enabled);\n return props.map((e) => {\n return {\n name: e.name,\n title: e.title,\n dir: undefined,\n };\n });\n };\n this.sortableFieldsCount = () => {\n return this.entityDef.properties.filter((c) => c.options?.sort?.enabled).length ?? 0;\n };\n this.canSort = () => {\n return this.sortableFieldsCount() > 0;\n };\n this.canAddMoreSort = () => {\n return this.sortedCount() < this.sortableFieldsCount();\n };\n this.sortedCount = () => {\n return this.sortedFields().filter((i) => i.dir).length;\n };\n this.sortedFields = signal([], ...(ngDevMode ? [{ debugName: \"sortedFields\" }] : []));\n this.evaluateExpressions = async (options, data) => {\n const scope = {\n context: {\n eval: (path) => {\n return get(data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n this.workflow.events$\n .pipe(ofType(AXPRefreshEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source) {\n this.selectedItems.set([]);\n this.events$.next({ action: 'refresh', meta: event.payload.meta });\n }\n });\n this.sortedFields.set(this.sortableFields());\n }\n async applySettings() {\n this.saveSettings('view');\n const listViewSetting = await this.settings.get(this.settingEntityKey);\n if (listViewSetting) {\n const columns = listViewSetting.list.views[this.view().name].columns;\n const pageSize = listViewSetting.list.views[this.view().name].pageSize;\n const columnVisibilityMap = new Map(columns.map((col) => [col.name, col.visible]));\n const columnWidthsMap = new Map(columns.map((col) => [col.name, col.width]));\n // if (pageSize) {\n // this.dataSource.setPageSize(pageSize);\n // }\n this.columns.update((prev) => prev\n .map((c) => {\n return { ...c, width: columnWidthsMap.get(c.name), visible: columnVisibilityMap.get(c.name) ?? c.visible };\n }) // Update visibility\n .sort((a, b) => columns.findIndex((col) => col.name === a.name) -\n columns.findIndex((col) => col.name === b.name)));\n }\n }\n async saveSettings(changesType, data) {\n const updateSettings = (updateFn) => {\n this.settings.scope(AXPPlatformScope.User).update(this.settingEntityKey, updateFn);\n };\n switch (changesType) {\n case 'columnSizes':\n updateSettings((prev) => {\n const field = data.dataField.split('-')[1];\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, prev?.list?.views?.[this.view().name]?.columns?.map((c) => ({\n ...c,\n width: c.name === field ? data.width : c.width,\n })));\n return newSettings;\n });\n break;\n case 'columnOrders':\n updateSettings((prev) => {\n const newSettings = { ...prev };\n set(newSettings, `list.views.${this.view().name}.columns`, data.map((c) => ({\n name: c.name,\n visible: c.visible,\n width: c.width,\n })));\n return newSettings;\n });\n break;\n case 'view':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n currentView: this.view().name,\n },\n }));\n break;\n case 'pageSize':\n updateSettings((prev) => ({\n ...prev,\n list: {\n ...prev?.list,\n views: {\n ...prev?.list?.views,\n [this.view().name]: {\n ...prev?.list?.views?.[this.view().name],\n pageSize: data,\n },\n },\n },\n }));\n break;\n default:\n break;\n }\n }\n clearSelection() {\n this.selectedItems.set([]);\n }\n async getPrimaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'primary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async getSecondaryActions() {\n const scope = {};\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.priority == 'secondary' &&\n ((a.scope == AXPEntityCommandScope.Selected && this.hasSelectedItems()) ||\n (a.scope == AXPEntityCommandScope.TypeLevel && !this.hasSelectedItems())))\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions;\n }\n async secondaryRowActions(rowData) {\n const scope = {\n context: {\n eval: (path) => get(rowData, path),\n },\n };\n const actions = await Promise.all(this.allActions()\n .filter((a) => a.scope === AXPEntityCommandScope.Individual && a.priority === 'secondary')\n .map(async (a) => {\n const isHidden = await this.expressionEvaluator.evaluate(a.hidden, scope);\n if (isHidden)\n return null;\n const disabled = await this.expressionEvaluator.evaluate(a.disabled, scope);\n return { ...a, disabled };\n }));\n return actions.filter(Boolean);\n }\n get properties() {\n return this.entityDef.properties;\n }\n get filtersDef() {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.advance?.enabled || c.options?.filter?.inline?.enabled);\n return props.map((e) => {\n const widgetConfig = this.widgetResolver.resolve(e.schema.interface?.type);\n const type = (e.options?.filter?.advance?.widgetType ||\n widgetConfig?.defaultFilterWidgetName ||\n e.schema.interface?.type);\n return {\n title: e.title,\n field: e.name,\n operator: {\n type: 'contains',\n },\n widget: { ...e.schema.interface, path: e.name, type },\n filters: [],\n isParametric: false,\n icon: widgetConfig?.icon,\n filterType: {\n advance: e.options?.filter?.advance?.enabled ?? false,\n inline: e.options?.filter?.inline?.enabled ?? false,\n },\n };\n });\n }\n // const viewFilters = this.view().conditions.map((f) => ({\n // field: f.name,\n // operator: f.operator,\n // value: f.value,\n // }));\n async applyViewFilters() {\n const viewFilters = this.view().conditions.map((f) => ({\n field: f.name,\n operator: f.operator,\n value: f.value,\n }));\n this.filterQueries.update((prev) => ({ ...prev, filters: viewFilters }));\n }\n resetFilters() {\n this.applyViewFilters();\n }\n async applyFilterAndSort() {\n this.dataSource.clearFilter();\n this.dataSource.sort(...this.sortedFields()\n .filter((sf) => sf.dir)\n .map((s) => ({ dir: s.dir, field: s.name })));\n this.dataSource.filter(this.filterOperatorMiddleware.transformFilter({\n field: null,\n logic: 'and',\n operator: null,\n filters: this.filterQueries(),\n }));\n this.dataSource.refresh();\n }\n resetColumns() {\n this.applyViewColumns();\n }\n async onColumnsChanged(columns) {\n this.saveSettings('columnOrders', columns);\n }\n applyViewColumns() {\n const cols = this.view().columns;\n const cloned = this.allAvailableColumns().map((c) => {\n const column = this.entityDef.columns?.find((cc) => cc.name == c.name);\n const prop = this.entityDef.properties.find((p) => p.name == c.name);\n const col = new AXPEntityListViewColumnViewModel(prop, column);\n col.visible = !cols.some((c) => c == col.name) && col.visible != false;\n return col;\n });\n this.columns.set(cloned);\n }\n resetSorts() {\n this.applyViewSorts();\n }\n applyViewSorts() {\n const viewSorts = this.view().sorts;\n this.sortedFields.update((prev) => {\n const viewSortsMap = new Map(viewSorts.map((vs) => [vs.name, vs]));\n return prev.map((sf) => {\n const updatedSort = viewSortsMap.get(sf.name);\n if (updatedSort) {\n return { ...updatedSort, title: sf.title };\n }\n return sf;\n });\n });\n }\n //****************** Commands ******************//\n async executeCommand(commandName, data = null) {\n const action = this.allActions().find((c) => {\n return (c.name == commandName &&\n ((this.selectedItems().length && !data // added by Arash\n ? c.scope == AXPEntityCommandScope.Selected\n : c.scope == AXPEntityCommandScope.Individual) ||\n c.scope == AXPEntityCommandScope.TypeLevel));\n });\n const command = commandName.split('&')[0];\n const options = await this.evaluateExpressions(action?.options, data);\n await this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n entityInfo: {\n name: this.entityDef.name,\n module: this.entityDef.module,\n title: this.entityDef.title,\n parentKey: this.entityDef.parentKey,\n source: this.entityDef.source,\n },\n data: action?.scope == AXPEntityCommandScope.Selected ? this.selectedItems() : data,\n options: options,\n metadata: action?.metadata,\n });\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name);\n break;\n }\n }\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityListViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName) {\n this.layout.setNavigationLoading(true);\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterListViewModel(this.injector, config);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityListViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityListViewModelResolver = (route, state, service = inject(AXPEntityListViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n //\n return service.create(moduleName, entityName);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1tYXN0ZXItbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBb0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUVMLHFCQUFxQixFQUVyQixrQ0FBa0MsRUFFbEMsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBSUwsNkJBQTZCLEVBRzdCLGdCQUFnQixHQUNqQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBcUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxnQ0FBZ0MsRUFB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LENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0FWVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQURoQixNQUFNOzsyRkFDbkIsNkJBQTZCO2tCQUR6QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFjbEMsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQXFELENBQzlGLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQXlDLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxFQUN2QyxFQUFFO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiwgQVhEYXRhU291cmNlU29ydE9wdGlvbiB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eSxcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgQVhQUXVlcnlWaWV3LFxuICBBWFBSZWZyZXNoRXZlbnQsXG4gIEFYUFNldHRpbmdTZXJ2aWNlLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQRXhlY3V0ZUNvbW1hbmQsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UsXG4gIEFYUEZpbHRlckRlZmluaXRpb24sXG4gIEFYUEZpbHRlclF1ZXJ5LFxuICBBWFBQbGF0Zm9ybVNjb3BlLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLCBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSwgb2ZUeXBlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBSZXNvbHZlRm4sIFJvdXRlclN0YXRlU25hcHNob3QgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBnZXQsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCwgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwgfSBmcm9tICcuL2VudGl0eS52aWV3bW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWwge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRpcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCxcbiAgICBwcml2YXRlIHZpZXc6IEFYUFF1ZXJ5VmlldyxcbiAgKSB7fVxuXG4gIG5hbWUgPSB0aGlzLnZpZXcubmFtZTtcbiAgdGl0bGUgPSB0aGlzLnZpZXcudGl0bGU7XG4gIHNvcnRzID0gdGhpcy52aWV3LnNvcnRzO1xuICBjb2x1bW5zID0gdGhpcy52aWV3LmNvbHVtbnM7XG4gIGNvbmRpdGlvbnMgPSB0aGlzLnZpZXcuY29uZGl0aW9ucztcbiAgaW5kZXhDb2wgPSB0aGlzLnZpZXcuaW5kZXhDb2w7XG4gIHBhZ2VTaXplID0gdGhpcy52aWV3LnBhZ2VTaXplO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCB7XG4gIHJlYWRvbmx5IGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RGVmID0gY2xvbmVEZWVwKHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdCkhO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2V0dGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldFJlc29sdmVyID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgcHJpdmF0ZSBzZXR0aW5nRW50aXR5S2V5ID0gYCR7dGhpcy5jb25maWcubW9kdWxlfToke3RoaXMuY29uZmlnLm5hbWV9YDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBldmVudHMkOiBTdWJqZWN0PHsgYWN0aW9uOiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIFZpZXdzICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgdmlld3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgdmlld3MgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LnZpZXdzID8/IFtdO1xuXG4gICAgcmV0dXJuIHZpZXdzLm1hcCgodikgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0aGlzLCB2KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmlldyA9IHNpZ25hbDxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld1F1ZXJ5Vmlld01vZGVsPih0aGlzLnZpZXdzKClbMF0pO1xuXG4gIGFzeW5jIHNldFZpZXcodmlld05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgY29uc3QgZW50aXR5U2V0dGluZyA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ0VudGl0eUtleSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRWaWV3TmFtZSA9IGVudGl0eVNldHRpbmc/Lmxpc3Q/LmN1cnJlbnRWaWV3O1xuICAgIGlmICh2aWV3TmFtZSAhPSB0aGlzLnZpZXcoKS5uYW1lKSB7XG4gICAgICB0aGlzLnZpZXcuc2V0KHRoaXMudmlld3MoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gKHZpZXdOYW1lIHx8IHNlbGVjdGVkVmlld05hbWUpKSA/PyB0aGlzLnZpZXdzKClbMF0pO1xuXG4gICAgICB0aGlzLmFwcGx5Vmlld1NvcnRzKCk7XG4gICAgICB0aGlzLmFwcGx5Vmlld0NvbHVtbnMoKTtcbiAgICAgIHRoaXMuYXBwbHlWaWV3RmlsdGVycygpO1xuICAgICAgLy8gdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgICAgIHRoaXMuYXBwbHlTZXR0aW5ncygpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgfSxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IHRoaXMudmlldygpLnBhZ2VTaXplIHx8IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQUmVmcmVzaEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gICAgICAgICAgdGhpcy5ldmVudHMkLm5leHQoeyBhY3Rpb246ICdyZWZyZXNoJywgbWV0YTogZXZlbnQucGF5bG9hZC5tZXRhIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNvcnRlZEZpZWxkcy5zZXQodGhpcy5zb3J0YWJsZUZpZWxkcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhcHBseVNldHRpbmdzKCkge1xuICAgIHRoaXMuc2F2ZVNldHRpbmdzKCd2aWV3Jyk7XG5cbiAgICBjb25zdCBsaXN0Vmlld1NldHRpbmcgPSBhd2FpdCB0aGlzLnNldHRpbmdzLmdldCh0aGlzLnNldHRpbmdFbnRpdHlLZXkpO1xuICAgIGlmIChsaXN0Vmlld1NldHRpbmcpIHtcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5jb2x1bW5zO1xuICAgICAgY29uc3QgcGFnZVNpemUgPSBsaXN0Vmlld1NldHRpbmcubGlzdC52aWV3c1t0aGlzLnZpZXcoKS5uYW1lXS5wYWdlU2l6ZTtcbiAgICAgIGNvbnN0IGNvbHVtblZpc2liaWxpdHlNYXAgPSBuZXcgTWFwKGNvbHVtbnMubWFwKChjb2w6IGFueSkgPT4gW2NvbC5uYW1lLCBjb2wudmlzaWJsZV0pKTtcbiAgICAgIGNvbnN0IGNvbHVtbldpZHRoc01hcCA9IG5ldyBNYXAoY29sdW1ucy5tYXAoKGNvbDogYW55KSA9PiBbY29sLm5hbWUsIGNvbC53aWR0aF0pKTtcblxuICAgICAgLy8gaWYgKHBhZ2VTaXplKSB7XG4gICAgICAvLyAgIHRoaXMuZGF0YVNvdXJjZS5zZXRQYWdlU2l6ZShwYWdlU2l6ZSk7XG4gICAgICAvLyB9XG5cbiAgICAgIHRoaXMuY29sdW1ucy51cGRhdGUoKHByZXYpID0+XG4gICAgICAgIHByZXZcbiAgICAgICAgICAubWFwKChjOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmMsIHdpZHRoOiBjb2x1bW5XaWR0aHNNYXAuZ2V0KGMubmFtZSksIHZpc2libGU6IGNvbHVtblZpc2liaWxpdHlNYXAuZ2V0KGMubmFtZSkgPz8gYy52aXNpYmxlIH07XG4gICAgICAgICAgfSkgLy8gVXBkYXRlIHZpc2liaWxpdHlcbiAgICAgICAgICAuc29ydChcbiAgICAgICAgICAgIChhLCBiKSA9PlxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbmRJbmRleCgoY29sOiBhbnkpID0+IGNvbC5uYW1lID09PSBhLm5hbWUpIC1cbiAgICAgICAgICAgICAgY29sdW1ucy5maW5kSW5kZXgoKGNvbDogYW55KSA9PiBjb2wubmFtZSA9PT0gYi5uYW1lKSxcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZVNldHRpbmdzKGNoYW5nZXNUeXBlOiAnY29sdW1uU2l6ZXMnIHwgJ2NvbHVtbk9yZGVycycgfCAndmlldycgfCAncGFnZVNpemUnLCBkYXRhPzogYW55KSB7XG4gICAgY29uc3QgdXBkYXRlU2V0dGluZ3MgPSAodXBkYXRlRm46IChwcmV2OiBhbnkpID0+IGFueSkgPT4ge1xuICAgICAgdGhpcy5zZXR0aW5ncy5zY29wZShBWFBQbGF0Zm9ybVNjb3BlLlVzZXIpLnVwZGF0ZSh0aGlzLnNldHRpbmdFbnRpdHlLZXksIHVwZGF0ZUZuKTtcbiAgICB9O1xuXG4gICAgc3dpdGNoIChjaGFuZ2VzVHlwZSkge1xuICAgICAgY2FzZSAnY29sdW1uU2l6ZXMnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0gZGF0YS5kYXRhRmllbGQuc3BsaXQoJy0nKVsxXTtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgcHJldj8ubGlzdD8udmlld3M/Llt0aGlzLnZpZXcoKS5uYW1lXT8uY29sdW1ucz8ubWFwKChjOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLm5hbWUgPT09IGZpZWxkID8gZGF0YS53aWR0aCA6IGMud2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY29sdW1uT3JkZXJzJzpcbiAgICAgICAgdXBkYXRlU2V0dGluZ3MoKHByZXYpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdTZXR0aW5ncyA9IHsgLi4ucHJldiB9O1xuXG4gICAgICAgICAgc2V0KFxuICAgICAgICAgICAgbmV3U2V0dGluZ3MsXG4gICAgICAgICAgICBgbGlzdC52aWV3cy4ke3RoaXMudmlldygpLm5hbWV9LmNvbHVtbnNgLFxuICAgICAgICAgICAgZGF0YS5tYXAoKGM6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgbmFtZTogYy5uYW1lLFxuICAgICAgICAgICAgICB2aXNpYmxlOiBjLnZpc2libGUsXG4gICAgICAgICAgICAgIHdpZHRoOiBjLndpZHRoLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICByZXR1cm4gbmV3U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZpZXcnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICAgIC4uLnByZXY/Lmxpc3QsXG4gICAgICAgICAgICBjdXJyZW50VmlldzogdGhpcy52aWV3KCkubmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwYWdlU2l6ZSc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgLi4ucHJldj8ubGlzdCxcbiAgICAgICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgICAgIC4uLnByZXY/Lmxpc3Q/LnZpZXdzLFxuICAgICAgICAgICAgICBbdGhpcy52aWV3KCkubmFtZV06IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2Py5saXN0Py52aWV3cz8uW3RoaXMudmlldygpLm5hbWVdLFxuICAgICAgICAgICAgICAgIHBhZ2VTaXplOiBkYXRhLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHB1YmxpYyBwYXJlbnRLZXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLnBhcmVudEtleTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc1NlbGVjdGVkSXRlbXMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLnRpdGxlID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsITtcbiAgfSk7XG4gIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiA/PyBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBJbmxpbmUgZmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKHApID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcCgoYykgPT4gYy50aXRsZSA/PyBjLm5hbWUpO1xuICB9KTtcblxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQnJlYWRjcnVtYkl0ZW1bXT4oKCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCksXG4gICAgICB9LFxuICAgIF07XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJpdmF0ZSBhbGxBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgcmV0dXJuIGxpc3QubWFwKCh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0cikpID8/IFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpbWFyeUFjdGlvbnMoKTogUHJvbWlzZTxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHt9O1xuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuYWxsQWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKGEpID0+XG4gICAgICAgICAgICBhLnByaW9yaXR5ID09ICdwcmltYXJ5JyAmJlxuICAgICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiBhY3Rpb25zIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2Vjb25kYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge307XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoYSkgPT5cbiAgICAgICAgICAgIGEucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScgJiZcbiAgICAgICAgICAgICgoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgJiYgdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpIHx8XG4gICAgICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSksXG4gICAgICAgIClcbiAgICAgICAgLm1hcChhc3luYyAoYSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuaGlkZGVuLCBzY29wZSk7XG4gICAgICAgICAgaWYgKGlzSGlkZGVuKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBjb25zdCBkaXNhYmxlZCA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmRpc2FibGVkLCBzY29wZSk7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uYSwgZGlzYWJsZWQgfTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4gYWN0aW9ucyBhcyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkU2NvcGVBY3Rpb25zQ291bnQgPSBjb21wdXRlZDxudW1iZXI+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCkubGVuZ3RoO1xuICB9KTtcblxuICBwdWJsaWMgcHJpbWFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAncHJpbWFyeScpLFxuICApO1xuXG4gIHB1YmxpYyBhc3luYyBzZWNvbmRhcnlSb3dBY3Rpb25zKHJvd0RhdGE6IGFueSk6IFByb21pc2U8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IGdldChyb3dEYXRhLCBwYXRoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGFjdGlvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHRoaXMuYWxsQWN0aW9ucygpXG4gICAgICAgIC5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdzZWNvbmRhcnknKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGFjdGlvbnMuZmlsdGVyKEJvb2xlYW4pIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBGaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cblxuICBmaWx0ZXJRdWVyaWVzID0gc2lnbmFsPEFYUEZpbHRlclF1ZXJ5W10+KFtdKTtcblxuICBnZXQgcHJvcGVydGllcygpOiBBWFBFbnRpdHlQcm9wZXJ0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcztcbiAgfVxuXG4gIGdldCBmaWx0ZXJzRGVmKCk6IEFYUEZpbHRlckRlZmluaXRpb25bXSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgIChjKSA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8uZW5hYmxlZCB8fCBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkLFxuICAgICk7XG4gICAgcmV0dXJuIHByb3BzLm1hcCgoZSkgPT4ge1xuICAgICAgY29uc3Qgd2lkZ2V0Q29uZmlnID0gdGhpcy53aWRnZXRSZXNvbHZlci5yZXNvbHZlKFxuICAgICAgICBlLnNjaGVtYS5pbnRlcmZhY2U/LnR5cGUgYXMgQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgdHlwZSA9IChlLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8ud2lkZ2V0VHlwZSB8fFxuICAgICAgICB3aWRnZXRDb25maWc/LmRlZmF1bHRGaWx0ZXJXaWRnZXROYW1lIHx8XG4gICAgICAgIGUuc2NoZW1hLmludGVyZmFjZT8udHlwZSkgYXMgQVhQV2lkZ2V0VHlwZXNNYXBba2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXBdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXG4gICAgICAgIGZpZWxkOiBlLm5hbWUsXG4gICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2lkZ2V0OiB7IC4uLmUuc2NoZW1hLmludGVyZmFjZSwgcGF0aDogZS5uYW1lLCB0eXBlIH0sXG4gICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICBpc1BhcmFtZXRyaWM6IGZhbHNlLFxuICAgICAgICBpY29uOiB3aWRnZXRDb25maWc/Lmljb24sXG4gICAgICAgIGZpbHRlclR5cGU6IHtcbiAgICAgICAgICBhZHZhbmNlOiBlLm9wdGlvbnM/LmZpbHRlcj8uYWR2YW5jZT8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgICBpbmxpbmU6IGUub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQgPz8gZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gY29uc3Qgdmlld0ZpbHRlcnMgPSB0aGlzLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoZikgPT4gKHtcbiAgLy8gICBmaWVsZDogZi5uYW1lLFxuICAvLyAgIG9wZXJhdG9yOiBmLm9wZXJhdG9yLFxuICAvLyAgIHZhbHVlOiBmLnZhbHVlLFxuICAvLyB9KSk7XG4gIGFzeW5jIGFwcGx5Vmlld0ZpbHRlcnMoKSB7XG4gICAgY29uc3Qgdmlld0ZpbHRlcnMgPSB0aGlzLnZpZXcoKS5jb25kaXRpb25zLm1hcCgoZikgPT4gKHtcbiAgICAgIGZpZWxkOiBmLm5hbWUsXG4gICAgICBvcGVyYXRvcjogZi5vcGVyYXRvcixcbiAgICAgIHZhbHVlOiBmLnZhbHVlLFxuICAgIH0pKTtcbiAgICB0aGlzLmZpbHRlclF1ZXJpZXMudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBmaWx0ZXJzOiB2aWV3RmlsdGVycyBhcyBBWFBGaWx0ZXJRdWVyeVtdIH0pKTtcbiAgfVxuXG4gIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLmFwcGx5Vmlld0ZpbHRlcnMoKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydChcbiAgICAgIC4uLnRoaXMuc29ydGVkRmllbGRzKClcbiAgICAgICAgLmZpbHRlcigoc2YpID0+IHNmLmRpcilcbiAgICAgICAgLm1hcCgocykgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9KSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSxcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcihcbiAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih7XG4gICAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgIGZpbHRlcnM6IHRoaXMuZmlsdGVyUXVlcmllcygpIGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdLFxuICAgICAgfSksXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29sdW1ucyAqKioqKioqKioqKioqKioqKiovL1xuXG4gIHByaXZhdGUgYWxsQXZhaWxhYmxlQ29sdW1ucyA9ICgpOiBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdID0+IHtcbiAgICBjb25zdCB7IGNvbHVtbnMgPSBbXSwgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3QgdmlzaWJsZVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcigoeyBzY2hlbWEgfSkgPT4gIXNjaGVtYT8uaGlkZGVuKTtcbiAgICBjb25zdCB2aXNpYmxlUHJvcE5hbWVzID0gbmV3IFNldCh2aXNpYmxlUHJvcGVydGllcy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSk7XG4gICAgcmV0dXJuIGNvbHVtbnNcbiAgICAgIC5maWx0ZXIoKHsgbmFtZSB9KSA9PiB2aXNpYmxlUHJvcE5hbWVzLmhhcyhuYW1lKSlcbiAgICAgIC5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHZpc2libGVQcm9wZXJ0aWVzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBjb2x1bW4ubmFtZSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocHJvcGVydHkhLCBjb2x1bW4pO1xuICAgICAgfSk7XG4gIH07XG5cbiAgdmlzaWJsZUNvbHVtbkNvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbnMoKS5maWx0ZXIoKGMpID0+IGMudmlzaWJsZSA9PSB0cnVlKS5sZW5ndGg7XG4gIH07XG5cbiAgY29sdW1ucyA9IHNpZ25hbDxBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdPihbXSk7XG5cbiAgcmVzZXRDb2x1bW5zKCkge1xuICAgIHRoaXMuYXBwbHlWaWV3Q29sdW1ucygpO1xuICB9XG5cbiAgYXN5bmMgb25Db2x1bW5zQ2hhbmdlZChjb2x1bW5zOiBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbFtdKSB7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoJ2NvbHVtbk9yZGVycycsIGNvbHVtbnMpO1xuICB9XG5cbiAgYXBwbHlWaWV3Q29sdW1ucygpIHtcbiAgICBjb25zdCBjb2xzID0gdGhpcy52aWV3KCkuY29sdW1ucztcbiAgICBjb25zdCBjbG9uZWQgPSB0aGlzLmFsbEF2YWlsYWJsZUNvbHVtbnMoKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnM/LmZpbmQoKGNjKSA9PiBjYy5uYW1lID09IGMubmFtZSk7XG4gICAgICBjb25zdCBwcm9wID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maW5kKChwKSA9PiBwLm5hbWUgPT0gYy5uYW1lKTtcbiAgICAgIGNvbnN0IGNvbCA9IG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChwcm9wISwgY29sdW1uISk7XG4gICAgICBjb2wudmlzaWJsZSA9ICFjb2xzLnNvbWUoKGMpID0+IGMgPT0gY29sLm5hbWUpICYmIGNvbC52aXNpYmxlICE9IGZhbHNlO1xuICAgICAgcmV0dXJuIGNvbDtcbiAgICB9KTtcbiAgICB0aGlzLmNvbHVtbnMuc2V0KGNsb25lZCk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBTb3J0ICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgc29ydGFibGVGaWVsZHMgPSAoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5zb3J0Py5lbmFibGVkKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBlLm5hbWUsXG4gICAgICAgIHRpdGxlOiBlLnRpdGxlLFxuICAgICAgICBkaXI6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfSk7XG4gIH07XG5cbiAgc29ydGFibGVGaWVsZHNDb3VudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoKGMpID0+IGMub3B0aW9ucz8uc29ydD8uZW5hYmxlZCkubGVuZ3RoID8/IDA7XG4gIH07XG5cbiAgY2FuU29ydCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0YWJsZUZpZWxkc0NvdW50KCkgPiAwO1xuICB9O1xuXG4gIGNhbkFkZE1vcmVTb3J0ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZENvdW50KCkgPCB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKTtcbiAgfTtcblxuICBzb3J0ZWRDb3VudCA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRGaWVsZHMoKS5maWx0ZXIoKGkpID0+IGkuZGlyKS5sZW5ndGg7XG4gIH07XG5cbiAgc29ydGVkRmllbGRzID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3U29ydFByb3BWaWV3TW9kZWxbXT4oW10pO1xuXG4gIHJlc2V0U29ydHMoKSB7XG4gICAgdGhpcy5hcHBseVZpZXdTb3J0cygpO1xuICB9XG5cbiAgYXBwbHlWaWV3U29ydHMoKSB7XG4gICAgY29uc3Qgdmlld1NvcnRzID0gdGhpcy52aWV3KCkuc29ydHM7XG5cbiAgICB0aGlzLnNvcnRlZEZpZWxkcy51cGRhdGUoKHByZXYpID0+IHtcbiAgICAgIGNvbnN0IHZpZXdTb3J0c01hcCA9IG5ldyBNYXAodmlld1NvcnRzLm1hcCgodnMpID0+IFt2cy5uYW1lLCB2c10pKTtcbiAgICAgIHJldHVybiBwcmV2Lm1hcCgoc2YpID0+IHtcbiAgICAgICAgY29uc3QgdXBkYXRlZFNvcnQgPSB2aWV3U29ydHNNYXAuZ2V0KHNmLm5hbWUpO1xuICAgICAgICBpZiAodXBkYXRlZFNvcnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi51cGRhdGVkU29ydCwgdGl0bGU6IHNmLnRpdGxlIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNmO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiAgQ29tbWFuZHMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcbiAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFsbEFjdGlvbnMoKS5maW5kKChjKSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjLm5hbWUgPT0gY29tbWFuZE5hbWUgJiZcbiAgICAgICAgKCh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggJiYgIWRhdGEgLy8gYWRkZWQgYnkgQXJhc2hcbiAgICAgICAgICA/IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkXG4gICAgICAgICAgOiBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsKSB8fFxuICAgICAgICAgIGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbClcbiAgICAgICk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWFuZCA9IGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF07XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9ucyhhY3Rpb24/Lm9wdGlvbnMsIGRhdGEpO1xuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZShjb21tYW5kLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgIGVudGl0eUluZm86IHtcbiAgICAgICAgbmFtZTogdGhpcy5lbnRpdHlEZWYubmFtZSxcbiAgICAgICAgbW9kdWxlOiB0aGlzLmVudGl0eURlZi5tb2R1bGUsXG4gICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi50aXRsZSxcbiAgICAgICAgcGFyZW50S2V5OiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXksXG4gICAgICAgIHNvdXJjZTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxuICAgICAgfSxcbiAgICAgIGRhdGE6IGFjdGlvbj8uc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkID8gdGhpcy5zZWxlY3RlZEl0ZW1zKCkgOiBkYXRhLFxuICAgICAgb3B0aW9uczogb3B0aW9ucyxcbiAgICAgIG1ldGFkYXRhOiBhY3Rpb24/Lm1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KGRhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUob3B0aW9ucywgc2NvcGUpO1xuICB9O1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQ/Lm5hbWUpIHtcbiAgICAgIGNhc2UgJ25hdmlnYXRlJzpcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwYXRoOiBjb21tYW5kLm9wdGlvbnM/LlsncGF0aCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZC5uYW1lKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsPiB7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+PiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBzZXJ2aWNlOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlMaXN0Vmlld01vZGVsRmFjdG9yeSksXG4pOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+ID0+IHtcbiAgY29uc3QgbW9kdWxlTmFtZSA9IHJvdXRlLnBhcmVudD8ucGFyYW1NYXAuZ2V0KCdtb2R1bGUnKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGVudGl0eU5hbWUgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2VudGl0eScpIGFzIHN0cmluZztcbiAgLy9cbiAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xufTtcbiJdfQ==","import { AXPSessionService } from '@acorex/platform/auth';\nimport { inject, Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityService {\n constructor() {\n this.sessionService = inject(AXPSessionService);\n }\n createPath(module, entity, path = 'list') {\n return `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${path}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVVLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FLcEQ7SUFIQyxVQUFVLENBQUMsTUFBYyxFQUFFLE1BQWMsRUFBRSxPQUFlLE1BQU07UUFDOUQsT0FBTyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxNQUFNLE1BQU0sTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3JGLENBQUM7OEdBTFUsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVNlcnZpY2Uge1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBjcmVhdGVQYXRoKG1vZHVsZTogc3RyaW5nLCBlbnRpdHk6IHN0cmluZywgcGF0aDogc3RyaW5nID0gJ2xpc3QnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGV9L2UvJHtlbnRpdHl9LyR7cGF0aH1gO1xuICB9XG59XG4iXX0=","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityDeletedEvent = createWorkFlowEvent('[Entity] Deleted');\nexport class AXPEntityPerformDeleteAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.dialogService = inject(AXDialogService);\n this.loadingDialog = inject(AXLoadingDialogService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(context) {\n const moduleEntity = context.getVariable('entity');\n const data = context.getVariable('data');\n const meta = context.getVariable('meta');\n const options = context.getVariable('options');\n const process = options?.['process'];\n const showResult = process?.showResult ?? true;\n const entities = [];\n if (moduleEntity != null) {\n const ids = Array.isArray(data) ? data.map((c) => c.id) : [data.id];\n entities.push({\n source: moduleEntity,\n ids: ids,\n });\n }\n else {\n const listEntities = context.getVariable('entities');\n entities.push(...listEntities);\n }\n const entityDefinitions = {};\n let deletedCount = 0;\n context.setVariable('deleteSuccessful', false);\n for await (const entity of entities) {\n const [moduleName, entityName] = entity.source.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityDefinition.parentKey && data[entityDefinition.parentKey]) {\n context.setVariable('meta', { ...meta, refreshTargetId: data[entityDefinition.parentKey] });\n }\n entityDefinitions[entity.source] = entityDefinition;\n }\n // Compute consolidated ids from all entities\n const idLength = entities.reduce((acc, curr) => acc + curr.ids.length, 0);\n let dialog;\n let showDialogTimeout;\n let isDialogShown = false;\n // Create dialog config but don't show it yet\n const createDialog = async () => {\n dialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('workflow.deleting'),\n mode: 'determinate',\n status: 'Deleting...',\n progressValue: 0,\n text: `0/${idLength}`,\n buttons: [\n {\n text: await this.translationService.translateAsync('cancel'),\n color: 'danger',\n onClick: () => {\n if (dialog) {\n dialog.close();\n }\n },\n },\n ],\n });\n isDialogShown = true;\n };\n // Set timeout to show dialog after 2 seconds if process is not complete\n showDialogTimeout = setTimeout(async () => {\n await createDialog();\n }, 2000);\n let allPromises = [];\n for (const entity of entities) {\n const entityDefinition = entityDefinitions[entity.source];\n if (entityDefinition.commands?.delete != null) {\n const deleteExec = entityDefinition.commands?.delete?.execute;\n const entityPromises = entity.ids\n .map((id, i) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(deleteExec(id));\n }, i * 200);\n });\n })\n .map((p) => p?.then((value) => {\n deletedCount++;\n if (isDialogShown && dialog) {\n dialog.setProgressText(`${deletedCount}/${idLength}`);\n dialog.setProgressValue((deletedCount / idLength) * 100);\n }\n return { status: 'fulfilled', value };\n }, (reason) => ({ status: 'rejected', reason })));\n allPromises = allPromises.concat(entityPromises);\n }\n else {\n // Clear timeout if error occurs\n clearTimeout(showDialogTimeout);\n throw new Error(`The delete operation cannot be performed on ${entityDefinition.title}. This action might be restricted or not applicable for the selected item.`);\n }\n }\n const results = await Promise.all(allPromises);\n // Clear timeout as process is complete\n clearTimeout(showDialogTimeout);\n if (isDialogShown) {\n setTimeout(() => {\n dialog.close();\n }, 300);\n }\n // Store the last entity for use in event dispatching\n const lastEntity = entities[entities.length - 1];\n // Handle different scenarios for alerts\n const successfulPromises = results.filter((result) => result?.status === 'fulfilled').length;\n const failedPromises = results.filter((result) => result?.status === 'rejected').length;\n if (successfulPromises > 0 && failedPromises === 0) {\n // All items deleted successfully\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-delete-title'), await this.translationService.translateAsync('workflow.success-delete-body', {\n params: { item: successfulPromises },\n }), //TODO test translation\n 'success');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n this.dispatch(AXPRefreshEvent({ entity: lastEntity.source, meta: context.getVariable('meta') }));\n }\n else if (successfulPromises > 0 && failedPromises > 0) {\n // Some items deleted successfully, some failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.success-partial-delete-title'), await this.translationService.translateAsync('workflow.partial-delete-body', {\n params: { success: successfulPromises, fail: failedPromises },\n }), 'warning');\n }\n // Dispatch actions\n this.dispatch(AXPEntityDeletedEvent({ entity: lastEntity.source, ids: lastEntity.ids, meta: meta }));\n }\n else if (successfulPromises === 0 && failedPromises > 0) {\n // No items deleted, all failed\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.fail-delete-title'), await this.translationService.translateAsync('workflow.fail-delete-body', {\n params: { item: failedPromises },\n }), 'danger');\n }\n }\n else {\n // No items to delete (no successful or failed promises)\n if (showResult) {\n await this.dialogService.alert(await this.translationService.translateAsync('workflow.no-need'), await this.translationService.translateAsync('workflow.no-item'), 'primary');\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityPerformDeleteAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPDeleteEntityWorkflow = {\n startStepId: 'confirm-delete',\n steps: {\n 'confirm-delete': {\n action: 'show-prompt-dialog',\n input: {\n title: 'workflow.warning',\n message: `workflow.confirm-delete`,\n type: 'danger',\n },\n nextSteps: [\n {\n conditions: [\n {\n type: 'AND',\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n },\n ],\n nextStepId: 'perform-delete',\n },\n ],\n },\n 'perform-delete': {\n action: 'entity-perform-delete',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFRRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQTZLM0Q7SUEzS0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFD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QUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix3REFBd0Q7WUFDeEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUM1QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFDaEUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQ2hFLFNBQVMsQ0FDVixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWhMVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7QUFvTFgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdCO0lBQ2xELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsS0FBSyxFQUFFO1FBQ0wsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDO3lCQUNwRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsZ0JBQWdCO2lCQUM3QjthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUmVmcmVzaEV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IGlkczogc3RyaW5nW107IG1ldGE/OiBhbnkgfT4oXG4gICdbRW50aXR5XSBEZWxldGVkJyxcbik7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5RGVsZXRlT3B0aW9ucyB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBpZHM6IHN0cmluZ1tdO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIGxvYWRpbmdEaWFsb2cgPSBpbmplY3QoQVhMb2FkaW5nRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1vZHVsZUVudGl0eSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0eScpO1xuICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ2RhdGEnKTtcbiAgICBjb25zdCBtZXRhID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdtZXRhJyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgcHJvY2VzcyA9IG9wdGlvbnM/LlsncHJvY2VzcyddO1xuXG4gICAgY29uc3Qgc2hvd1Jlc3VsdCA9IHByb2Nlc3M/LnNob3dSZXN1bHQgPz8gdHJ1ZTtcblxuICAgIGNvbnN0IGVudGl0aWVzOiBBWFBFbnRpdHlEZWxldGVPcHRpb25zW10gPSBbXTtcbiAgICBpZiAobW9kdWxlRW50aXR5ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhLm1hcCgoYykgPT4gYy5pZCkgOiBbZGF0YS5pZF07XG4gICAgICBlbnRpdGllcy5wdXNoKHtcbiAgICAgICAgc291cmNlOiBtb2R1bGVFbnRpdHksXG4gICAgICAgIGlkczogaWRzLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxpc3RFbnRpdGllcyA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0aWVzJyk7XG4gICAgICBlbnRpdGllcy5wdXNoKC4uLmxpc3RFbnRpdGllcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXR5RGVmaW5pdGlvbnM6IHsgW2tleTogc3RyaW5nXTogQVhQRW50aXR5IH0gPSB7fTtcbiAgICBsZXQgZGVsZXRlZENvdW50ID0gMDtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkZWxldGVTdWNjZXNzZnVsJywgZmFsc2UpO1xuICAgIGZvciBhd2FpdCAoY29uc3QgZW50aXR5IG9mIGVudGl0aWVzKSB7XG4gICAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBlbnRpdHkuc291cmNlLnNwbGl0KCcuJyk7XG4gICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uLnBhcmVudEtleSAmJiBkYXRhW2VudGl0eURlZmluaXRpb24ucGFyZW50S2V5XSkge1xuICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdtZXRhJywgeyAuLi5tZXRhLCByZWZyZXNoVGFyZ2V0SWQ6IGRhdGFbZW50aXR5RGVmaW5pdGlvbi5wYXJlbnRLZXldIH0pO1xuICAgICAgfVxuICAgICAgZW50aXR5RGVmaW5pdGlvbnNbZW50aXR5LnNvdXJjZV0gPSBlbnRpdHlEZWZpbml0aW9uO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgY29uc29saWRhdGVkIGlkcyBmcm9tIGFsbCBlbnRpdGllc1xuICAgIGNvbnN0IGlkTGVuZ3RoID0gZW50aXRpZXMucmVkdWNlKChhY2M6IG51bWJlciwgY3VycikgPT4gYWNjICsgY3Vyci5pZHMubGVuZ3RoLCAwKTtcbiAgICBsZXQgZGlhbG9nOiBhbnk7XG4gICAgbGV0IHNob3dEaWFsb2dUaW1lb3V0OiBhbnk7XG4gICAgbGV0IGlzRGlhbG9nU2hvd24gPSBmYWxzZTtcblxuICAgIC8vIENyZWF0ZSBkaWFsb2cgY29uZmlnIGJ1dCBkb24ndCBzaG93IGl0IHlldFxuICAgIGNvbnN0IGNyZWF0ZURpYWxvZyA9IGFzeW5jICgpID0+IHtcbiAgICAgIGRpYWxvZyA9IHRoaXMubG9hZGluZ0RpYWxvZy5zaG93KHtcbiAgICAgICAgdGl0bGU6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5kZWxldGluZycpLFxuICAgICAgICBtb2RlOiAnZGV0ZXJtaW5hdGUnLFxuICAgICAgICBzdGF0dXM6ICdEZWxldGluZy4uLicsXG4gICAgICAgIHByb2dyZXNzVmFsdWU6IDAsXG4gICAgICAgIHRleHQ6IGAwLyR7aWRMZW5ndGh9YCxcbiAgICAgICAgYnV0dG9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjYW5jZWwnKSxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFuZ2VyJyxcbiAgICAgICAgICAgIG9uQ2xpY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGRpYWxvZykge1xuICAgICAgICAgICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIGlzRGlhbG9nU2hvd24gPSB0cnVlO1xuICAgIH07XG5cbiAgICAvLyBTZXQgdGltZW91dCB0byBzaG93IGRpYWxvZyBhZnRlciAyIHNlY29uZHMgaWYgcHJvY2VzcyBpcyBub3QgY29tcGxldGVcbiAgICBzaG93RGlhbG9nVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgY3JlYXRlRGlhbG9nKCk7XG4gICAgfSwgMjAwMCk7XG5cbiAgICBsZXQgYWxsUHJvbWlzZXM6IGFueVtdID0gW107XG4gICAgZm9yIChjb25zdCBlbnRpdHkgb2YgZW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IGVudGl0eURlZmluaXRpb24gPSBlbnRpdHlEZWZpbml0aW9uc1tlbnRpdHkuc291cmNlXTtcbiAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uLmNvbW1hbmRzPy5kZWxldGUgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCBkZWxldGVFeGVjID0gZW50aXR5RGVmaW5pdGlvbi5jb21tYW5kcz8uZGVsZXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgICBjb25zdCBlbnRpdHlQcm9taXNlcyA9IChlbnRpdHkuaWRzIGFzIGFueVtdKVxuICAgICAgICAgIC5tYXAoKGlkLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShkZWxldGVFeGVjKGlkKSk7XG4gICAgICAgICAgICAgIH0sIGkgKiAyMDApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAubWFwKChwKSA9PlxuICAgICAgICAgICAgcD8udGhlbihcbiAgICAgICAgICAgICAgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgZGVsZXRlZENvdW50Kys7XG4gICAgICAgICAgICAgICAgaWYgKGlzRGlhbG9nU2hvd24gJiYgZGlhbG9nKSB7XG4gICAgICAgICAgICAgICAgICBkaWFsb2cuc2V0UHJvZ3Jlc3NUZXh0KGAke2RlbGV0ZWRDb3VudH0vJHtpZExlbmd0aH1gKTtcbiAgICAgICAgICAgICAgICAgIGRpYWxvZy5zZXRQcm9ncmVzc1ZhbHVlKChkZWxldGVkQ291bnQgLyBpZExlbmd0aCkgKiAxMDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6ICdmdWxmaWxsZWQnLCB2YWx1ZSB9O1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAocmVhc29uKSA9PiAoeyBzdGF0dXM6ICdyZWplY3RlZCcsIHJlYXNvbiB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcblxuICAgICAgICBhbGxQcm9taXNlcyA9IGFsbFByb21pc2VzLmNvbmNhdChlbnRpdHlQcm9taXNlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDbGVhciB0aW1lb3V0IGlmIGVycm9yIG9jY3Vyc1xuICAgICAgICBjbGVhclRpbWVvdXQoc2hvd0RpYWxvZ1RpbWVvdXQpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFRoZSBkZWxldGUgb3BlcmF0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gJHtlbnRpdHlEZWZpbml0aW9uLnRpdGxlfS4gVGhpcyBhY3Rpb24gbWlnaHQgYmUgcmVzdHJpY3RlZCBvciBub3QgYXBwbGljYWJsZSBmb3IgdGhlIHNlbGVjdGVkIGl0ZW0uYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvbWlzZXMpO1xuICAgIC8vIENsZWFyIHRpbWVvdXQgYXMgcHJvY2VzcyBpcyBjb21wbGV0ZVxuICAgIGNsZWFyVGltZW91dChzaG93RGlhbG9nVGltZW91dCk7XG5cbiAgICBpZiAoaXNEaWFsb2dTaG93bikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG5cbiAgICAvLyBTdG9yZSB0aGUgbGFzdCBlbnRpdHkgZm9yIHVzZSBpbiBldmVudCBkaXNwYXRjaGluZ1xuICAgIGNvbnN0IGxhc3RFbnRpdHkgPSBlbnRpdGllc1tlbnRpdGllcy5sZW5ndGggLSAxXTtcblxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgc2NlbmFyaW9zIGZvciBhbGVydHNcbiAgICBjb25zdCBzdWNjZXNzZnVsUHJvbWlzZXMgPSByZXN1bHRzLmZpbHRlcigocmVzdWx0OiBhbnkpID0+IHJlc3VsdD8uc3RhdHVzID09PSAnZnVsZmlsbGVkJykubGVuZ3RoO1xuICAgIGNvbnN0IGZhaWxlZFByb21pc2VzID0gcmVzdWx0cy5maWx0ZXIoKHJlc3VsdDogYW55KSA9PiByZXN1bHQ/LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykubGVuZ3RoO1xuXG4gICAgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPT09IDApIHtcbiAgICAgIC8vIEFsbCBpdGVtcyBkZWxldGVkIHN1Y2Nlc3NmdWxseVxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS10aXRsZScpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLWRlbGV0ZS1ib2R5Jywge1xuICAgICAgICAgICAgcGFyYW1zOiB7IGl0ZW06IHN1Y2Nlc3NmdWxQcm9taXNlcyB9LFxuICAgICAgICAgIH0pLCAvL1RPRE8gdGVzdCB0cmFuc2xhdGlvblxuICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcbiAgICAgIHRoaXMuZGlzcGF0Y2goQVhQRW50aXR5RGVsZXRlZEV2ZW50KHsgZW50aXR5OiBsYXN0RW50aXR5LnNvdXJjZSwgaWRzOiBsYXN0RW50aXR5LmlkcywgbWV0YTogbWV0YSB9KSk7XG4gICAgICB0aGlzLmRpc3BhdGNoKEFYUFJlZnJlc2hFdmVudCh7IGVudGl0eTogbGFzdEVudGl0eS5zb3VyY2UsIG1ldGE6IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55PignbWV0YScpIH0pKTtcbiAgICB9IGVsc2UgaWYgKHN1Y2Nlc3NmdWxQcm9taXNlcyA+IDAgJiYgZmFpbGVkUHJvbWlzZXMgPiAwKSB7XG4gICAgICAvLyBTb21lIGl0ZW1zIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzb21lIGZhaWxlZFxuICAgICAgaWYgKHNob3dSZXN1bHQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5zdWNjZXNzLXBhcnRpYWwtZGVsZXRlLXRpdGxlJyksXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LnBhcnRpYWwtZGVsZXRlLWJvZHknLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHsgc3VjY2Vzczogc3VjY2Vzc2Z1bFByb21pc2VzLCBmYWlsOiBmYWlsZWRQcm9taXNlcyB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgICd3YXJuaW5nJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIC8vIERpc3BhdGNoIGFjdGlvbnNcbiAgICAgIHRoaXMuZGlzcGF0Y2goQVhQRW50aXR5RGVsZXRlZEV2ZW50KHsgZW50aXR5OiBsYXN0RW50aXR5LnNvdXJjZSwgaWRzOiBsYXN0RW50aXR5LmlkcywgbWV0YTogbWV0YSB9KSk7XG4gICAgfSBlbHNlIGlmIChzdWNjZXNzZnVsUHJvbWlzZXMgPT09IDAgJiYgZmFpbGVkUHJvbWlzZXMgPiAwKSB7XG4gICAgICAvLyBObyBpdGVtcyBkZWxldGVkLCBhbGwgZmFpbGVkXG4gICAgICBpZiAoc2hvd1Jlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2UuYWxlcnQoXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LmZhaWwtZGVsZXRlLXRpdGxlJyksXG4gICAgICAgICAgYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ3dvcmtmbG93LmZhaWwtZGVsZXRlLWJvZHknLCB7XG4gICAgICAgICAgICBwYXJhbXM6IHsgaXRlbTogZmFpbGVkUHJvbWlzZXMgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICAnZGFuZ2VyJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm8gaXRlbXMgdG8gZGVsZXRlIChubyBzdWNjZXNzZnVsIG9yIGZhaWxlZCBwcm9taXNlcylcbiAgICAgIGlmIChzaG93UmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5hbGVydChcbiAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnd29ya2Zsb3cubm8tbmVlZCcpLFxuICAgICAgICAgIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCd3b3JrZmxvdy5uby1pdGVtJyksXG4gICAgICAgICAgJ3ByaW1hcnknLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQRGVsZXRlRW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ2NvbmZpcm0tZGVsZXRlJyxcbiAgc3RlcHM6IHtcbiAgICAnY29uZmlybS1kZWxldGUnOiB7XG4gICAgICBhY3Rpb246ICdzaG93LXByb21wdC1kaWFsb2cnLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy53YXJuaW5nJyxcbiAgICAgICAgbWVzc2FnZTogYHdvcmtmbG93LmNvbmZpcm0tZGVsZXRlYCxcbiAgICAgICAgdHlwZTogJ2RhbmdlcicsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdBTkQnLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdwZXJmb3JtLWRlbGV0ZScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3BlcmZvcm0tZGVsZXRlJzoge1xuICAgICAgYWN0aW9uOiAnZW50aXR5LXBlcmZvcm0tZGVsZXRlJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPPageStatus } from '@acorex/platform/layout/builder';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed, inject, Injectable, Injector, signal } from '@angular/core';\nimport { cloneDeep, merge, set } from 'lodash-es';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterUpdateElementViewModel {\n constructor(entity, property) {\n this.entity = entity;\n this.property = property;\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n }, ...(ngDevMode ? [{ debugName: \"isRequired\" }] : []));\n this.layout = computed(() => {\n const updateProp = this.entity.interfaces?.master?.update?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(updateProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: this.editable() ? 'edit' : 'view',\n path: this.name(),\n name: this.name(),\n children: widget.children,\n formula: widget.formula,\n triggers: widget.triggers,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options, {\n validations: this.property.validations?.map((c) => ({ rule: c.rule, message: c.message, options: c.options })),\n }),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterUpdateViewModel {\n // Dynamically resolve identifiers when needed\n get moduleName() {\n return this.config.module ?? '';\n }\n get entityName() {\n return this.config.name ?? '';\n }\n get entityId() {\n return this.entityData?.id ?? '';\n }\n constructor(injector, config, entityData, props) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.props = props;\n this.entityDef = cloneDeep(this.config);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.lockService = this.injector.get(AXPLockService);\n this.sessionService = this.injector.get(AXPSessionService);\n this.isInProgress = signal(false, ...(ngDevMode ? [{ debugName: \"isInProgress\" }] : []));\n this.context = signal(cloneDeep(this.entityData), ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.elements = computed(() => {\n const props = this.entityDef.properties.filter((c) => this.props.includes(c.name) && c.schema.hidden != true);\n return props.map((e) => {\n return new AXPEntityMasterUpdateElementViewModel(this.entityDef, e);\n });\n }, ...(ngDevMode ? [{ debugName: \"elements\" }] : []));\n // Lock the record on creation\n if (this.entityId) {\n this.lockService.lock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n date: new Date().toISOString(),\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n }\n }\n async save() {\n this.isInProgress.set(true);\n this.builder.setStatus(AXPPageStatus.Submitting);\n try {\n const com = this.entityDef.commands?.update;\n if (com) {\n const exec = com.execute;\n const result = await exec(this.context());\n this.builder.setStatus(AXPPageStatus.Submitted);\n return result;\n }\n }\n catch (error) {\n this.builder.setStatus(AXPPageStatus.Error);\n return Promise.reject(error);\n }\n finally {\n this.isInProgress.set(false);\n }\n }\n reset() {\n this.context.set(cloneDeep(this.entityData));\n }\n async unlock() {\n if (this.entityId) {\n await this.lockService.unlock({\n refId: this.entityId,\n refType: `${this.moduleName}.${this.entityName}`,\n type: 'user',\n });\n }\n }\n}\nexport class AXPEntityMasterUpdateViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id, props) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterUpdateViewModel(this.injector, config, data, props);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBcUYsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUksT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVoRixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELFlBQ1UsTUFBaUIsRUFDakIsUUFBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUdyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxnREFBQyxDQUFDO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLHVEQUFDLENBQUM7UUFFaEQsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUU7WUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsb0RBQUMsQ0FBQztRQUVILGVBQVUsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEtBQUssQ0FBQztRQUMvRSxDQUFDLHNEQUFDLENBQUM7UUFFSCxXQUFNLEdBQUcsUUFBUSxDQUFnQyxHQUFHLEVBQUU7WUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakgsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFXLENBQUM7WUFDN0QsR0FBRyxDQUFDLE1BQU0sRUFBRSwyQkFBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPLE1BQXVDLENBQUM7UUFDakQsQ0FBQyxrREFBQyxDQUFDO1FBRUgsU0FBSSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7WUFDakMsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7Z0JBQ3ZDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUU7b0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQy9HLENBQUM7YUFDYyxDQUFDO1FBQ3JCLENBQUMsZ0RBQUMsQ0FBQztJQXJDQyxDQUFDO0NBc0NOO0FBRUQsTUFBTSxPQUFPLDhCQUE4QjtJQU16Qyw4Q0FBOEM7SUFDOUMsSUFBWSxVQUFVO1FBQ3BCLE9BQVEsSUFBSSxDQUFDLE1BQWMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDcEIsT0FBUSxJQUFJLENBQUMsTUFBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBSUQsWUFDVSxRQUFrQixFQUNsQixNQUFpQixFQUNqQixVQUFlLEVBQ2YsS0FBZTtRQUhmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQXhCakIsY0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDcEMsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxtQkFBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFzQ3ZELGlCQUFZLEdBQUcsTUFBTSxDQUFVLEtBQUssd0RBQUMsQ0FBQztRQUV0QyxZQUFPLEdBQUcsTUFBTSxDQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1EQUFDLENBQUM7UUFFekQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7WUFDOUcsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxvREFBQyxDQUFDO1FBeEJELDhCQUE4QjtRQUM5QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDcEIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNwQixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2hELElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtnQkFDOUIsUUFBUSxFQUFFO29CQUNSLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksUUFBUTtvQkFDNUMsSUFBSSxFQUFFLFlBQVk7aUJBQ25CO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFhTSxLQUFLLENBQUMsSUFBSTtRQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7WUFDNUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsT0FBbUIsQ0FBQztnQkFDckMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDaEQsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2dCQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLHFDQUFxQztJQURsRDtRQUVVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FvQnJDO0lBbEJRLEtBQUssQ0FBQyxNQUFNLENBQ2pCLFVBQWtCLEVBQ2xCLFVBQWtCLEVBQ2xCLEVBQVUsRUFDVixLQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBbUIsQ0FBQztZQUN0RCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhDLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEYsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBdEJVLHFDQUFxQztrSEFBckMscUNBQXFDLGNBRHhCLE1BQU07OzJGQUNuQixxQ0FBcUM7a0JBRGpELFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlQcm9wZXJ0eSwgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWcsIEFYUEdyaWRMYXlvdXRPcHRpb25zLCBBWFBMb2NrU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBQYWdlU3RhdHVzLCBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBjb21wdXRlZCwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rvciwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgcHJvcGVydHk6IEFYUEVudGl0eVByb3BlcnR5LFxuICApIHsgfVxuXG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKTtcbiAgfSk7XG5cbiAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZSgoYykgPT4gYy5ydWxlID09ICdyZXF1aXJlZCcpIHx8IGZhbHNlO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBFbnRpdHlQcm9wZXJ0eUxheW91dENvbmZpZz4oKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVByb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8uZmluZCgoYykgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHVwZGF0ZVByb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQRW50aXR5UHJvcGVydHlMYXlvdXRDb25maWc7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/ICdlZGl0JyA6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxuICAgICAgbmFtZTogdGhpcy5uYW1lKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB0cmlnZ2Vyczogd2lkZ2V0LnRyaWdnZXJzLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucywge1xuICAgICAgICB2YWxpZGF0aW9uczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8ubWFwKChjKSA9PiAoeyBydWxlOiBjLnJ1bGUsIG1lc3NhZ2U6IGMubWVzc2FnZSwgb3B0aW9uczogYy5vcHRpb25zIH0pKSxcbiAgICAgIH0pLFxuICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcbiAgfSk7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWwge1xuICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsb2NrU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUExvY2tTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICAvLyBEeW5hbWljYWxseSByZXNvbHZlIGlkZW50aWZpZXJzIHdoZW4gbmVlZGVkXG4gIHByaXZhdGUgZ2V0IG1vZHVsZU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY29uZmlnIGFzIGFueSkubW9kdWxlID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgYXMgYW55KS5uYW1lID8/ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZW50aXR5SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEYXRhPy5pZCA/PyAnJztcbiAgfVxuXG4gIHB1YmxpYyBidWlsZGVyOiBBWFBMYXlvdXRCdWlsZGVyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxuICAgIHByaXZhdGUgcHJvcHM6IHN0cmluZ1tdLFxuICApIHtcbiAgICAvLyBMb2NrIHRoZSByZWNvcmQgb24gY3JlYXRpb25cbiAgICBpZiAodGhpcy5lbnRpdHlJZCkge1xuICAgICAgdGhpcy5sb2NrU2VydmljZS5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgICBkYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgIGxvY2tlZEJ5OiB7XG4gICAgICAgICAgaWQ6IHRoaXMuc2Vzc2lvblNlcnZpY2UudXNlcj8uaWQgPz8gJ3N5c3RlbScsXG4gICAgICAgICAgdHlwZTogJ29pZGMudXNlcnMnLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSW5Qcm9ncmVzcyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgZWxlbWVudHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gdGhpcy5wcm9wcy5pbmNsdWRlcyhjLm5hbWUpICYmIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclVwZGF0ZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIGUpO1xuICAgIH0pO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuaXNJblByb2dyZXNzLnNldCh0cnVlKTtcbiAgICB0aGlzLmJ1aWxkZXIuc2V0U3RhdHVzKEFYUFBhZ2VTdGF0dXMuU3VibWl0dGluZyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbSA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy51cGRhdGU7XG4gICAgICBpZiAoY29tKSB7XG4gICAgICAgIGNvbnN0IGV4ZWMgPSBjb20uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyh0aGlzLmNvbnRleHQoKSk7XG4gICAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5TdWJtaXR0ZWQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5FcnJvcik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLmNvbnRleHQuc2V0KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1bmxvY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuZW50aXR5SWQpIHtcbiAgICAgIGF3YWl0IHRoaXMubG9ja1NlcnZpY2UudW5sb2NrKHtcbiAgICAgICAgcmVmSWQ6IHRoaXMuZW50aXR5SWQsXG4gICAgICAgIHJlZlR5cGU6IGAke3RoaXMubW9kdWxlTmFtZX0uJHt0aGlzLmVudGl0eU5hbWV9YCxcbiAgICAgICAgdHlwZTogJ3VzZXInLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0VGhlbWVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZShcbiAgICBtb2R1bGVOYW1lOiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IHN0cmluZ1tdLFxuICApOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG5cbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZywgZGF0YSwgcHJvcHMpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gIH1cbn1cbiJdfQ==","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityModifyEvent = createWorkFlowEvent('[Entity] Modified');\nexport class AXPEntityModifySectionPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const { properties, id, title } = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifySectionPopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityModifyConfirmedAction extends AXPWorkflowAction {\n async execute(context) {\n const updatedData = context.getVariable('data');\n this.dispatch(AXPEntityModifyEvent({ entity: context.getVariable('entity'), values: updatedData }));\n const gridItemParentKey = context.getVariable('parentKey');\n this.dispatch(AXPRefreshEvent({\n entity: context.getVariable('entity'),\n meta: {\n refreshTargetId: updatedData[gridItemParentKey],\n },\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModifyConfirmedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPModifyEntitySectionWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPEntityModifySectionPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTNELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLG1CQUFtQixDQUFrQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRzlHLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxpQkFBaUI7SUFEeEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFB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WFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5IH0gZnJvbSAnLi4vZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9lbnRpdHkuY29uZmlnJztcblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eU1vZGlmeUV2ZW50ID0gY3JlYXRlV29ya0Zsb3dFdmVudDx7IGVudGl0eTogc3RyaW5nOyB2YWx1ZXM6IGFueSB9PignW0VudGl0eV0gTW9kaWZpZWQnKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpZCwgdGl0bGUgfSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHZtID0gYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCwgcHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGhlYWRlclRpdGxlID0gZGVjb3JhdGlvbj8uaGVhZGVyPy50aXRsZTtcblxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLm1vZGlmeSgpO1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogdGl0bGUgPz9cbiAgICAgICAgYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ2VudGl0eS5tb2RpZnknKX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhcbiAgICAgICAgICBlbnRpdHlSZWYuZm9ybWF0cy5pbmRpdmlkdWFsXG4gICAgICAgICl9YCxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiAnbWQnLFxuICAgICAgZGF0YToge1xuICAgICAgICB2bSxcbiAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgZW50aXR5OiBlbnRpdHlSZWYsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgaWYgKHBvcHVwLmRhdGE/LnJlc3VsdCA9PSB0cnVlKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKHBvcHVwLmRhdGEuY29udGV4dCkpO1xuICAgIH1cbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdXBkYXRlZERhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgdGhpcy5kaXNwYXRjaChBWFBFbnRpdHlNb2RpZnlFdmVudCh7IGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSwgdmFsdWVzOiB1cGRhdGVkRGF0YSB9KSk7XG5cbiAgICBjb25zdCBncmlkSXRlbVBhcmVudEtleSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ3BhcmVudEtleScpO1xuXG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUFJlZnJlc2hFdmVudCh7XG4gICAgICAgIGVudGl0eTogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKSxcbiAgICAgICAgbWV0YToge1xuICAgICAgICAgIHJlZnJlc2hUYXJnZXRJZDogdXBkYXRlZERhdGFbZ3JpZEl0ZW1QYXJlbnRLZXldLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlTZWN0aW9uUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHN1Y2Nlc3NUb2FzdDoge1xuICAgICAgaWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtdGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { getEntityInfo, } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, } from '@acorex/platform/core';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXPWorkflowService, ofType } from '@acorex/platform/workflow';\nimport { Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { cloneDeep, get, merge, set } from 'lodash-es';\nimport { Subject, takeUntil } from 'rxjs';\nimport { AXPEntityDetailListViewModel } from './entity-detail-list.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXPEntityService } from './entity.service';\nimport { AXPEntityCommandTriggerViewModel } from './entity.viewmodel';\nimport { AXPEntityDeletedEvent } from './workflows/delete-entity.workflow';\nimport { AXPEntityModifyEvent } from './workflows/modify-section.workflow';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityMasterSingleViewGroupViewModel {\n constructor(entity, section) {\n this.entity = entity;\n this.section = section;\n this.group = this.entity.groups?.find((c) => c.id == this.section.id);\n this.name = signal(this.group.id, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.type = signal(this.section.type ?? 'section', ...(ngDevMode ? [{ debugName: \"type\" }] : []));\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.description = computed(() => {\n return this.group.description;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.props = computed(() => {\n const { properties, interfaces } = this.entity;\n const groupProperties = properties\n .filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)\n .map(({ name }) => name);\n const viewProperties = interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];\n return viewProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n }, ...(ngDevMode ? [{ debugName: \"props\" }] : []));\n this.editableProps = computed(() => {\n const { properties, interfaces } = this.entity;\n const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name));\n return filteredProperties.map((prop) => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));\n }, ...(ngDevMode ? [{ debugName: \"editableProps\" }] : []));\n this.editable = computed(() => {\n return this.editableProps().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"editable\" }] : []));\n }\n}\nexport class AXPEntityMasterSingleElementViewModel {\n constructor(entity, section, propertyView) {\n this.entity = entity;\n this.section = section;\n this.propertyView = propertyView;\n this.property = this.entity.properties.find((c) => c.name == this.propertyView.name);\n this.name = signal(this.property.name, ...(ngDevMode ? [{ debugName: \"name\" }] : []));\n this.path = signal(this.propertyView.dataPath ?? this.property.name, ...(ngDevMode ? [{ debugName: \"path\" }] : []));\n this.title = signal(this.property.title, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n this.showLabel = signal(this.propertyView.layout?.label?.visible != false, ...(ngDevMode ? [{ debugName: \"showLabel\" }] : []));\n this.description = signal(this.property.description, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n this.layout = computed(() => {\n const viewProp = this.entity.interfaces?.master?.single?.properties?.find((c) => c.name == this.property.name);\n const source = cloneDeep(viewProp?.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n }, ...(ngDevMode ? [{ debugName: \"layout\" }] : []));\n this.node = computed(() => {\n const schema = this.property.schema;\n const widget = schema.interface;\n return {\n type: widget.type,\n mode: 'view',\n path: this.path(),\n children: widget.children,\n formula: widget.formula,\n valueTransforms: widget.valueTransforms,\n options: merge(schema.interface?.options),\n };\n }, ...(ngDevMode ? [{ debugName: \"node\" }] : []));\n }\n}\nexport class AXPEntityMasterSingleViewModel {\n constructor(injector, config, entityData) {\n this.injector = injector;\n this.config = config;\n this.entityData = entityData;\n this.entityDef = cloneDeep(this.config);\n this._viewDef = cloneDeep(this.entityDef.interfaces?.master?.single);\n this.session = this.injector.get(AXPSessionService);\n this.formatService = this.injector.get(AXFormatService);\n this.workflow = this.injector.get(AXPWorkflowService);\n this.destroyed = new Subject();\n this.translateService = this.injector.get(AXTranslationService);\n this.entityService = this.injector.get(AXPEntityService);\n this.expressionEvaluator = this.injector.get(AXPExpressionEvaluatorService);\n this.context = signal(cloneDeep(this.entityData), ...(ngDevMode ? [{ debugName: \"context\" }] : []));\n this.actions = computed(() => {\n return (this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? []);\n }, ...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.primaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n }, ...(ngDevMode ? [{ debugName: \"primaryActions\" }] : []));\n this.secondaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n }, ...(ngDevMode ? [{ debugName: \"secondaryActions\" }] : []));\n this.sections = computed(() => {\n const { interfaces, properties } = this.entityDef;\n const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];\n const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name));\n const groups = interfaces?.master?.single?.sections?.filter(({ id }) => filteredProperties.some(({ groupId }) => groupId === id)) ?? [];\n return groups.map((section) => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));\n }, ...(ngDevMode ? [{ debugName: \"sections\" }] : []));\n //****************** Title ******************//\n this.title = computed(() => {\n const suggestedProps = this.entityDef.properties.find((c) => ['title', 'name', 'code'].includes(c.name));\n let suggestedFormat = 'Item #{{id}}';\n if (suggestedProps)\n suggestedFormat = `{{${suggestedProps.name}}}`;\n return this.formatService.format(this._viewDef.title ?? suggestedFormat, 'string', this.context());\n }, ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n }, ...(ngDevMode ? [{ debugName: \"description\" }] : []));\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.entityDef.formats.plural ?? this.entityDef.formats.individual,\n command: {\n name: 'navigate',\n options: {\n path: `/${this.session.application?.name}/m/${this.entityDef.module}/e/${this.entityDef.name}/list`,\n },\n },\n },\n {\n title: this.title(),\n },\n ];\n }, ...(ngDevMode ? [{ debugName: \"beardcrumbs\" }] : []));\n this.evaluateExpressions = async (options, data) => {\n const scope = {\n context: {\n eval: (path) => {\n return get(data, path);\n },\n },\n };\n return await this.expressionEvaluator.evaluate(options, scope);\n };\n this.relatedEntities = computed(async () => {\n const relatedEntities = this.entityDef.relatedEntities?.map((re) => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })) ?? [];\n const filteredEntities = await Promise.all(relatedEntities.map(async (re) => ((await re.hidden()) ? null : re)));\n return filteredEntities.filter((re) => re !== null);\n }, ...(ngDevMode ? [{ debugName: \"relatedEntities\" }] : []));\n this.workflow.events$\n .pipe(ofType(AXPEntityDeletedEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe((event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.ids.includes(this.context().id)) {\n this.workflow.execute('show-list-view', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n });\n this.workflow.events$\n .pipe(ofType(AXPEntityModifyEvent))\n .pipe(takeUntil(this.destroyed))\n .subscribe(async (event) => {\n if (event.payload.entity == getEntityInfo(this.entityDef).source &&\n event.payload.values.id === this.context().id) {\n this.context.set(event.payload.values);\n }\n });\n }\n navigateToUp() {\n this.workflow.execute('navigate', {\n options: {\n path: this.entityService.createPath(this.entityDef.module, this.entityDef.name),\n },\n });\n }\n async executeCommand(commandName, data = null) {\n //TODO: syntact for workflow\n const command = commandName.split('&')[0];\n switch (command) {\n case 'modify-entity-section': {\n this.workflow.execute('modify-entity-section', {\n entity: getEntityInfo(this.entityDef).source,\n data: {\n id: this.context().id,\n properties: data.editableProps().map((m) => m.name()),\n },\n });\n break;\n }\n default: {\n const action = this.actions().find((c) => c.name == commandName);\n const options = await this.evaluateExpressions(action?.options, this.context());\n this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n data: this.context(),\n options,\n });\n }\n }\n }\n async execute(command) {\n switch (command?.name) {\n case 'navigate':\n await this.workflow.execute('navigate', {\n options: {\n path: command.options?.['path'],\n },\n });\n break;\n default:\n this.executeCommand(command.name, command.options);\n break;\n }\n }\n //\n //\n destroy() {\n this.destroyed.next();\n this.destroyed.complete();\n }\n}\nexport class AXPEntityDetailViewModelFactory {\n constructor() {\n this.entityService = inject(AXPEntityDefinitionRegistryService);\n this.layout = inject(AXPLayoutThemeService);\n this.injector = inject(Injector);\n }\n async create(moduleName, entityName, id) {\n const config = await this.entityService.resolve(moduleName, entityName);\n this.layout.setNavigationLoading(true);\n if (config.queries.byKey) {\n const func = config.queries.byKey.execute;\n const data = await func(id);\n this.layout.setNavigationLoading(false);\n return new AXPEntityMasterSingleViewModel(this.injector, config, data);\n }\n this.layout.setNavigationLoading(false);\n return Promise.reject('cannot fetch ');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityDetailViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const AXPEntityDetailViewModelResolver = (route, state, service = inject(AXPEntityDetailViewModelFactory)) => {\n const moduleName = route.parent?.paramMap.get('module');\n const entityName = route.paramMap.get('entity');\n const id = route.paramMap.get('id');\n //\n return service.create(moduleName, entityName, id);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBS0wsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUlMLDZCQUE2QixHQUM5QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixD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LE9BQW1CLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBaEJVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW9CbEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXVELENBQ2xHLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQTJDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUN6QyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eVByb3BlcnR5VmlldyxcbiAgQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gIEFYUEdyaWRMYXlvdXRPcHRpb25zLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBCcmVhZGNydW1iSXRlbSxcbiAgQVhQRXhlY3V0ZUNvbW1hbmQsXG4gIEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwgfSBmcm9tICcuL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHkudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlbGV0ZWRFdmVudCB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktc2VjdGlvbi53b3JrZmxvdyc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5U2VjdGlvblZpZXcsXG4gICkge31cblxuICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZCgoYykgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcbiAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgdHlwZSA9IHNpZ25hbCh0aGlzLnNlY3Rpb24udHlwZSA/PyAnc2VjdGlvbicpO1xuXG4gIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcbiAgfSk7XG5cbiAgZGVzY3JpcHRpb24gPSBjb21wdXRlZDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXAuZGVzY3JpcHRpb247XG4gIH0pO1xuXG4gIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHRoaXMuc2VjdGlvbi5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcbiAgICBzZXQoc291cmNlLCAncG9zaXRpb25zLmRlZmF1bHQuY29sU3BhbicsIDEyKTtcbiAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xuICB9KTtcblxuICBwcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IHByb3BlcnRpZXMsIGludGVyZmFjZXMgfSA9IHRoaXMuZW50aXR5O1xuICAgIGNvbnN0IGdyb3VwUHJvcGVydGllcyA9IHByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIoKHsgZ3JvdXBJZCwgc2NoZW1hIH0pID0+IGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4pXG4gICAgICAubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSk7XG5cbiAgICBjb25zdCB2aWV3UHJvcGVydGllcyA9XG4gICAgICBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8uZmlsdGVyKCh7IG5hbWUgfSkgPT4gZ3JvdXBQcm9wZXJ0aWVzLmluY2x1ZGVzKG5hbWUpKSA/PyBbXTtcblxuICAgIHJldHVybiB2aWV3UHJvcGVydGllcy5tYXAoKHByb3ApID0+IG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wKSk7XG4gIH0pO1xuXG4gIGVkaXRhYmxlUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpbnRlcmZhY2VzIH0gPSB0aGlzLmVudGl0eTtcbiAgICBjb25zdCBlZGl0YWJsZVByb3BlcnR5TmFtZXMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PlxuICAgICAgICBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmICFzY2hlbWEuaGlkZGVuICYmIGVkaXRhYmxlUHJvcGVydHlOYW1lcy5pbmNsdWRlcyhuYW1lKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcGVydGllcy5tYXAoKHByb3ApID0+IG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBwcm9wKSk7XG4gIH0pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRhYmxlUHJvcHMoKS5sZW5ndGggPiAwO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsLFxuICAgIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcsXG4gICkge31cblxuICBwcml2YXRlIHByb3BlcnR5ID0gdGhpcy5lbnRpdHkucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eVZpZXcubmFtZSkhO1xuICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XG4gIHBhdGggPSBzaWduYWwodGhpcy5wcm9wZXJ0eVZpZXcuZGF0YVBhdGggPz8gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIHNob3dMYWJlbCA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Vmlldy5sYXlvdXQ/LmxhYmVsPy52aXNpYmxlICE9IGZhbHNlKTtcbiAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCB2aWV3UHJvcCA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodmlld1Byb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6ICd2aWV3JyxcbiAgICAgIHBhdGg6IHRoaXMucGF0aCgpLFxuICAgICAgY2hpbGRyZW46IHdpZGdldC5jaGlsZHJlbixcbiAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxuICAgICAgdmFsdWVUcmFuc2Zvcm1zOiB3aWRnZXQudmFsdWVUcmFuc2Zvcm1zLFxuICAgICAgb3B0aW9uczogbWVyZ2Uoc2NoZW1hLmludGVyZmFjZT8ub3B0aW9ucyksXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB7XG4gIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3RGVmID0gY2xvbmVEZWVwKHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlKSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBleHByZXNzaW9uRXZhbHVhdG9yID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxuICApIHtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UgJiZcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmlkcy5pbmNsdWRlcyh0aGlzLmNvbnRleHQoKS5pZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LWxpc3QtdmlldycsIHtcbiAgICAgICAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlNb2RpZnlFdmVudCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSAmJlxuICAgICAgICAgIGV2ZW50LnBheWxvYWQudmFsdWVzLmlkID09PSB0aGlzLmNvbnRleHQoKS5pZFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmNvbnRleHQuc2V0KGV2ZW50LnBheWxvYWQudmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29udGV4dCA9IHNpZ25hbDxhbnk+KGNsb25lRGVlcCh0aGlzLmVudGl0eURhdGEpKTtcblxuICBwcml2YXRlIGFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5hY3Rpb25zPy5tYXAoXG4gICAgICAgICh0cikgPT4gbmV3IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCB0ciksXG4gICAgICApID8/IFtdXG4gICAgKTtcbiAgfSk7XG5cbiAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoKGMpID0+IGMucHJpb3JpdHkgPT0gJ3ByaW1hcnknKTtcbiAgfSk7XG5cbiAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcigoYykgPT4gYy5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5Jyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCB2aWV3UHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCBmaWx0ZXJlZFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihcbiAgICAgICh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PiBncm91cElkICYmICFzY2hlbWEuaGlkZGVuICYmIHZpZXdQcm9wcy5pbmNsdWRlcyhuYW1lKSxcbiAgICApO1xuXG4gICAgY29uc3QgZ3JvdXBzID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5zZWN0aW9ucz8uZmlsdGVyKCh7IGlkIH0pID0+XG4gICAgICAgIGZpbHRlcmVkUHJvcGVydGllcy5zb21lKCh7IGdyb3VwSWQgfSkgPT4gZ3JvdXBJZCA9PT0gaWQpLFxuICAgICAgKSA/PyBbXTtcblxuICAgIHJldHVybiBncm91cHMubWFwKChzZWN0aW9uKSA9PiBuZXcgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKHRoaXMuZW50aXR5RGVmLCBzZWN0aW9uKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvVXAoKSB7XG4gICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgcGF0aDogdGhpcy5lbnRpdHlTZXJ2aWNlLmNyZWF0ZVBhdGgodGhpcy5lbnRpdHlEZWYubW9kdWxlLCB0aGlzLmVudGl0eURlZi5uYW1lKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcbiAgICBsZXQgc3VnZ2VzdGVkRm9ybWF0ID0gJ0l0ZW0gI3t7aWR9fSc7XG4gICAgaWYgKHN1Z2dlc3RlZFByb3BzKSBzdWdnZXN0ZWRGb3JtYXQgPSBge3ske3N1Z2dlc3RlZFByb3BzLm5hbWV9fX1gO1xuICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LCAnc3RyaW5nJywgdGhpcy5jb250ZXh0KCkpO1xuICB9KTtcbiAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uXG4gICAgICA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiwgJ3N0cmluZycsIHRoaXMuY29udGV4dCgpKVxuICAgICAgOiBudWxsO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCcmVhZGNydW1iSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMucGx1cmFsID8/IHRoaXMuZW50aXR5RGVmLmZvcm1hdHMuaW5kaXZpZHVhbCxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgIG5hbWU6ICduYXZpZ2F0ZScsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke3RoaXMuZW50aXR5RGVmLm1vZHVsZX0vZS8ke3RoaXMuZW50aXR5RGVmLm5hbWV9L2xpc3RgLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0aXRsZTogdGhpcy50aXRsZSgpLFxuICAgICAgfSxcbiAgICBdO1xuICB9KTtcblxuICBldmFsdWF0ZUV4cHJlc3Npb25zID0gYXN5bmMgKG9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGRhdGE6IGFueSkgPT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KGRhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUob3B0aW9ucywgc2NvcGUpO1xuICB9O1xuXG4gIHB1YmxpYyByZWxhdGVkRW50aXRpZXMgPSBjb21wdXRlZDxQcm9taXNlPEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWxbXT4+KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCByZWxhdGVkRW50aXRpZXMgPVxuICAgICAgdGhpcy5lbnRpdHlEZWYucmVsYXRlZEVudGl0aWVzPy5tYXAoXG4gICAgICAgIChyZSkgPT4gbmV3IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgcmUsIHsgZW50aXR5OiB0aGlzLmVudGl0eURlZiwgZGF0YTogdGhpcy5lbnRpdHlEYXRhIH0pLFxuICAgICAgKSA/PyBbXTtcblxuICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBhd2FpdCBQcm9taXNlLmFsbChyZWxhdGVkRW50aXRpZXMubWFwKGFzeW5jIChyZSkgPT4gKChhd2FpdCByZS5oaWRkZW4oKSkgPyBudWxsIDogcmUpKSk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRFbnRpdGllcy5maWx0ZXIoKHJlKSA9PiByZSAhPT0gbnVsbCkgYXMgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIC8vVE9ETzogc3ludGFjdCBmb3Igd29ya2Zsb3dcbiAgICBjb25zdCBjb21tYW5kID0gY29tbWFuZE5hbWUuc3BsaXQoJyYnKVswXTtcbiAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcbiAgICAgIGNhc2UgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IHtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdtb2RpZnktZW50aXR5LXNlY3Rpb24nLCB7XG4gICAgICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaWQ6IHRoaXMuY29udGV4dCgpLmlkLFxuICAgICAgICAgICAgcHJvcGVydGllczogKGRhdGEgYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKS5lZGl0YWJsZVByb3BzKCkubWFwKChtKSA9PiBtLm5hbWUoKSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnMoKS5maW5kKChjKSA9PiBjLm5hbWUgPT0gY29tbWFuZE5hbWUpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucywgdGhpcy5jb250ZXh0KCkpO1xuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZCwge1xuICAgICAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgICAgIGRhdGE6IHRoaXMuY29udGV4dCgpLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpIHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQ/Lm5hbWUpIHtcbiAgICAgIGNhc2UgJ25hdmlnYXRlJzpcbiAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCduYXZpZ2F0ZScsIHtcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBwYXRoOiBjb21tYW5kLm9wdGlvbnM/LlsncGF0aCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZXhlY3V0ZUNvbW1hbmQoY29tbWFuZC5uYW1lLCBjb21tYW5kLm9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgLy9cbiAgLy9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGlmIChjb25maWcucXVlcmllcy5ieUtleSkge1xuICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCBkYXRhID0gYXdhaXQgZnVuYyhpZCk7XG4gICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyOiBSZXNvbHZlRm48UHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+PiA9IChcbiAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxuICBzZXJ2aWNlOiBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkpLFxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcbiAgY29uc3QgbW9kdWxlTmFtZSA9IHJvdXRlLnBhcmVudD8ucGFyYW1NYXAuZ2V0KCdtb2R1bGUnKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGVudGl0eU5hbWUgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2VudGl0eScpIGFzIHN0cmluZztcbiAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xuICAvL1xuICByZXR1cm4gc2VydmljZS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSwgaWQpO1xufTtcbiJdfQ==","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntityStorageService {\n}\nexport class AXPEntityDataProvider {\n}\nexport class AXPEntityDataProviderImpl {\n constructor(storageService, entityName) {\n this.storageService = storageService;\n this.entityName = entityName;\n }\n async initial(collection) {\n await this.storageService.initial(this.entityName, collection);\n }\n getOne(id) {\n return this.storageService.getOne(this.entityName, id);\n }\n getAll() {\n return this.storageService.getAll(this.entityName);\n }\n query(request) {\n return this.storageService.query(this.entityName, request);\n }\n updateOne(id, keyValues) {\n return this.storageService.updateOne(this.entityName, id, keyValues);\n }\n deleteOne(id) {\n return this.storageService.deleteOne(this.entityName, id);\n }\n insertOne(entity) {\n return this.storageService.insertOne(this.entityName, entity);\n }\n}\nexport class AXMEntityCrudService {\n}\nexport class AXMEntityCrudServiceImpl {\n constructor(entityName) {\n this.entityName = entityName;\n this._storageService = inject(AXPEntityStorageService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this._entityDataProvider = new AXPEntityDataProviderImpl(this._storageService, this.entityName);\n }\n async insertOne(request) {\n return this._entityDataProvider.insertOne(request);\n }\n async getOne(id) {\n return this._entityDataProvider.getOne(id);\n }\n async deleteOne(id) {\n return this._entityDataProvider.deleteOne(id);\n }\n async updateOne(id, values) {\n return this._entityDataProvider.updateOne(id, values);\n }\n async query(request = { skip: 0, take: 100 }) {\n const [moduleName, entityName] = this._entityDataProvider.entityName.split('.');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n if (entityRef.parentKey) {\n if (!request.filter?.filters?.length && request.filter?.field !== entityRef.parentKey) {\n request.filter = {\n value: true,\n field: entityRef.parentKey,\n operator: {\n type: 'isEmpty',\n },\n };\n }\n }\n return this._entityDataProvider.query(request);\n }\n async findOne(filter) {\n const result = await this._entityDataProvider.query({ filter, skip: 0, take: 1 });\n return result.items[0];\n }\n async getRoots(request) {\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: true,\n field: 'parentId',\n operator: {\n type: 'isEmpty',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n async getChildren(request) {\n const parentKey = request.parentKey ?? 'parentId';\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: request.parentId,\n field: parentKey,\n operator: {\n type: 'equal',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n async getByCategory(request) {\n const queryRequest = {\n skip: 0,\n take: 1000,\n filter: {\n value: request.categoryId,\n field: request.categoryKey ?? 'categoryIds',\n operator: {\n type: 'contains',\n },\n }\n };\n const result = await this._entityDataProvider.query(queryRequest);\n return result;\n }\n get storageService() {\n return this._storageService;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVdoRixNQUFNLE9BQWdCLHVCQUF1QjtDQXlCNUM7QUFFRCxNQUFNLE9BQWdCLHFCQUFxQjtDQXNCMUM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQ1UsY0FBK0YsRUFDaEcsVUFBa0I7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWlGO1FBQ2hHLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDdkIsQ0FBQztJQUVMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBd0I7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxTQUFTLENBQUMsRUFBUSxFQUFFLFNBQTBDO1FBQzVE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V0FBVyxJQUFJLGFBQWE7Z0JBQzNDLFFBQVEsRUFBRTtvQkFDUixJQUFJLEVBQUUsVUFBVTtpQkFDakI7YUFDRjtTQUNGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQUGFnZWRMaXN0UmVzdWx0LCBBWFBRdWVyeVJlcXVlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5Q3JlYXRlRHRvLFxuICBBWFBFbnRpdHlEZXRhaWxEdG8sXG4gIEFYUEVudGl0eUxpc3RJdGVtRHRvLFxuICBBWFBFbnRpdHlNb2RlbCxcbiAgQVhQRW50aXR5VXBkYXRlRHRvLFxufSBmcm9tICcuL2VudGl0eS50eXBlcyc7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2U8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgZ2V0IGRiTmFtZSgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbChlbnRpdHlOYW1lOiBzdHJpbmcsIGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSwgb3B0aW9ucz86IHtcbiAgICBtZXJnZVR5cGU/OiAnbWVyZ2UnIHwgJ3JlcGxhY2UnO1xuICAgIHVuaXF1ZUtleXM/OiBzdHJpbmdbXTtcbiAgfSk6IFByb21pc2U8VENyZWF0ZUR0b1tdPjtcblxuICBhYnN0cmFjdCBnZXRPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgdXBkYXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGluc2VydE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGVudGl0eTogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT47XG5cbiAgYWJzdHJhY3QgZ2V0QWxsKGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+O1xuXG4gIGFic3RyYWN0IHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBFbnRpdHlEYXRhUHJvdmlkZXI8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgZ2V0IGVudGl0eU5hbWUoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGluaXRpYWwoY29sbGVjdGlvbjogVENyZWF0ZUR0b1tdKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IGdldEFsbCgpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBpbnNlcnRPbmUoZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PjtcblxuICBhYnN0cmFjdCBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURhdGFQcm92aWRlckltcGw8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IGltcGxlbWVudHMgQVhQRW50aXR5RGF0YVByb3ZpZGVyPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+LFxuICAgIHB1YmxpYyBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICkgeyB9XG5cbiAgYXN5bmMgaW5pdGlhbChjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmluaXRpYWwodGhpcy5lbnRpdHlOYW1lLCBjb2xsZWN0aW9uKTtcbiAgfVxuXG4gIGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldE9uZSh0aGlzLmVudGl0eU5hbWUsIGlkKTtcbiAgfVxuXG4gIGdldEFsbCgpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0QWxsKHRoaXMuZW50aXR5TmFtZSk7XG4gIH1cblxuICBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UucXVlcnkodGhpcy5lbnRpdHlOYW1lLCByZXF1ZXN0KTtcbiAgfVxuXG4gIHVwZGF0ZU9uZShpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlT25lKHRoaXMuZW50aXR5TmFtZSwgaWQsIGtleVZhbHVlcyk7XG4gIH1cblxuICBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5kZWxldGVPbmUodGhpcy5lbnRpdHlOYW1lLCBpZCk7XG4gIH1cblxuICBpbnNlcnRPbmUoZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuaW5zZXJ0T25lKHRoaXMuZW50aXR5TmFtZSwgZW50aXR5KTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNRW50aXR5Q3J1ZFNlcnZpY2U8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gVERldGFpbER0byxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgYWJzdHJhY3QgaW5zZXJ0T25lKHJlcXVlc3Q6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+O1xuXG4gIGFic3RyYWN0IGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoaWQ6IFRLZXksIHZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj47XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIFRLZXksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBBWFBFbnRpdHlNb2RlbDxUS2V5PixcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBURGV0YWlsRHRvLFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gT21pdDxURGV0YWlsRHRvLCAnaWQnPixcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4+IHtcbiAgcHJpdmF0ZSBfc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfZW50aXR5RGF0YVByb3ZpZGVyID0gbmV3IEFYUEVudGl0eURhdGFQcm92aWRlckltcGw8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPihcbiAgICB0aGlzLl9zdG9yYWdlU2VydmljZSxcbiAgICB0aGlzLmVudGl0eU5hbWUsXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHlOYW1lOiBzdHJpbmcpIHsgfVxuXG4gIGFzeW5jIGluc2VydE9uZShyZXF1ZXN0OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5pbnNlcnRPbmUocmVxdWVzdCk7XG4gIH1cblxuICBhc3luYyBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmdldE9uZShpZCk7XG4gIH1cblxuICBhc3luYyBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmRlbGV0ZU9uZShpZCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPbmUoaWQ6IFRLZXksIHZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIudXBkYXRlT25lKGlkLCB2YWx1ZXMpO1xuICB9XG5cbiAgYXN5bmMgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0geyBza2lwOiAwLCB0YWtlOiAxMDAgfSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuZW50aXR5TmFtZS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgaWYgKGVudGl0eVJlZi5wYXJlbnRLZXkpIHtcbiAgICAgIGlmICghcmVxdWVzdC5maWx0ZXI/LmZpbHRlcnM/Lmxlbmd0aCAmJiByZXF1ZXN0LmZpbHRlcj8uZmllbGQgIT09IGVudGl0eVJlZi5wYXJlbnRLZXkpIHtcbiAgICAgICAgcmVxdWVzdC5maWx0ZXIgPSB7XG4gICAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgICAgZmllbGQ6IGVudGl0eVJlZi5wYXJlbnRLZXksXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdpc0VtcHR5JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHJlcXVlc3QpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZShmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbik6IFByb21pc2U8VExpc3RJdGVtRHRvPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHsgZmlsdGVyLCBza2lwOiAwLCB0YWtlOiAxIH0pO1xuICAgIHJldHVybiByZXN1bHQuaXRlbXNbMF07XG4gIH1cblxuICBhc3luYyBnZXRSb290cyhyZXF1ZXN0OiB7fSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBxdWVyeVJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCA9IHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwLFxuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIucXVlcnkocXVlcnlSZXF1ZXN0KTtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBhc3luYyBnZXRDaGlsZHJlbihyZXF1ZXN0OiB7IHBhcmVudElkOiBUS2V5LCBwYXJlbnRLZXk/OiBzdHJpbmcgfSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBwYXJlbnRLZXkgPSByZXF1ZXN0LnBhcmVudEtleSA/PyAncGFyZW50SWQnO1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QucGFyZW50SWQsXG4gICAgICAgIGZpZWxkOiBwYXJlbnRLZXksXG4gICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShxdWVyeVJlcXVlc3QpO1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIGdldEJ5Q2F0ZWdvcnkocmVxdWVzdDogeyBjYXRlZ29yeUlkOiBUS2V5LCBjYXRlZ29yeUtleT86IHN0cmluZyB9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QuY2F0ZWdvcnlJZCxcbiAgICAgICAgZmllbGQ6IHJlcXVlc3QuY2F0ZWdvcnlLZXkgPz8gJ2NhdGVnb3J5SWRzJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnY29udGFpbnMnLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHF1ZXJ5UmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZVNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==","/**\n * Compose entity storage middlewares into a pipeline\n */\nexport function composeEntityStorageMiddlewares(middlewares) {\n return (handler) => {\n let composed = handler;\n // Reverse order composition for proper middleware chain\n for (let i = middlewares.length - 1; i >= 0; i--) {\n const mw = middlewares[i];\n const next = composed;\n composed = (context) => mw(context, next);\n }\n return composed;\n };\n}\n/**\n * Helper function to generate unique request ID\n */\nexport function generateRequestId() {\n return `req_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUvZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnRUE7O0dBRUc7QUFDSCxNQUFNLFVBQVUsK0JBQStCLENBUTdDLFdBQTBHO0lBSTFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNqQixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFFdkIsd0RBQXdEO1FBQ3hELEtBQUssSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pELE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUM7WUFDdEIsUUFBUSxHQUFHLENBQUMsT0FBd0YsRUFBRSxFQUFFLENBQ3RHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQUXVlcnlSZXF1ZXN0LCBBWFBQYWdlZExpc3RSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5Q3JlYXRlRHRvLFxuICBBWFBFbnRpdHlEZXRhaWxEdG8sXG4gIEFYUEVudGl0eUxpc3RJdGVtRHRvLFxuICBBWFBFbnRpdHlVcGRhdGVEdG8sXG59IGZyb20gJy4uL2VudGl0eS50eXBlcyc7XG5cbi8qKlxuICogQ29udGV4dCBvYmplY3QgZm9yIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxcbiAgVEtleSA9IGFueSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IGFueSxcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBhbnksXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBhbnksXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBhbnksXG4+IHtcbiAgLyoqIE9wZXJhdGlvbiB0eXBlIGJlaW5nIHBlcmZvcm1lZCAqL1xuICBvcGVyYXRpb246ICdnZXRPbmUnIHwgJ2dldEFsbCcgfCAnaW5zZXJ0T25lJyB8ICd1cGRhdGVPbmUnIHwgJ2RlbGV0ZU9uZScgfCAncXVlcnknIHwgJ2luaXRpYWwnO1xuICBcbiAgLyoqIEVudGl0eSBuYW1lICovXG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgXG4gIC8qKiBEYXRhYmFzZSBuYW1lICovXG4gIGRiTmFtZTogc3RyaW5nO1xuICBcbiAgLyoqIElucHV0IHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24gKi9cbiAgaW5wdXQ6IHtcbiAgICBpZD86IFRLZXk7XG4gICAgZW50aXR5PzogVENyZWF0ZUR0bztcbiAgICBrZXlWYWx1ZXM/OiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+O1xuICAgIHJlcXVlc3Q/OiBBWFBRdWVyeVJlcXVlc3Q7XG4gICAgY29sbGVjdGlvbj86IFRDcmVhdGVEdG9bXTtcbiAgICBvcHRpb25zPzoge1xuICAgICAgbWVyZ2VUeXBlPzogJ21lcmdlJyB8ICdyZXBsYWNlJztcbiAgICAgIHVuaXF1ZUtleXM/OiBzdHJpbmdbXTtcbiAgICB9O1xuICB9O1xuICBcbiAgLyoqIE1ldGFkYXRhIGZvciB0aGUgb3BlcmF0aW9uICovXG4gIG1ldGFkYXRhOiB7XG4gICAgc3RhcnRUaW1lOiBudW1iZXI7XG4gICAgcmVxdWVzdElkOiBzdHJpbmc7XG4gICAgdXNlcj86IGFueTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gIH07XG59XG5cbi8qKlxuICogRW50aXR5IFN0b3JhZ2UgTWlkZGxld2FyZSBmdW5jdGlvbiB0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlPFxuICBUS2V5ID0gYW55LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gYW55LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IGFueSxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IGFueSxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IGFueSxcbiAgVFJlc3VsdCA9IGFueVxuPiA9IChcbiAgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPixcbiAgbmV4dDogKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbikgPT4gUHJvbWlzZTxUUmVzdWx0PjtcblxuLyoqXG4gKiBDb21wb3NlIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmVzIGludG8gYSBwaXBlbGluZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tcG9zZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlczxcbiAgVEtleSA9IGFueSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IGFueSxcbiAgVExpc3RJdGVtRHRvIGV4dGVuZHMgQVhQRW50aXR5TGlzdEl0ZW1EdG88VEtleT4gPSBhbnksXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBhbnksXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBhbnksXG4gIFRSZXN1bHQgPSBhbnlcbj4oXG4gIG1pZGRsZXdhcmVzOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8sIFRSZXN1bHQ+W11cbik6IChcbiAgaGFuZGxlcjogKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbikgPT4gKGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD4ge1xuICByZXR1cm4gKGhhbmRsZXIpID0+IHtcbiAgICBsZXQgY29tcG9zZWQgPSBoYW5kbGVyO1xuXG4gICAgLy8gUmV2ZXJzZSBvcmRlciBjb21wb3NpdGlvbiBmb3IgcHJvcGVyIG1pZGRsZXdhcmUgY2hhaW5cbiAgICBmb3IgKGxldCBpID0gbWlkZGxld2FyZXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IG13ID0gbWlkZGxld2FyZXNbaV07XG4gICAgICBjb25zdCBuZXh0ID0gY29tcG9zZWQ7XG4gICAgICBjb21wb3NlZCA9IChjb250ZXh0OiBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+KSA9PiBcbiAgICAgICAgbXcoY29udGV4dCwgbmV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBvc2VkO1xuICB9O1xufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBnZW5lcmF0ZSB1bmlxdWUgcmVxdWVzdCBJRFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXF1ZXN0SWQoKTogc3RyaW5nIHtcbiAgcmV0dXJuIGByZXFfJHtEYXRlLm5vdygpfV8ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xufSJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Registry for managing entity storage middlewares\n */\nexport class AXPEntityStorageRegistry {\n constructor() {\n this.globalMiddlewares = [];\n this.entitySpecificMiddlewares = new Map();\n this.operationSpecificMiddlewares = new Map();\n }\n /**\n * Add a global middleware that applies to all operations\n */\n useGlobal(middleware) {\n this.globalMiddlewares.push(middleware);\n }\n /**\n * Add middleware for specific entity\n */\n useForEntity(entityName, middleware) {\n if (!this.entitySpecificMiddlewares.has(entityName)) {\n this.entitySpecificMiddlewares.set(entityName, []);\n }\n this.entitySpecificMiddlewares.get(entityName).push(middleware);\n }\n /**\n * Add middleware for specific operation (getOne, insertOne, etc.)\n */\n useForOperation(operation, middleware) {\n if (!this.operationSpecificMiddlewares.has(operation)) {\n this.operationSpecificMiddlewares.set(operation, []);\n }\n this.operationSpecificMiddlewares.get(operation).push(middleware);\n }\n /**\n * Get all applicable middlewares for a given context\n */\n getMiddlewares(entityName, operation) {\n const middlewares = [];\n // Add global middlewares\n middlewares.push(...this.globalMiddlewares);\n // Add entity-specific middlewares\n const entityMiddlewares = this.entitySpecificMiddlewares.get(entityName);\n if (entityMiddlewares) {\n middlewares.push(...entityMiddlewares);\n }\n // Add operation-specific middlewares\n const operationMiddlewares = this.operationSpecificMiddlewares.get(operation);\n if (operationMiddlewares) {\n middlewares.push(...operationMiddlewares);\n }\n return middlewares;\n }\n /**\n * Get all global middlewares\n */\n getGlobalMiddlewares() {\n return [...this.globalMiddlewares];\n }\n /**\n * Remove middleware from global middlewares\n */\n removeGlobalMiddleware(middleware) {\n const index = this.globalMiddlewares.indexOf(middleware);\n if (index > -1) {\n this.globalMiddlewares.splice(index, 1);\n return true;\n }\n return false;\n }\n /**\n * Clear all middlewares\n */\n clear() {\n this.globalMiddlewares.length = 0;\n this.entitySpecificMiddlewares.clear();\n this.operationSpecificMiddlewares.clear();\n }\n /**\n * Get registered entity names that have specific middlewares\n */\n getRegisteredEntityNames() {\n return Array.from(this.entitySpecificMiddlewares.keys());\n }\n /**\n * Get registered operation names that have specific middlewares\n */\n getRegisteredOperations() {\n return Array.from(this.operationSpecificMiddlewares.keys());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageRegistry, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UucmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLnJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDOztHQUVHO0FBRUgsTUFBTSxPQUFPLHdCQUF3QjtJQURyQztRQUVVLHNCQUFpQixHQUFpQyxFQUFFLENBQUM7UUFDckQsOEJBQXlCLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7UUFDNUUsaUNBQTRCLEdBQUcsSUFBSSxHQUFHLEVBQXdDLENBQUM7S0E4RnhGO0lBNUZDOztPQUVHO0lBQ0gsU0FBUyxDQUFDLFVBQXNDO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFVBQWtCLEVBQUUsVUFBc0M7UUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFNBQWlCLEVBQUUsVUFBc0M7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFVBQWtCLEVBQUUsU0FBaUI7UUFDbEQsTUFBTSxXQUFXLEdBQWlDLEVBQUUsQ0FBQztRQUVyRCx5QkFBeUI7UUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRTVDLGtDQUFrQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxxQ0FBcUM7UUFDckMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlFLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQixDQUFDLFVBQXNDO1FBQzNELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7OEdBaEdVLHdCQUF3QjtrSEFBeEIsd0JBQXdCLGNBRFgsTUFBTTs7MkZBQ25CLHdCQUF3QjtrQkFEcEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZSc7XG5cbi8qKlxuICogUmVnaXN0cnkgZm9yIG1hbmFnaW5nIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmVzXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSBnbG9iYWxNaWRkbGV3YXJlczogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSA9IFtdO1xuICBwcml2YXRlIGVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMgPSBuZXcgTWFwPHN0cmluZywgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXT4oKTtcbiAgcHJpdmF0ZSBvcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzID0gbmV3IE1hcDxzdHJpbmcsIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW10+KCk7XG5cbiAgLyoqXG4gICAqIEFkZCBhIGdsb2JhbCBtaWRkbGV3YXJlIHRoYXQgYXBwbGllcyB0byBhbGwgb3BlcmF0aW9uc1xuICAgKi9cbiAgdXNlR2xvYmFsKG1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5wdXNoKG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtaWRkbGV3YXJlIGZvciBzcGVjaWZpYyBlbnRpdHlcbiAgICovXG4gIHVzZUZvckVudGl0eShlbnRpdHlOYW1lOiBzdHJpbmcsIG1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMuaGFzKGVudGl0eU5hbWUpKSB7XG4gICAgICB0aGlzLmVudGl0eVNwZWNpZmljTWlkZGxld2FyZXMuc2V0KGVudGl0eU5hbWUsIFtdKTtcbiAgICB9XG4gICAgdGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmdldChlbnRpdHlOYW1lKSEucHVzaChtaWRkbGV3YXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbWlkZGxld2FyZSBmb3Igc3BlY2lmaWMgb3BlcmF0aW9uIChnZXRPbmUsIGluc2VydE9uZSwgZXRjLilcbiAgICovXG4gIHVzZUZvck9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5oYXMob3BlcmF0aW9uKSkge1xuICAgICAgdGhpcy5vcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzLnNldChvcGVyYXRpb24sIFtdKTtcbiAgICB9XG4gICAgdGhpcy5vcGVyYXRpb25TcGVjaWZpY01pZGRsZXdhcmVzLmdldChvcGVyYXRpb24pIS5wdXNoKG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgYXBwbGljYWJsZSBtaWRkbGV3YXJlcyBmb3IgYSBnaXZlbiBjb250ZXh0XG4gICAqL1xuICBnZXRNaWRkbGV3YXJlcyhlbnRpdHlOYW1lOiBzdHJpbmcsIG9wZXJhdGlvbjogc3RyaW5nKTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSB7XG4gICAgY29uc3QgbWlkZGxld2FyZXM6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW10gPSBbXTtcblxuICAgIC8vIEFkZCBnbG9iYWwgbWlkZGxld2FyZXNcbiAgICBtaWRkbGV3YXJlcy5wdXNoKC4uLnRoaXMuZ2xvYmFsTWlkZGxld2FyZXMpO1xuXG4gICAgLy8gQWRkIGVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICAgIGNvbnN0IGVudGl0eU1pZGRsZXdhcmVzID0gdGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmdldChlbnRpdHlOYW1lKTtcbiAgICBpZiAoZW50aXR5TWlkZGxld2FyZXMpIHtcbiAgICAgIG1pZGRsZXdhcmVzLnB1c2goLi4uZW50aXR5TWlkZGxld2FyZXMpO1xuICAgIH1cblxuICAgIC8vIEFkZCBvcGVyYXRpb24tc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICBjb25zdCBvcGVyYXRpb25NaWRkbGV3YXJlcyA9IHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5nZXQob3BlcmF0aW9uKTtcbiAgICBpZiAob3BlcmF0aW9uTWlkZGxld2FyZXMpIHtcbiAgICAgIG1pZGRsZXdhcmVzLnB1c2goLi4ub3BlcmF0aW9uTWlkZGxld2FyZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGdsb2JhbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgZ2V0R2xvYmFsTWlkZGxld2FyZXMoKTogcmVhZG9ubHkgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmdsb2JhbE1pZGRsZXdhcmVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbWlkZGxld2FyZSBmcm9tIGdsb2JhbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgcmVtb3ZlR2xvYmFsTWlkZGxld2FyZShtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5pbmRleE9mKG1pZGRsZXdhcmUpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLmdsb2JhbE1pZGRsZXdhcmVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGFsbCBtaWRkbGV3YXJlc1xuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5nbG9iYWxNaWRkbGV3YXJlcy5sZW5ndGggPSAwO1xuICAgIHRoaXMuZW50aXR5U3BlY2lmaWNNaWRkbGV3YXJlcy5jbGVhcigpO1xuICAgIHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCByZWdpc3RlcmVkIGVudGl0eSBuYW1lcyB0aGF0IGhhdmUgc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICovXG4gIGdldFJlZ2lzdGVyZWRFbnRpdHlOYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5lbnRpdHlTcGVjaWZpY01pZGRsZXdhcmVzLmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHJlZ2lzdGVyZWQgb3BlcmF0aW9uIG5hbWVzIHRoYXQgaGF2ZSBzcGVjaWZpYyBtaWRkbGV3YXJlc1xuICAgKi9cbiAgZ2V0UmVnaXN0ZXJlZE9wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMub3BlcmF0aW9uU3BlY2lmaWNNaWRkbGV3YXJlcy5rZXlzKCkpO1xuICB9XG59Il19","import { Injectable, inject, EnvironmentInjector, runInInjectionContext } from '@angular/core';\nimport { composeEntityStorageMiddlewares, generateRequestId, } from './entity-storage.middleware';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\nimport { AXPEntityStorageService } from '../entity-storage-service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../entity-storage-service\";\n/**\n * Executor that wraps entity storage operations with middleware pipeline\n */\nexport class AXPEntityStorageExecutor {\n constructor(storageService) {\n this.storageService = storageService;\n this.injector = inject(EnvironmentInjector);\n this.registry = inject(AXPEntityStorageRegistry);\n }\n /**\n * Execute getOne operation with middleware pipeline\n */\n async getOne(entityName, id) {\n const context = {\n operation: 'getOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.getOne(ctx.entityName, ctx.input.id);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute getAll operation with middleware pipeline\n */\n async getAll(entityName) {\n const context = {\n operation: 'getAll',\n entityName,\n dbName: this.storageService.dbName,\n input: {},\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.getAll(ctx.entityName);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute insertOne operation with middleware pipeline\n */\n async insertOne(entityName, entity) {\n const context = {\n operation: 'insertOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { entity },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.insertOne(ctx.entityName, ctx.input.entity);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute updateOne operation with middleware pipeline\n */\n async updateOne(entityName, id, keyValues) {\n const context = {\n operation: 'updateOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id, keyValues },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.updateOne(ctx.entityName, ctx.input.id, ctx.input.keyValues);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute deleteOne operation with middleware pipeline\n */\n async deleteOne(entityName, id) {\n const context = {\n operation: 'deleteOne',\n entityName,\n dbName: this.storageService.dbName,\n input: { id },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.deleteOne(ctx.entityName, ctx.input.id);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute query operation with middleware pipeline\n */\n async query(entityName, request) {\n const context = {\n operation: 'query',\n entityName,\n dbName: this.storageService.dbName,\n input: { request },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.query(ctx.entityName, ctx.input.request);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute initial operation with middleware pipeline\n */\n async initial(entityName, collection, options) {\n const context = {\n operation: 'initial',\n entityName,\n dbName: this.storageService.dbName,\n input: { collection, options },\n metadata: {\n startTime: Date.now(),\n requestId: generateRequestId(),\n },\n };\n const handler = async (ctx) => {\n return this.storageService.initial(ctx.entityName, ctx.input.collection, ctx.input.options);\n };\n return this.executeWithMiddleware(context, handler);\n }\n /**\n * Execute operation with middleware pipeline\n */\n async executeWithMiddleware(context, handler) {\n const middlewares = this.registry.getMiddlewares(context.entityName, context.operation);\n // Wrap middlewares with injection context\n const wrappedMiddlewares = middlewares.map(middleware => {\n return (ctx, next) => runInInjectionContext(this.injector, () => middleware(ctx, next));\n });\n const composed = composeEntityStorageMiddlewares(wrappedMiddlewares)(handler);\n return composed(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, deps: [{ token: i1.AXPEntityStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageExecutor, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.AXPEntityStorageService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2UuZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUS9GLE9BQU8sRUFHTCwrQkFBK0IsRUFDL0IsaUJBQWlCLEdBQ2xCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQUVwRTs7R0FFRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFVbkMsWUFDVSxjQUErRjtRQUEvRixtQkFBYyxHQUFkLGNBQWMsQ0FBaUY7UUFKeEYsYUFBUSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUkxRCxDQUFDO0lBRUo7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsRUFBUTtRQUN2QyxNQUFNLE9BQU8sR0FBb0Y7WUFDL0YsU0FBUyxFQUFFLFFBQVE7WUFDbkIsVUFBVTtZQUNWLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07WUFDbEMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFO2dCQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNyQixTQUFTLEVBQUUsaUJBQWlCLEVBQUU7YUFDL0I7U0FDRixDQUFDO1FBRUYsTUFBTSxP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LEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsK0JBQStCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RSxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDOzhHQS9MVSx3QkFBd0I7a0hBQXhCLHdCQUF3QixjQURYLE1BQU07OzJGQUNuQix3QkFBd0I7a0JBRHBDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBFbnZpcm9ubWVudEluamVjdG9yLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFF1ZXJ5UmVxdWVzdCwgQVhQUGFnZWRMaXN0UmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUEVudGl0eUNyZWF0ZUR0byxcbiAgQVhQRW50aXR5RGV0YWlsRHRvLFxuICBBWFBFbnRpdHlMaXN0SXRlbUR0byxcbiAgQVhQRW50aXR5VXBkYXRlRHRvLFxufSBmcm9tICcuLi9lbnRpdHkudHlwZXMnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5U3RvcmFnZUNvbnRleHQsXG4gIEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlLFxuICBjb21wb3NlRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVzLFxuICBnZW5lcmF0ZVJlcXVlc3RJZCxcbn0gZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5taWRkbGV3YXJlJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS1zZXJ2aWNlJztcblxuLyoqXG4gKiBFeGVjdXRvciB0aGF0IHdyYXBzIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnMgd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yPFxuICBUS2V5ID0gYW55LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gYW55LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IGFueSxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IGFueSxcbiAgVFVwZGF0ZUR0byBleHRlbmRzIEFYUEVudGl0eVVwZGF0ZUR0bzxUS2V5PiA9IGFueSxcbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEVudmlyb25tZW50SW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5ID0gaW5qZWN0KEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQVhQRW50aXR5U3RvcmFnZVNlcnZpY2U8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPlxuICApIHt9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgZ2V0T25lIG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIGdldE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2dldE9uZScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGlkIH0sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgICAgIHJlcXVlc3RJZDogZ2VuZXJhdGVSZXF1ZXN0SWQoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoY3R4OiB0eXBlb2YgY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0T25lKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuaWQhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgZ2V0QWxsIG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIGdldEFsbChlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2dldEFsbCcsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7fSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBbGwoY3R4LmVudGl0eU5hbWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlV2l0aE1pZGRsZXdhcmUoY29udGV4dCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBpbnNlcnRPbmUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgYXN5bmMgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgY29uc3QgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiA9IHtcbiAgICAgIG9wZXJhdGlvbjogJ2luc2VydE9uZScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGVudGl0eSB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgc3RhcnRUaW1lOiBEYXRlLm5vdygpLFxuICAgICAgICByZXF1ZXN0SWQ6IGdlbmVyYXRlUmVxdWVzdElkKCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGN0eDogdHlwZW9mIGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmluc2VydE9uZShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LmVudGl0eSEpO1xuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5leGVjdXRlV2l0aE1pZGRsZXdhcmUoY29udGV4dCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB1cGRhdGVPbmUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICd1cGRhdGVPbmUnLFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIGRiTmFtZTogdGhpcy5zdG9yYWdlU2VydmljZS5kYk5hbWUsXG4gICAgICBpbnB1dDogeyBpZCwga2V5VmFsdWVzIH0sXG4gICAgICBtZXRhZGF0YToge1xuICAgICAgICBzdGFydFRpbWU6IERhdGUubm93KCksXG4gICAgICAgIHJlcXVlc3RJZDogZ2VuZXJhdGVSZXF1ZXN0SWQoKSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoY3R4OiB0eXBlb2YgY29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlT25lKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuaWQhLCBjdHguaW5wdXQua2V5VmFsdWVzISk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVXaXRoTWlkZGxld2FyZShjb250ZXh0LCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGRlbGV0ZU9uZSBvcGVyYXRpb24gd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gICAqL1xuICBhc3luYyBkZWxldGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICdkZWxldGVPbmUnLFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIGRiTmFtZTogdGhpcy5zdG9yYWdlU2VydmljZS5kYk5hbWUsXG4gICAgICBpbnB1dDogeyBpZCB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgc3RhcnRUaW1lOiBEYXRlLm5vdygpLFxuICAgICAgICByZXF1ZXN0SWQ6IGdlbmVyYXRlUmVxdWVzdElkKCksXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGN0eDogdHlwZW9mIGNvbnRleHQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRlbGV0ZU9uZShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LmlkISk7XG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmV4ZWN1dGVXaXRoTWlkZGxld2FyZShjb250ZXh0LCBoYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHF1ZXJ5IG9wZXJhdGlvbiB3aXRoIG1pZGRsZXdhcmUgcGlwZWxpbmVcbiAgICovXG4gIGFzeW5jIHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4gPSB7XG4gICAgICBvcGVyYXRpb246ICdxdWVyeScsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IHJlcXVlc3QgfSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5xdWVyeShjdHguZW50aXR5TmFtZSwgY3R4LmlucHV0LnJlcXVlc3QhKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgaW5pdGlhbCBvcGVyYXRpb24gd2l0aCBtaWRkbGV3YXJlIHBpcGVsaW5lXG4gICAqL1xuICBhc3luYyBpbml0aWFsKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10sXG4gICAgb3B0aW9ucz86IHsgbWVyZ2VUeXBlPzogJ21lcmdlJyB8ICdyZXBsYWNlJzsgdW5pcXVlS2V5cz86IHN0cmluZ1tdIH1cbiAgKTogUHJvbWlzZTxUQ3JlYXRlRHRvW10+IHtcbiAgICBjb25zdCBjb250ZXh0OiBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+ID0ge1xuICAgICAgb3BlcmF0aW9uOiAnaW5pdGlhbCcsXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgZGJOYW1lOiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRiTmFtZSxcbiAgICAgIGlucHV0OiB7IGNvbGxlY3Rpb24sIG9wdGlvbnMgfSxcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIHN0YXJ0VGltZTogRGF0ZS5ub3coKSxcbiAgICAgICAgcmVxdWVzdElkOiBnZW5lcmF0ZVJlcXVlc3RJZCgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlciA9IGFzeW5jIChjdHg6IHR5cGVvZiBjb250ZXh0KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5pbml0aWFsKGN0eC5lbnRpdHlOYW1lLCBjdHguaW5wdXQuY29sbGVjdGlvbiEsIGN0eC5pbnB1dC5vcHRpb25zKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVdpdGhNaWRkbGV3YXJlKGNvbnRleHQsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgb3BlcmF0aW9uIHdpdGggbWlkZGxld2FyZSBwaXBlbGluZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlV2l0aE1pZGRsZXdhcmU8VFJlc3VsdD4oXG4gICAgY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPixcbiAgICBoYW5kbGVyOiAoY29udGV4dDogQVhQRW50aXR5U3RvcmFnZUNvbnRleHQ8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPikgPT4gUHJvbWlzZTxUUmVzdWx0PlxuICApOiBQcm9taXNlPFRSZXN1bHQ+IHtcbiAgICBjb25zdCBtaWRkbGV3YXJlcyA9IHRoaXMucmVnaXN0cnkuZ2V0TWlkZGxld2FyZXMoY29udGV4dC5lbnRpdHlOYW1lLCBjb250ZXh0Lm9wZXJhdGlvbik7XG5cbiAgICAvLyBXcmFwIG1pZGRsZXdhcmVzIHdpdGggaW5qZWN0aW9uIGNvbnRleHRcbiAgICBjb25zdCB3cmFwcGVkTWlkZGxld2FyZXMgPSBtaWRkbGV3YXJlcy5tYXAobWlkZGxld2FyZSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBjdHg6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4sXG4gICAgICAgIG5leHQ6IChjdHg6IEFYUEVudGl0eVN0b3JhZ2VDb250ZXh0PFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4pID0+IFByb21pc2U8VFJlc3VsdD5cbiAgICAgICkgPT4gcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IG1pZGRsZXdhcmUoY3R4LCBuZXh0KSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBjb21wb3NlZCA9IGNvbXBvc2VFbnRpdHlTdG9yYWdlTWlkZGxld2FyZXMod3JhcHBlZE1pZGRsZXdhcmVzKShoYW5kbGVyKTtcbiAgICByZXR1cm4gY29tcG9zZWQoY29udGV4dCk7XG4gIH1cbn0iXX0=","import { Injectable } from '@angular/core';\nimport { AXPEntityStorageService } from '../entity-storage-service';\nimport { AXPEntityStorageExecutor } from './entity-storage.executor';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../entity-storage-service\";\nimport * as i2 from \"./entity-storage.registry\";\n/**\n * Entity Storage Service with middleware support\n *\n * This service wraps the original AXPEntityStorageService and adds middleware pipeline support.\n * It delegates all operations to the middleware executor which applies the middleware chain.\n */\nexport class AXPEntityStorageWithMiddlewareService extends AXPEntityStorageService {\n constructor(originalStorageService, registry) {\n super();\n this.originalStorageService = originalStorageService;\n this.registry = registry;\n this.executor = new AXPEntityStorageExecutor(originalStorageService);\n }\n get dbName() {\n return this.originalStorageService.dbName;\n }\n // Middleware Management Methods\n /**\n * Add a global middleware that applies to all operations\n */\n useGlobal(middleware) {\n this.registry.useGlobal(middleware);\n }\n /**\n * Add middleware for specific entity\n */\n useForEntity(entityName, middleware) {\n this.registry.useForEntity(entityName, middleware);\n }\n /**\n * Add middleware for specific operation\n */\n useForOperation(operation, middleware) {\n this.registry.useForOperation(operation, middleware);\n }\n // Storage Operations with Middleware Pipeline\n async initial(entityName, collection, options) {\n return this.executor.initial(entityName, collection, options);\n }\n async getOne(entityName, id) {\n return this.executor.getOne(entityName, id);\n }\n async updateOne(entityName, id, keyValues) {\n return this.executor.updateOne(entityName, id, keyValues);\n }\n async deleteOne(entityName, id) {\n return this.executor.deleteOne(entityName, id);\n }\n async insertOne(entityName, entity) {\n return this.executor.insertOne(entityName, entity);\n }\n async getAll(entityName) {\n return this.executor.getAll(entityName);\n }\n async query(entityName, request) {\n return this.executor.query(entityName, request);\n }\n // Direct access to original service (bypass middleware)\n get originalService() {\n return this.originalStorageService;\n }\n // Access to registry for advanced middleware management\n get middlewareRegistry() {\n return this.registry;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService, deps: [{ token: i1.AXPEntityStorageService }, { token: i2.AXPEntityStorageRegistry }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityStorageWithMiddlewareService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.AXPEntityStorageService }, { type: i2.AXPEntityStorageRegistry }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utd2l0aC1taWRkbGV3YXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2VudGl0eS1zdG9yYWdlLXdpdGgtbWlkZGxld2FyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFHckU7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8scUNBTVgsU0FBUSx1QkFBK0U7SUFJdkYsWUFDVSxzQkFBdUcsRUFDdkcsUUFBa0M7UUFFMUMsS0FBSyxFQUFFLENBQUM7UUFIQSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQWlGO1FBQ3ZHLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBRzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQUVELGdDQUFnQztJQUVoQzs7T0FFRztJQUNILFNBQVMsQ0FBQyxVQUFzQztRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsVUFBa0IsRUFBRSxVQUFzQztRQUNyRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZSxDQUFDLFNBQWlCLEVBQUUsVUFBc0M7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCw4Q0FBOEM7SUFFOUMsS0FBSyxDQUFDLE9BQU8sQ0FDWCxVQUFrQixFQUNsQixVQUF3QixFQUN4QixPQUFvRTtRQUVwRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBa0IsRUFBRSxFQUFRO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFVBQWtCLEVBQUUsRUFBUSxFQUFFLFNBQTBDO1FBQ3RGLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFrQixFQUFFLEVBQVE7UUFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBa0IsRUFBRSxNQUFrQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQWtCLEVBQUUsT0FBd0I7UUFDdEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs4R0F2RlUscUNBQXFDO2tIQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBRGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlcXVlc3QsIEFYUFBhZ2VkTGlzdFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHlDcmVhdGVEdG8sXG4gIEFYUEVudGl0eURldGFpbER0byxcbiAgQVhQRW50aXR5TGlzdEl0ZW1EdG8sXG4gIEFYUEVudGl0eVVwZGF0ZUR0byxcbn0gZnJvbSAnLi4vZW50aXR5LnR5cGVzJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXN0b3JhZ2Utc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlRXhlY3V0b3IgfSBmcm9tICcuL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UucmVnaXN0cnknO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgfSBmcm9tICcuL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuXG4vKipcbiAqIEVudGl0eSBTdG9yYWdlIFNlcnZpY2Ugd2l0aCBtaWRkbGV3YXJlIHN1cHBvcnRcbiAqIFxuICogVGhpcyBzZXJ2aWNlIHdyYXBzIHRoZSBvcmlnaW5hbCBBWFBFbnRpdHlTdG9yYWdlU2VydmljZSBhbmQgYWRkcyBtaWRkbGV3YXJlIHBpcGVsaW5lIHN1cHBvcnQuXG4gKiBJdCBkZWxlZ2F0ZXMgYWxsIG9wZXJhdGlvbnMgdG8gdGhlIG1pZGRsZXdhcmUgZXhlY3V0b3Igd2hpY2ggYXBwbGllcyB0aGUgbWlkZGxld2FyZSBjaGFpbi5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVN0b3JhZ2VXaXRoTWlkZGxld2FyZVNlcnZpY2U8XG4gIFRLZXkgPSBhbnksXG4gIFREZXRhaWxEdG8gZXh0ZW5kcyBBWFBFbnRpdHlEZXRhaWxEdG88VEtleT4gPSBhbnksXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gYW55LFxuICBUQ3JlYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5Q3JlYXRlRHRvID0gYW55LFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gYW55LFxuPiBleHRlbmRzIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4ge1xuICBcbiAgcHJpdmF0ZSBleGVjdXRvcjogQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvcmlnaW5hbFN0b3JhZ2VTZXJ2aWNlOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+LFxuICAgIHByaXZhdGUgcmVnaXN0cnk6IEFYUEVudGl0eVN0b3JhZ2VSZWdpc3RyeVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZXhlY3V0b3IgPSBuZXcgQVhQRW50aXR5U3RvcmFnZUV4ZWN1dG9yKG9yaWdpbmFsU3RvcmFnZVNlcnZpY2UpO1xuICB9XG5cbiAgZ2V0IGRiTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9yaWdpbmFsU3RvcmFnZVNlcnZpY2UuZGJOYW1lO1xuICB9XG5cbiAgLy8gTWlkZGxld2FyZSBNYW5hZ2VtZW50IE1ldGhvZHNcblxuICAvKipcbiAgICogQWRkIGEgZ2xvYmFsIG1pZGRsZXdhcmUgdGhhdCBhcHBsaWVzIHRvIGFsbCBvcGVyYXRpb25zXG4gICAqL1xuICB1c2VHbG9iYWwobWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnVzZUdsb2JhbChtaWRkbGV3YXJlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbWlkZGxld2FyZSBmb3Igc3BlY2lmaWMgZW50aXR5XG4gICAqL1xuICB1c2VGb3JFbnRpdHkoZW50aXR5TmFtZTogc3RyaW5nLCBtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0cnkudXNlRm9yRW50aXR5KGVudGl0eU5hbWUsIG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBtaWRkbGV3YXJlIGZvciBzcGVjaWZpYyBvcGVyYXRpb25cbiAgICovXG4gIHVzZUZvck9wZXJhdGlvbihvcGVyYXRpb246IHN0cmluZywgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdHJ5LnVzZUZvck9wZXJhdGlvbihvcGVyYXRpb24sIG1pZGRsZXdhcmUpO1xuICB9XG5cbiAgLy8gU3RvcmFnZSBPcGVyYXRpb25zIHdpdGggTWlkZGxld2FyZSBQaXBlbGluZVxuXG4gIGFzeW5jIGluaXRpYWwoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSxcbiAgICBvcHRpb25zPzogeyBtZXJnZVR5cGU/OiAnbWVyZ2UnIHwgJ3JlcGxhY2UnOyB1bmlxdWVLZXlzPzogc3RyaW5nW10gfVxuICApOiBQcm9taXNlPFRDcmVhdGVEdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmluaXRpYWwoZW50aXR5TmFtZSwgY29sbGVjdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBnZXRPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmdldE9uZShlbnRpdHlOYW1lLCBpZCk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0b3IudXBkYXRlT25lKGVudGl0eU5hbWUsIGlkLCBrZXlWYWx1ZXMpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlT25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5leGVjdXRvci5kZWxldGVPbmUoZW50aXR5TmFtZSwgaWQpO1xuICB9XG5cbiAgYXN5bmMgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PiB7XG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0b3IuaW5zZXJ0T25lKGVudGl0eU5hbWUsIGVudGl0eSk7XG4gIH1cblxuICBhc3luYyBnZXRBbGwoZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLmdldEFsbChlbnRpdHlOYW1lKTtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KGVudGl0eU5hbWU6IHN0cmluZywgcmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIHJldHVybiB0aGlzLmV4ZWN1dG9yLnF1ZXJ5KGVudGl0eU5hbWUsIHJlcXVlc3QpO1xuICB9XG5cbiAgLy8gRGlyZWN0IGFjY2VzcyB0byBvcmlnaW5hbCBzZXJ2aWNlIChieXBhc3MgbWlkZGxld2FyZSlcbiAgZ2V0IG9yaWdpbmFsU2VydmljZSgpOiBBWFBFbnRpdHlTdG9yYWdlU2VydmljZTxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5vcmlnaW5hbFN0b3JhZ2VTZXJ2aWNlO1xuICB9XG5cbiAgLy8gQWNjZXNzIHRvIHJlZ2lzdHJ5IGZvciBhZHZhbmNlZCBtaWRkbGV3YXJlIG1hbmFnZW1lbnRcbiAgZ2V0IG1pZGRsZXdhcmVSZWdpc3RyeSgpOiBBWFBFbnRpdHlTdG9yYWdlUmVnaXN0cnkge1xuICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5O1xuICB9XG59Il19","import { inject, InjectionToken, makeEnvironmentProviders, } from '@angular/core';\nimport { AXPEntityStorageRegistry } from './entity-storage.registry';\n/**\n * Injection token for entity storage middleware setup\n */\nexport const AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP = new InjectionToken('AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP');\n/**\n * Injection token for entity storage middleware extensions\n */\nexport const AXP_ENTITY_STORAGE_EXTENSION = new InjectionToken('AXP_ENTITY_STORAGE_EXTENSION');\n/**\n * Provide entity storage middleware configuration\n */\nexport function provideEntityStorageMiddleware(config) {\n const providers = [];\n // Register extension middlewares\n if (config.extensions) {\n providers.push(...config.extensions.map(ext => ({\n provide: AXP_ENTITY_STORAGE_EXTENSION,\n useValue: ext,\n multi: true,\n })));\n }\n // Main setup provider\n providers.push({\n provide: AXP_ENTITY_STORAGE_MIDDLEWARE_SETUP,\n useFactory: () => {\n const registry = inject(AXPEntityStorageRegistry);\n // Register global middlewares\n if (config.global) {\n for (const middleware of config.global) {\n registry.useGlobal(middleware);\n }\n }\n // Register entity-specific middlewares\n if (config.entities) {\n for (const [entityName, middlewares] of Object.entries(config.entities)) {\n for (const middleware of middlewares) {\n registry.useForEntity(entityName, middleware);\n }\n }\n }\n // Register operation-specific middlewares\n if (config.operations) {\n for (const [operation, middlewares] of Object.entries(config.operations)) {\n for (const middleware of middlewares) {\n registry.useForOperation(operation, middleware);\n }\n }\n }\n return true;\n },\n multi: true,\n });\n return makeEnvironmentProviders(providers);\n}\n/**\n * Simplified provider for global middleware only\n */\nexport function provideGlobalEntityStorageMiddleware(middlewares) {\n return provideEntityStorageMiddleware({ global: middlewares });\n}\n/**\n * Provider for entity-specific middlewares\n */\nexport function provideEntitySpecificMiddleware(entityName, middlewares) {\n return provideEntityStorageMiddleware({\n entities: { [entityName]: middlewares }\n });\n}\n/**\n * Provider for operation-specific middlewares\n */\nexport function provideOperationSpecificMiddleware(operation, middlewares) {\n return provideEntityStorageMiddleware({\n operations: { [operation]: middlewares }\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXN0b3JhZ2UtbWlkZGxld2FyZS9wcm92aWRlLWVudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLE1BQU0sRUFDTixjQUFjLEVBQ2Qsd0JBQXdCLEdBRXpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3JFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxjQUFjLENBQU8scUNBQXFDLENBQUMsQ0FBQztBQUVuSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksY0FBYyxDQUczRCw4QkFBOEIsQ0FBQyxDQUFDO0FBMEJuQzs7R0FFRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsTUFBd0M7SUFFeEMsTUFBTSxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBRWpDLGlDQUFpQztJQUNqQyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixTQUFTLENBQUMsSUFBSSxDQUNaLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sRUFBRSw0QkFBNEI7WUFDckMsUUFBUSxFQUFFLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDYixPQUFPLEVBQUUsbUNBQW1DO1FBQzVDLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUVsRCw4QkFBOEI7WUFDOUIsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssTUFBTSxVQUFVLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN2QyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNqQyxDQUFDO1lBQ0gsQ0FBQztZQUVELHVDQUF1QztZQUN2QyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQ3hFLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7d0JBQ3JDLFFBQVEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUNoRCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1lBRUQsMENBQTBDO1lBQzFDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0QixLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDekUsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDckMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQ2xELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUMsQ0FBQztJQUVILE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxXQUF5QztJQUV6QyxPQUFPLDhCQUE4QixDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLCtCQUErQixDQUM3QyxVQUFrQixFQUNsQixXQUF5QztJQUV6QyxPQUFPLDhCQUE4QixDQUFDO1FBQ3BDLFFBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFO0tBQ3hDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsU0FBaUIsRUFDakIsV0FBeUM7SUFFekMsT0FBTyw4QkFBOEIsQ0FBQztRQUNwQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsRUFBRTtLQUN6QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgUHJvdmlkZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5IH0gZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5yZWdpc3RyeSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSB9IGZyb20gJy4vZW50aXR5LXN0b3JhZ2UubWlkZGxld2FyZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciBlbnRpdHkgc3RvcmFnZSBtaWRkbGV3YXJlIHNldHVwXG4gKi9cbmV4cG9ydCBjb25zdCBBWFBfRU5USVRZX1NUT1JBR0VfTUlERExFV0FSRV9TRVRVUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjx2b2lkPignQVhQX0VOVElUWV9TVE9SQUdFX01JRERMRVdBUkVfU0VUVVAnKTtcblxuLyoqXG4gKiBJbmplY3Rpb24gdG9rZW4gZm9yIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmUgZXh0ZW5zaW9uc1xuICovXG5leHBvcnQgY29uc3QgQVhQX0VOVElUWV9TVE9SQUdFX0VYVEVOU0lPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjx7XG4gIHRhcmdldDogc3RyaW5nIHwgUmVnRXhwO1xuICBtaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZTtcbn0+KCdBWFBfRU5USVRZX1NUT1JBR0VfRVhURU5TSU9OJyk7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgZW50aXR5LXNwZWNpZmljIG1pZGRsZXdhcmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZUNvbmZpZyB7XG4gIC8qKiBHbG9iYWwgbWlkZGxld2FyZXMgdGhhdCBhcHBseSB0byBhbGwgb3BlcmF0aW9ucyAqL1xuICBnbG9iYWw/OiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdO1xuICBcbiAgLyoqIEVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlcyAqL1xuICBlbnRpdGllcz86IHtcbiAgICBbZW50aXR5TmFtZTogc3RyaW5nXTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXTtcbiAgfTtcbiAgXG4gIC8qKiBPcGVyYXRpb24tc3BlY2lmaWMgbWlkZGxld2FyZXMgKi9cbiAgb3BlcmF0aW9ucz86IHtcbiAgICBbb3BlcmF0aW9uOiBzdHJpbmddOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdO1xuICB9O1xuICBcbiAgLyoqIEFkdmFuY2VkIG1pZGRsZXdhcmUgY29uZmlndXJhdGlvbnMgd2l0aCB0YXJnZXRzICovXG4gIGV4dGVuc2lvbnM/OiB7XG4gICAgdGFyZ2V0OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgbWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmU7XG4gIH1bXTtcbn1cblxuLyoqXG4gKiBQcm92aWRlIGVudGl0eSBzdG9yYWdlIG1pZGRsZXdhcmUgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKFxuICBjb25maWc6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlQ29uZmlnXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIGNvbnN0IHByb3ZpZGVyczogUHJvdmlkZXJbXSA9IFtdO1xuXG4gIC8vIFJlZ2lzdGVyIGV4dGVuc2lvbiBtaWRkbGV3YXJlc1xuICBpZiAoY29uZmlnLmV4dGVuc2lvbnMpIHtcbiAgICBwcm92aWRlcnMucHVzaChcbiAgICAgIC4uLmNvbmZpZy5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgcHJvdmlkZTogQVhQX0VOVElUWV9TVE9SQUdFX0VYVEVOU0lPTixcbiAgICAgICAgdXNlVmFsdWU6IGV4dCxcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB9KSlcbiAgICApO1xuICB9XG5cbiAgLy8gTWFpbiBzZXR1cCBwcm92aWRlclxuICBwcm92aWRlcnMucHVzaCh7XG4gICAgcHJvdmlkZTogQVhQX0VOVElUWV9TVE9SQUdFX01JRERMRVdBUkVfU0VUVVAsXG4gICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgcmVnaXN0cnkgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVJlZ2lzdHJ5KTtcblxuICAgICAgLy8gUmVnaXN0ZXIgZ2xvYmFsIG1pZGRsZXdhcmVzXG4gICAgICBpZiAoY29uZmlnLmdsb2JhbCkge1xuICAgICAgICBmb3IgKGNvbnN0IG1pZGRsZXdhcmUgb2YgY29uZmlnLmdsb2JhbCkge1xuICAgICAgICAgIHJlZ2lzdHJ5LnVzZUdsb2JhbChtaWRkbGV3YXJlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBSZWdpc3RlciBlbnRpdHktc3BlY2lmaWMgbWlkZGxld2FyZXNcbiAgICAgIGlmIChjb25maWcuZW50aXRpZXMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbZW50aXR5TmFtZSwgbWlkZGxld2FyZXNdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5lbnRpdGllcykpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG1pZGRsZXdhcmUgb2YgbWlkZGxld2FyZXMpIHtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnVzZUZvckVudGl0eShlbnRpdHlOYW1lLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gUmVnaXN0ZXIgb3BlcmF0aW9uLXNwZWNpZmljIG1pZGRsZXdhcmVzXG4gICAgICBpZiAoY29uZmlnLm9wZXJhdGlvbnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBbb3BlcmF0aW9uLCBtaWRkbGV3YXJlc10gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLm9wZXJhdGlvbnMpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtaWRkbGV3YXJlIG9mIG1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgICByZWdpc3RyeS51c2VGb3JPcGVyYXRpb24ob3BlcmF0aW9uLCBtaWRkbGV3YXJlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfSk7XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhwcm92aWRlcnMpO1xufVxuXG4vKipcbiAqIFNpbXBsaWZpZWQgcHJvdmlkZXIgZm9yIGdsb2JhbCBtaWRkbGV3YXJlIG9ubHlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVHbG9iYWxFbnRpdHlTdG9yYWdlTWlkZGxld2FyZShcbiAgbWlkZGxld2FyZXM6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIHByb3ZpZGVFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSh7IGdsb2JhbDogbWlkZGxld2FyZXMgfSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIGVudGl0eS1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVNwZWNpZmljTWlkZGxld2FyZShcbiAgZW50aXR5TmFtZTogc3RyaW5nLFxuICBtaWRkbGV3YXJlczogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmVbXVxuKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gcHJvdmlkZUVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlKHtcbiAgICBlbnRpdGllczogeyBbZW50aXR5TmFtZV06IG1pZGRsZXdhcmVzIH1cbiAgfSk7XG59XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIG9wZXJhdGlvbi1zcGVjaWZpYyBtaWRkbGV3YXJlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9wZXJhdGlvblNwZWNpZmljTWlkZGxld2FyZShcbiAgb3BlcmF0aW9uOiBzdHJpbmcsXG4gIG1pZGRsZXdhcmVzOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZVtdXG4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBwcm92aWRlRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUoe1xuICAgIG9wZXJhdGlvbnM6IHsgW29wZXJhdGlvbl06IG1pZGRsZXdhcmVzIH1cbiAgfSk7XG59Il19","/**\n * Logging middleware for entity storage operations\n */\nexport const loggingMiddleware = async (context, next) => {\n const startTime = Date.now();\n console.group(`🔄 Entity Storage Operation: ${context.operation}`);\n console.log('📋 Entity:', context.entityName);\n console.log('🗄️ Database:', context.dbName);\n console.log('📨 Input:', context.input);\n console.log('🆔 Request ID:', context.metadata.requestId);\n try {\n const result = await next(context);\n const duration = Date.now() - startTime;\n console.log('✅ Success');\n console.log('⏱️ Duration:', `${duration}ms`);\n console.log('📤 Result:', result);\n console.groupEnd();\n return result;\n }\n catch (error) {\n const duration = Date.now() - startTime;\n console.error('❌ Error');\n console.error('⏱️ Duration:', `${duration}ms`);\n console.error('💥 Error:', error);\n console.groupEnd();\n throw error;\n }\n};\n/**\n * Performance monitoring middleware\n */\nexport const performanceMiddleware = async (context, next) => {\n const startTime = performance.now();\n try {\n const result = await next(context);\n const duration = performance.now() - startTime;\n // Log slow operations (> 1000ms)\n if (duration > 1000) {\n console.warn(`⚠️ Slow operation detected: ${context.operation} on ${context.entityName} took ${duration.toFixed(2)}ms`);\n }\n // Add performance metrics to context\n context.metadata['performanceMetrics'] = {\n duration,\n operation: context.operation,\n entityName: context.entityName,\n };\n return result;\n }\n catch (error) {\n const duration = performance.now() - startTime;\n console.error(`❌ Failed operation: ${context.operation} on ${context.entityName} failed after ${duration.toFixed(2)}ms`);\n throw error;\n }\n};\n/**\n * Error handling middleware with retry logic\n */\nexport const errorHandlingMiddleware = async (context, next) => {\n const maxRetries = 3;\n let attempt = 0;\n while (attempt < maxRetries) {\n try {\n const result = await next(context);\n if (attempt > 0) {\n console.log(`✅ Operation succeeded on retry ${attempt}/${maxRetries}`);\n }\n return result;\n }\n catch (error) {\n attempt++;\n // Don't retry for certain operations or error types\n if (context.operation === 'deleteOne' ||\n error?.code === 'VALIDATION_ERROR' ||\n attempt >= maxRetries) {\n console.error(`❌ Operation failed after ${attempt} attempts:`, error);\n throw error;\n }\n console.warn(`⚠️ Attempt ${attempt}/${maxRetries} failed, retrying...`, error.message);\n // Wait before retry (exponential backoff)\n await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 1000));\n }\n }\n throw new Error('Max retries exceeded');\n};\n/**\n * Validation middleware\n */\nexport const validationMiddleware = async (context, next) => {\n // Validate input based on operation\n switch (context.operation) {\n case 'insertOne':\n if (!context.input.entity) {\n throw new Error('Entity is required for insertOne operation');\n }\n break;\n case 'updateOne':\n if (!context.input.id) {\n throw new Error('ID is required for updateOne operation');\n }\n if (!context.input.keyValues) {\n throw new Error('Key values are required for updateOne operation');\n }\n break;\n case 'deleteOne':\n case 'getOne':\n if (!context.input.id) {\n throw new Error(`ID is required for ${context.operation} operation`);\n }\n break;\n case 'query':\n if (!context.input.request) {\n throw new Error('Request is required for query operation');\n }\n break;\n case 'initial':\n if (!context.input.collection || !Array.isArray(context.input.collection)) {\n throw new Error('Collection array is required for initial operation');\n }\n break;\n }\n return next(context);\n};\n/**\n * Caching middleware (simple in-memory cache)\n */\nexport const cachingMiddleware = (() => {\n const cache = new Map();\n const DEFAULT_TTL = 5 * 60 * 1000; // 5 minutes\n return async (context, next) => {\n // Only cache read operations\n if (!['getOne', 'getAll', 'query'].includes(context.operation)) {\n // Clear cache for write operations on the same entity\n const keysToDelete = Array.from(cache.keys()).filter(key => key.includes(`${context.entityName}:`));\n keysToDelete.forEach(key => cache.delete(key));\n return next(context);\n }\n // Generate cache key\n const cacheKey = `${context.entityName}:${context.operation}:${JSON.stringify(context.input)}`;\n // Check cache\n const cached = cache.get(cacheKey);\n if (cached && Date.now() - cached.timestamp < cached.ttl) {\n console.log(`💾 Cache hit for ${cacheKey}`);\n return cached.data;\n }\n // Execute and cache result\n const result = await next(context);\n cache.set(cacheKey, {\n data: result,\n timestamp: Date.now(),\n ttl: DEFAULT_TTL,\n });\n console.log(`💾 Cached result for ${cacheKey}`);\n return result;\n };\n})();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2luZy5taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LXN0b3JhZ2UtbWlkZGxld2FyZS9taWRkbGV3YXJlcy9sb2dnaW5nLm1pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBK0IsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNuRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTFELElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUM7UUFFeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxHQUFHLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDN0MsT0FBTyxD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QUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSwgQVhQRW50aXR5U3RvcmFnZUNvbnRleHQgfSBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS5taWRkbGV3YXJlJztcblxuLyoqXG4gKiBMb2dnaW5nIG1pZGRsZXdhcmUgZm9yIGVudGl0eSBzdG9yYWdlIG9wZXJhdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvZ2dpbmdNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9IGFzeW5jIChjb250ZXh0LCBuZXh0KSA9PiB7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gIFxuICBjb25zb2xlLmdyb3VwKGDwn5SEIEVudGl0eSBTdG9yYWdlIE9wZXJhdGlvbjogJHtjb250ZXh0Lm9wZXJhdGlvbn1gKTtcbiAgY29uc29sZS5sb2coJ/Cfk4sgRW50aXR5OicsIGNvbnRleHQuZW50aXR5TmFtZSk7XG4gIGNvbnNvbGUubG9nKCfwn5eE77iPIERhdGFiYXNlOicsIGNvbnRleHQuZGJOYW1lKTtcbiAgY29uc29sZS5sb2coJ/Cfk6ggSW5wdXQ6JywgY29udGV4dC5pbnB1dCk7XG4gIGNvbnNvbGUubG9nKCfwn4aUIFJlcXVlc3QgSUQ6JywgY29udGV4dC5tZXRhZGF0YS5yZXF1ZXN0SWQpO1xuICBcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcbiAgICBcbiAgICBjb25zb2xlLmxvZygn4pyFIFN1Y2Nlc3MnKTtcbiAgICBjb25zb2xlLmxvZygn4o+x77iPIER1cmF0aW9uOicsIGAke2R1cmF0aW9ufW1zYCk7XG4gICAgY29uc29sZS5sb2coJ/Cfk6QgUmVzdWx0OicsIHJlc3VsdCk7XG4gICAgY29uc29sZS5ncm91cEVuZCgpO1xuICAgIFxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIFxuICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBFcnJvcicpO1xuICAgIGNvbnNvbGUuZXJyb3IoJ+KPse+4jyBEdXJhdGlvbjonLCBgJHtkdXJhdGlvbn1tc2ApO1xuICAgIGNvbnNvbGUuZXJyb3IoJ/CfkqUgRXJyb3I6JywgZXJyb3IpO1xuICAgIGNvbnNvbGUuZ3JvdXBFbmQoKTtcbiAgICBcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxufTtcblxuLyoqXG4gKiBQZXJmb3JtYW5jZSBtb25pdG9yaW5nIG1pZGRsZXdhcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHBlcmZvcm1hbmNlTWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgPSBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICBjb25zdCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChjb250ZXh0KTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIFxuICAgIC8vIExvZyBzbG93IG9wZXJhdGlvbnMgKD4gMTAwMG1zKVxuICAgIGlmIChkdXJhdGlvbiA+IDEwMDApIHtcbiAgICAgIGNvbnNvbGUud2Fybihg4pqg77iPIFNsb3cgb3BlcmF0aW9uIGRldGVjdGVkOiAke2NvbnRleHQub3BlcmF0aW9ufSBvbiAke2NvbnRleHQuZW50aXR5TmFtZX0gdG9vayAke2R1cmF0aW9uLnRvRml4ZWQoMil9bXNgKTtcbiAgICB9XG4gICAgXG4gICAgLy8gQWRkIHBlcmZvcm1hbmNlIG1ldHJpY3MgdG8gY29udGV4dFxuICAgIGNvbnRleHQubWV0YWRhdGFbJ3BlcmZvcm1hbmNlTWV0cmljcyddID0ge1xuICAgICAgZHVyYXRpb24sXG4gICAgICBvcGVyYXRpb246IGNvbnRleHQub3BlcmF0aW9uLFxuICAgICAgZW50aXR5TmFtZTogY29udGV4dC5lbnRpdHlOYW1lLFxuICAgIH07XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRUaW1lO1xuICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBGYWlsZWQgb3BlcmF0aW9uOiAke2NvbnRleHQub3BlcmF0aW9ufSBvbiAke2NvbnRleHQuZW50aXR5TmFtZX0gZmFpbGVkIGFmdGVyICR7ZHVyYXRpb24udG9GaXhlZCgyKX1tc2ApO1xuICAgIHRocm93IGVycm9yO1xuICB9XG59O1xuXG4vKipcbiAqIEVycm9yIGhhbmRsaW5nIG1pZGRsZXdhcmUgd2l0aCByZXRyeSBsb2dpY1xuICovXG5leHBvcnQgY29uc3QgZXJyb3JIYW5kbGluZ01pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgY29uc3QgbWF4UmV0cmllcyA9IDM7XG4gIGxldCBhdHRlbXB0ID0gMDtcbiAgXG4gIHdoaWxlIChhdHRlbXB0IDwgbWF4UmV0cmllcykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICAgICAgXG4gICAgICBpZiAoYXR0ZW1wdCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coYOKchSBPcGVyYXRpb24gc3VjY2VlZGVkIG9uIHJldHJ5ICR7YXR0ZW1wdH0vJHttYXhSZXRyaWVzfWApO1xuICAgICAgfVxuICAgICAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGF0dGVtcHQrKztcbiAgICAgIFxuICAgICAgLy8gRG9uJ3QgcmV0cnkgZm9yIGNlcnRhaW4gb3BlcmF0aW9ucyBvciBlcnJvciB0eXBlc1xuICAgICAgaWYgKFxuICAgICAgICBjb250ZXh0Lm9wZXJhdGlvbiA9PT0gJ2RlbGV0ZU9uZScgfHxcbiAgICAgICAgZXJyb3I/LmNvZGUgPT09ICdWQUxJREFUSU9OX0VSUk9SJyB8fFxuICAgICAgICBhdHRlbXB0ID49IG1heFJldHJpZXNcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGDinYwgT3BlcmF0aW9uIGZhaWxlZCBhZnRlciAke2F0dGVtcHR9IGF0dGVtcHRzOmAsIGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGNvbnNvbGUud2Fybihg4pqg77iPIEF0dGVtcHQgJHthdHRlbXB0fS8ke21heFJldHJpZXN9IGZhaWxlZCwgcmV0cnlpbmcuLi5gLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIFxuICAgICAgLy8gV2FpdCBiZWZvcmUgcmV0cnkgKGV4cG9uZW50aWFsIGJhY2tvZmYpXG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgTWF0aC5wb3coMiwgYXR0ZW1wdCkgKiAxMDAwKSk7XG4gICAgfVxuICB9XG4gIFxuICB0aHJvdyBuZXcgRXJyb3IoJ01heCByZXRyaWVzIGV4Y2VlZGVkJyk7XG59O1xuXG4vKipcbiAqIFZhbGlkYXRpb24gbWlkZGxld2FyZVxuICovXG5leHBvcnQgY29uc3QgdmFsaWRhdGlvbk1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgLy8gVmFsaWRhdGUgaW5wdXQgYmFzZWQgb24gb3BlcmF0aW9uXG4gIHN3aXRjaCAoY29udGV4dC5vcGVyYXRpb24pIHtcbiAgICBjYXNlICdpbnNlcnRPbmUnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmVudGl0eSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VudGl0eSBpcyByZXF1aXJlZCBmb3IgaW5zZXJ0T25lIG9wZXJhdGlvbicpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICd1cGRhdGVPbmUnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmlkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSUQgaXMgcmVxdWlyZWQgZm9yIHVwZGF0ZU9uZSBvcGVyYXRpb24nKTtcbiAgICAgIH1cbiAgICAgIGlmICghY29udGV4dC5pbnB1dC5rZXlWYWx1ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdLZXkgdmFsdWVzIGFyZSByZXF1aXJlZCBmb3IgdXBkYXRlT25lIG9wZXJhdGlvbicpO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdkZWxldGVPbmUnOlxuICAgIGNhc2UgJ2dldE9uZSc6XG4gICAgICBpZiAoIWNvbnRleHQuaW5wdXQuaWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJRCBpcyByZXF1aXJlZCBmb3IgJHtjb250ZXh0Lm9wZXJhdGlvbn0gb3BlcmF0aW9uYCk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAgIFxuICAgIGNhc2UgJ3F1ZXJ5JzpcbiAgICAgIGlmICghY29udGV4dC5pbnB1dC5yZXF1ZXN0KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWVzdCBpcyByZXF1aXJlZCBmb3IgcXVlcnkgb3BlcmF0aW9uJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICAgIFxuICAgIGNhc2UgJ2luaXRpYWwnOlxuICAgICAgaWYgKCFjb250ZXh0LmlucHV0LmNvbGxlY3Rpb24gfHwgIUFycmF5LmlzQXJyYXkoY29udGV4dC5pbnB1dC5jb2xsZWN0aW9uKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbGxlY3Rpb24gYXJyYXkgaXMgcmVxdWlyZWQgZm9yIGluaXRpYWwgb3BlcmF0aW9uJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgfVxuICBcbiAgcmV0dXJuIG5leHQoY29udGV4dCk7XG59O1xuXG4vKipcbiAqIENhY2hpbmcgbWlkZGxld2FyZSAoc2ltcGxlIGluLW1lbW9yeSBjYWNoZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGNhY2hpbmdNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9ICgoKSA9PiB7XG4gIGNvbnN0IGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIHsgZGF0YTogYW55OyB0aW1lc3RhbXA6IG51bWJlcjsgdHRsOiBudW1iZXIgfT4oKTtcbiAgY29uc3QgREVGQVVMVF9UVEwgPSA1ICogNjAgKiAxMDAwOyAvLyA1IG1pbnV0ZXNcbiAgXG4gIHJldHVybiBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICAgIC8vIE9ubHkgY2FjaGUgcmVhZCBvcGVyYXRpb25zXG4gICAgaWYgKCFbJ2dldE9uZScsICdnZXRBbGwnLCAncXVlcnknXS5pbmNsdWRlcyhjb250ZXh0Lm9wZXJhdGlvbikpIHtcbiAgICAgIC8vIENsZWFyIGNhY2hlIGZvciB3cml0ZSBvcGVyYXRpb25zIG9uIHRoZSBzYW1lIGVudGl0eVxuICAgICAgY29uc3Qga2V5c1RvRGVsZXRlID0gQXJyYXkuZnJvbShjYWNoZS5rZXlzKCkpLmZpbHRlcihrZXkgPT4gXG4gICAgICAgIGtleS5pbmNsdWRlcyhgJHtjb250ZXh0LmVudGl0eU5hbWV9OmApXG4gICAgICApO1xuICAgICAga2V5c1RvRGVsZXRlLmZvckVhY2goa2V5ID0+IGNhY2hlLmRlbGV0ZShrZXkpKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIG5leHQoY29udGV4dCk7XG4gICAgfVxuICAgIFxuICAgIC8vIEdlbmVyYXRlIGNhY2hlIGtleVxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7Y29udGV4dC5lbnRpdHlOYW1lfToke2NvbnRleHQub3BlcmF0aW9ufToke0pTT04uc3RyaW5naWZ5KGNvbnRleHQuaW5wdXQpfWA7XG4gICAgXG4gICAgLy8gQ2hlY2sgY2FjaGVcbiAgICBjb25zdCBjYWNoZWQgPSBjYWNoZS5nZXQoY2FjaGVLZXkpO1xuICAgIGlmIChjYWNoZWQgJiYgRGF0ZS5ub3coKSAtIGNhY2hlZC50aW1lc3RhbXAgPCBjYWNoZWQudHRsKSB7XG4gICAgICBjb25zb2xlLmxvZyhg8J+SviBDYWNoZSBoaXQgZm9yICR7Y2FjaGVLZXl9YCk7XG4gICAgICByZXR1cm4gY2FjaGVkLmRhdGE7XG4gICAgfVxuICAgIFxuICAgIC8vIEV4ZWN1dGUgYW5kIGNhY2hlIHJlc3VsdFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5leHQoY29udGV4dCk7XG4gICAgY2FjaGUuc2V0KGNhY2hlS2V5LCB7XG4gICAgICBkYXRhOiByZXN1bHQsXG4gICAgICB0aW1lc3RhbXA6IERhdGUubm93KCksXG4gICAgICB0dGw6IERFRkFVTFRfVFRMLFxuICAgIH0pO1xuICAgIFxuICAgIGNvbnNvbGUubG9nKGDwn5K+IENhY2hlZCByZXN1bHQgZm9yICR7Y2FjaGVLZXl9YCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfTtcbn0pKCk7Il19","/**\n * Simple in-memory audit storage (for demo purposes)\n */\nclass InMemoryAuditStorage {\n constructor() {\n this.entries = [];\n }\n async save(entry) {\n this.entries.push(entry);\n console.log('📋 Audit entry saved:', entry);\n }\n getEntries() {\n return [...this.entries];\n }\n getEntriesForEntity(entityName) {\n return this.entries.filter(entry => entry.entityName === entityName);\n }\n clear() {\n this.entries.length = 0;\n }\n}\n// Global audit storage instance\nconst auditStorage = new InMemoryAuditStorage();\n/**\n * Audit middleware that tracks all entity operations\n */\nexport const auditMiddleware = async (context, next) => {\n const auditEntry = {\n id: `audit_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`,\n entityName: context.entityName,\n operation: context.operation,\n user: context.metadata.user?.id || 'system',\n timestamp: new Date(),\n requestId: context.metadata.requestId,\n };\n // Add operation-specific data\n switch (context.operation) {\n case 'insertOne':\n auditEntry.changes = { created: context.input.entity };\n break;\n case 'updateOne':\n auditEntry.entityId = context.input.id;\n auditEntry.changes = { updated: context.input.keyValues };\n break;\n case 'deleteOne':\n auditEntry.entityId = context.input.id;\n auditEntry.changes = { deleted: true };\n break;\n case 'getOne':\n auditEntry.entityId = context.input.id;\n break;\n case 'query':\n auditEntry.metadata = { queryRequest: context.input.request };\n break;\n case 'initial':\n auditEntry.metadata = {\n collectionSize: context.input.collection?.length,\n options: context.input.options\n };\n break;\n }\n try {\n const result = await next(context);\n // For insert operations, capture the generated ID\n if (context.operation === 'insertOne' && result) {\n auditEntry.entityId = result;\n }\n // Save audit entry\n await auditStorage.save(auditEntry);\n return result;\n }\n catch (error) {\n // Save audit entry even for failed operations\n auditEntry.metadata = {\n ...auditEntry.metadata,\n error: error instanceof Error ? error.message : 'Unknown error'\n };\n await auditStorage.save(auditEntry);\n throw error;\n }\n};\n/**\n * User context middleware - adds user information to context\n */\nexport const userContextMiddleware = async (context, next) => {\n // In a real application, you would inject your auth service here\n // const authService = inject(AuthService);\n // const user = authService.getCurrentUser();\n // For demo purposes, we'll use a mock user\n const mockUser = {\n id: 'user123',\n name: 'John Doe',\n role: 'admin',\n };\n context.metadata.user = mockUser;\n return next(context);\n};\n/**\n * Data sanitization middleware - removes sensitive data from logs\n */\nexport const dataSanitizationMiddleware = async (context, next) => {\n const sensitiveFields = ['password', 'ssn', 'creditCard', 'apiKey', 'token'];\n // Sanitize input data\n if (context.input.entity) {\n context.input.entity = sanitizeObject(context.input.entity, sensitiveFields);\n }\n if (context.input.keyValues) {\n context.input.keyValues = sanitizeObject(context.input.keyValues, sensitiveFields);\n }\n const result = await next(context);\n // Sanitize result data if needed\n if (result && typeof result === 'object') {\n return sanitizeObject(result, sensitiveFields);\n }\n return result;\n};\n/**\n * Helper function to sanitize objects by removing sensitive fields\n */\nfunction sanitizeObject(obj, sensitiveFields) {\n if (!obj || typeof obj !== 'object') {\n return obj;\n }\n if (Array.isArray(obj)) {\n return obj.map(item => sanitizeObject(item, sensitiveFields));\n }\n const sanitized = { ...obj };\n for (const field of sensitiveFields) {\n if (field in sanitized) {\n sanitized[field] = '[REDACTED]';\n }\n }\n // Recursively sanitize nested objects\n for (const [key, value] of Object.entries(sanitized)) {\n if (value && typeof value === 'object') {\n sanitized[key] = sanitizeObject(value, sensitiveFields);\n }\n }\n return sanitized;\n}\n/**\n * Export audit storage for external access\n */\nexport { auditStorage };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQubWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUvbWlkZGxld2FyZXMvYXVkaXQubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5QkE7O0dBRUc7QUFDSCxNQUFNLG9CQUFvQjtJQUExQjtRQUNVLFlBQU8sR0FBb0IsRUFBRSxDQUFDO0lBa0J4QyxDQUFDO0lBaEJDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBb0I7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsVUFBa0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBRUQsZ0NBQWdDO0FBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztBQUVoRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBK0IsS0FBSyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtJQUNqRixNQUFNLFVBQVUsR0FBa0I7UUFDaEMsRUFBRSxFQUFFLFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJ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TyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFFN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUNwQyxJQUFJLEtBQUssSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QixTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDckQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdkMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDMUQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlLCBBWFBFbnRpdHlTdG9yYWdlQ29udGV4dCB9IGZyb20gJy4uL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuXG4vKipcbiAqIEF1ZGl0IHRyYWlsIGVudHJ5IGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEF1ZGl0RW50cnkge1xuICBpZDogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIG9wZXJhdGlvbjogc3RyaW5nO1xuICBlbnRpdHlJZD86IGFueTtcbiAgY2hhbmdlcz86IGFueTtcbiAgdXNlcj86IHN0cmluZztcbiAgdGltZXN0YW1wOiBEYXRlO1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgbWV0YWRhdGE/OiBhbnk7XG59XG5cbi8qKlxuICogQXVkaXQgdHJhaWwgc3RvcmFnZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBBdWRpdFN0b3JhZ2Uge1xuICBzYXZlKGVudHJ5OiBBWFBBdWRpdEVudHJ5KTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBTaW1wbGUgaW4tbWVtb3J5IGF1ZGl0IHN0b3JhZ2UgKGZvciBkZW1vIHB1cnBvc2VzKVxuICovXG5jbGFzcyBJbk1lbW9yeUF1ZGl0U3RvcmFnZSBpbXBsZW1lbnRzIEFYUEF1ZGl0U3RvcmFnZSB7XG4gIHByaXZhdGUgZW50cmllczogQVhQQXVkaXRFbnRyeVtdID0gW107XG5cbiAgYXN5bmMgc2F2ZShlbnRyeTogQVhQQXVkaXRFbnRyeSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuZW50cmllcy5wdXNoKGVudHJ5KTtcbiAgICBjb25zb2xlLmxvZygn8J+TiyBBdWRpdCBlbnRyeSBzYXZlZDonLCBlbnRyeSk7XG4gIH1cblxuICBnZXRFbnRyaWVzKCk6IEFYUEF1ZGl0RW50cnlbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLmVudHJpZXNdO1xuICB9XG5cbiAgZ2V0RW50cmllc0ZvckVudGl0eShlbnRpdHlOYW1lOiBzdHJpbmcpOiBBWFBBdWRpdEVudHJ5W10ge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXMuZmlsdGVyKGVudHJ5ID0+IGVudHJ5LmVudGl0eU5hbWUgPT09IGVudGl0eU5hbWUpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5lbnRyaWVzLmxlbmd0aCA9IDA7XG4gIH1cbn1cblxuLy8gR2xvYmFsIGF1ZGl0IHN0b3JhZ2UgaW5zdGFuY2VcbmNvbnN0IGF1ZGl0U3RvcmFnZSA9IG5ldyBJbk1lbW9yeUF1ZGl0U3RvcmFnZSgpO1xuXG4vKipcbiAqIEF1ZGl0IG1pZGRsZXdhcmUgdGhhdCB0cmFja3MgYWxsIGVudGl0eSBvcGVyYXRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBhdWRpdE1pZGRsZXdhcmU6IEFYUEVudGl0eVN0b3JhZ2VNaWRkbGV3YXJlID0gYXN5bmMgKGNvbnRleHQsIG5leHQpID0+IHtcbiAgY29uc3QgYXVkaXRFbnRyeTogQVhQQXVkaXRFbnRyeSA9IHtcbiAgICBpZDogYGF1ZGl0XyR7RGF0ZS5ub3coKX1fJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgOSl9YCxcbiAgICBlbnRpdHlOYW1lOiBjb250ZXh0LmVudGl0eU5hbWUsXG4gICAgb3BlcmF0aW9uOiBjb250ZXh0Lm9wZXJhdGlvbixcbiAgICB1c2VyOiBjb250ZXh0Lm1ldGFkYXRhLnVzZXI/LmlkIHx8ICdzeXN0ZW0nLFxuICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICByZXF1ZXN0SWQ6IGNvbnRleHQubWV0YWRhdGEucmVxdWVzdElkLFxuICB9O1xuXG4gIC8vIEFkZCBvcGVyYXRpb24tc3BlY2lmaWMgZGF0YVxuICBzd2l0Y2ggKGNvbnRleHQub3BlcmF0aW9uKSB7XG4gICAgY2FzZSAnaW5zZXJ0T25lJzpcbiAgICAgIGF1ZGl0RW50cnkuY2hhbmdlcyA9IHsgY3JlYXRlZDogY29udGV4dC5pbnB1dC5lbnRpdHkgfTtcbiAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgY2FzZSAndXBkYXRlT25lJzpcbiAgICAgIGF1ZGl0RW50cnkuZW50aXR5SWQgPSBjb250ZXh0LmlucHV0LmlkO1xuICAgICAgYXVkaXRFbnRyeS5jaGFuZ2VzID0geyB1cGRhdGVkOiBjb250ZXh0LmlucHV0LmtleVZhbHVlcyB9O1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdkZWxldGVPbmUnOlxuICAgICAgYXVkaXRFbnRyeS5lbnRpdHlJZCA9IGNvbnRleHQuaW5wdXQuaWQ7XG4gICAgICBhdWRpdEVudHJ5LmNoYW5nZXMgPSB7IGRlbGV0ZWQ6IHRydWUgfTtcbiAgICAgIGJyZWFrO1xuICAgICAgXG4gICAgY2FzZSAnZ2V0T25lJzpcbiAgICAgIGF1ZGl0RW50cnkuZW50aXR5SWQgPSBjb250ZXh0LmlucHV0LmlkO1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdxdWVyeSc6XG4gICAgICBhdWRpdEVudHJ5Lm1ldGFkYXRhID0geyBxdWVyeVJlcXVlc3Q6IGNvbnRleHQuaW5wdXQucmVxdWVzdCB9O1xuICAgICAgYnJlYWs7XG4gICAgICBcbiAgICBjYXNlICdpbml0aWFsJzpcbiAgICAgIGF1ZGl0RW50cnkubWV0YWRhdGEgPSB7IFxuICAgICAgICBjb2xsZWN0aW9uU2l6ZTogY29udGV4dC5pbnB1dC5jb2xsZWN0aW9uPy5sZW5ndGgsXG4gICAgICAgIG9wdGlvbnM6IGNvbnRleHQuaW5wdXQub3B0aW9ucyBcbiAgICAgIH07XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dChjb250ZXh0KTtcbiAgICBcbiAgICAvLyBGb3IgaW5zZXJ0IG9wZXJhdGlvbnMsIGNhcHR1cmUgdGhlIGdlbmVyYXRlZCBJRFxuICAgIGlmIChjb250ZXh0Lm9wZXJhdGlvbiA9PT0gJ2luc2VydE9uZScgJiYgcmVzdWx0KSB7XG4gICAgICBhdWRpdEVudHJ5LmVudGl0eUlkID0gcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICAvLyBTYXZlIGF1ZGl0IGVudHJ5XG4gICAgYXdhaXQgYXVkaXRTdG9yYWdlLnNhdmUoYXVkaXRFbnRyeSk7XG4gICAgXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBTYXZlIGF1ZGl0IGVudHJ5IGV2ZW4gZm9yIGZhaWxlZCBvcGVyYXRpb25zXG4gICAgYXVkaXRFbnRyeS5tZXRhZGF0YSA9IHsgXG4gICAgICAuLi5hdWRpdEVudHJ5Lm1ldGFkYXRhLFxuICAgICAgZXJyb3I6IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InIFxuICAgIH07XG4gICAgYXdhaXQgYXVkaXRTdG9yYWdlLnNhdmUoYXVkaXRFbnRyeSk7XG4gICAgXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbi8qKlxuICogVXNlciBjb250ZXh0IG1pZGRsZXdhcmUgLSBhZGRzIHVzZXIgaW5mb3JtYXRpb24gdG8gY29udGV4dFxuICovXG5leHBvcnQgY29uc3QgdXNlckNvbnRleHRNaWRkbGV3YXJlOiBBWFBFbnRpdHlTdG9yYWdlTWlkZGxld2FyZSA9IGFzeW5jIChjb250ZXh0LCBuZXh0KSA9PiB7XG4gIC8vIEluIGEgcmVhbCBhcHBsaWNhdGlvbiwgeW91IHdvdWxkIGluamVjdCB5b3VyIGF1dGggc2VydmljZSBoZXJlXG4gIC8vIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgLy8gY29uc3QgdXNlciA9IGF1dGhTZXJ2aWNlLmdldEN1cnJlbnRVc2VyKCk7XG4gIFxuICAvLyBGb3IgZGVtbyBwdXJwb3Nlcywgd2UnbGwgdXNlIGEgbW9jayB1c2VyXG4gIGNvbnN0IG1vY2tVc2VyID0ge1xuICAgIGlkOiAndXNlcjEyMycsXG4gICAgbmFtZTogJ0pvaG4gRG9lJyxcbiAgICByb2xlOiAnYWRtaW4nLFxuICB9O1xuICBcbiAgY29udGV4dC5tZXRhZGF0YS51c2VyID0gbW9ja1VzZXI7XG4gIFxuICByZXR1cm4gbmV4dChjb250ZXh0KTtcbn07XG5cbi8qKlxuICogRGF0YSBzYW5pdGl6YXRpb24gbWlkZGxld2FyZSAtIHJlbW92ZXMgc2Vuc2l0aXZlIGRhdGEgZnJvbSBsb2dzXG4gKi9cbmV4cG9ydCBjb25zdCBkYXRhU2FuaXRpemF0aW9uTWlkZGxld2FyZTogQVhQRW50aXR5U3RvcmFnZU1pZGRsZXdhcmUgPSBhc3luYyAoY29udGV4dCwgbmV4dCkgPT4ge1xuICBjb25zdCBzZW5zaXRpdmVGaWVsZHMgPSBbJ3Bhc3N3b3JkJywgJ3NzbicsICdjcmVkaXRDYXJkJywgJ2FwaUtleScsICd0b2tlbiddO1xuICBcbiAgLy8gU2FuaXRpemUgaW5wdXQgZGF0YVxuICBpZiAoY29udGV4dC5pbnB1dC5lbnRpdHkpIHtcbiAgICBjb250ZXh0LmlucHV0LmVudGl0eSA9IHNhbml0aXplT2JqZWN0KGNvbnRleHQuaW5wdXQuZW50aXR5LCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICBpZiAoY29udGV4dC5pbnB1dC5rZXlWYWx1ZXMpIHtcbiAgICBjb250ZXh0LmlucHV0LmtleVZhbHVlcyA9IHNhbml0aXplT2JqZWN0KGNvbnRleHQuaW5wdXQua2V5VmFsdWVzLCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0KGNvbnRleHQpO1xuICBcbiAgLy8gU2FuaXRpemUgcmVzdWx0IGRhdGEgaWYgbmVlZGVkXG4gIGlmIChyZXN1bHQgJiYgdHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gc2FuaXRpemVPYmplY3QocmVzdWx0LCBzZW5zaXRpdmVGaWVsZHMpO1xuICB9XG4gIFxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gc2FuaXRpemUgb2JqZWN0cyBieSByZW1vdmluZyBzZW5zaXRpdmUgZmllbGRzXG4gKi9cbmZ1bmN0aW9uIHNhbml0aXplT2JqZWN0KG9iajogYW55LCBzZW5zaXRpdmVGaWVsZHM6IHN0cmluZ1tdKTogYW55IHtcbiAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gb2JqO1xuICB9XG4gIFxuICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgcmV0dXJuIG9iai5tYXAoaXRlbSA9PiBzYW5pdGl6ZU9iamVjdChpdGVtLCBzZW5zaXRpdmVGaWVsZHMpKTtcbiAgfVxuICBcbiAgY29uc3Qgc2FuaXRpemVkID0geyAuLi5vYmogfTtcbiAgXG4gIGZvciAoY29uc3QgZmllbGQgb2Ygc2Vuc2l0aXZlRmllbGRzKSB7XG4gICAgaWYgKGZpZWxkIGluIHNhbml0aXplZCkge1xuICAgICAgc2FuaXRpemVkW2ZpZWxkXSA9ICdbUkVEQUNURURdJztcbiAgICB9XG4gIH1cbiAgXG4gIC8vIFJlY3Vyc2l2ZWx5IHNhbml0aXplIG5lc3RlZCBvYmplY3RzXG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNhbml0aXplZCkpIHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgc2FuaXRpemVkW2tleV0gPSBzYW5pdGl6ZU9iamVjdCh2YWx1ZSwgc2Vuc2l0aXZlRmllbGRzKTtcbiAgICB9XG4gIH1cbiAgXG4gIHJldHVybiBzYW5pdGl6ZWQ7XG59XG5cbi8qKlxuICogRXhwb3J0IGF1ZGl0IHN0b3JhZ2UgZm9yIGV4dGVybmFsIGFjY2Vzc1xuICovXG5leHBvcnQgeyBhdWRpdFN0b3JhZ2UgfTsiXX0=","// Core middleware types and utilities\nexport * from './entity-storage.middleware';\nexport * from './entity-storage.registry';\nexport * from './entity-storage.executor';\nexport * from './entity-storage-with-middleware.service';\nexport * from './provide-entity-storage-middleware';\n// Pre-built middleware implementations\nexport * from './middlewares/logging.middleware';\nexport * from './middlewares/audit.middleware';\n// Re-export original service for compatibility\nexport * from '../entity-storage-service';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9lbnRpdHktc3RvcmFnZS1taWRkbGV3YXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsdUNBQXVDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQywrQ0FBK0M7QUFDL0MsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgbWlkZGxld2FyZSB0eXBlcyBhbmQgdXRpbGl0aWVzXG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1zdG9yYWdlLm1pZGRsZXdhcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnRpdHktc3RvcmFnZS5yZWdpc3RyeSc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS1zdG9yYWdlLmV4ZWN1dG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXN0b3JhZ2Utd2l0aC1taWRkbGV3YXJlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlLWVudGl0eS1zdG9yYWdlLW1pZGRsZXdhcmUnO1xuXG4vLyBQcmUtYnVpbHQgbWlkZGxld2FyZSBpbXBsZW1lbnRhdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vbWlkZGxld2FyZXMvbG9nZ2luZy5taWRkbGV3YXJlJztcbmV4cG9ydCAqIGZyb20gJy4vbWlkZGxld2FyZXMvYXVkaXQubWlkZGxld2FyZSc7XG5cbi8vIFJlLWV4cG9ydCBvcmlnaW5hbCBzZXJ2aWNlIGZvciBjb21wYXRpYmlsaXR5XG5leHBvcnQgKiBmcm9tICcuLi9lbnRpdHktc3RvcmFnZS1zZXJ2aWNlJzsiXX0=","export class AXPEntityCommandSearchDefinitionProvider {\n async provide(context) {\n context.addDefinition('command', 'Commands', 'command', 'fa-solid fa-command', 1, {\n format: {\n id: '{{id}}',\n },\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24tY29tbWFuZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHdDQUF3QztJQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJDO1FBQ3ZELE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO1lBQ2hGLE1BQU0sRUFBRTtnQkFDTixFQUFFLEVBQUUsUUFBUTthQUNiO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxhQUFhO29CQUNuQixJQUFJLEVBQUUsTUFBTTtvQkFDWixRQUFRLEVBQUUsU0FBUztpQkFDcEI7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlciwgQVhQU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyQ29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb250ZXh0LmFkZERlZmluaXRpb24oJ2NvbW1hbmQnLCAnQ29tbWFuZHMnLCAnY29tbWFuZCcsICdmYS1zb2xpZCBmYS1jb21tYW5kJywgMSwge1xuICAgICAgZm9ybWF0OiB7XG4gICAgICAgIGlkOiAne3tpZH19JyxcbiAgICAgIH0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICAgIHR5cGU6ICd2aWV3JyxcbiAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nexport class AXPEntitySearchDefinitionProvider {\n constructor() {\n this.entityRegister = inject(AXPEntityDefinitionRegistryService);\n }\n async provide(context) {\n console.log(\"AXPEntitySearchDefinitionProvider\", this.entityRegister.getAll());\n this.entityRegister.getAll().forEach((entity) => {\n context.addDefinition(`Module.${entity.module}.${entity.name}`, entity.formats.searchResult?.description ?? entity.module, `Module.${entity.module}`, 'fa-solid fa-objects-column', 4, {\n actions: [\n {\n name: 'open-entity',\n type: 'view',\n priority: 'primary',\n },\n ],\n format: {\n title: entity.formats.searchResult?.title,\n description: (entity.formats.searchResult?.description ?? entity.module) + ' / ' + entity.title,\n id: '{{data.id}}',\n },\n });\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRlZmluaXRpb24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhGLE1BQU0sT0FBTyxpQ0FBaUM7SUFBOUM7UUFDRSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO0lBNkI5RCxDQUFDO0lBM0JDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkM7UUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM5QyxPQUFPLENBQUMsYUFBYSxDQUNuQixVQUFVLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sRUFDekQsVUFBVSxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQ3pCLDRCQUE0QixFQUM1QixDQUFDLEVBQ0Q7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQO3dCQUNFLElBQUksRUFBRSxhQUFhO3dCQUNuQixJQUFJLEVBQUUsTUFBTTt3QkFDWixRQUFRLEVBQUUsU0FBUztxQkFDcEI7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLO29CQUN6QyxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSztvQkFDL0YsRUFBRSxFQUFFLGFBQWE7aUJBQ2xCO2FBQ0YsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIsIEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBBWFBTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIge1xuICBlbnRpdHlSZWdpc3RlciA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUFNlYXJjaERlZmluaXRpb25Qcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZyhcIkFYUEVudGl0eVNlYXJjaERlZmluaXRpb25Qcm92aWRlclwiLCB0aGlzLmVudGl0eVJlZ2lzdGVyLmdldEFsbCgpKTtcblxuICAgIHRoaXMuZW50aXR5UmVnaXN0ZXIuZ2V0QWxsKCkuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBjb250ZXh0LmFkZERlZmluaXRpb24oXG4gICAgICAgIGBNb2R1bGUuJHtlbnRpdHkubW9kdWxlfS4ke2VudGl0eS5uYW1lfWAsXG4gICAgICAgIGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSxcbiAgICAgICAgYE1vZHVsZS4ke2VudGl0eS5tb2R1bGV9YCxcbiAgICAgICAgJ2ZhLXNvbGlkIGZhLW9iamVjdHMtY29sdW1uJyxcbiAgICAgICAgNCxcbiAgICAgICAge1xuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIGZvcm1hdDoge1xuICAgICAgICAgICAgdGl0bGU6IGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8udGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogKGVudGl0eS5mb3JtYXRzLnNlYXJjaFJlc3VsdD8uZGVzY3JpcHRpb24gPz8gZW50aXR5Lm1vZHVsZSkgKyAnIC8gJyArIGVudGl0eS50aXRsZSxcbiAgICAgICAgICAgIGlkOiAne3tkYXRhLmlkfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXLoadingModule } from '@acorex/components/loading';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, signal } from '@angular/core';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { castArray, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/loading\";\nimport * as i2 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.entityResolver = inject(AXPEntityResolver);\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.valueField = computed(() => this.options()['valueField'] ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.badgeClass = computed(() => this.options()['badgeClass'] ?? 'ax-accent1', ...(ngDevMode ? [{ debugName: \"badgeClass\" }] : []));\n this.displayField = computed(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n }, ...(ngDevMode ? [{ debugName: \"displayField\" }] : []));\n this.loading = signal(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.displayItems = signal([], ...(ngDevMode ? [{ debugName: \"displayItems\" }] : []));\n this.efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n }, ...(ngDevMode ? [{ debugName: \"efEntity\" }] : []));\n this.efDisplay = effect(async () => {\n const value = this.getValue();\n if (isNil(value)) {\n this.displayItems.set([]);\n }\n else {\n const items = castArray(value).map(async (item) => await this.extractItem(item));\n this.displayItems.set(await Promise.all(items));\n }\n }, ...(ngDevMode ? [{ debugName: \"efDisplay\" }] : []));\n }\n async extractItem(item) {\n if (typeof item == 'object') {\n return {\n id: item[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', item),\n };\n }\n else {\n const def = this.entityDef();\n const byKey = def?.queries.byKey?.execute;\n if (byKey) {\n this.loading.set(true);\n const fetchedItem = await byKey(item);\n this.loading.set(false);\n return {\n id: fetchedItem[this.valueField()],\n text: this.formatService.format(this.displayField(), 'string', fetchedItem),\n };\n }\n return {\n id: item,\n text: item\n };\n }\n }\n get __class() {\n const cls = {};\n cls[`ax-flex`] = true;\n cls[`ax-gap-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetViewComponent, isStandalone: true, selector: \"axp-lookup-widget-view\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @if(displayItems().length > 1) {\n @for (item of displayItems(); track $index) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"item.text\" ></ax-badge>\n }\n }\n @else if(displayItems().length == 1) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"displayItems()[0].text\" ></ax-badge>\n }\n @else {\n <span class=\"ax-text-muted\">---</span>\n }\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i1.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i2.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-view',\n template: `\n @if(loading())\n {\n <ax-loading></ax-loading>\n }\n @else{\n @if(displayItems().length > 1) {\n @for (item of displayItems(); track $index) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"item.text\" ></ax-badge>\n }\n }\n @else if(displayItems().length == 1) {\n <ax-badge class=\"ax-p-0.5 {{badgeClass()}}\" [text]=\"displayItems()[0].text\" ></ax-badge>\n }\n @else {\n <span class=\"ax-text-muted\">---</span>\n }\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXLoadingModule, AXBadgeModule]\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQTBCN0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUE0QjtJQXhCOUU7O1FBeUJxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3BELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBVyxrREFBQyxDQUFDO1FBQ3BFLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxD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cm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEhvc3RCaW5kaW5nLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb29rdXAtd2lkZ2V0LXZpZXcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZihsb2FkaW5nKCkpXG4gICAge1xuICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgIH1cbiAgICBAZWxzZXtcbiAgICAgICAgQGlmKGRpc3BsYXlJdGVtcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXlJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxheC1iYWRnZSBjbGFzcz1cImF4LXAtMC41IHt7YmFkZ2VDbGFzcygpfX1cIiAgW3RleHRdPVwiaXRlbS50ZXh0XCIgPjwvYXgtYmFkZ2U+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIGlmKGRpc3BsYXlJdGVtcygpLmxlbmd0aCA9PSAxKSB7XG4gICAgICAgICAgPGF4LWJhZGdlIGNsYXNzPVwiYXgtcC0wLjUge3tiYWRnZUNsYXNzKCl9fVwiICBbdGV4dF09XCJkaXNwbGF5SXRlbXMoKVswXS50ZXh0XCIgPjwvYXgtYmFkZ2U+XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1tdXRlZFwiPi0tLTwvc3Bhbj5cbiAgICAgICAgfVxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWExvYWRpbmdNb2R1bGUsIEFYQmFkZ2VNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcblxuXG4gIHByb3RlY3RlZCBlbnRpdHkgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydlbnRpdHknXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHZhbHVlRmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndmFsdWVGaWVsZCddIGFzIHN0cmluZykgPz8gJ2lkJyk7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcbiAgcHJvdGVjdGVkIGJhZGdlQ2xhc3MgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsnYmFkZ2VDbGFzcyddIGFzIHN0cmluZykgPz8gJ2F4LWFjY2VudDEnKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGV4dEZpZWxkKCkgPz8gdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5sb29rdXAgPz8gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgIT0gJ2lkJyk/Lm5hbWUgPz8gJ3RpdGxlJztcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBwcml2YXRlIGVudGl0eURlZiA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgZGlzcGxheUl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cblxuICBwcml2YXRlIGVmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICB9KTtcblxuICBwcml2YXRlIGVmRGlzcGxheSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKGlzTmlsKHZhbHVlKSkge1xuICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuc2V0KFtdKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBpdGVtcyA9IGNhc3RBcnJheSh2YWx1ZSkubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IGF3YWl0IHRoaXMuZXh0cmFjdEl0ZW0oaXRlbSkpO1xuICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuc2V0KGF3YWl0IFByb21pc2UuYWxsKGl0ZW1zKSk7XG4gICAgfVxuICB9KVxuXG5cbiAgcHJpdmF0ZSBhc3luYyBleHRyYWN0SXRlbShpdGVtOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIGl0ZW0gPT0gJ29iamVjdCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpdGVtW3RoaXMudmFsdWVGaWVsZCgpXSxcbiAgICAgICAgdGV4dDogdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmRpc3BsYXlGaWVsZCgpLCAnc3RyaW5nJywgaXRlbSksXG4gICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgZGVmID0gdGhpcy5lbnRpdHlEZWYoKTtcbiAgICAgIGNvbnN0IGJ5S2V5ID0gZGVmPy5xdWVyaWVzLmJ5S2V5Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgaWYgKGJ5S2V5KSB7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICAgIGNvbnN0IGZldGNoZWRJdGVtID0gYXdhaXQgYnlLZXkoaXRlbSk7XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlkOiBmZXRjaGVkSXRlbVt0aGlzLnZhbHVlRmllbGQoKV0sXG4gICAgICAgICAgdGV4dDogdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLmRpc3BsYXlGaWVsZCgpLCAnc3RyaW5nJywgZmV0Y2hlZEl0ZW0pLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbSxcbiAgICAgICAgdGV4dDogaXRlbVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2NsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xzOiBhbnkgPSB7fTtcbiAgICBjbHNbYGF4LWZsZXhgXSA9IHRydWU7XG4gICAgY2xzW2BheC1nYXAtMWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXCommonModule } from '@acorex/cdk/common';\nimport { AXDataTableModule, } from '@acorex/components/data-table';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/cdk/common\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/data-table\";\nimport * as i5 from \"@acorex/components/search-box\";\nimport * as i6 from \"@acorex/platform/layout/builder\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.grid = viewChild('grid', ...(ngDevMode ? [{ debugName: \"grid\" }] : []));\n this.initialSelectedItems = [];\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.allowSelect = computed(() => this.selectedItems().length > 0, ...(ngDevMode ? [{ debugName: \"allowSelect\" }] : []));\n }\n ngAfterViewInit() {\n if (this.initialSelectedItems.length > 0 && this.grid()) {\n this.grid()?.selectRows(...this.initialSelectedItems);\n }\n if (this.searchTerm) {\n this.vm.applyInlineFilter(this.searchTerm);\n }\n else {\n this.vm.applyFilterAndSort();\n }\n }\n handleRowDbClick(e) {\n this.close({ items: [e.data] });\n }\n handleRowClick(e) {\n if (this.vm.allowMultiple()) {\n this.selectedItems.set([...this.selectedItems(), e.data]);\n }\n else if (this.selectedItems().length > 0) {\n const selected = this.selectedItems().find((item) => item.id === e.data.id);\n if (selected) {\n this.selectedItems.set(this.selectedItems().filter((item) => item.id !== selected.id));\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n else if (this.selectedItems().length === 0) {\n this.selectedItems.set([e.data]);\n }\n else {\n this.selectedItems.set([e.data]);\n }\n }\n async handleSelectedRowsChange(rows) {\n this.selectedItems.set(rows);\n }\n handleChangeSearchValue(e) {\n if (e.isUserInteraction) {\n this.vm.applyInlineFilter(e.value);\n }\n }\n async handleCreateNewClick() {\n this.close();\n await this.vm.create();\n }\n handleCloseClick() {\n this.close();\n }\n handleSelectClick() {\n this.close({ items: this.selectedItems() });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetSelectorComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"grid\", first: true, predicate: [\"grid\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i1.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i4.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"selectedRows\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"noDataTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i4.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i5.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i6.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i7.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-p-4 ax-flex ax-flex-col ax-gap-4 ax-overflow-hidden\">\n @if (vm.hasInlineFilters()) {\n <div class=\"ax-w-full\">\n <ax-search-box\n [placeholder]=\"('widget.lookup.search' | translate | async) + vm.inlineFiltersPlaceholders().join(', ')\"\n [value]=\"searchTerm\"\n (onValueChanged)=\"handleChangeSearchValue($event)\"\n [axAutoFocus]=\"true\"\n ><ax-clear-button></ax-clear-button\n ></ax-search-box>\n </div>\n }\n <ax-data-table\n #grid\n [showFooter]=\"false\"\n class=\"ax-h-[50vh]\"\n [paging]=\"true\"\n [fetchDataMode]=\"'manual'\"\n [loading]=\"{ enabled: true, animation: true }\"\n [dataSource]=\"vm.dataSource\"\n [parentField]=\"vm.parentKey()\"\n (selectedRowsChange)=\"handleSelectedRowsChange($event)\"\n (onRowClick)=\"handleRowClick($event)\"\n (onRowDbClick)=\"handleRowDbClick($event)\"\n >\n @if (vm.allowMultiple()) {\n <ax-select-column fixed=\"start\" [width]=\"'50px'\"></ax-select-column>\n }\n @for (col of vm.columns(); track col.name) {\n @if (col.visible) {\n <axp-widget-column-renderer\n [expandHandler]=\"$index === 0 && vm.parentKey() ? true : false\"\n [caption]=\"col.title | translate | async\"\n [node]=\"col.node()\"\n ></axp-widget-column-renderer>\n }\n }\n </ax-data-table>\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button look=\"solid\" [text]=\"('close' | translate | async)!\" (onClick)=\"handleCloseClick()\"> </ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"('select' | translate | async)!\"\n (onClick)=\"handleSelectClick()\"\n [disabled]=\"allowSelect() === false\"\n >\n </ax-button>\n @if (!vm.canCreate()) {\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [text]=\"'Create-New' | translate | async\"\n (onClick)=\"handleCreateNewClick()\"\n >\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n }\n </ax-suffix>\n </ax-footer>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXCommonModule,\n AXButtonModule,\n AXFormModule,\n AXDecoratorModule,\n AXDropdownButtonModule,\n AXDataTableModule,\n AXSearchBoxModule,\n AXPLayoutBuilderModule,\n AXTranslationModule,\n ],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUQsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBRUwsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQW9GL0QsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWxGekU7O1FBdUZZLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sZ0RBQUMsQ0FBQztR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QUssQ0FBQyxvQkFBb0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FsRVUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNk1BakZqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQsMkRBR0MsWUFBWSw4QkFDWixjQUFjLDJKQUNkLGNBQWMsNlhBQ2QsWUFBWSw4QkFDWixpQkFBaUIsc2NBQ2pCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLDJvQkFDakIsaUJBQWlCLDRZQUNqQixzQkFBc0IsbVNBQ3RCLG1CQUFtQjs7MkZBSVYsZ0NBQWdDO2tCQWxGNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00ICBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIEBpZiAodm0uaGFzSW5saW5lRmlsdGVycygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgdm0uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPjxheC1jbGVhci1idXR0b24+PC9heC1jbGVhci1idXR0b25cbiAgICAgICAgICA+PC9heC1zZWFyY2gtYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIDxheC1kYXRhLXRhYmxlXG4gICAgICAgICNncmlkXG4gICAgICAgIFtzaG93Rm9vdGVyXT1cImZhbHNlXCJcbiAgICAgICAgY2xhc3M9XCJheC1oLVs1MHZoXVwiXG4gICAgICAgIFtwYWdpbmddPVwidHJ1ZVwiXG4gICAgICAgIFtmZXRjaERhdGFNb2RlXT1cIidtYW51YWwnXCJcbiAgICAgICAgW2xvYWRpbmddPVwieyBlbmFibGVkOiB0cnVlLCBhbmltYXRpb246IHRydWUgfVwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cInZtLmRhdGFTb3VyY2VcIlxuICAgICAgICBbcGFyZW50RmllbGRdPVwidm0ucGFyZW50S2V5KClcIlxuICAgICAgICAoc2VsZWN0ZWRSb3dzQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKG9uUm93Q2xpY2spPVwiaGFuZGxlUm93Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChvblJvd0RiQ2xpY2spPVwiaGFuZGxlUm93RGJDbGljaygkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmICh2bS5hbGxvd011bHRpcGxlKCkpIHtcbiAgICAgICAgICA8YXgtc2VsZWN0LWNvbHVtbiBmaXhlZD1cInN0YXJ0XCIgW3dpZHRoXT1cIic1MHB4J1wiPjwvYXgtc2VsZWN0LWNvbHVtbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChjb2wgb2Ygdm0uY29sdW1ucygpOyB0cmFjayBjb2wubmFtZSkge1xuICAgICAgICAgIEBpZiAoY29sLnZpc2libGUpIHtcbiAgICAgICAgICAgIDxheHAtd2lkZ2V0LWNvbHVtbi1yZW5kZXJlclxuICAgICAgICAgICAgICBbZXhwYW5kSGFuZGxlcl09XCIkaW5kZXggPT09IDAgJiYgdm0ucGFyZW50S2V5KCkgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgICBbY2FwdGlvbl09XCJjb2wudGl0bGUgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgIFtub2RlXT1cImNvbC5ub2RlKClcIlxuICAgICAgICAgICAgPjwvYXhwLXdpZGdldC1jb2x1bW4tcmVuZGVyZXI+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2F4LWRhdGEtdGFibGU+XG4gICAgPC9kaXY+XG4gICAgPGF4LWZvb3Rlcj5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgW3RleHRdPVwiKCdjbG9zZScgfCB0cmFuc2xhdGUgfCBhc3luYykhXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIignc2VsZWN0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jKSFcIlxuICAgICAgICAgIChvbkNsaWNrKT1cImhhbmRsZVNlbGVjdENsaWNrKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJhbGxvd1NlbGVjdCgpID09PSBmYWxzZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIEBpZiAoIXZtLmNhbkNyZWF0ZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvblxuICAgICAgICAgICAgbG9vaz1cInNvbGlkXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbdGV4dF09XCInQ3JlYXRlLU5ldycgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAob25DbGljayk9XCJoYW5kbGVDcmVhdGVOZXdDbGljaygpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YXgtcHJlZml4PlxuICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmEtc29saWQgZmEtYWRkXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtZm9vdGVyPlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbW1vbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcbiAgICBBWERhdGFUYWJsZU1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZSxcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIF0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlUGFnZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCB2bTogQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWw7XG4gIHByb3RlY3RlZCBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcblxuICBwcm90ZWN0ZWQgZ3JpZCA9IHZpZXdDaGlsZDxBWERhdGFUYWJsZUNvbXBvbmVudD4oJ2dyaWQnKTtcblxuICBwcm90ZWN0ZWQgaW5pdGlhbFNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwcm90ZWN0ZWQgYWxsb3dTZWxlY3QgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKTtcblxuICBwcm90ZWN0ZWQgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGlmICh0aGlzLmluaXRpYWxTZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgJiYgdGhpcy5ncmlkKCkpIHtcbiAgICAgIHRoaXMuZ3JpZCgpPy5zZWxlY3RSb3dzKC4uLnRoaXMuaW5pdGlhbFNlbGVjdGVkSXRlbXMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWFyY2hUZXJtKSB7XG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudm0uYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiBbZS5kYXRhXSB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dDbGljayhlOiBBWERhdGFUYWJsZVJvd0NsaWNrKSB7XG4gICAgaWYgKHRoaXMudm0uYWxsb3dNdWx0aXBsZSgpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXMoKSwgZS5kYXRhXSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGUuZGF0YS5pZCk7XG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldCh0aGlzLnNlbGVjdGVkSXRlbXMoKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IHNlbGVjdGVkLmlkKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtlLmRhdGFdKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbZS5kYXRhXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW2UuZGF0YV0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2Uocm93czogdW5rbm93bltdKSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChyb3dzKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy52bS5hcHBseUlubGluZUZpbHRlcihlLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICAgIGF3YWl0IHRoaXMudm0uY3JlYXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0Q2xpY2soKSB7XG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSB9KTtcbiAgfVxufVxuIl19","import { AXDataSource } from '@acorex/cdk/common';\nimport { AXPCleanNestedFilters, AXPFilterOperatorMiddlewareService, getEntityInfo, } from '@acorex/platform/common';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { computed } from '@angular/core';\nimport { AXPEntityListViewColumnViewModel } from '../../entity.viewmodel';\nexport class AXPLookupWidgetSelectorViewModel {\n constructor(injector, entityDef, options = {\n parentFilters: null,\n customFilter: null,\n sortedFields: [],\n columns: [],\n }) {\n this.injector = injector;\n this.entityDef = entityDef;\n this.options = options;\n this.workflow = this.injector.get(AXPWorkflowService);\n this.filterOperatorMiddleware = this.injector.get(AXPFilterOperatorMiddlewareService);\n this.dataSource = new AXDataSource({\n byKey: (key) => {\n const func = this.entityDef.queries.byKey.execute;\n return func();\n },\n load: (e) => {\n const func = this.entityDef.queries.list?.execute;\n this.mergeFilter(e, this.options.customFilter);\n return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n this.canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n }, ...(ngDevMode ? [{ debugName: \"canCreate\" }] : []));\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n }, ...(ngDevMode ? [{ debugName: \"parentKey\" }] : []));\n this.allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n }, ...(ngDevMode ? [{ debugName: \"allowMultiple\" }] : []));\n this.inlineFiltersPlaceholders = computed(() => {\n return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);\n }, ...(ngDevMode ? [{ debugName: \"inlineFiltersPlaceholders\" }] : []));\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n }, ...(ngDevMode ? [{ debugName: \"hasInlineFilters\" }] : []));\n this.columns = () => {\n const listColumns = this.entityDef.columns ?? [];\n const columns = listColumns?.map((c) => c.name) ?? [];\n const props = this.entityDef.properties.filter((p) => p.schema.hidden != true);\n const displayColumns = props.filter((p) => (this.options.columns?.length ?? 0) > 0\n ? this.options.columns.some((c) => c == p.name)\n : columns.some((c) => c == p.name));\n //\n return displayColumns.map((p) => {\n return new AXPEntityListViewColumnViewModel(p, listColumns?.find((c) => c.name == p.name));\n });\n };\n this.inlineFilters = {\n field: null,\n logic: 'or',\n operator: null,\n filters: [],\n };\n this.advanceFilters = {\n field: null,\n logic: 'and',\n operator: null,\n filters: [],\n };\n }\n async create() {\n await this.workflow.execute('create-entity', {\n entity: getEntityInfo(this.entityDef).source,\n });\n }\n applyInlineFilter(value, refresh = true) {\n const props = this.entityDef.properties.filter((c) => c.options?.filter?.inline?.enabled);\n this.inlineFilters.filters = [];\n if (value) {\n props.forEach((p) => {\n this.inlineFilters.filters?.push({\n field: p.name,\n operator: {\n type: 'contains',\n },\n value,\n });\n });\n }\n if (refresh)\n this.applyFilterAndSort();\n }\n applyFilterAndSort() {\n // this.dataSource.clearFilter();\n //\n //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));\n //\n // Check if inlineFilters or parentFilters have any filters\n const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;\n const hasParentFilters = (this.options.parentFilters?.filters?.length ?? 0) > 0;\n // Construct the filters array based on the presence of filters\n const filters = [];\n console.log(this.options.customFilter);\n if (this.options.customFilter) {\n const cleanedFilters = AXPCleanNestedFilters([this.options.customFilter]);\n if (cleanedFilters.length > 0) {\n filters.push(this.filterOperatorMiddleware.transformFilter(cleanedFilters[0]));\n }\n }\n if (hasInlineFilters) {\n filters.push(this.inlineFilters);\n }\n if (hasParentFilters && this.options.parentFilters) {\n filters.push(this.options.parentFilters);\n }\n // Apply the filters to the dataSource\n this.dataSource.filter({\n field: null,\n logic: 'and',\n operator: null,\n filters: filters,\n });\n // Refresh the dataSource\n this.dataSource.refresh();\n }\n async find(value) {\n this.applyInlineFilter(value.trim(), false);\n const func = this.entityDef.queries.list?.execute;\n return (await func({ filter: this.inlineFilters, take: 10 })) ?? [];\n }\n setCustomFilter(filter) {\n this.options.customFilter = filter;\n this.applyFilterAndSort();\n }\n mergeFilter(request, filter) {\n if (!filter) {\n return request;\n }\n if (request.filter) {\n request.filter = {\n logic: 'and',\n filters: [...[request.filter], ...(filter.filters ?? [])]\n };\n }\n else {\n request.filter = filter;\n }\n return request;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBMkUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzSCxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtDQUFrQyxFQUNsQyxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFDVSxRQUFrQixFQUNsQixTQUFvQixFQUNwQixVQU1KO1FBQ0EsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7S0FDWjtRQWJLLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQVdaO1FBakJHLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELDZCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFtQnpGLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtn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O1lBQ1osT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLEdBQUc7Z0JBQ2YsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMxRCxDQUFBO1FBQ0gsQ0FBQzthQUNJLENBQUM7WUFDSixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VRdWVyeSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBDbGVhbk5lc3RlZEZpbHRlcnMsXG4gIEFYUEVudGl0eSxcbiAgQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSxcbiAgZ2V0RW50aXR5SW5mbyxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIH0gZnJvbSAnLi4vLi4vZW50aXR5LnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBRdWVyeVJlcXVlc3QgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwge1xuICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSB0aGlzLmluamVjdG9yLmdldChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGVudGl0eURlZjogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgb3B0aW9uczoge1xuICAgICAgcGFyZW50RmlsdGVycz86IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IG51bGw7XG4gICAgICBjdXN0b21GaWx0ZXI/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuICAgICAgc29ydGVkRmllbGRzPzogeyBuYW1lOiBzdHJpbmc7IGRpcjogJ2FzYycgfCAnZGVzYycgfVtdO1xuICAgICAgYWxsb3dNdWx0aXBsZT86IGJvb2xlYW47XG4gICAgICBjb2x1bW5zPzogc3RyaW5nW107XG4gICAgfSA9IHtcbiAgICAgICAgcGFyZW50RmlsdGVyczogbnVsbCxcbiAgICAgICAgY3VzdG9tRmlsdGVyOiBudWxsLFxuICAgICAgICBzb3J0ZWRGaWVsZHM6IFtdLFxuICAgICAgICBjb2x1bW5zOiBbXSxcbiAgICAgIH0sXG4gICkgeyB9XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgdGhpcy5tZXJnZUZpbHRlcihlLCB0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyKTtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIGNhbkNyZWF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSAhPSBudWxsO1xuICB9KTtcblxuICBwdWJsaWMgcGFyZW50S2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXk7XG4gIH0pO1xuXG4gIHB1YmxpYyBhbGxvd011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZSA/PyBmYWxzZTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWY/LnByb3BlcnRpZXMuZmlsdGVyKChwKSA9PiBwLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKS5tYXAoKGMpID0+IGMudGl0bGUgPz8gYy5uYW1lKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY29sdW1ucyA9ICgpID0+IHtcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3QgY29sdW1ucyA9IGxpc3RDb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpO1xuICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PlxuICAgICAgKHRoaXMub3B0aW9ucy5jb2x1bW5zPy5sZW5ndGggPz8gMCkgPiAwXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmNvbHVtbnMhLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKVxuICAgICAgICA6IGNvbHVtbnMuc29tZSgoYykgPT4gYyA9PSBwLm5hbWUpLFxuICAgICk7XG4gICAgLy9cbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gcC5uYW1lKSEpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBhZHZhbmNlRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ2FuZCcsXG4gICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgIGZpbHRlcnM6IFtdLFxuICB9O1xuXG4gIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcsIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnMgPSBbXTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHByb3BzLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2gpIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgLy8gdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuc29ydGVkRmllbGRzKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIC8vIENoZWNrIGlmIGlubGluZUZpbHRlcnMgb3IgcGFyZW50RmlsdGVycyBoYXZlIGFueSBmaWx0ZXJzXG4gICAgY29uc3QgaGFzSW5saW5lRmlsdGVycyA9ICh0aGlzLmlubGluZUZpbHRlcnM/LmZpbHRlcnM/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gICAgY29uc3QgaGFzUGFyZW50RmlsdGVycyA9ICh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgZmlsdGVycyBhcnJheSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgZmlsdGVyc1xuICAgIGNvbnN0IGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XG4gICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlcik7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21GaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWRGaWx0ZXJzID0gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKFt0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyXSk7XG4gICAgICBpZiAoY2xlYW5lZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKGNsZWFuZWRGaWx0ZXJzWzBdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNJbmxpbmVGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5pbmxpbmVGaWx0ZXJzKTtcbiAgICB9XG4gICAgaWYgKGhhc1BhcmVudEZpbHRlcnMgJiYgdGhpcy5vcHRpb25zLnBhcmVudEZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycyk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIGZpbHRlcnMgdG8gdGhlIGRhdGFTb3VyY2VcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSk7XG5cbiAgICAvLyBSZWZyZXNoIHRoZSBkYXRhU291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xuICAgIHRoaXMuYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWUudHJpbSgpLCBmYWxzZSk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICByZXR1cm4gKGF3YWl0IGZ1bmMoeyBmaWx0ZXI6IHRoaXMuaW5saW5lRmlsdGVycywgdGFrZTogMTAgfSkpID8/IFtdO1xuICB9XG5cbiAgc2V0Q3VzdG9tRmlsdGVyKGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uKSB7XG4gICAgdGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlciA9IGZpbHRlcjtcbiAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICB9XG5cblxuICBtZXJnZUZpbHRlcihyZXF1ZXN0OiBBWERhdGFTb3VyY2VRdWVyeSwgZmlsdGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKCFmaWx0ZXIpIHtcbiAgICAgIHJldHVybiByZXF1ZXN0O1xuICAgIH1cbiAgICBpZiAocmVxdWVzdC5maWx0ZXIpIHtcbiAgICAgIHJlcXVlc3QuZmlsdGVyID0ge1xuICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgIGZpbHRlcnM6IFsuLi5bcmVxdWVzdC5maWx0ZXJdLCAuLi4oZmlsdGVyLmZpbHRlcnMgPz8gW10pXVxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcXVlc3QuZmlsdGVyID0gZmlsdGVyO1xuICAgIH1cbiAgICByZXR1cm4gcmVxdWVzdDtcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTagBoxComponent, AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Injector, computed, effect, inject, signal, viewChild, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { castArray, get, isEmpty, isNil, set } from 'lodash-es';\nimport { AXPEntityResolver } from '../../entity.config';\nimport { AXPLookupWidgetSelectorComponent } from './lookup-widget-selector.component';\nimport { AXPLookupWidgetSelectorViewModel } from './lookup-widget-selector.viewmodel';\nimport { extractValue, setSmart } from '@acorex/platform/core';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXSearchBoxComponent } from \"@acorex/components/search-box\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/button\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/loading\";\nimport * as i5 from \"@acorex/components/form\";\nimport * as i6 from \"@acorex/components/tag-box\";\nimport * as i7 from \"@acorex/components/select-box\";\nimport * as i8 from \"@angular/common\";\nimport * as i9 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.injector = inject(Injector);\n this.entityResolver = inject(AXPEntityResolver);\n this.formatService = inject(AXFormatService);\n this.popupService = inject(AXPopupService);\n this.translateService = inject(AXTranslationService);\n this.expose = computed(() => this.options()['expose'], ...(ngDevMode ? [{ debugName: \"expose\" }] : []));\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.disabled = computed(() => this.options()['disabled'], ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n this.columns = computed(() => this.options()['columns'] ?? [], ...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.customFilter = computed(() => this.options()['filter'], ...(ngDevMode ? [{ debugName: \"customFilter\" }] : []));\n this.multiple = computed(() => (this.options()['multiple'] ?? false), ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.look = computed(() => this.options()['look'] ?? 'lookup', ...(ngDevMode ? [{ debugName: \"look\" }] : []));\n this.textField = computed(() => {\n return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');\n }, ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id', ...(ngDevMode ? [{ debugName: \"valueField\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.searchTerm = signal(null, ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.textbox = viewChild(AXTagBoxComponent, ...(ngDevMode ? [{ debugName: \"textbox\" }] : []));\n this.isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.vm = signal(null, ...(ngDevMode ? [{ debugName: \"vm\" }] : []));\n this.placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n }, ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n this.#efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n this.vm.set(new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n }));\n }, ...(ngDevMode ? [{ debugName: \"#efEntity\" }] : []));\n this.#efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n else {\n this.clear();\n }\n }, ...(ngDevMode ? [{ debugName: \"#efValue\" }] : []));\n this.#efCustomFilter = effect(() => {\n if (this.customFilter()) {\n this.vm()?.setCustomFilter(this.customFilter());\n }\n }, ...(ngDevMode ? [{ debugName: \"#efCustomFilter\" }] : []));\n }\n #efEntity;\n #efValue;\n #efCustomFilter;\n async findByValue() {\n this.isLoading.set(true);\n const rawValue = this.getValue();\n const values = castArray(rawValue);\n const byKey = this.entityDef()?.queries.byKey?.execute;\n if (byKey && values.length) {\n if (this.multiple()) {\n const items = await Promise.all(values.map((value) => byKey(extractValue(value, this.valueField()))));\n this.setItems(items);\n }\n else {\n const id = extractValue(values[0], this.valueField());\n const item = await byKey(id);\n this.setItems(item);\n }\n }\n else {\n this.setItems([]);\n }\n this.isLoading.set(false);\n }\n handleOnClick(e) {\n this.showSelector();\n }\n showSelector() {\n this.isOpen.set(true);\n const columnsCount = this.columns().length > 0 ? this.columns().length : this.vm()?.columns().length ?? 0;\n this.popupService\n .open(AXPLookupWidgetSelectorComponent, {\n title: `${this.translateService.translateSync('widget.lookup.search')} ${this.translateService.translateSync(this.entityDef()?.formats.plural ?? '')}`,\n size: columnsCount < 4 ? 'md' : 'lg',\n data: {\n vm: new AXPLookupWidgetSelectorViewModel(this.injector, this.entityDef(), {\n customFilter: this.customFilter(),\n parentFilters: this.filter,\n allowMultiple: this.multiple(),\n columns: this.columns(),\n }),\n searchTerm: this.searchTerm(),\n initialSelectedItems: this.selectedItems(),\n },\n })\n .then((e) => {\n this.isOpen.set(false);\n this.textbox()?.focus();\n if (e.data?.items) {\n this.setItems(e.data?.items);\n }\n });\n }\n selectBoxValueChange(e) {\n const items = e.component.selectedItems;\n this.setItems(items);\n }\n handleValueChange(e) {\n if (e.isUserInteraction) {\n if (isNil(e.value) || isEmpty(e.value)) {\n this.clear();\n }\n else {\n this.setValue(this.singleOrMultiple(e.value));\n }\n }\n }\n handleOnBlur(e) {\n setTimeout(() => {\n if (!this.isOpen()) {\n this.clearInput();\n }\n }, 100);\n }\n async handleKeyUp(e) {\n const keyEvent = e.nativeEvent;\n const value = this.textbox()?.inputValue();\n this.searchTerm.set(value);\n if ((keyEvent.code == 'Enter' || keyEvent.code == 'NumpadEnter') && value) {\n this.isLoading.set(true);\n const result = await this.vm()?.find(value);\n if (result?.total == 1) {\n this.setItems(result.items[0]);\n }\n else {\n this.showSelector();\n }\n this.isLoading.set(false);\n }\n if (keyEvent.code == 'ArrowDown') {\n this.showSelector();\n }\n }\n setItems(items) {\n if (!items || items.length == 0) {\n this.selectedItems.set([]);\n return;\n }\n //\n items = castArray(items);\n this.clearInput();\n this.selectedItems.set(items);\n //\n const keys = items.map((item) => get(item, this.valueField()));\n //\n // extract data from valueField and set context by expose path\n if (this.expose()) {\n const exposeValue = castArray(this.expose());\n const itemToExpose = {};\n //\n exposeValue.forEach((i) => {\n if (typeof i == 'string') {\n const values = items.map((item) => set({}, i, get(item, i)));\n setSmart(itemToExpose, i, this.singleOrMultiple(values));\n }\n else {\n // extract data from item by source path and set context by target path\n const values = this.multiple()\n ? items.map((item) => set({}, i.source, get(item, i.source)))\n : items.map((item) => get(item, i.source));\n setSmart(itemToExpose, i.target, this.singleOrMultiple(values));\n }\n });\n this.contextService.patch(itemToExpose);\n // fire triggers\n this.setValue(this.singleOrMultiple(keys));\n }\n else {\n this.setValue(this.singleOrMultiple(keys));\n }\n }\n handleClearClick() {\n this.clear();\n }\n refresh() {\n this.clear();\n if (this.customFilter()) {\n this.vm()?.setCustomFilter(this.customFilter());\n }\n this.vm()?.dataSource.refresh();\n }\n clear() {\n this.setValue(null);\n this.clearInput();\n this.selectedItems.set([]);\n }\n clearInput() {\n this.textbox()?.inputValue.set('');\n this.searchTerm.set('');\n }\n singleOrMultiple(values) {\n return this.multiple() ? values : values[0];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetEditComponent, isStandalone: true, selector: \"axp-lookup-widget-edit\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTagBoxComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n @if (look() == 'select') {\n <ax-select-box\n [dataSource]=\"vm()?.dataSource!\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n (onValueChanged)=\"selectBoxValueChange($event)\"\n >\n <ax-search-box>\n </ax-search-box>\n </ax-select-box>\n } @else {\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: \n //\n AXButtonModule }, { kind: \"component\", type: i2.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"component\", type: i4.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i5.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i6.AXTagBoxComponent, selector: \"ax-tag-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"allowNull\", \"type\", \"look\", \"addOnComma\", \"addOnEnter\", \"valueField\", \"textField\", \"readonlyField\", \"allowDuplicateValues\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i7.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i9.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-lookup-widget-edit',\n template: `\n @if (look() == 'select') {\n <ax-select-box\n [dataSource]=\"vm()?.dataSource!\"\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n [disabled]=\"disabled()\"\n [multiple]=\"multiple()\"\n (onValueChanged)=\"selectBoxValueChange($event)\"\n >\n <ax-search-box>\n </ax-search-box>\n </ax-select-box>\n } @else {\n <ax-tag-box\n [ngModel]=\"selectedItems()\"\n [textField]=\"textField()\"\n [valueField]=\"valueField()\"\n (onValueChanged)=\"handleValueChange($event)\"\n [placeholder]=\"placeholder() | translate | async\"\n [addOnEnter]=\"false\"\n [addOnComma]=\"false\"\n [disabled]=\"disabled()\"\n (onKeyUp)=\"handleKeyUp($event)\"\n (onBlur)=\"handleOnBlur($event)\"\n >\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n @if (selectedItems().length > 1) {\n <ax-clear-button (click)=\"handleClearClick()\"></ax-clear-button>\n }\n\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"blank\" [disabled]=\"isLoading() || disabled()\" (onClick)=\"handleOnClick($event)\">\n @if (isLoading()) {\n <ax-loading></ax-loading>\n } @else {\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n }\n </ax-button>\n </ax-suffix>\n </ax-tag-box>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n FormsModule,\n //\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXTagBoxModule,\n AXTranslationModule,\n AXSelectBoxModule,\n AXSearchBoxComponent\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVEzRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFF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LDhLQUNmLGtCQUFrQiw4QkFDbEIsWUFBWSw2S0FDWixjQUFjLDZkQUNkLG1CQUFtQiw4QkFDbkIsaUJBQWlCLCtwQkFDakIsb0JBQW9COzsyRkFHWCw0QkFBNEI7a0JBcEV4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxFQUFFO3dCQUNGLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gIEFYQ2xpY2tFdmVudCxcbiAgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICBBWEZvY3VzRXZlbnQsXG4gIEFYSHRtbEV2ZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFRhZ0JveENvbXBvbmVudCwgQVhUYWdCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFnLWJveCc7XG5pbXBvcnQgeyBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUXVlcnlGaWx0ZXIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEluamVjdG9yLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2FzdEFycmF5LCBnZXQsIGlzRW1wdHksIGlzTmlsLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuaW1wb3J0IHsgZXh0cmFjdFZhbHVlLCBzZXRTbWFydCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRMb29rVHlwZSB9IGZyb20gJy4vbG9va3VwLXdpZGdldC50eXBlcyc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCwgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gXCJAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbG9va3VwLXdpZGdldC1lZGl0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGxvb2soKSA9PSAnc2VsZWN0Jykge1xuICAgICAgPGF4LXNlbGVjdC1ib3hcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwidm0oKT8uZGF0YVNvdXJjZSFcIlxuICAgICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZEl0ZW1zKClcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cInRleHRGaWVsZCgpXCJcbiAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGUoKVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJzZWxlY3RCb3hWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgIDxheC1zZWFyY2gtYm94PlxuICAgICAgPC9heC1zZWFyY2gtYm94PlxuICAgIDwvYXgtc2VsZWN0LWJveD5cbiAgICB9IEBlbHNlIHtcbiAgICA8YXgtdGFnLWJveFxuICAgICAgW25nTW9kZWxdPVwic2VsZWN0ZWRJdGVtcygpXCJcbiAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkKClcIlxuICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZCgpXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgW2FkZE9uRW50ZXJdPVwiZmFsc2VcIlxuICAgICAgW2FkZE9uQ29tbWFdPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgKG9uS2V5VXApPVwiaGFuZGxlS2V5VXAoJGV2ZW50KVwiXG4gICAgICAob25CbHVyKT1cImhhbmRsZU9uQmx1cigkZXZlbnQpXCJcbiAgICA+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZVxuICAgICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJ2YWxpZGF0aW9uLm9wdGlvbnNcIlxuICAgICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICBAaWYgKHNlbGVjdGVkSXRlbXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgIDxheC1jbGVhci1idXR0b24gKGNsaWNrKT1cImhhbmRsZUNsZWFyQ2xpY2soKVwiPjwvYXgtY2xlYXItYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwiYmxhbmtcIiBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKCkgfHwgZGlzYWJsZWQoKVwiIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxheC1pY29uIGljb249XCJmYXIgZmEtc2VhcmNoXCI+IDwvYXgtaWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC10YWctYm94PlxuICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIC8vXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhUYWdCb3hNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveENvbXBvbmVudFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRFZGl0Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGV4cG9zZSA9IGNvbXB1dGVkPHN0cmluZyB8IHVuZGVmaW5lZCB8IGFueVtdPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZXhwb3NlJ10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGVudGl0eSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2Rpc2FibGVkJ10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGNvbHVtbnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4gKHRoaXMub3B0aW9ucygpWydjb2x1bW5zJ10gYXMgc3RyaW5nW10pID8/IFtdKTtcbiAgcHJvdGVjdGVkIGN1c3RvbUZpbHRlciA9IGNvbXB1dGVkPEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbj4oXG4gICAgKCkgPT4gdGhpcy5vcHRpb25zKClbJ2ZpbHRlciddIGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbixcbiAgKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gPz8gZmFsc2UpIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgbG9vayA9IGNvbXB1dGVkPEFYUExvb2t1cFdpZGdldExvb2tUeXBlPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9vayddIGFzIEFYUExvb2t1cFdpZGdldExvb2tUeXBlID8/ICdsb29rdXAnKTtcblxuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMubG9va3VwID8/IHRoaXMuZW50aXR5RGVmKCk/LnByb3BlcnRpZXMuZmluZCgoYykgPT4gYy5uYW1lICE9ICdpZCcpPy5uYW1lID8/ICd0aXRsZSdcbiAgICApO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgPT0gJ2lkJyk/Lm5hbWUgPz8gJ2lkJyk7XG5cbiAgcHJvdGVjdGVkIGNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xuXG4gIHByb3RlY3RlZCBmaWx0ZXI6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB8IG51bGw7XG5cbiAgcHJpdmF0ZSBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICB0ZXh0Ym94ID0gdmlld0NoaWxkKEFYVGFnQm94Q29tcG9uZW50KTtcblxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgdm0gPSBzaWduYWw8QVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgPyAnJ1xuICAgICAgOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYygnd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnKSArIHRoaXMudm0oKT8uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJyk7XG4gIH0pO1xuXG4gICNlZkVudGl0eSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IHRoaXMuZW50aXR5KCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmVudGl0eURlZi5zZXQoYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlLCBlbnRpdHkpKTtcbiAgICB0aGlzLnZtLnNldChcbiAgICAgIG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZigpISwge1xuICAgICAgICBwYXJlbnRGaWx0ZXJzOiB0aGlzLmZpbHRlcixcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogdGhpcy5tdWx0aXBsZSgpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfSk7XG5cblxuXG4gICNlZlZhbHVlID0gZWZmZWN0KCgpID0+IHtcbiAgICBpZiAodGhpcy5nZXRWYWx1ZSgpKSB7XG4gICAgICB0aGlzLmZpbmRCeVZhbHVlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cbiAgfSk7XG5cblxuICAjZWZDdXN0b21GaWx0ZXIgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLmN1c3RvbUZpbHRlcigpKSB7XG4gICAgICB0aGlzLnZtKCk/LnNldEN1c3RvbUZpbHRlcih0aGlzLmN1c3RvbUZpbHRlcigpKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgYXN5bmMgZmluZEJ5VmFsdWUoKSB7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGNhc3RBcnJheShyYXdWYWx1ZSk7XG4gICAgY29uc3QgYnlLZXkgPSB0aGlzLmVudGl0eURlZigpPy5xdWVyaWVzLmJ5S2V5Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgIGlmIChieUtleSAmJiB2YWx1ZXMubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSgpKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gYXdhaXQgUHJvbWlzZS5hbGwodmFsdWVzLm1hcCgodmFsdWUpID0+IGJ5S2V5KGV4dHJhY3RWYWx1ZSh2YWx1ZSwgdGhpcy52YWx1ZUZpZWxkKCkpKSkpO1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGlkID0gZXh0cmFjdFZhbHVlKHZhbHVlc1swXSwgdGhpcy52YWx1ZUZpZWxkKCkpO1xuICAgICAgICBjb25zdCBpdGVtID0gYXdhaXQgYnlLZXkoaWQpO1xuICAgICAgICB0aGlzLnNldEl0ZW1zKGl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEl0ZW1zKFtdKTtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVPbkNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xuICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTZWxlY3RvcigpIHtcbiAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgY29uc3QgY29sdW1uc0NvdW50ID0gdGhpcy5jb2x1bW5zKCkubGVuZ3RoID4gMCA/IHRoaXMuY29sdW1ucygpLmxlbmd0aCA6IHRoaXMudm0oKT8uY29sdW1ucygpLmxlbmd0aCA/PyAwO1xuICAgIHRoaXMucG9wdXBTZXJ2aWNlXG4gICAgICAub3BlbihBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCwge1xuICAgICAgICB0aXRsZTogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ3dpZGdldC5sb29rdXAuc2VhcmNoJyl9ICR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoXG4gICAgICAgICAgdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5wbHVyYWwgPz8gJycsXG4gICAgICAgICl9YCxcbiAgICAgICAgc2l6ZTogY29sdW1uc0NvdW50IDwgNCA/ICdtZCcgOiAnbGcnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdm06IG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZigpISwge1xuICAgICAgICAgICAgY3VzdG9tRmlsdGVyOiB0aGlzLmN1c3RvbUZpbHRlcigpLFxuICAgICAgICAgICAgcGFyZW50RmlsdGVyczogdGhpcy5maWx0ZXIsXG4gICAgICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlKCksXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmNvbHVtbnMoKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRlcm0oKSxcbiAgICAgICAgICBpbml0aWFsU2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zKCksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLnRleHRib3goKT8uZm9jdXMoKTtcbiAgICAgICAgaWYgKGUuZGF0YT8uaXRlbXMpIHtcbiAgICAgICAgICB0aGlzLnNldEl0ZW1zKGUuZGF0YT8uaXRlbXMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RCb3hWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgY29uc3QgaXRlbXMgPSAoZS5jb21wb25lbnQgYXMgQVhTZWxlY3RCb3hDb21wb25lbnQpLnNlbGVjdGVkSXRlbXM7XG4gICAgdGhpcy5zZXRJdGVtcyhpdGVtcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlVmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICBpZiAoaXNOaWwoZS52YWx1ZSkgfHwgaXNFbXB0eShlLnZhbHVlKSkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShlLnZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmx1cihlOiBBWEZvY3VzRXZlbnQpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xuICAgICAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleVVwKGU6IEFYSHRtbEV2ZW50KSB7XG4gICAgY29uc3Qga2V5RXZlbnQgPSBlLm5hdGl2ZUV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRleHRib3goKT8uaW5wdXRWYWx1ZSgpITtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KHZhbHVlKTtcbiAgICBpZiAoKGtleUV2ZW50LmNvZGUgPT0gJ0VudGVyJyB8fCBrZXlFdmVudC5jb2RlID09ICdOdW1wYWRFbnRlcicpICYmIHZhbHVlKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnZtKCk/LmZpbmQodmFsdWUpO1xuICAgICAgaWYgKHJlc3VsdD8udG90YWwgPT0gMSkge1xuICAgICAgICB0aGlzLnNldEl0ZW1zKHJlc3VsdC5pdGVtc1swXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dTZWxlY3RvcigpO1xuICAgICAgfVxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKGtleUV2ZW50LmNvZGUgPT0gJ0Fycm93RG93bicpIHtcbiAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtcyhpdGVtczogYW55W10pIHtcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PSAwKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy9cbiAgICBpdGVtcyA9IGNhc3RBcnJheShpdGVtcyk7XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChpdGVtcyk7XG4gICAgLy9cbiAgICBjb25zdCBrZXlzID0gaXRlbXMubWFwKChpdGVtKSA9PiBnZXQoaXRlbSwgdGhpcy52YWx1ZUZpZWxkKCkpKTtcbiAgICAvL1xuICAgIC8vIGV4dHJhY3QgZGF0YSBmcm9tIHZhbHVlRmllbGQgYW5kIHNldCBjb250ZXh0IGJ5IGV4cG9zZSBwYXRoXG4gICAgaWYgKHRoaXMuZXhwb3NlKCkpIHtcbiAgICAgIGNvbnN0IGV4cG9zZVZhbHVlID0gY2FzdEFycmF5KHRoaXMuZXhwb3NlKCkpO1xuICAgICAgY29uc3QgaXRlbVRvRXhwb3NlOiBhbnkgPSB7fTtcbiAgICAgIC8vXG4gICAgICBleHBvc2VWYWx1ZS5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgaSA9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gc2V0KHt9LCBpIGFzIHN0cmluZywgZ2V0KGl0ZW0sIGkpKSk7XG4gICAgICAgICAgc2V0U21hcnQoaXRlbVRvRXhwb3NlLCBpLCB0aGlzLnNpbmdsZU9yTXVsdGlwbGUodmFsdWVzKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gZXh0cmFjdCBkYXRhIGZyb20gaXRlbSBieSBzb3VyY2UgcGF0aCBhbmQgc2V0IGNvbnRleHQgYnkgdGFyZ2V0IHBhdGhcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLm11bHRpcGxlKClcbiAgICAgICAgICAgID8gaXRlbXMubWFwKChpdGVtKSA9PiBzZXQoe30sIGkuc291cmNlLCBnZXQoaXRlbSwgaS5zb3VyY2UpKSlcbiAgICAgICAgICAgIDogaXRlbXMubWFwKChpdGVtKSA9PiBnZXQoaXRlbSwgaS5zb3VyY2UpKTtcbiAgICAgICAgICBzZXRTbWFydChpdGVtVG9FeHBvc2UsIGkudGFyZ2V0LCB0aGlzLnNpbmdsZU9yTXVsdGlwbGUodmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5wYXRjaChpdGVtVG9FeHBvc2UpO1xuICAgICAgLy8gZmlyZSB0cmlnZ2Vyc1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNpbmdsZU9yTXVsdGlwbGUoa2V5cykpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zaW5nbGVPck11bHRpcGxlKGtleXMpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xlYXJDbGljaygpIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmNsZWFyKCk7XG4gICAgaWYgKHRoaXMuY3VzdG9tRmlsdGVyKCkpIHtcbiAgICAgIHRoaXMudm0oKT8uc2V0Q3VzdG9tRmlsdGVyKHRoaXMuY3VzdG9tRmlsdGVyKCkpO1xuICAgIH1cbiAgICB0aGlzLnZtKCk/LmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5jbGVhcklucHV0KCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnNldChbXSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJJbnB1dCgpIHtcbiAgICB0aGlzLnRleHRib3goKT8uaW5wdXRWYWx1ZS5zZXQoJycpO1xuICAgIHRoaXMuc2VhcmNoVGVybS5zZXQoJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaW5nbGVPck11bHRpcGxlKHZhbHVlczogYW55W10pOiBhbnkgfCBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUoKSA/IHZhbHVlcyA6IHZhbHVlc1swXTtcbiAgfVxufVxuIl19","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport { castArray, isNil } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPLookupWidgetColumnComponent extends AXPColumnWidgetComponent {\n constructor() {\n super(...arguments);\n this.valueField = this.options['valueField'] ?? 'id';\n this.textField = this.options['textField'] ?? 'title';\n this.badgeClass = this.options['badgeClass'] ?? 'ax-accent1';\n this.displayItems = computed(() => isNil(this.rawValue)\n ? []\n : castArray(this.rawValue).map((item) => this.extractItem(item)).filter((c) => c != null), ...(ngDevMode ? [{ debugName: \"displayItems\" }] : []));\n }\n extractItem(item) {\n if (isNil(item)) {\n return null;\n }\n return typeof item == 'object'\n ? {\n [this.valueField]: item?.[this.valueField],\n [this.textField]: item?.[this.textField],\n }\n : {\n [this.valueField]: item,\n [this.textField]: item,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPLookupWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\", rowData: \"rowData\" }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" [class]=\"badgeClass\"></ax-badge>\n }\n @empty {\n <span class=\"ax-text-muted\">---</span>\n }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPLookupWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1\">\n @for (item of displayItems(); track $index) {\n <ax-badge [text]=\"item[this.textField]\" [class]=\"badgeClass\"></ax-badge>\n }\n @empty {\n <span class=\"ax-text-muted\">---</span>\n }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: ['rawValue', 'rowData'],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9sb29rdXAtd2lkZ2V0L2xvb2t1cC13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWdCN0MsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUE2QjtJQWZqRjs7UUFnQlksZUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hELGNBQVMsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUN6RCxlQUFVLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUM7UUFFaEUsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLHdEQUNqRyxDQUFDO0tBZ0JIO0lBZFMsV0FBVyxDQUFDLElBQVM7UUFDM0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLE9BQU8sSUFBSSxJQUFJLFFBQVE7WUFDNUIsQ0FBQyxDQUFDO2dCQUNBLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7Z0JBQzFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7YUFDekM7WUFDRCxDQUFDLENBQUM7Z0JBQ0EsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSTtnQkFDdkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSTthQUN2QixDQUFDO0lBQ04sQ0FBQzs4R0F4QlUsOEJBQThCO2tHQUE5Qiw4QkFBOEIscUpBZC9COzs7Ozs7Ozs7R0FTVCwyREFFUyxhQUFhOzsyRkFHWiw4QkFBOEI7a0JBZjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7R0FTVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIGlzTmlsIH0gZnJvbSAnbG9kYXNoLWVzJztcbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWdhcC0xXCI+XG4gICAgICBAZm9yIChpdGVtIG9mIGRpc3BsYXlJdGVtcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC1iYWRnZSBbdGV4dF09XCJpdGVtW3RoaXMudGV4dEZpZWxkXVwiIFtjbGFzc109XCJiYWRnZUNsYXNzXCI+PC9heC1iYWRnZT5cbiAgICAgIH1cbiAgICAgIEBlbXB0eSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtdGV4dC1tdXRlZFwiPi0tLTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBWEJhZGdlTW9kdWxlXSxcbiAgaW5wdXRzOiBbJ3Jhd1ZhbHVlJywgJ3Jvd0RhdGEnXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgdmFsdWVGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd2YWx1ZUZpZWxkJ10gPz8gJ2lkJztcbiAgcHJvdGVjdGVkIHRleHRGaWVsZDogc3RyaW5nID0gdGhpcy5vcHRpb25zWyd0ZXh0RmllbGQnXSA/PyAndGl0bGUnO1xuICBwcm90ZWN0ZWQgYmFkZ2VDbGFzczogc3RyaW5nID0gdGhpcy5vcHRpb25zWydiYWRnZUNsYXNzJ10gPz8gJ2F4LWFjY2VudDEnO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5SXRlbXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGlzTmlsKHRoaXMucmF3VmFsdWUpXG4gICAgICA/IFtdXG4gICAgICA6IGNhc3RBcnJheSh0aGlzLnJhd1ZhbHVlKS5tYXAoKGl0ZW06IGFueSkgPT4gdGhpcy5leHRyYWN0SXRlbShpdGVtKSkuZmlsdGVyKChjKSA9PiBjICE9IG51bGwpLFxuICApO1xuXG4gIHByaXZhdGUgZXh0cmFjdEl0ZW0oaXRlbTogYW55KTogYW55IHtcbiAgICBpZiAoaXNOaWwoaXRlbSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZW9mIGl0ZW0gPT0gJ29iamVjdCdcbiAgICAgID8ge1xuICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogaXRlbT8uW3RoaXMudmFsdWVGaWVsZF0sXG4gICAgICAgIFt0aGlzLnRleHRGaWVsZF06IGl0ZW0/Llt0aGlzLnRleHRGaWVsZF0sXG4gICAgICB9XG4gICAgICA6IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IGl0ZW0sXG4gICAgICAgIFt0aGlzLnRleHRGaWVsZF06IGl0ZW0sXG4gICAgICB9O1xuICB9XG59XG4iXX0=","import { AXPWidgetGroupEnum, AXPWidgetsCatalog } from '@acorex/platform/layout/builder';\nimport { AXP_ALLOW_MULTIPLE_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DATA_PROPERTY_GROUP, AXP_DISABLED_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPLookupWidget = {\n name: 'lookup-editor',\n title: 'Lookup',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n defaultFilterWidgetName: 'lookup-filter',\n type: 'editor',\n properties: [\n AXP_DISABLED_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n {\n name: 'expose',\n title: 'Expose',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'expose',\n path: 'options.expose',\n type: AXPWidgetsCatalog.select,\n },\n },\n visible: true,\n },\n {\n name: 'entity',\n title: 'Entity',\n group: AXP_DATA_PROPERTY_GROUP,\n schema: {\n dataType: 'string',\n interface: {\n name: 'entity',\n path: 'options.entity',\n type: AXPWidgetsCatalog.text,\n },\n },\n visible: true,\n },\n AXP_ALLOW_MULTIPLE_PROPERTY\n ],\n components: {\n view: {\n component: () => import('./lookup-widget-view.component').then((c) => c.AXPLookupWidgetViewComponent),\n },\n edit: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n column: {\n component: () => import('./lookup-widget-column.component').then((c) => c.AXPLookupWidgetColumnComponent),\n },\n designer: {\n component: () => import('./lookup-widget-edit.component').then((c) => c.AXPLookupWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRS9JLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0I7SUFDOUMsSUFBSSxFQUFFLGVBQWU7SUFDckIsS0FBSyxFQUFFLFFBQVE7SUFDZixVQUFVLEVBQUUsRUFBRTtJQUNkLE1BQU0sRUFBRSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQztJQUN6Qyx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QjtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsdUJBQXVCO1lBQzlCLE1BQU0sRUFBRTtnQkFDTixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxRQUFRO29CQUNkLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2lCQUMvQjthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZDtRQUNEO1lBQ0UsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsUUFBUTtZQUNmLEtBQUssRUFBRSx1QkFBdUI7WUFDOUIsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQzdCO2FBQ0Y7WUFDRCxPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0QsMkJBQTJCO0tBQzVCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO1FBQ0QsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDhCQUE4QixDQUFDO1NBQzFHO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO1NBQ3RHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0sIEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBfQUxMT1dfTVVMVElQTEVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9EQVRBX1BST1BFUlRZX0dST1VQLCBBWFBfRElTQUJMRURfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dpZGdldHMnO1xuXG5leHBvcnQgY29uc3QgQVhQTG9va3VwV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6ICdsb29rdXAtZWRpdG9yJyxcbiAgdGl0bGU6ICdMb29rdXAnLFxuICBjYXRlZ29yaWVzOiBbXSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkVudGl0eVdpZGdldF0sXG4gIGRlZmF1bHRGaWx0ZXJXaWRnZXROYW1lOiAnbG9va3VwLWZpbHRlcicsXG4gIHR5cGU6ICdlZGl0b3InLFxuICBwcm9wZXJ0aWVzOiBbXG4gICAgQVhQX0RJU0FCTEVEX1BST1BFUlRZLFxuICAgIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksXG4gICAge1xuICAgICAgbmFtZTogJ2V4cG9zZScsXG4gICAgICB0aXRsZTogJ0V4cG9zZScsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZXhwb3NlJyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5leHBvc2UnLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2VudGl0eScsXG4gICAgICB0aXRsZTogJ0VudGl0eScsXG4gICAgICBncm91cDogQVhQX0RBVEFfUFJPUEVSVFlfR1JPVVAsXG4gICAgICBzY2hlbWE6IHtcbiAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICBuYW1lOiAnZW50aXR5JyxcbiAgICAgICAgICBwYXRoOiAnb3B0aW9ucy5lbnRpdHknLFxuICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICB9LFxuICAgIEFYUF9BTExPV19NVUxUSVBMRV9QUk9QRVJUWVxuICBdLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQTG9va3VwV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMb29rdXBXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGNvbHVtbjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vbG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBMb29rdXBXaWRnZXRDb2x1bW5Db21wb25lbnQpLFxuICAgIH0sXG4gICAgZGVzaWduZXI6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2xvb2t1cC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG59O1xuXG5cbiJdfQ==","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetColumnComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div class=\"ax-flex ax-gap-1 ax-flex-wrap\">\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item[textField()]\" color=\"primary\"></ax-badge>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-inline-block\">{{ internalValue()[0] }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCO0lBaEJwRjs7UUFpQlksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMseURBQUMsQ0FBQztRQUV2RyxhQUFRLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQVksb0RBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSx3REFBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBWSxJQUFJLE9BQU8scURBQUMsQ0FBQztRQUVqRyw2QkFBNkI7UUFDbkIsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUMsbURBQUMsQ0FBQztLQUNKOzhHQXRCWSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrRkFmbkM7Ozs7Ozs7Ozs7R0FVVCwyREFFUyxhQUFhOzsyRkFHWixrQ0FBa0M7a0JBaEI5QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7OztHQVVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxFQUFFO2lCQUNYIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1nYXAtMSBheC1mbGV4LXdyYXBcIj5cbiAgICAgIEBpZiAodXNlU2VsZWN0Qm94KCkgJiYgZ2V0RGF0YSgpLmxlbmd0aCA+IDApIHsgQGZvciAoaXRlbSBvZiBnZXREYXRhKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LWJhZGdlIFtsb29rXT1cIid0d290b25lJ1wiIFt0ZXh0XT1cIml0ZW1bdGV4dEZpZWxkKCldXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICAgIH0gfSBAZWxzZSB7IEBpZihtdWx0aXBsZSgpKSB7IEBmb3IgKGl0ZW0gb2YgaW50ZXJuYWxWYWx1ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LWlubGluZS1ibG9ja1wiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2Uge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtaW5saW5lLWJsb2NrXCI+e3sgaW50ZXJuYWxWYWx1ZSgpWzBdIH19PC9zcGFuPlxuICAgICAgfSB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCYWRnZU1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoQXJyYXkuaXNBcnJheSh0aGlzLmdldFZhbHVlKCkpID8gdGhpcy5nZXRWYWx1ZSgpIDogW3RoaXMuZ2V0VmFsdWUoKV0pKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcblxuICAvLyDZiNuM2pjar9uM4oCM2YfYp9uMINmF2LHYqtio2Lcg2KjYpyBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIHVzZVNlbGVjdEJveCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWyd1c2VTZWxlY3RCb3gnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIC8vINin2LPYqtiu2LHYp9isINiv2KfYr9mH4oCM2YfYpyDYqNix2KfbjCDZhtmF2KfbjNi0XG4gIHByb3RlY3RlZCBnZXREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy51c2VTZWxlY3RCb3goKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH0pO1xufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDataSource } from '@acorex/cdk/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\n// import { AXTagBoxModule } from '@acorex/components/tag-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, HostBinding, computed, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/form\";\nimport * as i3 from \"@acorex/components/decorators\";\nimport * as i4 from \"@acorex/components/button\";\nimport * as i5 from \"@acorex/components/select-box\";\nimport * as i6 from \"@acorex/components/search-box\";\nexport class AXPTagableBoxWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.entityResolver = inject(AXPEntityResolver);\n this.hasClearButton = computed(() => this.options()['hasClearButton'], ...(ngDevMode ? [{ debugName: \"hasClearButton\" }] : []));\n this.disabled = computed(() => this.options()['disabled'], ...(ngDevMode ? [{ debugName: \"disabled\" }] : []));\n this.placeholder = computed(() => this.options()['placeholder'], ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n // پارامترهای SelectBox\n this.moduleName = computed(() => this.options()['module'], ...(ngDevMode ? [{ debugName: \"moduleName\" }] : []));\n this.entityName = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entityName\" }] : []));\n this.allowSearch = computed(() => this.options()['allowSearch'], ...(ngDevMode ? [{ debugName: \"allowSearch\" }] : []));\n // منبع داده برای SelectBox\n this._dataSource = new AXDataSource({\n load: async (e) => {\n const entity = await this.entityResolver.get(this.moduleName(), this.entityName());\n const func = entity?.queries.list?.execute;\n const result = await func(e);\n console.log(result);\n return {\n items: result?.items || [],\n total: result?.total || 0,\n };\n },\n pageSize: 10,\n });\n }\n handleSelectValueChange(e) {\n if (e.isUserInteraction) {\n this.setValue(e.value);\n }\n }\n addItem() { }\n get __class() {\n const cls = {};\n cls[`ax-block`] = true;\n cls[`ax-flex-1`] = true;\n return cls;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetEditComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", host: { properties: { \"class\": \"this.__class\" } }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i2.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i3.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", inputs: [\"icon\"] }, { kind: \"component\", type: i3.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i4.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i5.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"isItemTruncated\", \"showItemTooltip\", \"dataSource\", \"minRecordsForSearch\", \"caption\", \"itemTemplate\", \"selectedTemplate\", \"emptyTemplate\", \"loadingTemplate\", \"dropdownWidth\", \"searchBoxAutoFocus\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i6.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n <div class=\"ax-grid ax-grid-cols-12 ax-gap-4\">\n <!-- نمایش Select Box با دکمه اضافه کردن آیتم -->\n <ax-select-box\n class=\"ax-col-span-12\"\n [placeholder]=\"placeholder()\"\n [dataSource]=\"_dataSource\"\n [ngModel]=\"getValue()\"\n [valueField]=\"'name'\"\n [textField]=\"'title'\"\n [multiple]=\"true\"\n (onValueChanged)=\"handleSelectValueChange($event)\"\n >\n @if (allowSearch()) {\n <ax-search-box><ax-clear-button></ax-clear-button></ax-search-box>\n }\n @if (hasClearButton()) {\n <ax-clear-button></ax-clear-button>\n }\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n </ax-select-box>\n <ax-button\n [text]=\"'افزودن آیتم جدید'\"\n look=\"twotone\"\n [disabled]=\"disabled()\"\n (onClick)=\"addItem()\"\n class=\"ax-col-start-8 md:ax-col-start-9 2xl:ax-col-start-10 ax-col-end-13\"\n >\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-add\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXTextBoxModule,\n FormsModule,\n AXFormModule,\n AXDecoratorModule,\n AXValidationModule,\n AXButtonModule,\n AXSelectBoxModule,\n AXSearchBoxModule\n ],\n inputs: [],\n }]\n }], propDecorators: { __class: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQXVCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLCtEQUErRDtBQUMvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBeUR4RCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsdUJBQTRCO0lBdkRsRjs7UUF3RFksbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENB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QkFBaUI7d0JBQ2pCLGlCQUFpQjtxQkFDcEI7b0JBQ0MsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7OEJBcUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94Jztcbi8vIGltcG9ydCB7IEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+XG4gICAgICA8IS0tINmG2YXYp9uM2LQgU2VsZWN0IEJveCDYqNinINiv2qnZhdmHINin2LbYp9mB2Ycg2qnYsdiv2YYg2KLbjNiq2YUgLS0+XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBjbGFzcz1cImF4LWNvbC1zcGFuLTEyXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCJfZGF0YVNvdXJjZVwiXG4gICAgICAgIFtuZ01vZGVsXT1cImdldFZhbHVlKClcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCInbmFtZSdcIlxuICAgICAgICBbdGV4dEZpZWxkXT1cIid0aXRsZSdcIlxuICAgICAgICBbbXVsdGlwbGVdPVwidHJ1ZVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3RWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChhbGxvd1NlYXJjaCgpKSB7XG4gICAgICAgICAgPGF4LXNlYXJjaC1ib3g+PGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj48L2F4LXNlYXJjaC1ib3g+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNDbGVhckJ1dHRvbigpKSB7XG4gICAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbj48L2F4LWNsZWFyLWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgICAgICBbcnVsZV09XCJ2YWxpZGF0aW9uLnJ1bGVcIlxuICAgICAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICAgICAgPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxuICAgICAgICB9XG4gICAgICA8L2F4LXNlbGVjdC1ib3g+XG4gICAgICA8YXgtYnV0dG9uXG4gICAgICAgIFt0ZXh0XT1cIifYp9mB2LLZiNiv2YYg2KLbjNiq2YUg2KzYr9uM2K8nXCJcbiAgICAgICAgbG9vaz1cInR3b3RvbmVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIChvbkNsaWNrKT1cImFkZEl0ZW0oKVwiXG4gICAgICAgIGNsYXNzPVwiYXgtY29sLXN0YXJ0LTggbWQ6YXgtY29sLXN0YXJ0LTkgMnhsOmF4LWNvbC1zdGFydC0xMCBheC1jb2wtZW5kLTEzXCJcbiAgICAgID5cbiAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICA8YXgtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cbiAgICAgICAgPC9heC1wcmVmaXg+XG4gICAgICA8L2F4LWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFNlYXJjaEJveE1vZHVsZVxuXSxcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQVGFnYWJsZUJveFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcblxuICBwcm90ZWN0ZWQgaGFzQ2xlYXJCdXR0b24gPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnaGFzQ2xlYXJCdXR0b24nXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2Rpc2FibGVkJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3BsYWNlaG9sZGVyJ10gYXMgc3RyaW5nKTtcblxuICAvLyDZvtin2LHYp9mF2KrYsdmH2KfbjCBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIG1vZHVsZU5hbWUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydtb2R1bGUnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5TmFtZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2VudGl0eSddIGFzIHN0cmluZyk7XG4gIHByb3RlY3RlZCBhbGxvd1NlYXJjaCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydhbGxvd1NlYXJjaCddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmF2YbYqNi5INiv2KfYr9mHINio2LHYp9uMIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgX2RhdGFTb3VyY2U6IEFYRGF0YVNvdXJjZTxhbnk+ID0gbmV3IEFYRGF0YVNvdXJjZSh7XG4gICAgbG9hZDogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQodGhpcy5tb2R1bGVOYW1lKCksIHRoaXMuZW50aXR5TmFtZSgpKTtcbiAgICAgIGNvbnN0IGZ1bmMgPSBlbnRpdHk/LnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZ1bmMoZSk7XG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlc3VsdD8uaXRlbXMgfHwgW10sXG4gICAgICAgIHRvdGFsOiByZXN1bHQ/LnRvdGFsIHx8IDAsXG4gICAgICB9O1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0VmFsdWVDaGFuZ2UoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKGUudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRJdGVtKCkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2BheC1ibG9ja2BdID0gdHJ1ZTtcbiAgICBjbHNbYGF4LWZsZXgtMWBdID0gdHJ1ZTtcbiAgICByZXR1cm4gY2xzO1xuICB9XG59XG4iXX0=","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetFilterComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetFilterComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormsModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3QyxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCOzhHQUF2RSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywrRkFMbkMsRUFBRSwyREFFRixXQUFXOzsyRkFHVixrQ0FBa0M7a0JBTjlDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHsgfVxuIl19","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPTagableBoxWidgetPrintComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetPrintComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <div>\n @if (useSelectBox() && getData().length > 0) { @for (item of getData(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n item[textField()]\n }}</span>\n } } @else { @if(multiple()) { @for (item of internalValue(); track $index) {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{ item }}</span>\n } } @else {\n <span class=\"ax-bg-slate-100 ax-px-2 ax-py-1 ax-rounded ax-mr-2 ax-mb-2 ax-inline-block\">{{\n internalValue()[0]\n }}</span>\n } }\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjdFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx1QkFBNEI7SUFwQm5GOztRQXFCWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyx5REFBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxDQUFDO1FBRXBGLCtCQUErQjtRQUNyQixpQkFBWSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFZLHdEQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxxREFBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxtREFBQyxDQUFDO0tBQ0o7OEdBdEJZLGlDQUFpQztrR0FBakMsaUNBQWlDLCtGQW5CbEM7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7OzJGQUtVLGlDQUFpQztrQkFwQjdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7OztHQWNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsRUFBRTtvQkFDWCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXY+XG4gICAgICBAaWYgKHVzZVNlbGVjdEJveCgpICYmIGdldERhdGEoKS5sZW5ndGggPiAwKSB7IEBmb3IgKGl0ZW0gb2YgZ2V0RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LW1yLTIgYXgtbWItMiBheC1pbmxpbmUtYmxvY2tcIj57e1xuICAgICAgICBpdGVtW3RleHRGaWVsZCgpXVxuICAgICAgfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2UgeyBAaWYobXVsdGlwbGUoKSkgeyBAZm9yIChpdGVtIG9mIGludGVybmFsVmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3sgaXRlbSB9fTwvc3Bhbj5cbiAgICAgIH0gfSBAZWxzZSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgaW50ZXJuYWxWYWx1ZSgpWzBdXG4gICAgICB9fTwvc3Bhbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW10sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRQcmludENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChBcnJheS5pc0FycmF5KHRoaXMuZ2V0VmFsdWUoKSkgPyB0aGlzLmdldFZhbHVlKCkgOiBbdGhpcy5nZXRWYWx1ZSgpXSkpO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmI24zamNqv24zigIzZh9in24wg2YXYsdiq2KjYtyDYqNinIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgdXNlU2VsZWN0Qm94ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3VzZVNlbGVjdEJveCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG5cbiAgLy8g2KfYs9iq2K7Ysdin2Kwg2K/Yp9iv2YfigIzZh9inINio2LHYp9uMINmG2YXYp9uM2LRcbiAgcHJvdGVjdGVkIGdldERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnVzZVNlbGVjdEJveCgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfSk7XG59XG4iXX0=","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/badge\";\nexport class AXPTagableBoxWidgetViewComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.internalValue = computed(() => (Array.isArray(this.getValue()) ? this.getValue() : [this.getValue()]), ...(ngDevMode ? [{ debugName: \"internalValue\" }] : []));\n this.multiple = computed(() => this.options()['multiple'], ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n // ویژگیهای مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox'], ...(ngDevMode ? [{ debugName: \"useSelectBox\" }] : []));\n this.textField = computed(() => this.options()['textField'] ?? 'title', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n // استخراج دادهها برای نمایش\n this.getData = computed(() => {\n if (!this.useSelectBox()) {\n return [];\n }\n const value = this.getValue();\n if (!value) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n }, ...(ngDevMode ? [{ debugName: \"getData\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPTagableBoxWidgetViewComponent, isStandalone: true, selector: \"axp-tagable-box-widget\", usesInheritance: true, ngImport: i0, template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: AXBadgeModule }, { kind: \"component\", type: i1.AXBadgeComponent, selector: \"ax-badge\", inputs: [\"color\", \"look\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'axp-tagable-box-widget',\n template: `\n @for (item of internalValue(); track $index) {\n <ax-badge [look]=\"'twotone'\" [text]=\"item\" color=\"primary\"></ax-badge>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXBadgeModule],\n inputs: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFhN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUE0QjtJQVhsRjs7UUFZWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyx5REFBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxvREFBQyxDQUFDO1FBRXBGLCtCQUErQjtRQUNyQixpQkFBWSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFZLHdEQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxxREFBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxtREFBQyxDQUFDO0tBQ0o7OEdBdEJZLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHlHQVRqQzs7OztHQUlULDJEQUVTLGFBQWE7OzJGQUdaLGdDQUFnQztrQkFYNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7R0FJVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGZvciAoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7IHRyYWNrICRpbmRleCkge1xuICAgIDxheC1iYWRnZSBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJpdGVtXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9heC1iYWRnZT5cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhCYWRnZU1vZHVsZV0sXG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFRhZ2FibGVCb3hXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKEFycmF5LmlzQXJyYXkodGhpcy5nZXRWYWx1ZSgpKSA/IHRoaXMuZ2V0VmFsdWUoKSA6IFt0aGlzLmdldFZhbHVlKCldKSk7XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG5cbiAgLy8g2YjbjNqY2q/bjOKAjNmH2KfbjCDZhdix2KrYqNi3INio2KcgU2VsZWN0Qm94XG4gIHByb3RlY3RlZCB1c2VTZWxlY3RCb3ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndXNlU2VsZWN0Qm94J10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcblxuICAvLyDYp9iz2KrYrtix2KfYrCDYr9in2K/Zh+KAjNmH2Kcg2KjYsdin24wg2YbZhdin24zYtFxuICBwcm90ZWN0ZWQgZ2V0RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlU2VsZWN0Qm94KCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9KTtcbn1cbiJdfQ==","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPTagableBoxWidget = {\n name: 'tagable-editor',\n title: 'Tagable Box',\n icon: 'fa-light fa-tags',\n description: 'Inputs text with tags',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n defaultFilterWidgetName: 'string-filter',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./tagable-box-widget-view.component').then((c) => c.AXPTagableBoxWidgetViewComponent),\n },\n edit: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n filter: {\n component: () => import('./tagable-box-widget-filter.component').then((c) => c.AXPTagableBoxWidgetFilterComponent),\n },\n column: {\n component: () => import('./tagable-box-widget-column.component').then((c) => c.AXPTagableBoxWidgetColumnComponent),\n },\n print: {\n component: () => import('./tagable-box-widget-print.component').then((c) => c.AXPTagableBoxWidgetPrintComponent),\n },\n designer: {\n component: () => import('./tagable-box-widget-edit.component').then((c) => c.AXPTagableBoxWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9CO0lBQ2xELElBQUksRUFBRSxnQkFBZ0I7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsSUFBSSxFQUFFLGtCQUFrQjtJQUN4QixXQUFXLEVBQUUsdUJBQXVCO0lBQ3BDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsSUFBSSxFQUFFLFFBQVE7SUFDZCx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLFVBQVUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDO0lBQ3ZELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELElBQUksRUFBRTtZQUNKLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELE1BQU0sRUFBRTtZQUNOLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FDZCxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQ0FBa0MsQ0FBQztTQUNwRztRQUNELEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsc0NBQXNDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQztTQUNqSDtRQUNELFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztTQUMvRztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUF9XSURHRVRTX0VESVRPUl9DQVRFR09SWSwgQVhQV2lkZ2V0Q29uZmlnIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksIEFYUF9OQU1FX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcblxuZXhwb3J0IGNvbnN0IEFYUFRhZ2FibGVCb3hXaWRnZXQ6IEFYUFdpZGdldENvbmZpZyA9IHtcbiAgbmFtZTogJ3RhZ2FibGUtZWRpdG9yJyxcbiAgdGl0bGU6ICdUYWdhYmxlIEJveCcsXG4gIGljb246ICdmYS1saWdodCBmYS10YWdzJyxcbiAgZGVzY3JpcHRpb246ICdJbnB1dHMgdGV4dCB3aXRoIHRhZ3MnLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBkZWZhdWx0RmlsdGVyV2lkZ2V0TmFtZTogJ3N0cmluZy1maWx0ZXInLFxuICBwcm9wZXJ0aWVzOiBbQVhQX05BTUVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGZpbHRlcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LWZpbHRlci5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRGaWx0ZXJDb21wb25lbnQpLFxuICAgIH0sXG4gICAgY29sdW1uOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtY29sdW1uLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBwcmludDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQVGFnYWJsZUJveFdpZGdldFByaW50Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGRlc2lnbmVyOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi90YWdhYmxlLWJveC13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFRhZ2FibGVCb3hXaWRnZXRFZGl0Q29tcG9uZW50KSxcbiAgICB9LFxuICB9LFxufTtcbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgdGFnYWJsZTogJ3RhZ2FibGUtZWRpdG9yJztcbiAgfVxufVxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { AXPValueWidgetComponent, AXPWidgetRegistryService, } from '@acorex/platform/layout/builder';\nimport { AXPWidgetPropertyViewerComponent } from '@acorex/platform/layout/designer';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { sortBy } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/text-box\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/form\";\nexport class AXPWidgetSelectorWidgetEditComponent extends AXPValueWidgetComponent {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.widgetRegisteryService = inject(AXPWidgetRegistryService);\n this.searchTerm = signal(null, ...(ngDevMode ? [{ debugName: \"searchTerm\" }] : []));\n this.isOpen = signal(false, ...(ngDevMode ? [{ debugName: \"isOpen\" }] : []));\n this.textField = signal('', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.displayText = computed(() => this.getValue()?.title || '', ...(ngDevMode ? [{ debugName: \"displayText\" }] : []));\n this.selectedWidgetNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedWidgetNode\" }] : []));\n this.selectedItem = signal(null, ...(ngDevMode ? [{ debugName: \"selectedItem\" }] : []));\n this.placeholder = computed(() => this.options()['placeholder'] ?? '', ...(ngDevMode ? [{ debugName: \"placeholder\" }] : []));\n this.loading = computed(() => this.options()['loading'] ?? false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n }\n ngAfterViewInit() {\n if (this.getValue()) {\n this.selectedWidgetNode.set(this.getValue());\n }\n }\n async showSelector() {\n const com = await import('@acorex/platform/layout/designer').then((c) => c.AXPDesignerWidgetPickerComponent);\n const result = await this.popupService.open(com, {\n title: 'Widget Gallery',\n size: 'md',\n closeButton: true,\n data: {\n widgets: sortBy(this.widgetRegisteryService.all(), (c) => c.title),\n },\n });\n if ((result.data?.widgets ?? []).length) {\n const selected = result.data?.widgets;\n const selectedNode = this.convertWidgetConfigToNode(selected[0]);\n this.selectedWidgetNode.set(selectedNode);\n }\n }\n convertWidgetConfigToNode(config) {\n return {\n type: config.name,\n };\n }\n handleChangeWidget(e) {\n const widget = this.widgetRegisteryService.resolve(e.values.type);\n this.setValue({ title: widget?.title, ...e.values });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.6\", type: AXPWidgetSelectorWidgetEditComponent, isStandalone: true, selector: \"ng-component\", viewQueries: [{ propertyName: \"textbox\", first: true, predicate: AXTextBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"ngmodule\", type: AXTextBoxModule }, { kind: \"component\", type: i2.AXTextBoxComponent, selector: \"ax-text-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"value\", \"state\", \"name\", \"id\", \"placeholder\", \"maxLength\", \"allowNull\", \"type\", \"autoComplete\", \"look\", \"mask-options\", \"class\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"stateChange\", \"onValueChanged\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXButtonModule }, { kind: \"component\", type: i3.AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"ngmodule\", type: AXLoadingModule }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i5.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"component\", type: AXPWidgetPropertyViewerComponent, selector: \"axp-widget-property-viewer\", inputs: [\"widget\", \"mode\"], outputs: [\"onChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n <ax-text-box [ngModel]=\"displayText()\" [placeholder]=\"placeholder()\" [readonly]=\"true\">\n @for (validation of validationRules(); track $index) {\n <ax-validation-rule\n [rule]=\"validation.rule\"\n [message]=\"validation.options?.message\"\n [options]=\"validation.options\"\n ></ax-validation-rule>\n }\n <ax-suffix>\n <ax-button color=\"ghost\" look=\"twotone\" (onClick)=\"showSelector()\">\n <ax-icon icon=\"far fa-search\"> </ax-icon>\n </ax-button>\n </ax-suffix>\n </ax-text-box>\n @if(selectedWidgetNode()){\n <axp-widget-property-viewer [widget]=\"selectedWidgetNode()!\" (onChanged)=\"handleChangeWidget($event)\">\n </axp-widget-property-viewer>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n FormsModule,\n AXSelectBoxModule,\n AXTextBoxModule,\n AXButtonModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXValidationModule,\n AXFormModule,\n AXPWidgetPropertyViewerComponent\n ]\n }]\n }], propDecorators: { textbox: [{\n type: ViewChild,\n args: [AXTextBoxComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsdUJBQXVCLEVBR3ZCLHdCQUF3QixHQUV6QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBbUMsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVySCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7OztBQW9DbkMs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QWtCLHVFQXJDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQlQsMkRBR0MsV0FBVyw4VkFDWCxpQkFBaUIsOEJBQ2pCLGVBQWUscWJBQ2YsY0FBYyw2WEFDZCxpQkFBaUIsc1ZBQ2pCLGVBQWUsOEJBQ2Ysa0JBQWtCLDhCQUNsQixZQUFZLDhLQUNaLGdDQUFnQzs7MkZBR3ZCLG9DQUFvQztrQkFsQ2hELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixZQUFZO3dCQUNaLGdDQUFnQztxQkFDbkM7aUJBQ0E7OEJBTUMsT0FBTztzQkFETixTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlbGVjdC1ib3gnO1xuaW1wb3J0IHsgQVhUZXh0Qm94Q29tcG9uZW50LCBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsaWRhdGlvblJ1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQsXG4gIEFYUFdpZGdldENvbmZpZyxcbiAgQVhQV2lkZ2V0Tm9kZSxcbiAgQVhQV2lkZ2V0UmVnaXN0cnlTZXJ2aWNlLFxuICBBWFBXaWRnZXRUeXBlc01hcCxcbn0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBXaWRnZXRQcm9wZXJ0aWVzQ2hhbmdlZEV2ZW50LCBBWFBXaWRnZXRQcm9wZXJ0eVZpZXdlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgc29ydEJ5IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGF4LXRleHQtYm94IFtuZ01vZGVsXT1cImRpc3BsYXlUZXh0KClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiIFtyZWFkb25seV09XCJ0cnVlXCI+XG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC12YWxpZGF0aW9uLXJ1bGVcbiAgICAgICAgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCJcbiAgICAgICAgW21lc3NhZ2VdPVwidmFsaWRhdGlvbi5vcHRpb25zPy5tZXNzYWdlXCJcbiAgICAgICAgW29wdGlvbnNdPVwidmFsaWRhdGlvbi5vcHRpb25zXCJcbiAgICAgID48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgIH1cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCIgKG9uQ2xpY2spPVwic2hvd1NlbGVjdG9yKClcIj5cbiAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmFyIGZhLXNlYXJjaFwiPiA8L2F4LWljb24+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9heC1zdWZmaXg+XG4gICAgPC9heC10ZXh0LWJveD5cbiAgICBAaWYoc2VsZWN0ZWRXaWRnZXROb2RlKCkpe1xuICAgIDxheHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlciBbd2lkZ2V0XT1cInNlbGVjdGVkV2lkZ2V0Tm9kZSgpIVwiIChvbkNoYW5nZWQpPVwiaGFuZGxlQ2hhbmdlV2lkZ2V0KCRldmVudClcIj5cbiAgICA8L2F4cC13aWRnZXQtcHJvcGVydHktdmlld2VyPlxuICAgIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhCdXR0b25Nb2R1bGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxuICAgIEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICBBWEZvcm1Nb2R1bGUsXG4gICAgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnRcbl1cbn0pXG5leHBvcnQgY2xhc3MgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXRFZGl0Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB3aWRnZXRSZWdpc3RlcnlTZXJ2aWNlID0gaW5qZWN0KEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZChBWFRleHRCb3hDb21wb25lbnQpXG4gIHRleHRib3g6IEFYVGV4dEJveENvbXBvbmVudDtcblxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlUZXh0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5nZXRWYWx1ZSgpPy50aXRsZSB8fCAnJyk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZFdpZGdldE5vZGUgPSBzaWduYWw8QVhQV2lkZ2V0Tm9kZSB8IG51bGw+KG51bGwpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtID0gc2lnbmFsPGFueSB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpWydwbGFjZWhvbGRlciddID8/ICcnKTtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbG9hZGluZyddID8/IGZhbHNlKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFdpZGdldE5vZGUuc2V0KHRoaXMuZ2V0VmFsdWUoKSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2hvd1NlbGVjdG9yKCkge1xuICAgIGNvbnN0IGNvbSA9IGF3YWl0IGltcG9ydCgnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZGVzaWduZXInKS50aGVuKChjKSA9PiBjLkFYUERlc2lnbmVyV2lkZ2V0UGlja2VyQ29tcG9uZW50KTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6ICdXaWRnZXQgR2FsbGVyeScsXG4gICAgICBzaXplOiAnbWQnLFxuICAgICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHdpZGdldHM6IHNvcnRCeShcbiAgICAgICAgICB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UuYWxsKCksXG4gICAgICAgICAgKGMpID0+IGMudGl0bGVcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKChyZXN1bHQuZGF0YT8ud2lkZ2V0cyA/PyBbXSkubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IHJlc3VsdC5kYXRhPy53aWRnZXRzIGFzIEFYUFdpZGdldENvbmZpZ1tdO1xuICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlID0gdGhpcy5jb252ZXJ0V2lkZ2V0Q29uZmlnVG9Ob2RlKHNlbGVjdGVkWzBdKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXROb2RlLnNldChzZWxlY3RlZE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0V2lkZ2V0Q29uZmlnVG9Ob2RlKGNvbmZpZzogQVhQV2lkZ2V0Q29uZmlnKTogQVhQV2lkZ2V0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IGNvbmZpZy5uYW1lIGFzIChrZXlvZiBBWFBXaWRnZXRUeXBlc01hcCksXG4gICAgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VXaWRnZXQoZTogQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCkge1xuICAgIGNvbnN0IHdpZGdldCA9IHRoaXMud2lkZ2V0UmVnaXN0ZXJ5U2VydmljZS5yZXNvbHZlKGUudmFsdWVzLnR5cGUpO1xuICAgIHRoaXMuc2V0VmFsdWUoeyB0aXRsZTogd2lkZ2V0Py50aXRsZSwgLi4uZS52YWx1ZXMgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXPValueWidgetComponent } from '@acorex/platform/layout/builder';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWidgetSelectorWidgetViewComponent extends AXPValueWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPWidgetSelectorWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: `{{ getValue()?.title }}`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: `{{ getValue()?.title }}`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: []\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvd2lkZ2V0LXNlbGVjdG9yL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkUsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHVCQUE0Qjs4R0FBekUsb0NBQW9DO2tHQUFwQyxvQ0FBb0MsK0ZBSm5DLHlCQUF5Qjs7MkZBSTFCLG9DQUFvQztrQkFMaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlOiBge3sgZ2V0VmFsdWUoKT8udGl0bGUgfX1gLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4geyB9XG4iXX0=","import { AXP_WIDGETS_EDITOR_CATEGORY } from '@acorex/platform/layout/builder';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPWidgetSelectorWidget = {\n name: 'widget-selector',\n title: 'Widget Selector',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n type: 'editor',\n icon: 'fa-light fa-square',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n view: {\n component: () => import('./widget-selector-widget-view.component').then((c) => c.AXPWidgetSelectorWidgetViewComponent),\n },\n edit: {\n component: () => import('./widget-selector-widget-edit.component').then((c) => c.AXPWidgetSelectorWidgetEditComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXNlbGVjdG9yLXdpZGdldC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvci93aWRnZXQtc2VsZWN0b3Itd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFNUcsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW9CO0lBQ3RELElBQUksRUFBRSxpQkFBaUI7SUFDdkIsS0FBSyxFQUFFLGlCQUFpQjtJQUN4QixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsQ0FBQztJQUM5RSxVQUFVLEVBQUU7UUFDVixJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7UUFDRCxJQUFJLEVBQUU7WUFDSixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQ2QsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7U0FDeEc7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksIEFYUFdpZGdldENvbmZpZyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX0RJU0FCTEVEX1BST1BFUlRZLCBBWFBfTkFNRV9QUk9QRVJUWSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5cbmV4cG9ydCBjb25zdCBBWFBXaWRnZXRTZWxlY3RvcldpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnd2lkZ2V0LXNlbGVjdG9yJyxcbiAgdGl0bGU6ICdXaWRnZXQgU2VsZWN0b3InLFxuICBjYXRlZ29yaWVzOiBBWFBfV0lER0VUU19FRElUT1JfQ0FURUdPUlksXG4gIHR5cGU6ICdlZGl0b3InLFxuICBpY29uOiAnZmEtbGlnaHQgZmEtc3F1YXJlJyxcbiAgcHJvcGVydGllczogW0FYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZLCBBWFBfRElTQUJMRURfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PlxuICAgICAgICBpbXBvcnQoJy4vd2lkZ2V0LXNlbGVjdG9yLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGVkaXQ6IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuL3dpZGdldC1zZWxlY3Rvci13aWRnZXQtZWRpdC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgfSxcbn07XG5cbmRlY2xhcmUgbW9kdWxlICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJyB7XG4gIGludGVyZmFjZSBBWFBXaWRnZXRUeXBlc01hcCB7XG4gICAgd2lkZ2V0U2VsZWN0b3I6ICd3aWRnZXQtc2VsZWN0b3InO1xuICB9XG59XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflowAction, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityCreateViewModelFactory } from '../entity-master-create.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport const AXPEntityCreateEvent = createWorkFlowEvent('[Entity] Created!');\nexport class AXPEntityCreatePopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.factory = inject(AXPEntityCreateViewModelFactory);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.translateService = inject(AXTranslationService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const options = context.getVariable('options');\n const process = options?.['process'];\n const decoration = options?.['decoration'];\n const layout = options?.['layout'];\n const headerTitle = decoration?.header?.title;\n const size = layout?.size;\n const entityRef = await this.entityRegistery.resolve(module, entity);\n const com = await this.config.viewers.master.create();\n if (entityRef.parentKey) {\n context.setVariable('parentKey', entityRef.parentKey);\n }\n const result = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : `${await this.translateService.translateAsync('create-new')} ${await this.translateService.translateAsync(entityRef.formats.individual)}`,\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm: await this.factory.create(module, entity, data, options),\n entity,\n },\n });\n context.setOutput('result', false);\n if (result.data?.save) {\n context.setOutput('result', true);\n const prevData = context.getVariable('data');\n const prevMeta = context.getVariable('meta');\n context.setVariable('data', { ...prevData, ...result.data.item });\n if (entityRef.parentKey && result.data.item[entityRef.parentKey]) {\n context.setVariable('meta', { ...prevMeta, refreshTargetId: result.data.item[entityRef.parentKey] });\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreatePopupAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPEntityCreateSubmittedAction extends AXPWorkflowAction {\n async execute(context) {\n this.dispatch(AXPEntityCreateEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n this.dispatch(AXPRefreshEvent({ entity: context.getVariable('entity'), meta: context.getVariable('meta') }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityCreateSubmittedAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPCreateEntityWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPEntityCreatePopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-toast',\n },\n ],\n },\n 'show-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-created',\n content: 'workflow.entity-created-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'dispatch-event',\n },\n ],\n },\n 'dispatch-event': {\n action: 'AXPEntityCreateSubmittedAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getVariable(\"options\")?.process?.redirect != false' }],\n nextStepId: 'show-entity',\n },\n ],\n },\n 'show-entity': {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9jcmVhdGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBZSxpQkFBaUIsRUFBc0IsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFM0QsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQWlDLG1CQUFtQixDQUFDLENBQUM7QUFHN0csTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlCQUFpQjtJQURqRTs7UUFFVSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELGlCQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsWUFBTyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2xELFdBQU0s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cUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUseUJBQXlCO2dCQUNoQyxPQUFPLEVBQUUsOEJBQThCO2FBQ3hDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCO2FBQ0Y7U0FDRjtRQUNELGdCQUFnQixFQUFFO1lBQ2hCLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsNERBQTRELEVBQUUsQ0FBQztvQkFDMUcsVUFBVSxFQUFFLGFBQWE7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELGFBQWEsRUFBRTtZQUNiLE1BQU0sRUFBRSx5QkFBeUI7U0FDbEM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFJlZnJlc2hFdmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0LCBjcmVhdGVXb3JrRmxvd0V2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLWNyZWF0ZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2VudGl0eS5jb25maWcnO1xuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5Q3JlYXRlRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IG1ldGE/OiBhbnkgfT4oJ1tFbnRpdHldIENyZWF0ZWQhJyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KEFYUG9wdXBTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwbGF0Zm9ybSA9IGluamVjdChBWFBsYXRmb3JtKTtcbiAgcHJpdmF0ZSBmYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUNyZWF0ZVZpZXdNb2RlbEZhY3RvcnkpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ2RhdGEnKTtcbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG5cbiAgICBjb25zdCBwcm9jZXNzID0gb3B0aW9ucz8uWydwcm9jZXNzJ107XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGxheW91dCA9IG9wdGlvbnM/LlsnbGF5b3V0J107XG5cbiAgICBjb25zdCBoZWFkZXJUaXRsZSA9IGRlY29yYXRpb24/LmhlYWRlcj8udGl0bGU7XG5cbiAgICBjb25zdCBzaXplID0gbGF5b3V0Py5zaXplO1xuXG4gICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGUsIGVudGl0eSk7XG4gICAgY29uc3QgY29tID0gYXdhaXQgdGhpcy5jb25maWcudmlld2Vycy5tYXN0ZXIuY3JlYXRlKCk7XG5cbiAgICBpZiAoZW50aXR5UmVmLnBhcmVudEtleSkge1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgncGFyZW50S2V5JywgZW50aXR5UmVmLnBhcmVudEtleSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogYCR7YXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdjcmVhdGUtbmV3Jyl9ICR7YXdhaXQgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKFxuICAgICAgICAgIGVudGl0eVJlZi5mb3JtYXRzLmluZGl2aWR1YWxcbiAgICAgICAgKX1gLFxuICAgICAgc2l6ZTogdGhpcy5wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5wbGF0Zm9ybS5pcygnU00nKSA/ICdmdWxsJyA6IHNpemUgPyBzaXplIDogJ21kJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdm06IGF3YWl0IHRoaXMuZmFjdG9yeS5jcmVhdGUobW9kdWxlLCBlbnRpdHksIGRhdGEsIG9wdGlvbnMpLFxuICAgICAgICBlbnRpdHksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgaWYgKHJlc3VsdC5kYXRhPy5zYXZlKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgICBjb25zdCBwcmV2RGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICAgIGNvbnN0IHByZXZNZXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnbWV0YScpO1xuXG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgeyAuLi5wcmV2RGF0YSwgLi4ucmVzdWx0LmRhdGEuaXRlbSB9KTtcbiAgICAgIGlmIChlbnRpdHlSZWYucGFyZW50S2V5ICYmIHJlc3VsdC5kYXRhLml0ZW1bZW50aXR5UmVmLnBhcmVudEtleV0pIHtcbiAgICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnbWV0YScsIHsgLi4ucHJldk1ldGEsIHJlZnJlc2hUYXJnZXRJZDogcmVzdWx0LmRhdGEuaXRlbVtlbnRpdHlSZWYucGFyZW50S2V5XSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbkBJbmplY3RhYmxlKCkgLy9hdm9pZCBERVBSRUNBVEVEOiBESSBpcyBpbnN0YW50aWF0aW5nIGEgdG9rZW4gXCJBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb25cIiB0aGF0IGluaGVyaXRzIGl0cyBASW5qZWN0YWJsZSBkZWNvcmF0b3IgYnV0IGRvZXMgbm90IHByb3ZpZGUgb25lIGl0c2VsZi4gVGhpcyB3aWxsIGJlY29tZSBhbiBlcnJvciBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIEFuZ3VsYXIuIFBsZWFzZSBhZGQgQEluamVjdGFibGUoKSB0byB0aGUgXCJBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb25cIiBjbGFzcy5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5kaXNwYXRjaChcbiAgICAgIEFYUEVudGl0eUNyZWF0ZUV2ZW50KHsgZW50aXR5OiBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLCBtZXRhOiBjb250ZXh0LmdldFZhcmlhYmxlKCdtZXRhJykgfSlcbiAgICApO1xuICAgIHRoaXMuZGlzcGF0Y2goXG4gICAgICBBWFBSZWZyZXNoRXZlbnQoeyBlbnRpdHk6IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5JyksIG1ldGE6IGNvbnRleHQuZ2V0VmFyaWFibGUoJ21ldGEnKSB9KVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUENyZWF0ZUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdzaG93LXBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICAnc2hvdy1wb3B1cCc6IHtcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eUNyZWF0ZVBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy10b2FzdCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3Nob3ctdG9hc3QnOiB7XG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXG4gICAgICBpbnB1dDoge1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ3dvcmtmbG93LmVudGl0eS1jcmVhdGVkJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1jcmVhdGVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ2Rpc3BhdGNoLWV2ZW50JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAnZGlzcGF0Y2gtZXZlbnQnOiB7XG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlDcmVhdGVTdWJtaXR0ZWRBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0VmFyaWFibGUoXCJvcHRpb25zXCIpPy5wcm9jZXNzPy5yZWRpcmVjdCAhPSBmYWxzZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3Nob3ctZW50aXR5JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICAnc2hvdy1lbnRpdHknOiB7XG4gICAgICBhY3Rpb246ICdBWFBTaG93RGV0YWlsVmlld0FjdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXPEntityMasterUpdateViewModelFactory } from '../entity-master-update.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '../entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPQuickEntityModifyPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.popupService = inject(AXPopupService);\n this.platform = inject(AXPlatform);\n this.translateService = inject(AXTranslationService);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n this.config = inject(AXP_ENTITY_CONFIG_TOKEN);\n this.factory = inject(AXPEntityMasterUpdateViewModelFactory);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const { parentKey } = entityRef;\n console.log(data);\n const { id } = data;\n const { interfaces, title } = entityRef;\n const properties = interfaces?.master?.update?.properties?.map((p) => p.name) || [];\n const vm = await this.factory.create(moduleName, entityName, id, properties);\n const options = context.getVariable('options');\n const decoration = options?.['decoration'];\n const headerTitle = decoration?.header?.title;\n const layout = options?.['layout'];\n const size = layout?.size;\n if (parentKey) {\n context.setVariable('parentKey', parentKey);\n }\n const com = await this.config.viewers.master.modify();\n const popup = await this.popupService.open(com, {\n title: headerTitle\n ? headerTitle\n : (title ??\n `${this.translateService.translateSync('entity.modify')} ${this.translateService.translateSync(entityRef.formats.individual)}`),\n size: this.platform.is('Mobile') || this.platform.is('SM') ? 'full' : size ? size : 'md',\n data: {\n vm,\n properties,\n entity: entityRef,\n },\n });\n context.setOutput('result', false);\n if (popup.data?.result == true) {\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(popup.data.context));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPQuickModifyEntityWorkflow = {\n startStepId: 'modifyPopup',\n steps: {\n modifyPopup: {\n id: 'modifyPopup',\n action: 'AXPQuickEntityModifyPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\nexport class AXPEntityApplyUpdatesAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.entityRegistery = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n try {\n const [moduleName, entityName] = context.getVariable('entity').split('.');\n const data = context.getVariable('data');\n const entityRef = await this.entityRegistery.resolve(moduleName, entityName);\n const exec = entityRef.commands?.update?.execute;\n const result = await exec(data);\n context.setVariable('data', result);\n context.setOutput('result', true);\n }\n catch (error) {\n context.setOutput('result', false);\n context.setOutput('error', error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityApplyUpdatesAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxpQkFBaUI7SUFEdEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7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T0FBTyxDQUFDLFdBQVcsQ0FBUyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEYsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM3RSxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBQzdELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7OEdBaEJVLDJCQUEyQjtrSEFBM0IsMkJBQTJCOzsyRkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvdywgQVhQV29ya2Zsb3dBY3Rpb24sIEFYUFdvcmtmbG93Q29udGV4dCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSB9IGZyb20gJy4uL2VudGl0eS1tYXN0ZXItdXBkYXRlLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vZW50aXR5LmNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgcGxhdGZvcm0gPSBpbmplY3QoQVhQbGF0Zm9ybSk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChBWFBfRU5USVRZX0NPTkZJR19UT0tFTik7XG4gIHByaXZhdGUgZmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlNYXN0ZXJVcGRhdGVWaWV3TW9kZWxGYWN0b3J5KTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBkYXRhID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZGF0YScpO1xuICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgY29uc3QgeyBwYXJlbnRLZXkgfSA9IGVudGl0eVJlZjtcblxuICAgIGNvbnNvbGUubG9nKGRhdGEpO1xuICAgIFxuXG4gICAgY29uc3QgeyBpZCB9ID0gZGF0YTtcbiAgICBjb25zdCB7IGludGVyZmFjZXMsIHRpdGxlIH0gPSBlbnRpdHlSZWY7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHApID0+IHAubmFtZSkgfHwgW107XG5cbiAgICBjb25zdCB2bSA9IGF3YWl0IHRoaXMuZmFjdG9yeS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSwgaWQsIHByb3BlcnRpZXMpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55Pignb3B0aW9ucycpO1xuICAgIGNvbnN0IGRlY29yYXRpb24gPSBvcHRpb25zPy5bJ2RlY29yYXRpb24nXTtcbiAgICBjb25zdCBoZWFkZXJUaXRsZSA9IGRlY29yYXRpb24/LmhlYWRlcj8udGl0bGU7XG5cbiAgICBjb25zdCBsYXlvdXQgPSBvcHRpb25zPy5bJ2xheW91dCddO1xuICAgIGNvbnN0IHNpemUgPSBsYXlvdXQ/LnNpemU7XG5cbiAgICBpZiAocGFyZW50S2V5KSB7XG4gICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXJlbnRLZXknLCBwYXJlbnRLZXkpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbSA9IGF3YWl0IHRoaXMuY29uZmlnLnZpZXdlcnMubWFzdGVyLm1vZGlmeSgpO1xuICAgIGNvbnN0IHBvcHVwID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiBoZWFkZXJUaXRsZVxuICAgICAgICA/IGhlYWRlclRpdGxlXG4gICAgICAgIDogKHRpdGxlID8/XG4gICAgICAgICAgYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRyYW5zbGF0ZVN5bmMoJ2VudGl0eS5tb2RpZnknKX0gJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYyhcbiAgICAgICAgICAgIGVudGl0eVJlZi5mb3JtYXRzLmluZGl2aWR1YWwsXG4gICAgICAgICAgKX1gKSxcbiAgICAgIHNpemU6IHRoaXMucGxhdGZvcm0uaXMoJ01vYmlsZScpIHx8IHRoaXMucGxhdGZvcm0uaXMoJ1NNJykgPyAnZnVsbCcgOiBzaXplID8gc2l6ZSA6ICdtZCcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHZtLFxuICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICBlbnRpdHk6IGVudGl0eVJlZixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIGZhbHNlKTtcbiAgICBpZiAocG9wdXAuZGF0YT8ucmVzdWx0ID09IHRydWUpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCBjbG9uZURlZXAocG9wdXAuZGF0YS5jb250ZXh0KSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdtb2RpZnlQb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgbW9kaWZ5UG9wdXA6IHtcbiAgICAgIGlkOiAnbW9kaWZ5UG9wdXAnLFxuICAgICAgYWN0aW9uOiAnQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJyZXN1bHRcIikgPT0gdHJ1ZScgfV0sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgc3VjY2Vzc1RvYXN0OiB7XG4gICAgICBpZDogJ3N1Y2Nlc3NUb2FzdCcsXG4gICAgICBhY3Rpb246ICdBWFBUb2FzdEFjdGlvbicsXG4gICAgICBpbnB1dDoge1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC10aXRsZScsXG4gICAgICAgIGNvbnRlbnQ6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtYm9keScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBtb2RpZnlDb25maXJtZWQ6IHtcbiAgICAgIGlkOiAnbW9kaWZ5Q29uZmlybWVkJyxcbiAgICAgIGFjdGlvbjogJ0FYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbicsXG4gICAgfSxcbiAgfSxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignZW50aXR5Jykuc3BsaXQoJy4nKTtcbiAgICAgIGNvbnN0IGRhdGEgPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgICAgY29uc3QgZXhlYyA9IGVudGl0eVJlZi5jb21tYW5kcz8udXBkYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXhlYyhkYXRhKTtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCByZXN1bHQpO1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ2Vycm9yJywgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowDetailViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [module, entity] = context.getVariable('entity').split(\".\");\n const { id } = context.getVariable('data');\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${module}/e/${entity}/${id}/view`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowDetailViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowDetailsViewWorkflow = {\n startStepId: 'showDetailView',\n steps: {\n showDetailView: {\n action: 'AXPShowDetailViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kZXRhaWxzLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR25ELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFEOUQ7O1FBRVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQy9DLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FXcEQ7SUFUQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUc7WUFDakIsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLE1BQU0sTUFBTSxNQUFNLElBQUksRUFBRSxPQUFPO1NBQ3pGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVpVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOztBQWlCWCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBZ0I7SUFDckQsV0FBVyxFQUFFLGdCQUFnQjtJQUM3QixLQUFLLEVBQUU7UUFDTCxjQUFjLEVBQUU7WUFDZCxNQUFNLEVBQUUseUJBQXlCO1NBQ2xDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uIGV4dGVuZHMgQVhQV29ya2Zsb3dBY3Rpb24ge1xuICBwcml2YXRlIG5hdmlnYXRpb24gPSBpbmplY3QoQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbik7XG4gIHByaXZhdGUgc2Vzc2lvblNlcnZpY2UgPSBpbmplY3QoQVhQU2Vzc2lvblNlcnZpY2UpO1xuXG4gIGFzeW5jIGV4ZWN1dGUoY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2VudGl0eScpLnNwbGl0KFwiLlwiKTtcbiAgICBjb25zdCB7IGlkIH0gPSBjb250ZXh0LmdldFZhcmlhYmxlKCdkYXRhJyk7XG4gICAgY29uc3QgbmV3UGF5bG9hZCA9IHtcbiAgICAgIGNvbW1hbmRzOiBgLyR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vbS8ke21vZHVsZX0vZS8ke2VudGl0eX0vJHtpZH0vdmlld2AsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0RldGFpbHNWaWV3V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3dEZXRhaWxWaWV3JyxcbiAgc3RlcHM6IHtcbiAgICBzaG93RGV0YWlsVmlldzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { inject, Injectable } from '@angular/core';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { AXPFileUploaderWidgetService } from '@acorex/platform/widgets';\nimport { AXPEntityDefinitionRegistryService } from '../entity-registery.service';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowFileUploaderPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.fileUploaderWidgetService = inject(AXPFileUploaderWidgetService);\n this.entityRegistryService = inject(AXPEntityDefinitionRegistryService);\n }\n async execute(context) {\n // *********** get options ***********\n const key = context.getVariable('options.key');\n const readOnly = context.getVariable('options.readOnly');\n const multiple = context.getVariable('options.multiple');\n const accept = context.getVariable('options.accept');\n const maxFileSize = context.getVariable('options.maxFileSize');\n const files = context.getVariable('options.files');\n const fileEditable = context.getVariable('options.fileEditable');\n // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\n fileEditable: fileEditable,\n });\n // Handle case when result is undefined or empty array\n if (!res || res.length === 0) {\n context.setOutput('result', false);\n return;\n }\n // *********** save files to entity ***********\n const [module, entity] = context.getVariable('entity').split('.');\n const entityDefinition = await this.entityRegistryService.resolve(module, entity);\n if (entityDefinition) {\n const updateExec = entityDefinition.commands?.update?.execute;\n const entityData = await updateExec({\n id: context.getVariable('options.id'),\n [key]: res,\n });\n context.setOutput('result', true);\n context.setVariable('data', cloneDeep(entityData));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowFileUploaderPopupAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowFileUploaderPopupWorkflow = {\n startStepId: 'show-popup',\n steps: {\n 'show-popup': {\n action: 'AXPShowFileUploaderPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-modified-title',\n content: 'workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZmlsZS11cGxvYWRlci1wb3B1cC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQURyRTs7UUFFVSw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQTBDNUU7SUF4Q0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUV2QyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBUyxhQUFhLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFVLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFDdEUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxzQkFBc0IsQ0FBQyxDQUFDO1FBRTFFLHlDQUF5QztRQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUM7WUFDNUQsS0FBSyxFQUFFLEtBQUs7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsUUFBUTtZQUNsQixNQUFNLEVBQUUsTUFBTTtZQUNkLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUNILHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTztRQUNULENBQUM7UUFFRywrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRSxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbEYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBbUIsQ0FBQztZQUUxRSxNQUFNLFVBQVUsR0FBRyxNQUFNLFVBQVUsQ0FBQztnQkFDbEMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLENBQVMsWUFBWSxDQUFDO2dCQUM3QyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO0lBQ0wsQ0FBQzs4R0EzQ1UsOEJBQThCO2tIQUE5Qiw4QkFBOEI7OzJGQUE5Qiw4QkFBOEI7a0JBRDFDLFVBQVU7O0FBK0NYLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFnQjtJQUMzRCxXQUFXLEVBQUUsWUFBWTtJQUN6QixLQUFLLEVBQUU7UUFDTCxZQUFZLEVBQUU7WUFDWixNQUFNLEVBQUUsZ0NBQWdDO1lBQ3hDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLHFDQUFxQyxFQUFFLENBQUM7b0JBQ25GLFVBQVUsRUFBRSxjQUFjO2lCQUMzQjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUUsU0FBUztnQkFDaEIsS0FBSyxFQUFFLGdDQUFnQztnQkFDdkMsT0FBTyxFQUFFLCtCQUErQjthQUN6QztZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUUsRUFBRTtvQkFDZCxVQUFVLEVBQUUsaUJBQWlCO2lCQUM5QjthQUNGO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZixFQUFFLEVBQUUsaUJBQWlCO1lBQ3JCLE1BQU0sRUFBRSxnQ0FBZ0M7U0FDekM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBGaWxlTGlzdEl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQRmlsZVVwbG9hZGVyV2lkZ2V0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd2lkZ2V0cyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZmlsZVVwbG9hZGVyV2lkZ2V0U2VydmljZSA9IGluamVjdChBWFBGaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIC8vICoqKioqKioqKioqIGdldCBvcHRpb25zICoqKioqKioqKioqXG4gICAgY29uc3Qga2V5ID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmtleScpO1xuICAgIGNvbnN0IHJlYWRPbmx5ID0gY29udGV4dC5nZXRWYXJpYWJsZTxib29sZWFuPignb3B0aW9ucy5yZWFkT25seScpO1xuICAgIGNvbnN0IG11bHRpcGxlID0gY29udGV4dC5nZXRWYXJpYWJsZTxib29sZWFuPignb3B0aW9ucy5tdWx0aXBsZScpO1xuICAgIGNvbnN0IGFjY2VwdCA9IGNvbnRleHQuZ2V0VmFyaWFibGU8c3RyaW5nPignb3B0aW9ucy5hY2NlcHQnKTtcbiAgICBjb25zdCBtYXhGaWxlU2l6ZSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8bnVtYmVyPignb3B0aW9ucy5tYXhGaWxlU2l6ZScpO1xuICAgIGNvbnN0IGZpbGVzID0gY29udGV4dC5nZXRWYXJpYWJsZTxBWFBGaWxlTGlzdEl0ZW1bXT4oJ29wdGlvbnMuZmlsZXMnKTtcbiAgICBjb25zdCBmaWxlRWRpdGFibGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLmZpbGVFZGl0YWJsZScpO1xuICAgIFxuICAgIC8vICoqKioqKioqKioqIHNob3cgZmlsZSBsaXN0ICoqKioqKioqKioqXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlLnNob3dGaWxlTGlzdCh7XG4gICAgICBmaWxlczogZmlsZXMsXG4gICAgICByZWFkT25seTogcmVhZE9ubHksXG4gICAgICBtdWx0aXBsZTogbXVsdGlwbGUsXG4gICAgICBhY2NlcHQ6IGFjY2VwdCxcbiAgICAgIGZpbGVFZGl0YWJsZTogZmlsZUVkaXRhYmxlLFxuICAgIH0pO1xuICAgIC8vIEhhbmRsZSBjYXNlIHdoZW4gcmVzdWx0IGlzIHVuZGVmaW5lZCBvciBlbXB0eSBhcnJheVxuICAgIGlmICghcmVzIHx8IHJlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgICAgIC8vICoqKioqKioqKioqIHNhdmUgZmlsZXMgdG8gZW50aXR5ICoqKioqKioqKioqXG4gICAgICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgICAgIGNvbnN0IGVudGl0eURlZmluaXRpb24gPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdHJ5U2VydmljZS5yZXNvbHZlKG1vZHVsZSwgZW50aXR5KTtcbiAgICBcbiAgICAgICAgaWYgKGVudGl0eURlZmluaXRpb24pIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVFeGVjID0gZW50aXR5RGVmaW5pdGlvbi5jb21tYW5kcz8udXBkYXRlPy5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgIFxuICAgICAgICAgIGNvbnN0IGVudGl0eURhdGEgPSBhd2FpdCB1cGRhdGVFeGVjKHtcbiAgICAgICAgICAgIGlkOiBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ29wdGlvbnMuaWQnKSxcbiAgICAgICAgICAgIFtrZXldOiByZXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgICAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ2RhdGEnLCBjbG9uZURlZXAoZW50aXR5RGF0YSkpO1xuICAgICAgfVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdzogQVhQV29ya2Zsb3cgPSB7XG4gIHN0YXJ0U3RlcElkOiAnc2hvdy1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctcG9wdXAnOiB7XG4gICAgICBhY3Rpb246ICdBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24nLFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbeyB0eXBlOiAnU0lOR0xFJywgZXhwcmVzc2lvbjogJ2NvbnRleHQuZ2V0T3V0cHV0KFwicmVzdWx0XCIpID09IHRydWUnIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHN1Y2Nlc3NUb2FzdDoge1xuICAgICAgaWQ6ICdzdWNjZXNzVG9hc3QnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICd3b3JrZmxvdy5lbnRpdHktbW9kaWZpZWQtdGl0bGUnLFxuICAgICAgICBjb250ZW50OiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLWJvZHknLFxuICAgICAgfSxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW10sXG4gICAgICAgICAgbmV4dFN0ZXBJZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgbW9kaWZ5Q29uZmlybWVkOiB7XG4gICAgICBpZDogJ21vZGlmeUNvbmZpcm1lZCcsXG4gICAgICBhY3Rpb246ICdBWFBFbnRpdHlNb2RpZnlDb25maXJtZWRBY3Rpb24nLFxuICAgIH0sXG4gIH0sXG59O1xuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflowNavigateAction } from '@acorex/platform/common';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPShowListViewAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.navigation = inject(AXPWorkflowNavigateAction);\n this.sessionService = inject(AXPSessionService);\n }\n async execute(context) {\n const [moduleName, entityName] = context.getVariable('entity').split(\".\");\n const newPayload = {\n commands: `/${this.sessionService.application?.name}/m/${moduleName}/e/${entityName}/list`,\n };\n context.setVariable('payload', newPayload);\n this.navigation.execute(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPShowListViewAction, decorators: [{\n type: Injectable\n }] });\nexport const AXPShowListViewWorkflow = {\n startStepId: 'showListView',\n steps: {\n showListView: {\n id: 'showListView',\n action: 'AXPShowListViewAction',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1saXN0LndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJbkQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGlCQUFpQjtJQUQ1RDs7UUFFVSxlQUFVLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDL0MsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztLQVNwRDtJQVJDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBYTtRQUN6QixNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLElBQUksTUFBTSxVQUFVLE1BQU0sVUFBVSxPQUFPO1NBQzNGLENBQUM7UUFDRixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzhHQVZVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVOztBQWNYLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxXQUFXLEVBQUUsY0FBYztJQUMzQixLQUFLLEVBQUU7UUFDTCxZQUFZLEVBQUU7WUFDWixFQUFFLEVBQUUsY0FBYztZQUNsQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dMaXN0Vmlld0FjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBuYXZpZ2F0aW9uID0gaW5qZWN0KEFYUFdvcmtmbG93TmF2aWdhdGVBY3Rpb24pO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0PzogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZSgnZW50aXR5Jykuc3BsaXQoXCIuXCIpO1xuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XG4gICAgICBjb21tYW5kczogYC8ke3RoaXMuc2Vzc2lvblNlcnZpY2UuYXBwbGljYXRpb24/Lm5hbWV9L20vJHttb2R1bGVOYW1lfS9lLyR7ZW50aXR5TmFtZX0vbGlzdGAsXG4gICAgfTtcbiAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdwYXlsb2FkJywgbmV3UGF5bG9hZCk7XG4gICAgdGhpcy5uYXZpZ2F0aW9uLmV4ZWN1dGUoY29udGV4dCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUFNob3dMaXN0Vmlld1dvcmtmbG93OiBBWFBXb3JrZmxvdyA9IHtcbiAgc3RhcnRTdGVwSWQ6ICdzaG93TGlzdFZpZXcnLFxuICBzdGVwczoge1xuICAgIHNob3dMaXN0Vmlldzoge1xuICAgICAgaWQ6ICdzaG93TGlzdFZpZXcnLFxuICAgICAgYWN0aW9uOiAnQVhQU2hvd0xpc3RWaWV3QWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetViewComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetViewComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetViewComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2VudGl0eS1yZWZlcmVuY2UvZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBUTNFLE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSx3QkFBd0I7OEdBQXRFLHFDQUFxQztrR0FBckMscUNBQXFDLCtGQUx0QyxFQUFFLDJEQUdGLFlBQVk7OzJGQUVYLHFDQUFxQztrQkFOakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG4gfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Injector, computed, effect, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXPEntityResolver } from '../../entity.config';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetEditComponent extends AXPLayoutWidgetComponent {\n constructor() {\n super(...arguments);\n this.injector = inject(Injector);\n this.entityResolver = inject(AXPEntityResolver);\n this.entity = computed(() => this.options()['entity'], ...(ngDevMode ? [{ debugName: \"entity\" }] : []));\n this.entityDef = signal(null, ...(ngDevMode ? [{ debugName: \"entityDef\" }] : []));\n this.#efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n console.log(this.entityDef());\n }, ...(ngDevMode ? [{ debugName: \"#efEntity\" }] : []));\n }\n #efEntity;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetEditComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetEditComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, FormsModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2VudGl0eS1yZWZlcmVuY2UvZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBU3hELE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSx3QkFBd0I7SUFObkY7O1FBT3FCLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVwRCxXQUFNLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQVcsa0RBQUMsQ0FBQztRQUVwRSxjQUFTLEdBQUcsTUFBTSxDQUFtQixJQUFJLHFEQUFDLENBQUM7UUFFckQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLENBQUMscURBQUMsQ0FBQztLQUNKO0lBTEMsU0FBUyxDQUlOOzhHQVpRLHFDQUFxQztrR0FBckMscUNBQXFDLCtGQUx0QyxFQUFFLDJEQUdGLFlBQVksOEJBQUUsV0FBVzs7MkZBRXhCLHFDQUFxQztrQkFOakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7aUJBQ3JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBMYXlvdXRXaWRnZXRDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZW50aXR5UmVzb2x2ZXIgPSBpbmplY3QoQVhQRW50aXR5UmVzb2x2ZXIpO1xuXG4gIHByb3RlY3RlZCBlbnRpdHkgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHRoaXMub3B0aW9ucygpWydlbnRpdHknXSBhcyBzdHJpbmcpO1xuXG4gIHByb3RlY3RlZCBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgI2VmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuZW50aXR5RGVmKCkpO1xuICB9KTtcbn0iXX0=","import { AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetColumnComponent extends AXPColumnWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetColumnComponent, isStandalone: true, selector: \"ng-component\", inputs: { rawValue: \"rawValue\" }, usesInheritance: true, ngImport: i0, template: `{{rawValue}}`, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetColumnComponent, decorators: [{\n type: Component,\n args: [{\n template: `{{rawValue}}`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: ['rawValue']\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvZW50aXR5LXJlZmVyZW5jZS9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFuRSxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsd0JBQTZCOzhHQUE3RSx1Q0FBdUM7a0dBQXZDLHVDQUF1QyxpSUFOeEMsY0FBYywyREFHZCxZQUFZOzsyRkFHWCx1Q0FBdUM7a0JBUG5ELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29sdW1uV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBge3tyYXdWYWx1ZX19YCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFsncmF3VmFsdWUnXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8YW55PiB7IH0iXX0=","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetPrintComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetPrintComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetPrintComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n inputs: []\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtcHJpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFRM0UsTUFBTSxPQUFPLHNDQUF1QyxTQUFRLHdCQUF3Qjs4R0FBdkUsc0NBQXNDO2tHQUF0QyxzQ0FBc0MsK0ZBTnZDLEVBQUUsMkRBR0YsWUFBWTs7MkZBR1gsc0NBQXNDO2tCQVBsRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUExheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBpbnB1dHM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldFByaW50Q29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPLayoutWidgetComponent } from '@acorex/platform/layout/builder';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPEntityReferenceWidgetDesignerComponent extends AXPLayoutWidgetComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetDesignerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.6\", type: AXPEntityReferenceWidgetDesignerComponent, isStandalone: true, selector: \"ng-component\", usesInheritance: true, ngImport: i0, template: ``, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityReferenceWidgetDesignerComponent, decorators: [{\n type: Component,\n args: [{\n template: ``,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LWRlc2lnbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0UsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLHdCQUF3Qjs4R0FBMUUseUNBQXlDO2tHQUF6Qyx5Q0FBeUMsK0ZBTDFDLEVBQUUsMkRBR0YsWUFBWTs7MkZBRVgseUNBQXlDO2tCQU5yRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUExheW91dFdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldERlc2lnbmVyQ29tcG9uZW50IGV4dGVuZHMgQVhQTGF5b3V0V2lkZ2V0Q29tcG9uZW50IHt9Il19","import { AXPWidgetGroupEnum } from '@acorex/platform/layout/builder';\nimport { AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY } from '@acorex/platform/widgets';\nexport const AXPEntityReferenceWidget = {\n name: \"entity-reference\",\n title: \"Entity Reference\",\n description: '',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.FormElement],\n icon: \"fa-solid fa-square\",\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./entity-reference-widget-view.component').then((c) => c.AXPEntityReferenceWidgetViewComponent),\n },\n edit: {\n component: () => import('./entity-reference-widget-edit.component').then((c) => c.AXPEntityReferenceWidgetEditComponent),\n },\n column: {\n component: () => import('./entity-reference-widget-column.component').then((c) => c.AXPEntityReferenceWidgetColumnComponent),\n },\n print: {\n component: () => import('./entity-reference-widget-print.component').then((c) => c.AXPEntityReferenceWidgetPrintComponent),\n },\n designer: {\n component: () => import('./entity-reference-widget-designer.component').then((c) => c.AXPEntityReferenceWidgetDesignerComponent),\n },\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXJlZmVyZW5jZS13aWRnZXQuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9lbnRpdHktcmVmZXJlbmNlL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHckYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQW9CO0lBQ3ZELElBQUksRUFBRSxrQkFBa0I7SUFDeEIsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixXQUFXLEVBQUUsRUFBRTtJQUNmLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLEVBQUU7SUFDZCxNQUFNLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7SUFDeEMsSUFBSSxFQUFFLG9CQUFvQjtJQUMxQixVQUFVLEVBQUU7UUFDVixpQkFBaUI7UUFDakIsc0JBQXNCO0tBQ3ZCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO1NBQ3pIO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHFDQUFxQyxDQUFDO1NBQ3pIO1FBQ0QsTUFBTSxFQUFFO1lBQ04sU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1NBQzdIO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHNDQUFzQyxDQUFDO1NBQzNIO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHlDQUF5QyxDQUFDO1NBQ2pJO0tBQ0Y7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0Q29uZmlnLCBBWFBXaWRnZXRHcm91cEVudW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUF9OQU1FX1BST1BFUlRZLCBBWFBfREFUQV9QQVRIX1BST1BFUlRZIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcblxuXG5leHBvcnQgY29uc3QgQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0OiBBWFBXaWRnZXRDb25maWcgPSB7XG4gIG5hbWU6IFwiZW50aXR5LXJlZmVyZW5jZVwiLFxuICB0aXRsZTogXCJFbnRpdHkgUmVmZXJlbmNlXCIsXG4gIGRlc2NyaXB0aW9uOiAnJyxcbiAgdHlwZTogJ3ZpZXcnLFxuICBjYXRlZ29yaWVzOiBbXSxcbiAgZ3JvdXBzOiBbQVhQV2lkZ2V0R3JvdXBFbnVtLkZvcm1FbGVtZW50XSxcbiAgaWNvbjogXCJmYS1zb2xpZCBmYS1zcXVhcmVcIixcbiAgcHJvcGVydGllczogW1xuICAgIEFYUF9OQU1FX1BST1BFUlRZLFxuICAgIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFksXG4gIF0sXG4gIGNvbXBvbmVudHM6IHtcbiAgICB2aWV3OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC12aWV3LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdHktcmVmZXJlbmNlLXdpZGdldC1lZGl0LmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuQVhQRW50aXR5UmVmZXJlbmNlV2lkZ2V0RWRpdENvbXBvbmVudCksXG4gICAgfSxcbiAgICBjb2x1bW46IHtcbiAgICAgIGNvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2VudGl0eS1yZWZlcmVuY2Utd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUEVudGl0eVJlZmVyZW5jZVdpZGdldENvbHVtbkNvbXBvbmVudCksXG4gICAgfSxcbiAgICBwcmludDoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtcHJpbnQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXRQcmludENvbXBvbmVudCksXG4gICAgfSxcbiAgICBkZXNpZ25lcjoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vZW50aXR5LXJlZmVyZW5jZS13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXREZXNpZ25lckNvbXBvbmVudCksXG4gICAgfSxcbiAgfVxufSJdfQ==","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXPToastAction, AXPWorkflowNavigateAction, AXP_SEARCH_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { Injector, NgModule, inject } from '@angular/core';\nimport { ROUTES, RouterModule } from '@angular/router';\nimport { AXPEntityListViewModelResolver } from './entity-master-list.viewmodel';\nimport { AXPEntityDetailViewModelResolver } from './entity-master-single.viewmodel';\nimport { AXPEntityDefinitionRegistryService } from './entity-registery.service';\nimport { AXP_ENTITY_CONFIG_TOKEN } from './entity.config';\nimport { AXPEntityCommandSearchDefinitionProvider } from './search-definition-command.provider';\nimport { AXPEntitySearchDefinitionProvider } from './search-definition.provider';\nimport { AXPLookupWidget } from './widgets/lookup-widget';\nimport { AXPTagableBoxWidget } from './widgets/tagable-box';\nimport { AXPWidgetSelectorWidget } from './widgets/widget-selector';\nimport { AXPCreateEntityWorkflow, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, } from './workflows/create-entity.workflow';\nimport { AXPDeleteEntityWorkflow, AXPEntityPerformDeleteAction } from './workflows/delete-entity.workflow';\nimport { AXPEntityApplyUpdatesAction, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, } from './workflows/modify-entity.workflow';\nimport { AXPEntityModifyConfirmedAction, AXPEntityModifySectionPopupAction, AXPModifyEntitySectionWorkflow, } from './workflows/modify-section.workflow';\nimport { AXPShowDetailViewAction, AXPShowDetailsViewWorkflow } from './workflows/show-details.workflow';\nimport { AXPShowFileUploaderPopupAction, AXPShowFileUploaderPopupWorkflow, } from './workflows/show-file-uploader-popup.workflow';\nimport { AXPShowListViewAction, AXPShowListViewWorkflow } from './workflows/show-list.workflow';\nimport { AXPEntityReferenceWidget } from './widgets/entity-reference';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/core\";\nimport * as i2 from \"@acorex/platform/workflow\";\nimport * as i3 from \"@acorex/platform/layout/builder\";\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n let routes = [];\n routes = [\n {\n path: ':app/m',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: ':module',\n children: [\n {\n path: 'e/:entity/list',\n loadComponent: () => {\n return config.viewers.master.list();\n },\n resolve: {\n vm: AXPEntityListViewModelResolver,\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id/view',\n resolve: { vm: AXPEntityDetailViewModelResolver },\n loadComponent: () => {\n return config.viewers.master.single();\n },\n data: { reuse: false },\n },\n {\n path: 'e/:entity/:id',\n redirectTo: 'e/:entity/:id/view',\n pathMatch: 'full',\n },\n {\n path: 'e/:entity',\n redirectTo: ':entity/list',\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXPEntityModule {\n constructor(appInitService, injector) {\n const service = injector.get(AXPEntityDefinitionRegistryService);\n appInitService.registerTask({\n name: 'layout-theme',\n statusText: 'Preload entities ...',\n priority: 100,\n run: async () => {\n // load in background\n service.preload();\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, deps: [{ token: i1.AXPAppStartUpService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, imports: [RouterModule, i2.AXPWorkflowModule, i3.AXPLayoutBuilderModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ], imports: [RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget, AXPEntityReferenceWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.6\", ngImport: i0, type: AXPEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n RouterModule,\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCreatePopupAction,\n AXPEntityPerformDeleteAction,\n AXPWorkflowNavigateAction,\n 'entity-perform-delete': AXPEntityPerformDeleteAction,\n AXPEntityModifySectionPopupAction,\n AXPQuickEntityModifyPopupAction,\n AXPEntityModifyConfirmedAction,\n AXPToastAction,\n AXPShowDetailViewAction,\n AXPEntityCreateSubmittedAction,\n AXPShowListViewAction,\n 'entity-apply-updates': AXPEntityApplyUpdatesAction,\n AXPShowFileUploaderPopupAction,\n },\n workflows: {\n 'create-entity': AXPCreateEntityWorkflow,\n 'delete-entity': AXPDeleteEntityWorkflow,\n 'modify-entity-section': AXPModifyEntitySectionWorkflow,\n 'quick-modify-entity': AXPQuickModifyEntityWorkflow,\n 'open-entity': AXPShowDetailsViewWorkflow,\n 'show-list-view': AXPShowListViewWorkflow,\n 'show-file-uploader-popup': AXPShowFileUploaderPopupWorkflow,\n },\n functions: {},\n }),\n AXPLayoutBuilderModule.forChild({\n widgets: [AXPLookupWidget, AXPWidgetSelectorWidget, AXPTagableBoxWidget, AXPEntityReferenceWidget],\n }),\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntitySearchDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_SEARCH_DEFINITION_PROVIDER,\n useClass: AXPEntityCommandSearchDefinitionProvider,\n multi: true,\n },\n ],\n }]\n }], ctorParameters: () => [{ type: i1.AXPAppStartUpService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVC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QUUsd0NBQXdDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBUb2FzdEFjdGlvbiwgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBBWFBBcHBTdGFydFVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUywgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvbG9va3VwLXdpZGdldCc7XG5pbXBvcnQgeyBBWFBUYWdhYmxlQm94V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3RhZ2FibGUtYm94JztcbmltcG9ydCB7IEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvcic7XG5pbXBvcnQge1xuICBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24sXG4gIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdywgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uLFxuICBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uLFxuICBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbixcbiAgQVhQRW50aXR5TW9kaWZ5U2VjdGlvblBvcHVwQWN0aW9uLFxuICBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3csXG59IGZyb20gJy4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uLCBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24sXG4gIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cFdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9zaG93LWZpbGUtdXBsb2FkZXItcG9wdXAud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLCBBWFBTaG93TGlzdFZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlSZWZlcmVuY2VXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvZW50aXR5LXJlZmVyZW5jZSc7XG5cbmZ1bmN0aW9uIHJvdXRlc0ZhY29yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgbGV0IHJvdXRlczogUm91dGVzID0gW107XG4gIHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9tJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy52aWV3ZXJzLnJvb3QoKTtcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW0FYUEF1dGhHdWFyZF0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJzptb2R1bGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHkvbGlzdCcsXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMubWFzdGVyLmxpc3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHZtOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudmlld2Vycy5tYXN0ZXIuc2luZ2xlKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZCcsXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHknLFxuICAgICAgICAgICAgICByZWRpcmVjdFRvOiAnOmVudGl0eS9saXN0JyxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhQV29ya2Zsb3dNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbixcbiAgICAgICAgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbixcbiAgICAgICAgJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZSc6IEFYUEVudGl0eVBlcmZvcm1EZWxldGVBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbixcbiAgICAgICAgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uLFxuICAgICAgICBBWFBUb2FzdEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLFxuICAgICAgICAnZW50aXR5LWFwcGx5LXVwZGF0ZXMnOiBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24sXG4gICAgICAgIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ2NyZWF0ZS1lbnRpdHknOiBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ2RlbGV0ZS1lbnRpdHknOiBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IEFYUE1vZGlmeUVudGl0eVNlY3Rpb25Xb3JrZmxvdyxcbiAgICAgICAgJ3F1aWNrLW1vZGlmeS1lbnRpdHknOiBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxuICAgICAgICAnb3Blbi1lbnRpdHknOiBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyxcbiAgICAgICAgJ3Nob3ctbGlzdC12aWV3JzogQVhQU2hvd0xpc3RWaWV3V29ya2Zsb3csXG4gICAgICAgICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnOiBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdyxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbnM6IHt9LFxuICAgIH0pLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW0FYUExvb2t1cFdpZGdldCwgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXQsIEFYUFRhZ2FibGVCb3hXaWRnZXQsIEFYUEVudGl0eVJlZmVyZW5jZVdpZGdldF0sXG4gICAgfSksXG4gIF0sXG4gIGV4cG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHJvdXRlc0ZhY29yeSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBFbnRpdHlTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9TRUFSQ0hfREVGSU5JVElPTl9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWFBFbnRpdHlDb21tYW5kU2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TW9kdWxlIHtcbiAgY29uc3RydWN0b3IoYXBwSW5pdFNlcnZpY2U6IEFYUEFwcFN0YXJ0VXBTZXJ2aWNlLCBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICAgIGFwcEluaXRTZXJ2aWNlLnJlZ2lzdGVyVGFzayh7XG4gICAgICBuYW1lOiAnbGF5b3V0LXRoZW1lJyxcbiAgICAgIHN0YXR1c1RleHQ6ICdQcmVsb2FkIGVudGl0aWVzIC4uLicsXG4gICAgICBwcmlvcml0eTogMTAwLFxuICAgICAgcnVuOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIC8vIGxvYWQgaW4gYmFja2dyb3VuZFxuICAgICAgICBzZXJ2aWNlLnByZWxvYWQoKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { AXPEntityCommandScope } from \"@acorex/platform/common\";\n// #region Master\nexport function entityMasterCreateAction() {\n return {\n title: '@general:actions.create.title',\n command: 'create-entity',\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\nexport function entityMasterBulkDeleteAction() {\n return {\n title: '@general:actions.delete-items.title',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n };\n}\nexport function entityMasterViewAction() {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityMasterDeleteAction() {\n return {\n title: '@general:actions.delete.title',\n command: 'delete-entity',\n priority: 'secondary',\n type: 'delete',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityMasterCrudActions() {\n return [\n entityMasterCreateAction(),\n entityMasterBulkDeleteAction(),\n entityMasterViewAction(),\n entityMasterDeleteAction(),\n ];\n}\nexport function entityMasterRecordActions() {\n return [\n entityMasterDeleteAction(),\n ];\n}\n// #endregion\n// #region Details\nexport function entityDetailsCreateActions(parentId) {\n return {\n title: '@general:actions.create.title',\n command: {\n name: 'create-entity',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n [parentId]: '{{context.eval(\"id\")}}',\n },\n },\n },\n },\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n };\n}\nexport function entityDetailsSimpleCondition(fk) {\n return {\n name: fk,\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n };\n}\nexport function entityDetailsReferenceCondition() {\n return [{\n name: 'reference.id',\n operator: { type: 'equal' },\n value: '{{context.eval(\"id\")}}',\n },\n {\n name: 'reference.type',\n operator: { type: 'equal' },\n value: '{{context.eval(\"entityName\")}}',\n }\n ];\n}\nexport function entityDetailsEditAction() {\n return {\n title: '@general:actions.edit.title',\n command: 'quick-modify-entity',\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityOverrideDetailsViewAction() {\n return {\n title: '@general:actions.view.title',\n command: 'open-entity',\n priority: 'secondary',\n hidden: true,\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n };\n}\nexport function entityDetailsCrudActions(parentId) {\n return [\n entityDetailsCreateActions(parentId),\n entityDetailsEditAction(),\n entityOverrideDetailsViewAction(),\n ];\n}\nexport function entityDetailsReferenceCreateActions() {\n return [\n {\n title: '@general:actions.create.title',\n command: {\n name: 'create-entity',\n options: {\n process: {\n redirect: false,\n canCreateNewOne: true,\n data: {\n 'reference': {\n 'id': '{{context.eval(\"id\")}}',\n 'type': '{{context.eval(\"entityName\")}}'\n }\n },\n },\n },\n },\n priority: 'primary',\n type: 'create',\n scope: AXPEntityCommandScope.TypeLevel,\n },\n entityDetailsEditAction(),\n entityOverrideDetailsViewAction(),\n ];\n}\n// #endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLHFCQUFxQixFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBTWpHLGlCQUFpQjtBQUVqQixNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVM7S0FDekMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQ3hDLE9BQU87UUFDSCxLQUFLLEVBQUUscUNBQXFDO1FBQzVDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDeEMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE9BQU87UUFDSCxLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxN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O1FBQ0QsdUJBQXVCLEVBQUU7UUFDekIsK0JBQStCLEVBQUU7S0FDcEMsQ0FBQztBQUNOLENBQUM7QUFFRCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5QWN0aW9uLCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUFF1ZXJ5RmlsdGVyIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5cblxuXG5cblxuLy8gI3JlZ2lvbiBNYXN0ZXJcblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckNyZWF0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5jcmVhdGUudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnY3JlYXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUtaXRlbXMudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlclZpZXdBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMudmlldy50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdvcGVuLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5TWFzdGVyRGVsZXRlQWN0aW9uKCk6IEFYUEVudGl0eUFjdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmRlbGV0ZS50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckNydWRBY3Rpb25zKCk6IEFYUEVudGl0eUFjdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBlbnRpdHlNYXN0ZXJDcmVhdGVBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJWaWV3QWN0aW9uKCksXG4gICAgICAgIGVudGl0eU1hc3RlckRlbGV0ZUFjdGlvbigpLFxuICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zKCk6IEFYUEVudGl0eUFjdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuLy8gI3JlZ2lvbiBEZXRhaWxzXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzQ3JlYXRlQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjYW5DcmVhdGVOZXdPbmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRJZF06ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1NpbXBsZUNvbmRpdGlvbihmazogc3RyaW5nKTogQVhQUXVlcnlGaWx0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGZrLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJpZFwiKX19JyxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1JlZmVyZW5jZUNvbmRpdGlvbigpOiBBWFBRdWVyeUZpbHRlcltdIHtcbiAgICByZXR1cm4gW3tcbiAgICAgICAgbmFtZTogJ3JlZmVyZW5jZS5pZCcsXG4gICAgICAgIG9wZXJhdG9yOiB7IHR5cGU6ICdlcXVhbCcgfSxcbiAgICAgICAgdmFsdWU6ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgIH0sXG4gICAge1xuICAgICAgICBuYW1lOiAncmVmZXJlbmNlLnR5cGUnLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJlbnRpdHlOYW1lXCIpfX0nLFxuICAgIH1cbiAgICBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZWRpdC50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdxdWljay1tb2RpZnktZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU92ZXJyaWRlRGV0YWlsc1ZpZXdBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMudmlldy50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdvcGVuLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICB0eXBlOiAndmlldycsXG4gICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eURldGFpbHNDcnVkQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGVudGl0eURldGFpbHNDcmVhdGVBY3Rpb25zKHBhcmVudElkKSxcbiAgICAgICAgZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5T3ZlcnJpZGVEZXRhaWxzVmlld0FjdGlvbigpLFxuICAgIF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzUmVmZXJlbmNlQ3JlYXRlQWN0aW9ucygpOiBBWFBFbnRpdHlBY3Rpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLmNyZWF0ZS50aXRsZScsXG4gICAgICAgICAgICBjb21tYW5kOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuQ3JlYXRlTmV3T25lOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWZlcmVuY2UnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICd7e2NvbnRleHQuZXZhbChcImVudGl0eU5hbWVcIil9fSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIHR5cGU6ICdjcmVhdGUnLFxuICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgICAgIH0sXG4gICAgICAgIGVudGl0eURldGFpbHNFZGl0QWN0aW9uKCksXG4gICAgICAgIGVudGl0eU92ZXJyaWRlRGV0YWlsc1ZpZXdBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuXG5cblxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2Fjb3JleC1wbGF0Zm9ybS1sYXlvdXQtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.AXPEntityStorageService","i2.AXPEntityStorageRegistry","i2","i1","i4","i5","i6","i7","i8","i9","i3"],"mappings":"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"}
|