@acorex/platform 20.0.22 → 20.0.23

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/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/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.0.7\", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU1MLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUFZLE1BQWlCLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLFFBQTJCLEVBQzNCLE1BQTRCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBR3RDLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsUUFBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFHbkQsU0FBSSxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQztZQUMvQyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUk7Z0JBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7YUFDbEMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQWhCQSxDQUFDO0NBaUJMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUFjdGlvbixcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5VGFibGVDb2x1bW4sXG4gIHJlc29sdmVBY3Rpb25Mb29rLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBNZXRhRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb2x1bW5Ob2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwge1xuICBwcmlvcml0eTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gIGNvbG9yOiBBWFN0eWxlQ29sb3JUeXBlO1xuICBpY29uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5Pzogc3RyaW5nO1xuICBzZXBhcmF0ZWQ6IGJvb2xlYW47XG4gIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGU7XG4gIGRpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nO1xuICBoaWRkZW46IGJvb2xlYW4gfCBzdHJpbmc7XG4gIG9wdGlvbnM6IGFueTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbiAgZGVmYXVsdD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZW50aXR5OiBBWFBFbnRpdHksIGFjdGlvbjogQVhQRW50aXR5QWN0aW9uKSB7XG4gICAgdGhpcy5uYW1lID0gYCR7dHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZX0mJHthY3Rpb24ubmFtZX1gO1xuICAgIHRoaXMub3B0aW9ucyA9IHR5cGVvZiBhY3Rpb24uY29tbWFuZCA9PT0gJ29iamVjdCcgPyBhY3Rpb24uY29tbWFuZC5vcHRpb25zIDogdW5kZWZpbmVkO1xuICAgIHRoaXMubWV0YWRhdGEgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdvYmplY3QnID8gYWN0aW9uLmNvbW1hbmQubWV0YWRhdGEgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVzb2x2ZWRMb29rID0gcmVzb2x2ZUFjdGlvbkxvb2soYWN0aW9uKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gYWN0aW9uLnByaW9yaXR5O1xuICAgIHRoaXMudGl0bGUgPSBhY3Rpb24udGl0bGU7XG4gICAgdGhpcy5zZXBhcmF0ZWQgPSBhY3Rpb24uc2VwYXJhdGVkID8/IGZhbHNlO1xuICAgIHRoaXMuY29sb3IgPSBhY3Rpb24uY29sb3IgPz8gcmVzb2x2ZWRMb29rLmNvbG9yO1xuICAgIHRoaXMuaWNvbiA9IGFjdGlvbi5pY29uID8/IHJlc29sdmVkTG9vay5pY29uO1xuICAgIHRoaXMuaGlkZGVuID0gYWN0aW9uLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB0aGlzLmRpc2FibGVkID0gYWN0aW9uLmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuZGVmYXVsdCA9IGFjdGlvbi5kZWZhdWx0ID8/IGZhbHNlO1xuICAgIHRoaXMuc2NvcGUgPSBhY3Rpb24uc2NvcGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eTogQVhQRW50aXR5UHJvcGVydHksXG4gICAgcHJpdmF0ZSBjb2x1bW46IEFYUEVudGl0eVRhYmxlQ29sdW1uLFxuICApIHt9XG5cbiAgbmFtZSA9IHRoaXMucHJvcGVydHkubmFtZTtcbiAgdGl0bGUgPSB0aGlzLmNvbHVtbi50aXRsZSA/PyB0aGlzLnByb3BlcnR5LnRpdGxlO1xuICB2aXNpYmxlID0gdGhpcy5jb2x1bW4/Lm9wdGlvbnM/LnZpc2libGUgPz8gdHJ1ZTtcbiAgZGlyID0gdGhpcy5jb2x1bW4uc29ydD8uZGlyO1xuICBzb3J0RW5hYmxlZCA9IHRoaXMucHJvcGVydHkub3B0aW9ucz8uc29ydD8uZW5hYmxlZDtcbiAgd2lkdGg6ICcnO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXRDb2x1bW5Ob2RlPigoKSA9PiB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEuaW50ZXJmYWNlITtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5jb2x1bW4ub3B0aW9ucz8uZGF0YVBhdGggPz8gdGhpcy5uYW1lLFxuICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICBvcHRpb25zOiB7IC4uLndpZGdldD8ub3B0aW9ucywgLi4udGhpcy5jb2x1bW4/Lm9wdGlvbnMgfSxcbiAgICB9IGFzIEFYUFdpZGdldENvbHVtbk5vZGU7XG4gIH0pO1xufVxuIl19","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);\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 });\n this.selectedItems = signal([]);\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return (this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title ??\n this.detailEntity()?.formats.plural);\n });\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 });\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 });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n const mergedActions = list.map((tr) => {\n const commandName = typeof tr.command === 'string' ? tr.command : tr.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === commandName && action.name === tr.name;\n });\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), overrideAction ?? tr);\n });\n return mergedActions;\n });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\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 });\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 });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'));\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 });\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 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: action.options,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUErQiw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEcsTUFBTSxPQUFPLDRCQUE0QjtJQXdCdkMsWUFDVSxRQUFrQixFQUNsQixrQkFBb0MsRUFDcEMsTUFBd0M7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBMUIxQyxpQkFBWSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxh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QUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRyxDQUFDLENBQUMsTUFBTTtZQUNsRCxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUN6RixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU07Z0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSztnQkFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTO2dCQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU07YUFDcEM7WUFDRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQWVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlDb21tYW5kU2NvcGUsXG4gIEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UsXG4gIEFYUFJlbGF0ZWRFbnRpdHksXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSwgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RvciwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsIHtcbiAgcHJpdmF0ZSBkZXRhaWxFbnRpdHkgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlck9wZXJhdG9yTWlkZGxld2FyZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UpO1xuICBwcml2YXRlIGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoZSk7XG4gICAgfSxcbiAgICBwYWdlU2l6ZTogNSxcbiAgICBrZXk6ICdpZCcsXG4gIH0pO1xuXG4gIHB1YmxpYyBwYXJlbnRLZXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGV0YWlsRW50aXR5KCk/LnBhcmVudEtleTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBkZXRhaWxFbnRpdHlDb25maWc6IEFYUFJlbGF0ZWRFbnRpdHksXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IHsgZW50aXR5OiBBWFBFbnRpdHk7IGRhdGE6IGFueSB9LFxuICApIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgY29uc3QgZW50aXR5UmVzb2x2ZXIgPSB0aGlzLmluamVjdG9yLmdldChBWFBFbnRpdHlSZXNvbHZlcik7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuZW50aXR5LnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZW50aXR5ID0gYXdhaXQgZW50aXR5UmVzb2x2ZXIuZ2V0KG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGlmICghZW50aXR5KSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBlbml0aXR5IG5hbWU6ICR7dGhpcy5kZXRhaWxFbnRpdHlDb25maWcuZW50aXR5fWApO1xuICAgIH1cbiAgICB0aGlzLmRldGFpbEVudGl0eS5zZXQoZW50aXR5KTtcbiAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwdWJsaWMgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLnRpdGxlID8/XG4gICAgICB0aGlzLmRldGFpbEVudGl0eSgpPy5pbnRlcmZhY2VzPy5kZXRhaWw/Lmxpc3Q/LnRpdGxlISA/P1xuICAgICAgdGhpcy5kZXRhaWxFbnRpdHkoKT8uZm9ybWF0cy5wbHVyYWwhXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVmlzaWJpbGl0eSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgaGlkZGVuID0gY29tcHV0ZWQ8UHJvbWlzZTxib29sZWFuPj4oYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuaGlkZGVuID09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLnBhcmVudC5kYXRhLCBwYXRoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodGhpcy5kZXRhaWxFbnRpdHlDb25maWcuaGlkZGVuLCBzY29wZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4gPz8gZmFsc2U7XG4gICAgfVxuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBJbmxpbmUgZmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICAvL3JldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcChjID0+IGMudGl0bGUpO1xuICAgIHJldHVybiBbXTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc0lubGluZUZpbHRlcnMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJpdmF0ZSBhbGxBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgY29uc3QgZGV0YWlsRW50aXR5QWN0aW9uTGlzdCA9IHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmFjdGlvbnMgPz8gW107XG5cbiAgICBjb25zdCBtZXJnZWRBY3Rpb25zID0gbGlzdC5tYXAoKHRyKSA9PiB7XG4gICAgICBjb25zdCBjb21tYW5kTmFtZSA9IHR5cGVvZiB0ci5jb21tYW5kID09PSAnc3RyaW5nJyA/IHRyLmNvbW1hbmQgOiB0ci5jb21tYW5kLm5hbWU7XG4gICAgICBjb25zdCBvdmVycmlkZUFjdGlvbiA9IGRldGFpbEVudGl0eUFjdGlvbkxpc3QuZmluZCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkNvbW1hbmROYW1lID0gdHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkNvbW1hbmROYW1lID09PSBjb21tYW5kTmFtZSAmJiBhY3Rpb24ubmFtZSA9PT0gdHIubmFtZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmRldGFpbEVudGl0eSgpISwgb3ZlcnJpZGVBY3Rpb24gPz8gdHIpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlZEFjdGlvbnM7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFNjb3BlQWN0aW9uc0NvdW50ID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQpLmxlbmd0aDtcbiAgfSk7XG5cbiAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoXG4gICAgICAoYSkgPT5cbiAgICAgICAgYS5wcmlvcml0eSA9PSAncHJpbWFyeScgJiZcbiAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoXG4gICAgICAoYSkgPT5cbiAgICAgICAgYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JyAmJlxuICAgICAgICAoKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSksXG4gICAgKTtcbiAgfSk7XG4gIHB1YmxpYyBwcmltYXJ5Um93QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+XG4gICAgdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdwcmltYXJ5JyksXG4gICk7XG5cbiAgcHVibGljIHNlY29uZGFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAnc2Vjb25kYXJ5JyksXG4gICk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogRmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgcHJpdmF0ZSBpbmxpbmVGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgIGxvZ2ljOiAnb3InLFxuICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICBmaWx0ZXJzOiBbXSxcbiAgfTtcblxuICBhcHBseUlubGluZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpO1xuICAgIC8vIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzID0gW107XG4gICAgLy8gaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgIHByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XG4gICAgLy8gICAgICAgICAgICAgZmllbGQ6IHAubmFtZSxcbiAgICAvLyAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgIC8vICAgICAgICAgICAgICAgICB0eXBlOiAnY29udGFpbnMnXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB2YWx1ZVxuICAgIC8vICAgICAgICAgfSlcbiAgICAvLyAgICAgfSlcbiAgICAvLyB9XG4gICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICAvL1xuICAgIC8vdGhpcy5kYXRhU291cmNlLnNvcnQoLi4udGhpcy5kZXRhaWxFbnRpdHkuKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIGNvbnN0IHBhcmVudEZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID1cbiAgICAgIChhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuY29uZGl0aW9ucz8ubWFwKGFzeW5jIChjKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpZWxkOiBjLm5hbWUsXG4gICAgICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvciBhcyB1bmtub3duIGFzIEFYRGF0YVNvdXJjZU9wZXJhdG9yLFxuICAgICAgICAgICAgLy8gdmFsdWU6IHRoaXMucGFyZW50LmRhdGE/LmlkLFxuICAgICAgICAgICAgdmFsdWU6IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9ucyhjLnZhbHVlKSxcbiAgICAgICAgICB9IGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcbiAgICAgICAgfSkgPz8gW10sXG4gICAgICApKSA/PyBbXTtcbiAgICBjb25zdCBwYXJlbnRGaWx0ZXJXcmFwcGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICBmaWx0ZXJzOiBwYXJlbnRGaWx0ZXJzLFxuICAgIH07XG4gICAgLy9cbiAgICBjb25zdCBpbmxpbmUgPSB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50RmlsdGVyV3JhcHBlci5maWx0ZXJzPy5sZW5ndGggPz8gMDtcbiAgICAvL1xuICAgIGlmIChpbmxpbmUpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHRoaXMuaW5saW5lRmlsdGVycykpO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHBhcmVudEZpbHRlcldyYXBwZXIpKTtcbiAgICB9IGVsc2UgaWYgKGlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoXG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih7XG4gICAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgICAgZmlsdGVyczogW3RoaXMuaW5saW5lRmlsdGVycywgcGFyZW50RmlsdGVyV3JhcHBlcl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29sdW1ucyAqKioqKioqKioqKioqKioqKiovL1xuXG4gIGNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGV0YWlsRW50aXR5KCkpIHtcbiAgICAgIGNvbnN0IGRldGFpbENvbHVtbnMgPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5jb2x1bW5zID8/IFtdO1xuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGV0YWlsRW50aXR5KCk/LmNvbHVtbnM/Lm1hcCgoYykgPT4gYy5uYW1lKSA/PyBbXTtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGhpcy5kZXRhaWxFbnRpdHkoKT8ucHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgICAgKHApID0+IHAuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmIChkZXRhaWxDb2x1bW5zPy5sZW5ndGggPT0gMCB8fCBkZXRhaWxDb2x1bW5zPy5pbmNsdWRlcyhwLm5hbWUpKSxcbiAgICAgICAgKSA/PyBbXTtcbiAgICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PiBjb2x1bW5zLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKSk7XG4gICAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocCwgdGhpcy5kZXRhaWxFbnRpdHkoKT8uY29sdW1ucz8uZmluZCgoYykgPT4gYy5uYW1lID09IHAubmFtZSkhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWRTY29wZSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgICA/IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkXG4gICAgICAgIDogYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbDtcbiAgICAgIHJldHVybiBjLm5hbWUgPT0gY29tbWFuZE5hbWUgJiYgKGlzU2VsZWN0ZWRTY29wZSB8fCBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFhY3Rpb24pIHJldHVybjtcblxuICAgIGNvbnN0IGFjdGlvbkRhdGEgPSBhY3Rpb24ub3B0aW9ucz8ucHJvY2Vzcz8uZGF0YTtcbiAgICBjb25zdCBpbml0aWFsRGF0YSA9IGFjdGlvbkRhdGEgPyB7IC4uLmRhdGEsIC4uLihhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYWN0aW9uRGF0YSkpIH0gOiBkYXRhO1xuXG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF0sIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmRldGFpbEVudGl0eSgpISkuc291cmNlLFxuICAgICAgZGF0YTogYWN0aW9uLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogaW5pdGlhbERhdGEsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZGV0YWlsRW50aXR5KCk/Lm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8udGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZGV0YWlsRW50aXR5KCk/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiBhY3Rpb24ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVFeHByZXNzaW9ucyA9IGFzeW5jIChhY3Rpb25EYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RGF0YSA9IHRoaXMucGFyZW50LmRhdGE7XG4gICAgY29uc29sZS5sb2coeyBhY3Rpb25EYXRhLCBwYXJlbnREYXRhIH0pO1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KHBhcmVudERhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhY3Rpb25EYXRhLCBzY29wZSk7XG4gIH07XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPEntityMiddleware, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMiddleware, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.createProp.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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 ?? {});\n this.options = signal(this.commandOptions ?? {});\n this.isInProgress = signal(false);\n this.canCreateNewOne = signal(true);\n this.redirect = signal(true);\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 });\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.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkcsT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhGLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFNUUsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxNQUFNLENBQUMsSUFB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L0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3LFxuICBBWFBFbnRpdHlTZWN0aW9uVmlldyxcbiAgQVhQR3JpZExheW91dE9wdGlvbnMsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSwgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUFBhZ2VTdGF0dXMsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc05pbCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7IH1cblxuICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZCgoYykgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcblxuICB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlID8/IHRoaXMuZ3JvdXAuaWQ7XG4gIH0pO1xuXG4gIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLmRlc2NyaXB0aW9uO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLnNlY3Rpb24ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgZWxlbWVudHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eTtcbiAgICBjb25zdCBjcmVhdGVQcm9wcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5wcm9wZXJ0aWVzID8/IFtdO1xuICAgIGNvbnN0IGNyZWF0ZVByb3BOYW1lcyA9IG5ldyBTZXQoY3JlYXRlUHJvcHMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiBjcmVhdGVQcm9wTmFtZXMuaGFzKG5hbWUpXG4gICAgKTtcblxuICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgY3JlYXRlUHJvcCA9IGNyZWF0ZVByb3BzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBwcm9wZXJ0eS5uYW1lKTtcbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5Q3JlYXRlVmlld0VsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3BlcnR5LCBjcmVhdGVQcm9wISk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld0VsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eTogQVhQRW50aXR5UHJvcGVydHksXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm9wOiBBWFBFbnRpdHlQcm9wZXJ0eUNyZWF0ZVZpZXdcbiAgKSB7IH1cblxuICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XG4gIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICBkZXNjcmlwdGlvbiA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LmRlc2NyaXB0aW9uKTtcblxuICBlZGl0YWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gISh0aGlzLnByb3BlcnR5LnNjaGVtYS5yZWFkb25seSA/PyBmYWxzZSk7XG4gIH0pO1xuXG4gIGlzUmVxdWlyZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnM/LnNvbWUoKGMpID0+IGMucnVsZSA9PSAncmVxdWlyZWQnKSB8fCBmYWxzZTtcbiAgfSk7XG5cblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLmNyZWF0ZVByb3AubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgbW9kZTogdGhpcy5lZGl0YWJsZSgpID8gJ2VkaXQnIDogJ3ZpZXcnLFxuICAgICAgcGF0aDogdGhpcy5uYW1lKCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXG4gICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcbiAgICAgIHRyaWdnZXJzOiB3aWRnZXQudHJpZ2dlcnMsXG4gICAgICB2YWx1ZVRyYW5zZm9ybXM6IHdpZGdldC52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICBvcHRpb25zOiBtZXJnZShzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zLCB7XG4gICAgICAgIHZhbGlkYXRpb25zOiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zPy5tYXAoKGMpID0+ICh7IHJ1bGU6IGMucnVsZSwgbWVzc2FnZTogYy5tZXNzYWdlLCBvcHRpb25zOiBjLm9wdGlvbnMgfSkpLFxuICAgICAgfSksXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbCB7XG4gIHByaXZhdGUgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG5cbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcblxuICBwdWJsaWMgYnVpbGRlcjogQVhQTGF5b3V0QnVpbGRlclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxEYXRhOiBhbnkgPSB7fSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRPcHRpb25zOiBhbnlcbiAgKSB7XG4gICAgaWYgKCFpbml0aWFsRGF0YSkgaW5pdGlhbERhdGEgPSB7fTtcblxuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKGdldChpbml0aWFsRGF0YSwgcGF0aCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBwcm9jZXNzRGVmYXVsdCA9IGFzeW5jICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlKCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKCd7eycpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodmFsdWUsIHNjb3BlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgdGhpcy5jb25maWcucHJvcGVydGllc1xuICAgICAgLmZpbHRlcigoYykgPT4gIWlzTmlsKGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSkpXG4gICAgICAuZm9yRWFjaChhc3luYyAocCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHByb2Nlc3NEZWZhdWx0KHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHNldChpbml0aWFsRGF0YSwgcC5uYW1lLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuY29udGV4dC5zZXQoaW5pdGlhbERhdGEpO1xuICAgIHRoaXMub3B0aW9ucy5zZXQoY29tbWFuZE9wdGlvbnMpO1xuICAgIC8vXG4gICAgY29uc3QgeyByZWRpcmVjdCA9IHRydWUsIGNhbkNyZWF0ZU5ld09uZSA9IHRydWUgfSA9IGNvbW1hbmRPcHRpb25zPy5bJ3Byb2Nlc3MnXSA/PyB7fTtcbiAgICB0aGlzLmNhbkNyZWF0ZU5ld09uZS5zZXQoY2FuQ3JlYXRlTmV3T25lKTtcbiAgICB0aGlzLnJlZGlyZWN0LnNldChyZWRpcmVjdCk7XG4gIH1cblxuICBwdWJsaWMgY29udGV4dCA9IHNpZ25hbDxhbnk+KHRoaXMuaW5pdGlhbERhdGEgPz8ge30pO1xuICBwdWJsaWMgb3B0aW9ucyA9IHNpZ25hbDxhbnk+KHRoaXMuY29tbWFuZE9wdGlvbnMgPz8ge30pO1xuXG4gIHB1YmxpYyBpc0luUHJvZ3Jlc3MgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgY2FuQ3JlYXRlTmV3T25lID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVkaXJlY3QgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCB2aXNpYmxlUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+IGdyb3VwSWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcHMuaW5jbHVkZXMobmFtZSlcbiAgICApO1xuXG4gICAgY29uc3Qgc2VjdGlvbnMgPVxuICAgICAgaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGU/LnNlY3Rpb25zPy5maWx0ZXIoKHsgaWQgfSkgPT5cbiAgICAgICAgdmlzaWJsZVByb3BlcnRpZXMuc29tZSgoeyBncm91cElkIH0pID0+IGdyb3VwSWQgPT09IGlkKVxuICAgICAgKSA/PyBbXTtcblxuICAgIHJldHVybiBzZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+IG5ldyBBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueSB8IHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KHRydWUpO1xuICAgICAgdGhpcy5idWlsZGVyLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcpO1xuICAgICAgY29uc3QgZXhlYyA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleGVjKHRoaXMuY29udGV4dCgpKTtcbiAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKGMpID0+ICh7IC4uLmMsIC4uLnJlc3VsdCB9KSk7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5idWlsZGVyLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLlN1Ym1pdHRlZCk7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5FcnJvcik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdPbmUoKSB7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdjcmVhdGUtZW50aXR5Jywge1xuICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMoKSxcbiAgICAgIGRhdGE6IHRoaXMuaW5pdGlhbERhdGEsXG4gICAgICAvLyBlbnRpdHlJbmZvXG4gICAgfSk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgaW5pdGlhbERhdGE6IGFueSA9IG51bGwsXG4gICAgb3B0aW9uczogeyBjYW5DcmVhdGVOZXdPbmU6IGJvb2xlYW47IHJlZGlyZWN0OiBib29sZWFuIH0gPSB7IGNhbkNyZWF0ZU5ld09uZTogdHJ1ZSwgcmVkaXJlY3Q6IHRydWUgfVxuICApOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbD4ge1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGluaXRpYWxEYXRhLCBvcHRpb25zKTtcbiAgfVxufVxuIl19","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 });\n this.view = signal(this.views()[0]);\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([]);\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural;\n });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description ?? null;\n });\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 });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.title(),\n },\n ];\n });\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 });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n //****************** Filter ******************//\n this.filterQueries = signal([]);\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([]);\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([]);\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.0.7\", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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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Q0FBQztRQUN4QyxPQUFPLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQVZVLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzJGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWNsQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBcUQsQ0FDOUYsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsVUFBeUMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEVBQ3ZDLEVBQUU7SUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQ2xFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQzFELEVBQUU7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VTb3J0T3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlDb21tYW5kU2NvcGUsXG4gIEFYUEVudGl0eVByb3BlcnR5LFxuICBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlLFxuICBBWFBRdWVyeVZpZXcsXG4gIEFYUFJlZnJlc2hFdmVudCxcbiAgQVhQU2V0dGluZ1NlcnZpY2UsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEJyZWFkY3J1bWJJdGVtLFxuICBBWFBFeGVjdXRlQ29tbWFuZCxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlLFxuICBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSxcbiAgQVhQRmlsdGVyRGVmaW5pdGlvbixcbiAgQVhQRmlsdGVyUXVlcnksXG4gIEFYUFBsYXRmb3JtU2NvcGUsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsIEFYUFdpZGdldFR5cGVzTWFwIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdTb3J0UHJvcFZpZXdNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGlyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsLFxuICAgIHByaXZhdGUgdmlldzogQVhQUXVlcnlWaWV3LFxuICApIHt9XG5cbiAgbmFtZSA9IHRoaXMudmlldy5uYW1lO1xuICB0aXRsZSA9IHRoaXMudmlldy50aXRsZTtcbiAgc29ydHMgPSB0aGlzLnZpZXcuc29ydHM7XG4gIGNvbHVtbnMgPSB0aGlzLnZpZXcuY29sdW1ucztcbiAgY29uZGl0aW9ucyA9IHRoaXMudmlldy5jb25kaXRpb25zO1xuICBpbmRleENvbCA9IHRoaXMudmlldy5pbmRleENvbDtcbiAgcGFnZVNpemUgPSB0aGlzLnZpZXcucGFnZVNpemU7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsIHtcbiAgcmVhZG9ubHkgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZWYgPSBjbG9uZURlZXAodGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0KSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3MgPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0UmVzb2x2ZXIgPSB0aGlzLmluamVjdG9yLmdldChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSB0aGlzLmluamVjdG9yLmdldChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBwcml2YXRlIHNldHRpbmdFbnRpdHlLZXkgPSBgJHt0aGlzLmNvbmZpZy5tb2R1bGV9OiR7dGhpcy5jb25maWcubmFtZX1gO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGV2ZW50cyQ6IFN1YmplY3Q8eyBhY3Rpb246IHN0cmluZzsgbWV0YT86IGFueSB9PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVmlld3MgKioqKioqKioqKioqKioqKioqLy9cblxuICB2aWV3cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3cyA9IHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdD8udmlld3MgPz8gW107XG5cbiAgICByZXR1cm4gdmlld3MubWFwKCh2KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHRoaXMsIHYpO1xuICAgIH0pO1xuICB9KTtcblxuICB2aWV3ID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWw+KHRoaXMudmlld3MoKVswXSk7XG5cbiAgYXN5bmMgc2V0Vmlldyh2aWV3TmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBjb25zdCBlbnRpdHlTZXR0aW5nID0gYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXQodGhpcy5zZXR0aW5nRW50aXR5S2V5KTtcbiAgICBjb25zdCBzZWxlY3RlZFZpZXdOYW1lID0gZW50aXR5U2V0dGluZz8ubGlzdD8uY3VycmVudFZpZXc7XG4gICAgaWYgKHZpZXdOYW1lICE9IHRoaXMudmlldygpLm5hbWUpIHtcbiAgICAgIHRoaXMudmlldy5zZXQodGhpcy52aWV3cygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSAodmlld05hbWUgfHwgc2VsZWN0ZWRWaWV3TmFtZSkpID8/IHRoaXMudmlld3MoKVswXSk7XG5cbiAgICAgIHRoaXMuYXBwbHlWaWV3U29ydHMoKTtcbiAgICAgIHRoaXMuYXBwbHlWaWV3Q29sdW1ucygpO1xuICAgICAgdGhpcy5hcHBseVZpZXdGaWx0ZXJzKCk7XG4gICAgICAvLyB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICAgICAgdGhpcy5hcHBseVNldHRpbmdzKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoZSk7XG4gICAgfSxcbiAgICBwYWdlU2l6ZTogdGhpcy52aWV3KCkucGFnZVNpemUgfHwgMTAsXG4gICAga2V5OiAnaWQnLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICApIHtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBSZWZyZXNoRXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgICAgICAgICB0aGlzLmV2ZW50cyQubmV4dCh7IGFjdGlvbjogJ3JlZnJlc2gnLCBtZXRhOiBldmVudC5wYXlsb2FkLm1ldGEgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc29ydGVkRmllbGRzLnNldCh0aGlzLnNvcnRhYmxlRmllbGRzKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFwcGx5U2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoJ3ZpZXcnKTtcblxuICAgIGNvbnN0IGxpc3RWaWV3U2V0dGluZyA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ0VudGl0eUtleSk7XG4gICAgaWYgKGxpc3RWaWV3U2V0dGluZykge1xuICAgICAgY29uc3QgY29sdW1ucyA9IGxpc3RWaWV3U2V0dGluZy5saXN0LnZpZXdzW3RoaXMudmlldygpLm5hbWVdLmNvbHVtbnM7XG4gICAgICBjb25zdCBwYWdlU2l6ZSA9IGxpc3RWaWV3U2V0dGluZy5saXN0LnZpZXdzW3RoaXMudmlldygpLm5hbWVdLnBhZ2VTaXplO1xuICAgICAgY29uc3QgY29sdW1uVmlzaWJpbGl0eU1hcCA9IG5ldyBNYXAoY29sdW1ucy5tYXAoKGNvbDogYW55KSA9PiBbY29sLm5hbWUsIGNvbC52aXNpYmxlXSkpO1xuICAgICAgY29uc3QgY29sdW1uV2lkdGhzTWFwID0gbmV3IE1hcChjb2x1bW5zLm1hcCgoY29sOiBhbnkpID0+IFtjb2wubmFtZSwgY29sLndpZHRoXSkpO1xuXG4gICAgICAvLyBpZiAocGFnZVNpemUpIHtcbiAgICAgIC8vICAgdGhpcy5kYXRhU291cmNlLnNldFBhZ2VTaXplKHBhZ2VTaXplKTtcbiAgICAgIC8vIH1cblxuICAgICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgocHJldikgPT5cbiAgICAgICAgcHJldlxuICAgICAgICAgIC5tYXAoKGM6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYywgd2lkdGg6IGNvbHVtbldpZHRoc01hcC5nZXQoYy5uYW1lKSwgdmlzaWJsZTogY29sdW1uVmlzaWJpbGl0eU1hcC5nZXQoYy5uYW1lKSA/PyBjLnZpc2libGUgfTtcbiAgICAgICAgICB9KSAvLyBVcGRhdGUgdmlzaWJpbGl0eVxuICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgIGNvbHVtbnMuZmluZEluZGV4KChjb2w6IGFueSkgPT4gY29sLm5hbWUgPT09IGEubmFtZSkgLVxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbmRJbmRleCgoY29sOiBhbnkpID0+IGNvbC5uYW1lID09PSBiLm5hbWUpLFxuICAgICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlU2V0dGluZ3MoY2hhbmdlc1R5cGU6ICdjb2x1bW5TaXplcycgfCAnY29sdW1uT3JkZXJzJyB8ICd2aWV3JyB8ICdwYWdlU2l6ZScsIGRhdGE/OiBhbnkpIHtcbiAgICBjb25zdCB1cGRhdGVTZXR0aW5ncyA9ICh1cGRhdGVGbjogKHByZXY6IGFueSkgPT4gYW55KSA9PiB7XG4gICAgICB0aGlzLnNldHRpbmdzLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikudXBkYXRlKHRoaXMuc2V0dGluZ0VudGl0eUtleSwgdXBkYXRlRm4pO1xuICAgIH07XG5cbiAgICBzd2l0Y2ggKGNoYW5nZXNUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW5TaXplcyc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBkYXRhLmRhdGFGaWVsZC5zcGxpdCgnLScpWzFdO1xuICAgICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0geyAuLi5wcmV2IH07XG5cbiAgICAgICAgICBzZXQoXG4gICAgICAgICAgICBuZXdTZXR0aW5ncyxcbiAgICAgICAgICAgIGBsaXN0LnZpZXdzLiR7dGhpcy52aWV3KCkubmFtZX0uY29sdW1uc2AsXG4gICAgICAgICAgICBwcmV2Py5saXN0Py52aWV3cz8uW3RoaXMudmlldygpLm5hbWVdPy5jb2x1bW5zPy5tYXAoKGM6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgd2lkdGg6IGMubmFtZSA9PT0gZmllbGQgPyBkYXRhLndpZHRoIDogYy53aWR0aCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1NldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb2x1bW5PcmRlcnMnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0geyAuLi5wcmV2IH07XG5cbiAgICAgICAgICBzZXQoXG4gICAgICAgICAgICBuZXdTZXR0aW5ncyxcbiAgICAgICAgICAgIGBsaXN0LnZpZXdzLiR7dGhpcy52aWV3KCkubmFtZX0uY29sdW1uc2AsXG4gICAgICAgICAgICBkYXRhLm1hcCgoYzogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBuYW1lOiBjLm5hbWUsXG4gICAgICAgICAgICAgIHZpc2libGU6IGMudmlzaWJsZSxcbiAgICAgICAgICAgICAgd2lkdGg6IGMud2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgLi4ucHJldj8ubGlzdCxcbiAgICAgICAgICAgIGN1cnJlbnRWaWV3OiB0aGlzLnZpZXcoKS5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3BhZ2VTaXplJzpcbiAgICAgICAgdXBkYXRlU2V0dGluZ3MoKHByZXYpID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgICAuLi5wcmV2Py5saXN0LFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgLi4ucHJldj8ubGlzdD8udmlld3MsXG4gICAgICAgICAgICAgIFt0aGlzLnZpZXcoKS5uYW1lXToge1xuICAgICAgICAgICAgICAgIC4uLnByZXY/Lmxpc3Q/LnZpZXdzPy5bdGhpcy52aWV3KCkubmFtZV0sXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IGRhdGEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucGFyZW50S2V5O1xuICB9KTtcblxuICBwdWJsaWMgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5wbHVyYWwhO1xuICB9KTtcbiAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uID8/IG51bGw7XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKChjKSA9PiBjLnRpdGxlID8/IGMubmFtZSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCcmVhZGNydW1iSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQWN0aW9ucyAqKioqKioqKioqKioqKioqKiovL1xuICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdD8uYWN0aW9ucyA/PyBbXTtcbiAgICByZXR1cm4gbGlzdC5tYXAoKHRyKSA9PiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHRyKSkgPz8gW107XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBnZXRQcmltYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge307XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoYSkgPT5cbiAgICAgICAgICAgIGEucHJpb3JpdHkgPT0gJ3ByaW1hcnknICYmXG4gICAgICAgICAgICAoKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICAgICApXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIGFjdGlvbnMgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZWNvbmRhcnlBY3Rpb25zKCk6IFByb21pc2U8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBjb25zdCBhY3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLmFsbEFjdGlvbnMoKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JyAmJlxuICAgICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiBhY3Rpb25zIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRTY29wZUFjdGlvbnNDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkKS5sZW5ndGg7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5Um93QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+XG4gICAgdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdwcmltYXJ5JyksXG4gICk7XG5cbiAgcHVibGljIGFzeW5jIHNlY29uZGFyeVJvd0FjdGlvbnMocm93RGF0YTogYW55KTogUHJvbWlzZTxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4gZ2V0KHJvd0RhdGEsIHBhdGgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgJiYgYS5wcmlvcml0eSA9PT0gJ3NlY29uZGFyeScpXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gYWN0aW9ucy5maWx0ZXIoQm9vbGVhbikgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIEZpbHRlciAqKioqKioqKioqKioqKioqKiovL1xuXG4gIGZpbHRlclF1ZXJpZXMgPSBzaWduYWw8QVhQRmlsdGVyUXVlcnlbXT4oW10pO1xuXG4gIGdldCBwcm9wZXJ0aWVzKCk6IEFYUEVudGl0eVByb3BlcnR5W10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzO1xuICB9XG5cbiAgZ2V0IGZpbHRlcnNEZWYoKTogQVhQRmlsdGVyRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy5lbmFibGVkIHx8IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQsXG4gICAgKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICBjb25zdCB3aWRnZXRDb25maWcgPSB0aGlzLndpZGdldFJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgIGUuc2NoZW1hLmludGVyZmFjZT8udHlwZSBhcyBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0eXBlID0gKGUub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy53aWRnZXRUeXBlIHx8XG4gICAgICAgIHdpZGdldENvbmZpZz8uZGVmYXVsdEZpbHRlcldpZGdldE5hbWUgfHxcbiAgICAgICAgZS5zY2hlbWEuaW50ZXJmYWNlPy50eXBlKSBhcyBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF07XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogZS50aXRsZSxcbiAgICAgICAgZmllbGQ6IGUubmFtZSxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnY29udGFpbnMnLFxuICAgICAgICB9LFxuICAgICAgICB3aWRnZXQ6IHsgLi4uZS5zY2hlbWEuaW50ZXJmYWNlLCBwYXRoOiBlLm5hbWUsIHR5cGUgfSxcbiAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgIGlzUGFyYW1ldHJpYzogZmFsc2UsXG4gICAgICAgIGljb246IHdpZGdldENvbmZpZz8uaWNvbixcbiAgICAgICAgZmlsdGVyVHlwZToge1xuICAgICAgICAgIGFkdmFuY2U6IGUub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgIGlubGluZTogZS5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvLyBjb25zdCB2aWV3RmlsdGVycyA9IHRoaXMudmlldygpLmNvbmRpdGlvbnMubWFwKChmKSA9PiAoe1xuICAvLyAgIGZpZWxkOiBmLm5hbWUsXG4gIC8vICAgb3BlcmF0b3I6IGYub3BlcmF0b3IsXG4gIC8vICAgdmFsdWU6IGYudmFsdWUsXG4gIC8vIH0pKTtcbiAgYXN5bmMgYXBwbHlWaWV3RmlsdGVycygpIHtcbiAgICBjb25zdCB2aWV3RmlsdGVycyA9IHRoaXMudmlldygpLmNvbmRpdGlvbnMubWFwKChmKSA9PiAoe1xuICAgICAgZmllbGQ6IGYubmFtZSxcbiAgICAgIG9wZXJhdG9yOiBmLm9wZXJhdG9yLFxuICAgICAgdmFsdWU6IGYudmFsdWUsXG4gICAgfSkpO1xuICAgIHRoaXMuZmlsdGVyUXVlcmllcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGZpbHRlcnM6IHZpZXdGaWx0ZXJzIGFzIEFYUEZpbHRlclF1ZXJ5W10gfSkpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbHlWaWV3RmlsdGVycygpO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0KFxuICAgICAgLi4udGhpcy5zb3J0ZWRGaWVsZHMoKVxuICAgICAgICAuZmlsdGVyKChzZikgPT4gc2YuZGlyKVxuICAgICAgICAubWFwKChzKSA9PiAoeyBkaXI6IHMuZGlyLCBmaWVsZDogcy5uYW1lIH0pIGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pLFxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKFxuICAgICAgdGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHtcbiAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJRdWVyaWVzKCkgYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10sXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBDb2x1bW5zICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgcHJpdmF0ZSBhbGxBdmFpbGFibGVDb2x1bW5zID0gKCk6IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10gPT4ge1xuICAgIGNvbnN0IHsgY29sdW1ucyA9IFtdLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCB2aXNpYmxlUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKCh7IHNjaGVtYSB9KSA9PiAhc2NoZW1hPy5oaWRkZW4pO1xuICAgIGNvbnN0IHZpc2libGVQcm9wTmFtZXMgPSBuZXcgU2V0KHZpc2libGVQcm9wZXJ0aWVzLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKTtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IHZpc2libGVQcm9wTmFtZXMuaGFzKG5hbWUpKVxuICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdmlzaWJsZVByb3BlcnRpZXMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGNvbHVtbi5uYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChwcm9wZXJ0eSEsIGNvbHVtbik7XG4gICAgICB9KTtcbiAgfTtcblxuICB2aXNpYmxlQ29sdW1uQ291bnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLmZpbHRlcigoYykgPT4gYy52aXNpYmxlID09IHRydWUpLmxlbmd0aDtcbiAgfTtcblxuICBjb2x1bW5zID0gc2lnbmFsPEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10+KFtdKTtcblxuICByZXNldENvbHVtbnMoKSB7XG4gICAgdGhpcy5hcHBseVZpZXdDb2x1bW5zKCk7XG4gIH1cblxuICBhc3luYyBvbkNvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10pIHtcbiAgICB0aGlzLnNhdmVTZXR0aW5ncygnY29sdW1uT3JkZXJzJywgY29sdW1ucyk7XG4gIH1cblxuICBhcHBseVZpZXdDb2x1bW5zKCkge1xuICAgIGNvbnN0IGNvbHMgPSB0aGlzLnZpZXcoKS5jb2x1bW5zO1xuICAgIGNvbnN0IGNsb25lZCA9IHRoaXMuYWxsQXZhaWxhYmxlQ29sdW1ucygpLm1hcCgoYykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5lbnRpdHlEZWYuY29sdW1ucz8uZmluZCgoY2MpID0+IGNjLm5hbWUgPT0gYy5uYW1lKTtcbiAgICAgIGNvbnN0IHByb3AgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbmQoKHApID0+IHAubmFtZSA9PSBjLm5hbWUpO1xuICAgICAgY29uc3QgY29sID0gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHByb3AhLCBjb2x1bW4hKTtcbiAgICAgIGNvbC52aXNpYmxlID0gIWNvbHMuc29tZSgoYykgPT4gYyA9PSBjb2wubmFtZSkgJiYgY29sLnZpc2libGUgIT0gZmFsc2U7XG4gICAgICByZXR1cm4gY29sO1xuICAgIH0pO1xuICAgIHRoaXMuY29sdW1ucy5zZXQoY2xvbmVkKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFNvcnQgKioqKioqKioqKioqKioqKioqLy9cblxuICBzb3J0YWJsZUZpZWxkcyA9ICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKChjKSA9PiBjLm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQpO1xuICAgIHJldHVybiBwcm9wcy5tYXAoKGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGUubmFtZSxcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXG4gICAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICBzb3J0YWJsZUZpZWxkc0NvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5zb3J0Py5lbmFibGVkKS5sZW5ndGggPz8gMDtcbiAgfTtcblxuICBjYW5Tb3J0ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKSA+IDA7XG4gIH07XG5cbiAgY2FuQWRkTW9yZVNvcnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydGVkQ291bnQoKSA8IHRoaXMuc29ydGFibGVGaWVsZHNDb3VudCgpO1xuICB9O1xuXG4gIHNvcnRlZENvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZEZpZWxkcygpLmZpbHRlcigoaSkgPT4gaS5kaXIpLmxlbmd0aDtcbiAgfTtcblxuICBzb3J0ZWRGaWVsZHMgPSBzaWduYWw8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdTb3J0UHJvcFZpZXdNb2RlbFtdPihbXSk7XG5cbiAgcmVzZXRTb3J0cygpIHtcbiAgICB0aGlzLmFwcGx5Vmlld1NvcnRzKCk7XG4gIH1cblxuICBhcHBseVZpZXdTb3J0cygpIHtcbiAgICBjb25zdCB2aWV3U29ydHMgPSB0aGlzLnZpZXcoKS5zb3J0cztcblxuICAgIHRoaXMuc29ydGVkRmllbGRzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3Qgdmlld1NvcnRzTWFwID0gbmV3IE1hcCh2aWV3U29ydHMubWFwKCh2cykgPT4gW3ZzLm5hbWUsIHZzXSkpO1xuICAgICAgcmV0dXJuIHByZXYubWFwKChzZikgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkU29ydCA9IHZpZXdTb3J0c01hcC5nZXQoc2YubmFtZSk7XG4gICAgICAgIGlmICh1cGRhdGVkU29ydCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnVwZGF0ZWRTb3J0LCB0aXRsZTogc2YudGl0bGUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2Y7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGMubmFtZSA9PSBjb21tYW5kTmFtZSAmJlxuICAgICAgICAoKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCAmJiAhZGF0YSAvLyBhZGRlZCBieSBBcmFzaFxuICAgICAgICAgID8gYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWRcbiAgICAgICAgICA6IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwpIHx8XG4gICAgICAgICAgYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21tYW5kID0gY29tbWFuZE5hbWUuc3BsaXQoJyYnKVswXTtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucywgZGF0YSk7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgZW50aXR5SW5mbzoge1xuICAgICAgICBuYW1lOiB0aGlzLmVudGl0eURlZi5uYW1lLFxuICAgICAgICBtb2R1bGU6IHRoaXMuZW50aXR5RGVmLm1vZHVsZSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZW50aXR5RGVmLnRpdGxlLFxuICAgICAgICBwYXJlbnRLZXk6IHRoaXMuZW50aXR5RGVmLnBhcmVudEtleSxcbiAgICAgICAgc291cmNlOiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXG4gICAgICB9LFxuICAgICAgZGF0YTogYWN0aW9uPy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgPyB0aGlzLnNlbGVjdGVkSXRlbXMoKSA6IGRhdGEsXG4gICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgbWV0YWRhdGE6IGFjdGlvbj8ubWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlRXhwcmVzc2lvbnMgPSBhc3luYyAob3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZGF0YTogYW55KSA9PiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXQoZGF0YSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShvcHRpb25zLCBzY29wZSk7XG4gIH07XG5cbiAgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHN3aXRjaCAoY29tbWFuZD8ubmFtZSkge1xuICAgICAgY2FzZSAnbmF2aWdhdGUnOlxuICAgICAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ25hdmlnYXRlJywge1xuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBhdGg6IGNvbW1hbmQub3B0aW9ucz8uWydwYXRoJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZChjb21tYW5kLm5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3Rvcnkge1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+IHtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4+ID0gKFxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gIHNlcnZpY2U6IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5KSxcbik6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4gPT4ge1xuICBjb25zdCBtb2R1bGVOYW1lID0gcm91dGUucGFyZW50Py5wYXJhbU1hcC5nZXQoJ21vZHVsZScpIGFzIHN0cmluZztcbiAgY29uc3QgZW50aXR5TmFtZSA9IHJvdXRlLnBhcmFtTWFwLmdldCgnZW50aXR5JykgYXMgc3RyaW5nO1xuICAvL1xuICByZXR1cm4gc2VydmljZS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG59O1xuIl19","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.0.7\", ngImport: i0, type: AXPEntityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityPerformDeleteAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUVqRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FDdEQsa0JBQWtCLENBQ25CLENBQUM7QUFRRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsaUJBQWlCO0lBRG5FOztRQUVVLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDN0Qsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMvQyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztLQTZLM0Q7SUEzS0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUN2QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0sTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBTSxNQUFNLENBQUMsQ0FBQztRQUU5QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJDLE1BQU0sVUFBVSxHQUFHLE9BQU8sRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDO1FBRS9DLE1BQU0sUUFBUSxHQUE2QixFQUFFLENBQUM7UUFDOUMsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRSxRQUFRLENBQUMsSUFBSSxDQUFDO2dCQUNaLE1BQU0sRUFBRSxZQUFZO2dCQUNwQixHQUFHLEVBQUUsR0FBRzthQUNULENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNyRCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQWlDLEVBQUUsQ0FBQztRQUMzRCxJQUFJLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDckIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssRUFBRSxNQUFNLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFELE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEYsSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUYsQ0FBQztZQUNELGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQztRQUN0RCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSSxpQkFBc0IsQ0FBQztRQUMzQixJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFFMUIsNkNBQTZDO1FBQzdDLE1BQU0sWUFBWSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQzlCLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztnQkFDL0IsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDeEUsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixhQUFhLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxFQUFFLEtBQUssUUFBUSxFQUFFO2dCQUNyQixPQUFPLEVBQUU7b0JBQ1A7d0JBQ0UsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUM7d0JBQzVELEtBQUssRUFBRSxRQUFRO3dCQUNmLE9BQU8sRUFBRSxHQUFHLEVBQUU7NEJBQ1osSUFBSSxNQUFNLEVBQUUsQ0FBQztnQ0FDWCxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7NEJBQ2pCLENBQUM7d0JBQ0gsQ0FBQztxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQztZQUNILGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQyxDQUFDO1FBRUYsd0VBQXdFO1FBQ3hFLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN4QyxNQUFNLFlBQVksRUFBRSxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVULElBQUksV0FBVyxHQUFVLEVBQUUsQ0FBQztRQUM1QixLQUFLLE1BQU0sTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELElBQUksZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO2dCQUMxRSxNQUFNLGNBQWMsR0FBSSxNQUFNLENBQUMsR0FBYTtxQkFDekMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNiLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDN0IsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZCxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzFCLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7b0JBQ2QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDO3FCQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1QsQ0FBQyxFQUFFLElBQUksQ0FDTCxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNSLFlBQVksRUFBRSxDQUFDO29CQUNmLElBQUksYUFBYSxJQUFJLE1BQU0sRUFBRSxDQUFDO3dCQUM1QixNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsWUFBWSxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7d0JBQ3RELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztvQkFDM0QsQ0FBQztvQkFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDeEMsQ0FBQyxFQUNELENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUM3QyxDQUNGLENBQUM7Z0JBRUosV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGdDQUFnQztnQkFDaEMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsK0NBQStDLGdCQUFnQixDQUFDLEtBQUssNEVBQTRFLENBQ2xKLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQyx1Q0FBdUM7UUFDdkMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFaEMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDO1FBRUQscURBQXFEO1FBQ3JELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWpELHdDQUF3QztRQUN4QyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2xHLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRTdGLElBQUksa0JBQWtCLEdBQUcsQ0FBQyxJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRCxpQ0FBaUM7WUFDakMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUM1QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsK0JBQStCLENBQUMsRUFDN0UsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLDhCQUE4QixFQUFFO29CQUMzRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7aUJBQ3JDLENBQUMsRUFBRSx1QkFBdUI7Z0JBQzNCLFNBQVMsQ0FDVixDQUFDO1lBQ0osQ0FBQztZQUNELG1CQUFtQjtZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFNLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7YUFBTSxJQUFJLGtCQUFrQixHQUFHLENBQUMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEQsK0NBQStDO1lBQy9DLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FDNUIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHVDQUF1QyxDQUFDLEVBQ3JGLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyw4QkFBOEIsRUFBRTtvQkFDM0UsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUU7aUJBQzlELENBQUMsRUFDRixTQUFTLENBQ1YsQ0FBQztZQUNKLENBQUM7WUFDRCxtQkFBbUI7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkcsQ0FBQzthQUFNLElBQUksa0JBQWtCLEtBQUssQ0FBQyxJQUFJLGNBQWMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxRCwrQkFBK0I7WUFDL0IsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUM1QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsNEJBQTRCLENBQUMsRUFDMUUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFO29CQUN4RSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO2lCQUNqQyxDQUFDLEVBQ0YsUUFBUSxDQUNULENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix3REFBd0Q7WUFDeEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUM1QixNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsRUFDaEUsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLEVBQ2hFLFNBQVMsQ0FDVixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQWhMVSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7QUFvTFgsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWdCO0lBQ2xELFdBQVcsRUFBRSxnQkFBZ0I7SUFDN0IsS0FBSyxFQUFFO1FBQ0wsZ0JBQWdCLEVBQUU7WUFDaEIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLGtCQUFrQjtnQkFDekIsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsSUFBSSxFQUFFLFFBQVE7YUFDZjtZQUNELFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxVQUFVLEVBQUU7d0JBQ1Y7NEJBQ0UsSUFBSSxFQUFFLEtBQUs7NEJBQ1gsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxxQ0FBcUMsRUFBRSxDQUFDO3lCQUNwRjtxQkFDRjtvQkFDRCxVQUFVLEVBQUUsZ0JBQWdCO2lCQUM3QjthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixNQUFNLEVBQUUsdUJBQXVCO1NBQ2hDO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RpYWxvZyc7XG5pbXBvcnQgeyBBWExvYWRpbmdEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmctZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUmVmcmVzaEV2ZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQsIGNyZWF0ZVdvcmtGbG93RXZlbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZWxldGVkRXZlbnQgPSBjcmVhdGVXb3JrRmxvd0V2ZW50PHsgZW50aXR5OiBzdHJpbmc7IGlkczogc3RyaW5nW107IG1ldGE/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);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\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 });\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 });\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);\n this.context = signal(cloneDeep(this.entityData));\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 });\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.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBc0QsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0csT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVoRixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELFlBQ1UsTUFBaUIsRUFDakIsUUFBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUdyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7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QUUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEMsT0FBTyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0F0QlUscUNBQXFDO2tIQUFyQyxxQ0FBcUMsY0FEeEIsTUFBTTs7MkZBQ25CLHFDQUFxQztrQkFEakQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eVByb3BlcnR5LCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQTG9ja1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSwgQVhQUGFnZVN0YXR1cywgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVFbGVtZW50Vmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHByb3BlcnR5OiBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgKSB7fVxuXG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKTtcbiAgfSk7XG5cbiAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZSgoYykgPT4gYy5ydWxlID09ICdyZXF1aXJlZCcpIHx8IGZhbHNlO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVByb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8uZmluZCgoYykgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHVwZGF0ZVByb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/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.0.7\", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityModifyConfirmedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityModifyConfirmedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 { AXPEntityCommandScope, getEntityInfo, } from '@acorex/platform/common';\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, 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);\n this.isLoading = signal(false);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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 });\n this.editable = computed(() => {\n return this.editableProps().length > 0;\n });\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);\n this.path = signal(this.propertyView.dataPath ?? this.property.name);\n this.title = signal(this.property.title);\n this.showLabel = signal(this.propertyView.layout?.label?.visible != false);\n this.description = signal(this.property.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 });\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 });\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.context = signal(cloneDeep(this.entityData));\n this.actions = computed(() => {\n return (this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? []);\n });\n this.primaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n });\n this.secondaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n });\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 });\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 });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n });\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 });\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 });\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 == command);\n this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null,\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.0.7\", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBRUwscUJBQXFCLEVBSXJCLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9D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QUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRW50aXR5UHJvcGVydHlWaWV3LFxuICBBWFBFbnRpdHlTZWN0aW9uVmlldyxcbiAgQVhQR3JpZExheW91dE9wdGlvbnMsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEJyZWFkY3J1bWJJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHktZGV0YWlsLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICcuL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eU1vZGlmeUV2ZW50IH0gZnJvbSAnLi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3LFxuICApIHt9XG5cbiAgZ3JvdXAgPSB0aGlzLmVudGl0eS5ncm91cHM/LmZpbmQoKGMpID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XG4gIGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC50aXRsZSA/PyB0aGlzLmdyb3VwLmlkO1xuICB9KTtcblxuICBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcbiAgfSk7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIHByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgcHJvcGVydGllcywgaW50ZXJmYWNlcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgY29uc3QgZ3JvdXBQcm9wZXJ0aWVzID0gcHJvcGVydGllc1xuICAgICAgLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbilcbiAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKTtcblxuICAgIGNvbnN0IHZpZXdQcm9wZXJ0aWVzID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoKHsgbmFtZSB9KSA9PiBncm91cFByb3BlcnRpZXMuaW5jbHVkZXMobmFtZSkpID8/IFtdO1xuXG4gICAgcmV0dXJuIHZpZXdQcm9wZXJ0aWVzLm1hcCgocHJvcCkgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApKTtcbiAgfSk7XG5cbiAgZWRpdGFibGVQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IHByb3BlcnRpZXMsIGludGVyZmFjZXMgfSA9IHRoaXMuZW50aXR5O1xuICAgIGNvbnN0IGVkaXRhYmxlUHJvcGVydHlOYW1lcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXTtcblxuICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+XG4gICAgICAgIGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgZWRpdGFibGVQcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUpLFxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLm1hcCgocHJvcCkgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApKTtcbiAgfSk7XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGVQcm9wcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVZpZXc6IEFYUEVudGl0eVByb3BlcnR5VmlldyxcbiAgKSB7fVxuXG4gIHByaXZhdGUgcHJvcGVydHkgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Vmlldy5uYW1lKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgcGF0aCA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Vmlldy5kYXRhUGF0aCA/PyB0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcbiAgc2hvd0xhYmVsID0gc2lnbmFsKHRoaXMucHJvcGVydHlWaWV3LmxheW91dD8ubGFiZWw/LnZpc2libGUgIT0gZmFsc2UpO1xuICBkZXNjcmlwdGlvbiA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LmRlc2NyaXB0aW9uKTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdQcm9wID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/LmZpbmQoKGMpID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh2aWV3UHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgbW9kZTogJ3ZpZXcnLFxuICAgICAgcGF0aDogdGhpcy5wYXRoKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB2YWx1ZVRyYW5zZm9ybXM6IHdpZGdldC52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICBvcHRpb25zOiBtZXJnZShzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zKSxcbiAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRpdHlEZWYgPSBjbG9uZURlZXAodGhpcy5jb25maWcpITtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSkhO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRW50aXR5U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIGVudGl0eURhdGE6IGFueSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlICYmXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5pZHMuaW5jbHVkZXModGhpcy5jb250ZXh0KCkuaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XG4gICAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5TW9kaWZ5RXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UgJiZcbiAgICAgICAgICBldmVudC5wYXlsb2FkLnZhbHVlcy5pZCA9PT0gdGhpcy5jb250ZXh0KCkuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5wYXlsb2FkLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgcHJpdmF0ZSBhY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uYWN0aW9ucz8ubWFwKFxuICAgICAgICAodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpLFxuICAgICAgKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKChjKSA9PiBjLnByaW9yaXR5ID09ICdwcmltYXJ5Jyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoKGMpID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xuICB9KTtcblxuICBwdWJsaWMgc2VjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3Qgdmlld1Byb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiB2aWV3UHJvcHMuaW5jbHVkZXMobmFtZSksXG4gICAgKTtcblxuICAgIGNvbnN0IGdyb3VwcyA9XG4gICAgICBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uc2VjdGlvbnM/LmZpbHRlcigoeyBpZCB9KSA9PlxuICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMuc29tZSgoeyBncm91cElkIH0pID0+IGdyb3VwSWQgPT09IGlkKSxcbiAgICAgICkgPz8gW107XG5cbiAgICByZXR1cm4gZ3JvdXBzLm1hcCgoc2VjdGlvbikgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICB9KTtcblxuICBwdWJsaWMgbmF2aWdhdGVUb1VwKCkge1xuICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbmF2aWdhdGUnLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHBhdGg6IHRoaXMuZW50aXR5U2VydmljZS5jcmVhdGVQYXRoKHRoaXMuZW50aXR5RGVmLm1vZHVsZSwgdGhpcy5lbnRpdHlEZWYubmFtZSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3Qgc3VnZ2VzdGVkUHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IFsndGl0bGUnLCAnbmFtZScsICdjb2RlJ10uaW5jbHVkZXMoYy5uYW1lKSk7XG4gICAgbGV0IHN1Z2dlc3RlZEZvcm1hdCA9ICdJdGVtICN7e2lkfX0nO1xuICAgIGlmIChzdWdnZXN0ZWRQcm9wcykgc3VnZ2VzdGVkRm9ybWF0ID0gYHt7JHtzdWdnZXN0ZWRQcm9wcy5uYW1lfX19YDtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl92aWV3RGVmLnRpdGxlID8/IHN1Z2dlc3RlZEZvcm1hdCwgJ3N0cmluZycsIHRoaXMuY29udGV4dCgpKTtcbiAgfSk7XG4gIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvblxuICAgICAgPyB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYuZGVzY3JpcHRpb24sICdzdHJpbmcnLCB0aGlzLmNvbnRleHQoKSlcbiAgICAgIDogbnVsbDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQnJlYWRjcnVtYkl0ZW1bXT4oKCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi5mb3JtYXRzLnBsdXJhbCA/PyB0aGlzLmVudGl0eURlZi5mb3JtYXRzLmluZGl2aWR1YWwsXG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBhdGg6IGAvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9L20vJHt0aGlzLmVudGl0eURlZi5tb2R1bGV9L2UvJHt0aGlzLmVudGl0eURlZi5uYW1lfS9saXN0YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG5cbiAgcHVibGljIHJlbGF0ZWRFbnRpdGllcyA9IGNvbXB1dGVkPFByb21pc2U8QVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdPj4oYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlbGF0ZWRFbnRpdGllcyA9XG4gICAgICB0aGlzLmVudGl0eURlZi5yZWxhdGVkRW50aXRpZXM/Lm1hcChcbiAgICAgICAgKHJlKSA9PiBuZXcgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCByZSwgeyBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLCBkYXRhOiB0aGlzLmVudGl0eURhdGEgfSksXG4gICAgICApID8/IFtdO1xuXG4gICAgY29uc3QgZmlsdGVyZWRFbnRpdGllcyA9IGF3YWl0IFByb21pc2UuYWxsKHJlbGF0ZWRFbnRpdGllcy5tYXAoYXN5bmMgKHJlKSA9PiAoKGF3YWl0IHJlLmhpZGRlbigpKSA/IG51bGwgOiByZSkpKTtcblxuICAgIHJldHVybiBmaWx0ZXJlZEVudGl0aWVzLmZpbHRlcigocmUpID0+IHJlICE9PSBudWxsKSBhcyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsW107XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlQ29tbWFuZChjb21tYW5kTmFtZTogc3RyaW5nLCBkYXRhOiBhbnkgPSBudWxsKSB7XG4gICAgLy9UT0RPOiBzeW50YWN0IGZvciB3b3JrZmxvd1xuICAgIGNvbnN0IGNvbW1hbmQgPSBjb21tYW5kTmFtZS5zcGxpdCgnJicpWzBdO1xuICAgIHN3aXRjaCAoY29tbWFuZCkge1xuICAgICAgY2FzZSAnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJzoge1xuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ21vZGlmeS1lbnRpdHktc2VjdGlvbicsIHtcbiAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpZDogdGhpcy5jb250ZXh0KCkuaWQsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiAoZGF0YSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwpLmVkaXRhYmxlUHJvcHMoKS5tYXAoKG0pID0+IG0ubmFtZSgpKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9ucygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBjb21tYW5kKTtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsID8gdGhpcy5jb250ZXh0KCkgOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSB7XG4gICAgc3dpdGNoIChjb21tYW5kPy5uYW1lKSB7XG4gICAgICBjYXNlICduYXZpZ2F0ZSc6XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbmF2aWdhdGUnLCB7XG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogY29tbWFuZC5vcHRpb25zPy5bJ3BhdGgnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQubmFtZSwgY29tbWFuZC5vcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vXG4gIC8vXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+IHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBpZiAoY29uZmlnLnF1ZXJpZXMuYnlLZXkpIHtcbiAgICAgIGNvbnN0IGZ1bmMgPSBjb25maWcucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZ1bmMoaWQpO1xuICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnLCBkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnY2Fubm90IGZldGNoICcpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPj4gPSAoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgc2VydmljZTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5KSxcbik6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPiA9PiB7XG4gIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xuICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGlkID0gcm91dGUucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgLy9cbiAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUsIGlkKTtcbn07XG4iXX0=","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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVVoRixNQUFNLE9BQWdCLHVCQUF1QjtDQXNCNUM7QUFFRCxNQUFNLE9BQWdCLHFCQUFxQjtDQXNCMUM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQ1UsY0FBK0YsRUFDaEcsVUFBa0I7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWlGO1FBQ2hHLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDdkIsQ0FBQztJQUVMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBd0I7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxTQUFTLENBQUMsRUFBUSxFQUFFLFNBQTBDO1FBQzVE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QUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBQYWdlZExpc3RSZXN1bHQsIEFYUFF1ZXJ5UmVxdWVzdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHlDcmVhdGVEdG8sXG4gIEFYUEVudGl0eURldGFpbER0byxcbiAgQVhQRW50aXR5TGlzdEl0ZW1EdG8sXG4gIEFYUEVudGl0eU1vZGVsLFxuICBBWFBFbnRpdHlVcGRhdGVEdG8sXG59IGZyb20gJy4vZW50aXR5LnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IFREZXRhaWxEdG8sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiB7XG4gIGFic3RyYWN0IGdldCBkYk5hbWUoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGluaXRpYWwoZW50aXR5TmFtZTogc3RyaW5nLCBjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10pOiBQcm9taXNlPFRDcmVhdGVEdG9bXT47XG5cbiAgYWJzdHJhY3QgZ2V0T25lKGVudGl0eU5hbWU6IHN0cmluZywgaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IHVwZGF0ZU9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5LCBrZXlWYWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IGRlbGV0ZU9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCBpbnNlcnRPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBlbnRpdHk6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+O1xuXG4gIGFic3RyYWN0IGdldEFsbChlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFRMaXN0SXRlbUR0b1tdPjtcblxuICBhYnN0cmFjdCBxdWVyeShlbnRpdHlOYW1lOiBzdHJpbmcsIHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQRW50aXR5RGF0YVByb3ZpZGVyPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IFREZXRhaWxEdG8sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiB7XG4gIGFic3RyYWN0IGdldCBlbnRpdHlOYW1lKCk6IHN0cmluZztcblxuICBhYnN0cmFjdCBpbml0aWFsKGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBnZXRBbGwoKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT47XG5cbiAgYWJzdHJhY3QgdXBkYXRlT25lKGlkOiBUS2V5LCBrZXlWYWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IGRlbGV0ZU9uZShpZDogVEtleSk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgaW5zZXJ0T25lKGVudGl0eTogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT47XG5cbiAgYWJzdHJhY3QgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj47XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEYXRhUHJvdmlkZXJJbXBsPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IFREZXRhaWxEdG8sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiBpbXBsZW1lbnRzIEFYUEVudGl0eURhdGFQcm92aWRlcjxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQVhQRW50aXR5U3RvcmFnZVNlcnZpY2U8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPixcbiAgICBwdWJsaWMgZW50aXR5TmFtZTogc3RyaW5nLFxuICApIHsgfVxuXG4gIGFzeW5jIGluaXRpYWwoY29sbGVjdGlvbjogVENyZWF0ZUR0b1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5pbml0aWFsKHRoaXMuZW50aXR5TmFtZSwgY29sbGVjdGlvbik7XG4gIH1cblxuICBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRPbmUodGhpcy5lbnRpdHlOYW1lLCBpZCk7XG4gIH1cblxuICBnZXRBbGwoKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEFsbCh0aGlzLmVudGl0eU5hbWUpO1xuICB9XG5cbiAgcXVlcnkocmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnF1ZXJ5KHRoaXMuZW50aXR5TmFtZSwgcmVxdWVzdCk7XG4gIH1cblxuICB1cGRhdGVPbmUoaWQ6IFRLZXksIGtleVZhbHVlczogT21pdDxQYXJ0aWFsPFRVcGRhdGVEdG8+LCAnaWQnPik6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZU9uZSh0aGlzLmVudGl0eU5hbWUsIGlkLCBrZXlWYWx1ZXMpO1xuICB9XG5cbiAgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZGVsZXRlT25lKHRoaXMuZW50aXR5TmFtZSwgaWQpO1xuICB9XG5cbiAgaW5zZXJ0T25lKGVudGl0eTogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmluc2VydE9uZSh0aGlzLmVudGl0eU5hbWUsIGVudGl0eSk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTUVudGl0eUNydWRTZXJ2aWNlPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IFREZXRhaWxEdG8sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiB7XG4gIGFic3RyYWN0IGluc2VydE9uZShyZXF1ZXN0OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PjtcblxuICBhYnN0cmFjdCBnZXRPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IGRlbGV0ZU9uZShpZDogVEtleSk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgdXBkYXRlT25lKGlkOiBUS2V5LCB2YWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+O1xuXG4gIGFic3RyYWN0IHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IE9taXQ8VERldGFpbER0bywgJ2lkJz4sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiB7XG4gIHByaXZhdGUgX3N0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgX2VudGl0eURhdGFQcm92aWRlciA9IG5ldyBBWFBFbnRpdHlEYXRhUHJvdmlkZXJJbXBsPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4oXG4gICAgdGhpcy5fc3RvcmFnZVNlcnZpY2UsXG4gICAgdGhpcy5lbnRpdHlOYW1lLFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5TmFtZTogc3RyaW5nKSB7IH1cblxuICBhc3luYyBpbnNlcnRPbmUocmVxdWVzdDogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuaW5zZXJ0T25lKHJlcXVlc3QpO1xuICB9XG5cbiAgYXN5bmMgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5nZXRPbmUoaWQpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlT25lKGlkOiBUS2V5KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5kZWxldGVPbmUoaWQpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlT25lKGlkOiBUS2V5LCB2YWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnVwZGF0ZU9uZShpZCwgdmFsdWVzKTtcbiAgfVxuXG4gIGFzeW5jIHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCA9IHsgc2tpcDogMCwgdGFrZTogMTAwIH0pOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+PiB7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmVudGl0eU5hbWUuc3BsaXQoJy4nKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGlmIChlbnRpdHlSZWYucGFyZW50S2V5KSB7XG4gICAgICBpZiAoIXJlcXVlc3QuZmlsdGVyPy5maWx0ZXJzPy5sZW5ndGggJiYgcmVxdWVzdC5maWx0ZXI/LmZpZWxkICE9PSBlbnRpdHlSZWYucGFyZW50S2V5KSB7XG4gICAgICAgIHJlcXVlc3QuZmlsdGVyID0ge1xuICAgICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICAgIGZpZWxkOiBlbnRpdHlSZWYucGFyZW50S2V5LFxuICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShyZXF1ZXN0KTtcbiAgfVxuXG4gIGFzeW5jIGdldFJvb3RzKHJlcXVlc3Q6IHt9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHRydWUsXG4gICAgICAgIGZpZWxkOiAncGFyZW50SWQnLFxuICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgIHR5cGU6ICdpc0VtcHR5JyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShxdWVyeVJlcXVlc3QpO1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIGdldENoaWxkcmVuKHJlcXVlc3Q6IHsgcGFyZW50SWQ6IFRLZXksIHBhcmVudEtleT86IHN0cmluZyB9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IHBhcmVudEtleSA9IHJlcXVlc3QucGFyZW50S2V5ID8/ICdwYXJlbnRJZCc7XG4gICAgY29uc3QgcXVlcnlSZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QgPSB7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMCxcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICB2YWx1ZTogcmVxdWVzdC5wYXJlbnRJZCxcbiAgICAgICAgZmllbGQ6IHBhcmVudEtleSxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHF1ZXJ5UmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgYXN5bmMgZ2V0QnlDYXRlZ29yeShyZXF1ZXN0OiB7IGNhdGVnb3J5SWQ6IFRLZXksIGNhdGVnb3J5S2V5Pzogc3RyaW5nIH0pOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+PiB7XG4gICAgY29uc3QgcXVlcnlSZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QgPSB7XG4gICAgICBza2lwOiAwLFxuICAgICAgdGFrZTogMTAwMCxcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICB2YWx1ZTogcmVxdWVzdC5jYXRlZ29yeUlkLFxuICAgICAgICBmaWVsZDogcmVxdWVzdC5jYXRlZ29yeUtleSA/PyAnY2F0ZWdvcnlJZHMnLFxuICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIucXVlcnkocXVlcnlSZXF1ZXN0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZ2V0IHN0b3JhZ2VTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLl9zdG9yYWdlU2VydmljZTtcbiAgfVxufVxuIl19","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']);\n this.multiple = computed(() => this.options()['multiple']);\n this.valueField = computed(() => this.options()['valueField'] ?? 'id');\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n this.badgeClass = computed(() => this.options()['badgeClass'] ?? 'ax-accent1');\n this.displayField = computed(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n });\n this.loading = signal(false);\n this.entityDef = signal(null);\n this.displayItems = signal([]);\n this.efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n });\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 });\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.0.7\", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQTBCN0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUE0QjtJQXhCOUU7O1FBeUJxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3BELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBVyxDQUFDLENBQUM7UUFDcEUsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FB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eC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBIb3N0QmluZGluZywgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IGNhc3RBcnJheSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbG9va3VwLXdpZGdldC12aWV3JyxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYobG9hZGluZygpKVxuICAgIHtcbiAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICB9XG4gICAgQGVsc2V7XG4gICAgICAgIEBpZihkaXNwbGF5SXRlbXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBkaXNwbGF5SXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YXgtYmFkZ2UgY2xhc3M9XCJheC1wLTAuNSB7e2JhZGdlQ2xhc3MoKX19XCIgIFt0ZXh0XT1cIml0ZW0udGV4dFwiID48L2F4LWJhZGdlPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZihkaXNwbGF5SXRlbXMoKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgIDxheC1iYWRnZSBjbGFzcz1cImF4LXAtMC41IHt7YmFkZ2VDbGFzcygpfX1cIiAgW3RleHRdPVwiZGlzcGxheUl0ZW1zKClbMF0udGV4dFwiID48L2F4LWJhZGdlPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtbXV0ZWRcIj4tLS08L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhMb2FkaW5nTW9kdWxlLCBBWEJhZGdlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7XG5cblxuICBwcm90ZWN0ZWQgZW50aXR5ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZW50aXR5J10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3ZhbHVlRmllbGQnXSBhcyBzdHJpbmcpID8/ICdpZCcpO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG4gIHByb3RlY3RlZCBiYWRnZUNsYXNzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ2JhZGdlQ2xhc3MnXSBhcyBzdHJpbmcpID8/ICdheC1hY2NlbnQxJyk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnRleHRGaWVsZCgpID8/IHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMubG9va3VwID8/IHRoaXMuZW50aXR5RGVmKCk/LnByb3BlcnRpZXMuZmluZCgoYykgPT4gYy5uYW1lICE9ICdpZCcpPy5uYW1lID8/ICd0aXRsZSc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG5cbiAgcHJpdmF0ZSBlZkVudGl0eSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IHRoaXMuZW50aXR5KCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmVudGl0eURlZi5zZXQoYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlLCBlbnRpdHkpKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBlZkRpc3BsYXkgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmIChpc05pbCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLnNldChbXSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSBjYXN0QXJyYXkodmFsdWUpLm1hcChhc3luYyAoaXRlbTogYW55KSA9PiBhd2FpdCB0aGlzLmV4dHJhY3RJdGVtKGl0ZW0pKTtcbiAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLnNldChhd2FpdCBQcm9taXNlLmFsbChpdGVtcykpO1xuICAgIH1cbiAgfSlcblxuXG4gIHByaXZhdGUgYXN5bmMgZXh0cmFjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0sXG4gICAgICAgIHRleHQ6IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5kaXNwbGF5RmllbGQoKSwgJ3N0cmluZycsIGl0ZW0pLFxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGRlZiA9IHRoaXMuZW50aXR5RGVmKCk7XG4gICAgICBjb25zdCBieUtleSA9IGRlZj8ucXVlcmllcy5ieUtleT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGlmIChieUtleSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCBmZXRjaGVkSXRlbSA9IGF3YWl0IGJ5S2V5KGl0ZW0pO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogZmV0Y2hlZEl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLFxuICAgICAgICAgIHRleHQ6IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5kaXNwbGF5RmllbGQoKSwgJ3N0cmluZycsIGZldGNoZWRJdGVtKSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGl0ZW0sXG4gICAgICAgIHRleHQ6IGl0ZW1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2BheC1mbGV4YF0gPSB0cnVlO1xuICAgIGNsc1tgYXgtZ2FwLTFgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","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 \"@angular/common\";\nimport * as i2 from \"@acorex/cdk/common\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/data-table\";\nimport * as i6 from \"@acorex/components/search-box\";\nimport * as i7 from \"@acorex/platform/layout/builder\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.grid = viewChild('grid');\n this.initialSelectedItems = [];\n this.selectedItems = signal([]);\n this.allowSelect = computed(() => this.selectedItems().length > 0);\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.0.7\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i2.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { 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: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", 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: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i5.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i5.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { 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\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i7.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUQsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBRUwsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQW9GL0QsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWxGekU7O1FBdUZZLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sQ0FBQyxDQUFDO1FB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Q0FBQyxvQkFBb0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FsRVUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNk1BakZqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQsMkRBR0MsWUFBWSxtRkFDWixjQUFjLDJKQUNkLGNBQWMsNlhBQ2QsWUFBWSw4QkFDWixpQkFBaUIsc2NBQ2pCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHltQkFDakIsaUJBQWlCLDRZQUNqQixzQkFBc0IsbVNBQ3RCLG1CQUFtQjs7MkZBSVYsZ0NBQWdDO2tCQWxGNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00ICBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIEBpZiAodm0uaGFzSW5saW5lRmlsdGVycygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgdm0uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPjxheC1jbGVhci1idXR0b24+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 return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n this.canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n });\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n });\n this.inlineFiltersPlaceholders = computed(() => {\n return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);\n });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\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}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBd0QsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtDQUFrQyxFQUNsQyxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFDVSxRQUFrQixFQUNsQixTQUFvQixFQUNwQixVQU1KO1FBQ0EsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7S0FDWjtRQWJLLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQVdaO1FBakJHLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELDZCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFtQnpGLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtn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QyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxFQUFFLElBQVc7WUFDbEIsS0FBSyxFQUFFLEtBQUs7WUFDWixRQUFRLEVBQUUsSUFBVztZQUNyQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQW1CLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUENsZWFuTmVzdGVkRmlsdGVycyxcbiAgQVhQRW50aXR5LFxuICBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwgfSBmcm9tICcuLi8uLi9lbnRpdHkudmlld21vZGVsJztcblxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIHtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBlbnRpdHlEZWY6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIG9wdGlvbnM6IHtcbiAgICAgIHBhcmVudEZpbHRlcnM/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuICAgICAgY3VzdG9tRmlsdGVyPzogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHwgbnVsbDtcbiAgICAgIHNvcnRlZEZpZWxkcz86IHsgbmFtZTogc3RyaW5nOyBkaXI6ICdhc2MnIHwgJ2Rlc2MnIH1bXTtcbiAgICAgIGFsbG93TXVsdGlwbGU/OiBib29sZWFuO1xuICAgICAgY29sdW1ucz86IHN0cmluZ1tdO1xuICAgIH0gPSB7XG4gICAgICAgIHBhcmVudEZpbHRlcnM6IG51bGwsXG4gICAgICAgIGN1c3RvbUZpbHRlcjogbnVsbCxcbiAgICAgICAgc29ydGVkRmllbGRzOiBbXSxcbiAgICAgICAgY29sdW1uczogW10sXG4gICAgICB9LFxuICApIHsgfVxuXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgfSxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIGNhbkNyZWF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSAhPSBudWxsO1xuICB9KTtcblxuICBwdWJsaWMgcGFyZW50S2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXk7XG4gIH0pO1xuXG4gIHB1YmxpYyBhbGxvd011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZSA/PyBmYWxzZTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWY/LnByb3BlcnRpZXMuZmlsdGVyKChwKSA9PiBwLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKS5tYXAoKGMpID0+IGMudGl0bGUgPz8gYy5uYW1lKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY29sdW1ucyA9ICgpID0+IHtcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3QgY29sdW1ucyA9IGxpc3RDb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpO1xuICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PlxuICAgICAgKHRoaXMub3B0aW9ucy5jb2x1bW5zPy5sZW5ndGggPz8gMCkgPiAwXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmNvbHVtbnMhLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKVxuICAgICAgICA6IGNvbHVtbnMuc29tZSgoYykgPT4gYyA9PSBwLm5hbWUpLFxuICAgICk7XG4gICAgLy9cbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gcC5uYW1lKSEpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBhZHZhbmNlRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ2FuZCcsXG4gICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgIGZpbHRlcnM6IFtdLFxuICB9O1xuXG4gIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcsIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnMgPSBbXTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHByb3BzLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2gpIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgLy8gdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuc29ydGVkRmllbGRzKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIC8vIENoZWNrIGlmIGlubGluZUZpbHRlcnMgb3IgcGFyZW50RmlsdGVycyBoYXZlIGFueSBmaWx0ZXJzXG4gICAgY29uc3QgaGFzSW5saW5lRmlsdGVycyA9ICh0aGlzLmlubGluZUZpbHRlcnM/LmZpbHRlcnM/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gICAgY29uc3QgaGFzUGFyZW50RmlsdGVycyA9ICh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgZmlsdGVycyBhcnJheSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgZmlsdGVyc1xuICAgIGNvbnN0IGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XG4gICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlcik7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21GaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWRGaWx0ZXJzID0gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKFt0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyXSk7XG4gICAgICBpZiAoY2xlYW5lZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKGNsZWFuZWRGaWx0ZXJzWzBdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNJbmxpbmVGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5pbmxpbmVGaWx0ZXJzKTtcbiAgICB9XG4gICAgaWYgKGhhc1BhcmVudEZpbHRlcnMgJiYgdGhpcy5vcHRpb25zLnBhcmVudEZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycyk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIGZpbHRlcnMgdG8gdGhlIGRhdGFTb3VyY2VcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSk7XG5cbiAgICAvLyBSZWZyZXNoIHRoZSBkYXRhU291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xuICAgIHRoaXMuYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWUudHJpbSgpLCBmYWxzZSk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICByZXR1cm4gKGF3YWl0IGZ1bmMoeyBmaWx0ZXI6IHRoaXMuaW5saW5lRmlsdGVycywgdGFrZTogMTAgfSkpID8/IFtdO1xuICB9XG59XG4iXX0=","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/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/loading\";\nimport * as i6 from \"@acorex/components/form\";\nimport * as i7 from \"@acorex/components/tag-box\";\nimport * as i8 from \"@acorex/core/translation\";\nimport * as i9 from \"@acorex/components/select-box\";\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']);\n this.entity = computed(() => this.options()['entity']);\n this.disabled = computed(() => this.options()['disabled']);\n this.columns = computed(() => this.options()['columns'] ?? []);\n this.customFilter = computed(() => this.options()['filter']);\n this.multiple = computed(() => (this.options()['multiple'] ?? false));\n this.look = computed(() => this.options()['look'] ?? 'lookup');\n this.textField = computed(() => {\n return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');\n });\n this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');\n this.entityDef = signal(null);\n this.searchTerm = signal(null);\n this.selectedItems = signal([]);\n this.textbox = viewChild(AXTagBoxComponent);\n this.isLoading = signal(false);\n this.isOpen = signal(false);\n this.vm = signal(null);\n this.placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n });\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 });\n this.#efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n });\n }\n #efEntity;\n #efValue;\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 < 3 ? 'sm' : columnsCount > 3 ? 'lg' : 'md',\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 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.0.7\", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.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: 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.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", 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: \"component\", type: i5.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i6.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i7.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: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i9.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"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\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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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WEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtcbiAgQVhDbGlja0V2ZW50LFxuICBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sXG4gIEFYRm9jdXNFdmVudCxcbiAgQVhIdG1sRXZlbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVGFnQm94Q29tcG9uZW50LCBBWFRhZ0JveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWctYm94JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBRdWVyeUZpbHRlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIGdldCwgaXNFbXB0eSwgaXNOaWwsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlSZXNvbHZlciB9IGZyb20gJy4uLy4uL2VudGl0eS5jb25maWcnO1xuaW1wb3J0IHsgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2xvb2t1cC13aWRnZXQtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBleHRyYWN0VmFsdWUsIHNldFNtYXJ0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldExvb2tUeXBlIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LnR5cGVzJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94Q29tcG9uZW50LCBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb29rdXAtd2lkZ2V0LWVkaXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9vaygpID09ICdzZWxlY3QnKSB7XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBbZGF0YVNvdXJjZV09XCJ2bSgpPy5kYXRhU291cmNlIVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkSXRlbXMoKVwiXG4gICAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkKClcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInNlbGVjdEJveFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPGF4LXNlYXJjaC1ib3g+XG4gICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgPC9heC1zZWxlY3QtYm94PlxuICAgIH0gQGVsc2Uge1xuICAgIDxheC10YWctYm94XG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZEl0ZW1zKClcIlxuICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGQoKVwiXG4gICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkKClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICBbYWRkT25FbnRlcl09XCJmYWxzZVwiXG4gICAgICBbYWRkT25Db21tYV09XCJmYWxzZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAob25LZXlVcCk9XCJoYW5kbGVLZXlVcCgkZXZlbnQpXCJcbiAgICAgIChvbkJsdXIpPVwiaGFuZGxlT25CbHVyKCRldmVudClcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgICAgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCJcbiAgICAgICAgICBbbWVzc2FnZV09XCJ2YWxpZGF0aW9uLm9wdGlvbnM/Lm1lc3NhZ2VcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICAgID48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlQ2xlYXJDbGljaygpXCI+PC9heC1jbGVhci1idXR0b24+XG4gICAgICB9XG5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJibGFua1wiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcoKSB8fCBkaXNhYmxlZCgpXCIgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj4gPC9heC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LXRhZy1ib3g+XG4gIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgLy9cbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWFRhZ0JveE1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYU2VhcmNoQm94Q29tcG9uZW50XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZXhwb3NlID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkIHwgYW55W10+KCgpID0+IHRoaXMub3B0aW9ucygpWydleHBvc2UnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZW50aXR5J10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgY29sdW1ucyA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ2NvbHVtbnMnXSBhcyBzdHJpbmdbXSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgY3VzdG9tRmlsdGVyID0gY29tcHV0ZWQ8QVhEYXRhU291cmNlRmlsdGVyT3B0aW9uPihcbiAgICAoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZmlsdGVyJ10gYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICApO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSA/PyBmYWxzZSkgYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBsb29rID0gY29tcHV0ZWQ8QVhQTG9va3VwV2lkZ2V0TG9va1R5cGU+KCgpID0+IHRoaXMub3B0aW9ucygpWydsb29rJ10gYXMgQVhQTG9va3VwV2lkZ2V0TG9va1R5cGUgPz8gJ2xvb2t1cCcpO1xuXG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5sb29rdXAgPz8gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgIT0gJ2lkJyk/Lm5hbWUgPz8gJ3RpdGxlJ1xuICAgICk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLmVudGl0eURlZigpPy5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSA9PSAnaWQnKT8ubmFtZSA/PyAnaWQnKTtcblxuICBwcm90ZWN0ZWQgY29uZGl0aW9ucz86IEFYUFF1ZXJ5RmlsdGVyW107XG5cbiAgcHJvdGVjdGVkIGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHwgbnVsbDtcblxuICBwcml2YXRlIGVudGl0eURlZiA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHRleHRib3ggPSB2aWV3Q2hpbGQoQVhUYWdCb3hDb21wb25lbnQpO1xuXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCB2bSA9IHNpZ25hbDxBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoXG4gICAgICA/ICcnXG4gICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKCd3aWRnZXQubG9va3VwLnNlYXJjaCcpICsgdGhpcy52bSgpPy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKTtcbiAgfSk7XG5cbiAgI2VmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICAgIHRoaXMudm0uc2V0KFxuICAgICAgbmV3IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHRoaXMuZW50aXR5RGVmKCkhLCB7XG4gICAgICAgIHBhcmVudEZpbHRlcnM6IHRoaXMuZmlsdGVyLFxuICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9KTtcblxuICAjZWZWYWx1ZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy5maW5kQnlWYWx1ZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kQnlWYWx1ZSgpIHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3QgdmFsdWVzID0gY2FzdEFycmF5KHJhd1ZhbHVlKTtcbiAgICBjb25zdCBieUtleSA9IHRoaXMuZW50aXR5RGVmKCk/LnF1ZXJpZXMuYnlLZXk/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgaWYgKGJ5S2V5ICYmIHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBQcm9taXNlLmFsbCh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gYnlLZXkoZXh0cmFjdFZhbHVlKHZhbHVlLCB0aGlzLnZhbHVlRmllbGQoKSkpKSk7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBleHRyYWN0VmFsdWUodmFsdWVzWzBdLCB0aGlzLnZhbHVlRmllbGQoKSk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBieUtleShpZCk7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0SXRlbXMoW10pO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1NlbGVjdG9yKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICBjb25zdCBjb2x1bW5zQ291bnQgPSB0aGlzLmNvbHVtbnMoKS5sZW5ndGggPiAwID8gdGhpcy5jb2x1bW5zKCkubGVuZ3RoIDogdGhpcy52bSgpPy5jb2x1bW5zKCkubGVuZ3RoID8/IDA7XG5cbiAgICB0aGlzLnBvcHVwU2VydmljZVxuICAgICAgLm9wZW4oQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JDb21wb25lbnQsIHtcbiAgICAgICAgdGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKCd3aWRnZXQubG9va3VwLnNlYXJjaCcpfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKFxuICAgICAgICAgIHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMucGx1cmFsID8/ICcnLFxuICAgICAgICApfWAsXG5cbiAgICAgICAgc2l6ZTogY29sdW1uc0NvdW50IDwgMyA/ICdzbScgOiBjb2x1bW5zQ291bnQgPiAzID8gJ2xnJyA6ICdtZCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB2bTogbmV3IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHRoaXMuZW50aXR5RGVmKCkhLCB7XG4gICAgICAgICAgICBjdXN0b21GaWx0ZXI6IHRoaXMuY3VzdG9tRmlsdGVyKCksXG4gICAgICAgICAgICBwYXJlbnRGaWx0ZXJzOiB0aGlzLmZpbHRlcixcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IHRoaXMubXVsdGlwbGUoKSxcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucygpLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNlYXJjaFRlcm06IHRoaXMuc2VhcmNoVGVybSgpLFxuICAgICAgICAgIGluaXRpYWxTZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMudGV4dGJveCgpPy5mb2N1cygpO1xuICAgICAgICBpZiAoZS5kYXRhPy5pdGVtcykge1xuICAgICAgICAgIHRoaXMuc2V0SXRlbXMoZS5kYXRhPy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJveFZhbHVlQ2hhbmdlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCBpdGVtcyA9IChlLmNvbXBvbmVudCBhcyBBWFNlbGVjdEJveENvbXBvbmVudCkuc2VsZWN0ZWRJdGVtcztcbiAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIGlmIChpc05pbChlLnZhbHVlKSB8fCBpc0VtcHR5KGUudmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zaW5nbGVPck11bHRpcGxlKGUudmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25CbHVyKGU6IEFYRm9jdXNFdmVudCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlS2V5VXAoZTogQVhIdG1sRXZlbnQpIHtcbiAgICBjb25zdCBrZXlFdmVudCA9IGUubmF0aXZlRXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudGV4dGJveCgpPy5pbnB1dFZhbHVlKCkhO1xuICAgIHRoaXMuc2VhcmNoVGVybS5zZXQodmFsdWUpO1xuICAgIGlmICgoa2V5RXZlbnQuY29kZSA9PSAnRW50ZXInIHx8IGtleUV2ZW50LmNvZGUgPT0gJ051bXBhZEVudGVyJykgJiYgdmFsdWUpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudm0oKT8uZmluZCh2YWx1ZSk7XG4gICAgICBpZiAocmVzdWx0Py50b3RhbCA9PSAxKSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMocmVzdWx0Lml0ZW1zWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgICBpZiAoa2V5RXZlbnQuY29kZSA9PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvL1xuICAgIGl0ZW1zID0gY2FzdEFycmF5KGl0ZW1zKTtcbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KGl0ZW1zKTtcbiAgICAvL1xuICAgIGNvbnN0IGtleXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCB0aGlzLnZhbHVlRmllbGQoKSkpO1xuICAgIC8vXG4gICAgLy8gZXh0cmFjdCBkYXRhIGZyb20gdmFsdWVGaWVsZCBhbmQgc2V0IGNvbnRleHQgYnkgZXhwb3NlIHBhdGhcbiAgICBpZiAodGhpcy5leHBvc2UoKSkge1xuICAgICAgY29uc3QgZXhwb3NlVmFsdWUgPSBjYXN0QXJyYXkodGhpcy5leHBvc2UoKSk7XG4gICAgICBjb25zdCBpdGVtVG9FeHBvc2U6IGFueSA9IHt9O1xuICAgICAgLy9cbiAgICAgIGV4cG9zZVZhbHVlLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBzZXQoe30sIGkgYXMgc3RyaW5nLCBnZXQoaXRlbSwgaSkpKTtcbiAgICAgICAgICBzZXRTbWFydChpdGVtVG9FeHBvc2UsIGksIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBleHRyYWN0IGRhdGEgZnJvbSBpdGVtIGJ5IHNvdXJjZSBwYXRoIGFuZCBzZXQgY29udGV4dCBieSB0YXJnZXQgcGF0aFxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubXVsdGlwbGUoKVxuICAgICAgICAgICAgPyBpdGVtcy5tYXAoKGl0ZW0pID0+IHNldCh7fSwgaS5zb3VyY2UsIGdldChpdGVtLCBpLnNvdXJjZSkpKVxuICAgICAgICAgICAgOiBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCBpLnNvdXJjZSkpO1xuICAgICAgICAgIHNldFNtYXJ0KGl0ZW1Ub0V4cG9zZSwgaS50YXJnZXQsIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnBhdGNoKGl0ZW1Ub0V4cG9zZSk7XG4gICAgICAvLyBmaXJlIHRyaWdnZXJzXG4gICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShrZXlzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNpbmdsZU9yTXVsdGlwbGUoa2V5cykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGVhckNsaWNrKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKSB7XG4gICAgdGhpcy50ZXh0Ym94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXM6IGFueVtdKTogYW55IHwgYW55W10ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlKCkgPyB2YWx1ZXMgOiB2YWx1ZXNbMF07XG4gIH1cbn1cbiJdfQ==","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)));\n }\n extractItem(item) {\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.0.7\", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9sb29rdXAtd2lkZ2V0L2xvb2t1cC13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWdCN0MsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUE2QjtJQWZqRjs7UUFnQlksZUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hELGNBQVMsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUN6RCxlQUFVLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUM7UUFFaEUsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hFLENBQUM7S0FhSDtJQVhTLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sT0FBTyxJQUFJLElBQUksUUFBUTtZQUM1QixDQUFDLENBQUM7Z0JBQ0EsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDMUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN6QztZQUNELENBQUMsQ0FBQztnQkFDQSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO2dCQUN2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJO2FBQ3ZCLENBQUM7SUFDTixDQUFDOzhHQXJCVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixxSkFkL0I7Ozs7Ozs7OztHQVNULDJEQUVTLGFBQWE7OzJGQUdaLDhCQUE4QjtrQkFmMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhc3RBcnJheSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTFcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cIml0ZW1bdGhpcy50ZXh0RmllbGRdXCIgW2NsYXNzXT1cImJhZGdlQ2xhc3NcIj48L2F4LWJhZGdlPlxuICAgICAgfVxuICAgICAgQGVtcHR5IHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW11dGVkXCI+LS0tPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFsncmF3VmFsdWUnLCAncm93RGF0YSddLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ3ZhbHVlRmllbGQnXSA/PyAnaWQnO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ3RleHRGaWVsZCddID8/ICd0aXRsZSc7XG4gIHByb3RlY3RlZCBiYWRnZUNsYXNzOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ2JhZGdlQ2xhc3MnXSA/PyAnYXgtYWNjZW50MSc7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlJdGVtcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgaXNOaWwodGhpcy5yYXdWYWx1ZSlcbiAgICAgID8gW11cbiAgICAgIDogY2FzdEFycmF5KHRoaXMucmF3VmFsdWUpLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLmV4dHJhY3RJdGVtKGl0ZW0pKSxcbiAgKTtcblxuICBwcml2YXRlIGV4dHJhY3RJdGVtKGl0ZW06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09ICdvYmplY3QnXG4gICAgICA/IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtPy5bdGhpcy50ZXh0RmllbGRdLFxuICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiBpdGVtLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtLFxuICAgICAgfTtcbiAgfVxufVxuIl19","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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCO0lBaEJwRjs7UUFpQlksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFDLENBQUM7UUFFcEYsK0JBQStCO1FBQ3JCLGlCQUFZLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQVksQ0FBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBWSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0F0Qlksa0NBQWtDO2tHQUFsQyxrQ0FBa0MsK0ZBZm5DOzs7Ozs7Ozs7O0dBVVQsMkRBRVMsYUFBYTs7MkZBR1osa0NBQWtDO2tCQWhCOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTEgYXgtZmxleC13cmFwXCI+XG4gICAgICBAaWYgKHVzZVNlbGVjdEJveCgpICYmIGdldERhdGEoKS5sZW5ndGggPiAwKSB7IEBmb3IgKGl0ZW0gb2YgZ2V0RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC1iYWRnZSBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJpdGVtW3RleHRGaWVsZCgpXVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgICB9IH0gQGVsc2UgeyBAaWYobXVsdGlwbGUoKSkgeyBAZm9yIChpdGVtIG9mIGludGVybmFsVmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1pbmxpbmUtYmxvY2tcIj57eyBpdGVtIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LWlubGluZS1ibG9ja1wiPnt7IGludGVybmFsVmFsdWUoKVswXSB9fTwvc3Bhbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKEFycmF5LmlzQXJyYXkodGhpcy5nZXRWYWx1ZSgpKSA/IHRoaXMuZ2V0VmFsdWUoKSA6IFt0aGlzLmdldFZhbHVlKCldKSk7XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG5cbiAgLy8g2YjbjNqY2q/bjOKAjNmH2KfbjCDZhdix2KrYqNi3INio2KcgU2VsZWN0Qm94XG4gIHByb3RlY3RlZCB1c2VTZWxlY3RCb3ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndXNlU2VsZWN0Qm94J10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcblxuICAvLyDYp9iz2KrYrtix2KfYrCDYr9in2K/Zh+KAjNmH2Kcg2KjYsdin24wg2YbZhdin24zYtFxuICBwcm90ZWN0ZWQgZ2V0RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlU2VsZWN0Qm94KCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9KTtcbn1cbiJdfQ==","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']);\n this.disabled = computed(() => this.options()['disabled']);\n this.placeholder = computed(() => this.options()['placeholder']);\n // پارامترهای SelectBox\n this.moduleName = computed(() => this.options()['module']);\n this.entityName = computed(() => this.options()['entity']);\n this.allowSearch = computed(() => this.options()['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.0.7\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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\", \"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.0.7\", 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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d0JBQ2pCLGlCQUFpQjtxQkFDcEI7b0JBQ0MsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7OEJBcUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94Jztcbi8vIGltcG9ydCB7IEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+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.0.7\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", 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.0.7\", 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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjdFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx1QkFBNEI7SUFwQm5GOztRQXFCWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywrRkFuQmxDOzs7Ozs7Ozs7Ozs7OztHQWNUOzsyRkFLVSxpQ0FBaUM7a0JBcEI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgQGlmICh1c2VTZWxlY3RCb3goKSAmJiBnZXREYXRhKCkubGVuZ3RoID4gMCkgeyBAZm9yIChpdGVtIG9mIGdldERhdGEoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgaXRlbVt0ZXh0RmllbGQoKV1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHsgQGlmKG11bHRpcGxlKCkpIHsgQGZvciAoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2Uge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7XG4gICAgICAgIGludGVybmFsVmFsdWUoKVswXVxuICAgICAgfX08L3NwYW4+XG4gICAgICB9IH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0UHJpbnRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoQXJyYXkuaXNBcnJheSh0aGlzLmdldFZhbHVlKCkpID8gdGhpcy5nZXRWYWx1ZSgpIDogW3RoaXMuZ2V0VmFsdWUoKV0pKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcblxuICAvLyDZiNuM2pjar9uM4oCM2YfYp9uMINmF2LHYqtio2Lcg2KjYpyBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIHVzZVNlbGVjdEJveCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWyd1c2VTZWxlY3RCb3gnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIC8vINin2LPYqtiu2LHYp9isINiv2KfYr9mH4oCM2YfYpyDYqNix2KfbjCDZhtmF2KfbjNi0XG4gIHByb3RlY3RlZCBnZXREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy51c2VTZWxlY3RCb3goKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH0pO1xufVxuIl19","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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFhN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUE0QjtJQVhsRjs7UUFZWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx5R0FUakM7Ozs7R0FJVCwyREFFUyxhQUFhOzsyRkFHWixnQ0FBZ0M7a0JBWDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC10YWdhYmxlLWJveC13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGl0ZW0gb2YgaW50ZXJuYWxWYWx1ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtYmFkZ2UgW2xvb2tdPVwiJ3R3b3RvbmUnXCIgW3RleHRdPVwiaXRlbVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgfVxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChBcnJheS5pc0FycmF5KHRoaXMuZ2V0VmFsdWUoKSkgPyB0aGlzLmdldFZhbHVlKCkgOiBbdGhpcy5nZXRWYWx1ZSgpXSkpO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmI24zamNqv24zigIzZh9in24wg2YXYsdiq2KjYtyDYqNinIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgdXNlU2VsZWN0Qm94ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3VzZVNlbGVjdEJveCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG5cbiAgLy8g2KfYs9iq2K7Ysdin2Kwg2K/Yp9iv2YfigIzZh9inINio2LHYp9uMINmG2YXYp9uM2LRcbiAgcHJvdGVjdGVkIGdldERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnVzZVNlbGVjdEJveCgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfSk7XG59XG4iXX0=","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);\n this.isOpen = signal(false);\n this.textField = signal('');\n this.displayText = computed(() => this.getValue()?.title || '');\n this.selectedWidgetNode = signal(null);\n this.selectedItem = signal(null);\n this.placeholder = computed(() => this.options()['placeholder'] ?? '');\n this.loading = computed(() => this.options()['loading'] ?? false);\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.0.7\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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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Q25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDJEQUdDLFdBQVcsOFZBQ1gsaUJBQWlCLDhCQUNqQixlQUFlLHFiQUNmLGNBQWMsNlhBQ2QsaUJBQWlCLHNWQUNqQixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsWUFBWSw4S0FDWixnQ0FBZ0M7OzJGQUd2QixvQ0FBb0M7a0JBbENoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixnQ0FBZ0M7cUJBQ25DO2lCQUNBOzhCQU1DLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCwgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldE5vZGUsXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0VHlwZXNNYXAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCwgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9kZXNpZ25lcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dCgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbcmVhZG9ubHldPVwidHJ1ZVwiPlxuICAgICAgQGZvciAodmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uUnVsZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgIFttZXNzYWdlXT1cInZhbGlkYXRpb24ub3B0aW9ucz8ubWVzc2FnZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwidHdvdG9uZVwiIChvbkNsaWNrKT1cInNob3dTZWxlY3RvcigpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgQGlmKHNlbGVjdGVkV2lkZ2V0Tm9kZSgpKXtcbiAgICA8YXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXIgW3dpZGdldF09XCJzZWxlY3RlZFdpZGdldE5vZGUoKSFcIiAob25DaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVdpZGdldCgkZXZlbnQpXCI+XG4gICAgPC9heHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlcj5cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50XG5dXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0ZXJ5U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoQVhUZXh0Qm94Q29tcG9uZW50KVxuICB0ZXh0Ym94OiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2V0VmFsdWUoKT8udGl0bGUgfHwgJycpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRXaWRnZXROb2RlID0gc2lnbmFsPEFYUFdpZGdldE5vZGUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbSA9IHNpZ25hbDxhbnkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsncGxhY2Vob2xkZXInXSA/PyAnJyk7XG4gIHByb3RlY3RlZCBsb2FkaW5nID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2xvYWRpbmcnXSA/PyBmYWxzZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXROb2RlLnNldCh0aGlzLmdldFZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNob3dTZWxlY3RvcigpIHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJykudGhlbigoYykgPT4gYy5BWFBEZXNpZ25lcldpZGdldFBpY2tlckNvbXBvbmVudCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiAnV2lkZ2V0IEdhbGxlcnknLFxuICAgICAgc2l6ZTogJ21kJyxcbiAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICB3aWRnZXRzOiBzb3J0QnkoXG4gICAgICAgICAgdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLmFsbCgpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICgocmVzdWx0LmRhdGE/LndpZGdldHMgPz8gW10pLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXN1bHQuZGF0YT8ud2lkZ2V0cyBhcyBBWFBXaWRnZXRDb25maWdbXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShzZWxlY3RlZFswXSk7XG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Tm9kZS5zZXQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShjb25maWc6IEFYUFdpZGdldENvbmZpZyk6IEFYUFdpZGdldE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBjb25maWcubmFtZSBhcyAoa2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXApLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2hhbmdlV2lkZ2V0KGU6IEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShlLnZhbHVlcy50eXBlKTtcbiAgICB0aGlzLnNldFZhbHVlKHsgdGl0bGU6IHdpZGdldD8udGl0bGUsIC4uLmUudmFsdWVzIH0pO1xuICB9XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", 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.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreatePopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityCreateSubmittedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateSubmittedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 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.0.7\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPQuickEntityModifyPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxpQkFBaUI7SUFEdEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7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QUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBbUIsQ0FBQztZQUM3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDOzhHQWhCVSwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLXVwZGF0ZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2VudGl0eS5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHsgcGFyZW50S2V5IH0gPSBlbnRpdHlSZWY7XG5cbiAgICBjb25zdCB7IGlkIH0gPSBkYXRhO1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgdGl0bGUgfSA9IGVudGl0eVJlZjtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/Lm1hcCgocCkgPT4gcC5uYW1lKSB8fCBbXTtcblxuICAgIGNvbnN0IHZtID0gYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCwgcHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGhlYWRlclRpdGxlID0gZGVjb3JhdGlvbj8uaGVhZGVyPy50aXRsZTtcblxuICAgIGNvbnN0IGxheW91dCA9IG9wdGlvbnM/LlsnbGF5b3V0J107XG4gICAgY29uc3Qgc2l6ZSA9IGxheW91dD8uc2l6ZTtcblxuICAgIGlmIChwYXJlbnRLZXkpIHtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ3BhcmVudEtleScsIHBhcmVudEtleSk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tID0gYXdhaXQgdGhpcy5jb25maWcudmlld2Vycy5tYXN0ZXIubW9kaWZ5KCk7XG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6IGhlYWRlclRpdGxlXG4gICAgICAgID8gaGVhZGVyVGl0bGVcbiAgICAgICAgOiAodGl0bGUgPz9cbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYygnZW50aXR5Lm1vZGlmeScpfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKFxuICAgICAgICAgICAgZW50aXR5UmVmLmZvcm1hdHMuaW5kaXZpZHVhbCxcbiAgICAgICAgICApfWApLFxuICAgICAgc2l6ZTogdGhpcy5wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5wbGF0Zm9ybS5pcygnU00nKSA/ICdmdWxsJyA6IHNpemUgPyBzaXplIDogJ21kJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdm0sXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIGVudGl0eTogZW50aXR5UmVmLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgIGlmIChwb3B1cC5kYXRhPy5yZXN1bHQgPT0gdHJ1ZSkge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnZGF0YScsIGNsb25lRGVlcChwb3B1cC5kYXRhLmNvbnRleHQpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUFF1aWNrTW9kaWZ5RW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLXRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC1ib2R5JyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIG1vZGlmeUNvbmZpcm1lZDoge1xuICAgICAgaWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUFwcGx5VXBkYXRlc0FjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgICBjb25zdCBleGVjID0gZW50aXR5UmVmLmNvbW1hbmRzPy51cGRhdGU/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleGVjKGRhdGEpO1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnZGF0YScsIHJlc3VsdCk7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgnZXJyb3InLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowDetailViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\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.0.7\", ngImport: i0, type: AXPShowFileUploaderPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowFileUploaderPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZmlsZS11cGxvYWRlci1wb3B1cC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQURyRTs7UUFFVSw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQXdDNUU7SUF0Q0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUV2QyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBUyxhQUFhLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFVLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFFdEUseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQztZQUM1RCxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVHLCtDQUErQztRQUMvQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBRTFFLE1BQU0sVUFBVSxHQUFHLE1BQU0sVUFBVSxDQUFDO2dCQUNsQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBUyxZQUFZLENBQUM7Z0JBQzdDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRzthQUNYLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDOzhHQXpDVSw4QkFBOEI7a0hBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7QUE2Q1gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQWdCO0lBQzNELFdBQVcsRUFBRSxZQUFZO0lBQ3pCLEtBQUssRUFBRTtRQUNMLFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsZ0NBQWdDO2dCQUN2QyxPQUFPLEVBQUUsK0JBQStCO2FBQ3pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxpQkFBaUI7aUJBQzlCO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLEVBQUUsRUFBRSxpQkFBaUI7WUFDckIsTUFBTSxFQUFFLGdDQUFnQztTQUN6QztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEZpbGVMaXN0SXRlbSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBGaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBmaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KEFYUEZpbGVVcGxvYWRlcldpZGdldFNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgLy8gKioqKioqKioqKiogZ2V0IG9wdGlvbnMgKioqKioqKioqKipcbiAgICBjb25zdCBrZXkgPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ29wdGlvbnMua2V5Jyk7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLnJlYWRPbmx5Jyk7XG4gICAgY29uc3QgbXVsdGlwbGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLm11bHRpcGxlJyk7XG4gICAgY29uc3QgYWNjZXB0ID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmFjY2VwdCcpO1xuICAgIGNvbnN0IG1heEZpbGVTaXplID0gY29udGV4dC5nZXRWYXJpYWJsZTxudW1iZXI+KCdvcHRpb25zLm1heEZpbGVTaXplJyk7XG4gICAgY29uc3QgZmlsZXMgPSBjb250ZXh0LmdldFZhcmlhYmxlPEFYUEZpbGVMaXN0SXRlbVtdPignb3B0aW9ucy5maWxlcycpO1xuICAgIFxuICAgIC8vICoqKioqKioqKioqIHNob3cgZmlsZSBsaXN0ICoqKioqKioqKioqXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlLnNob3dGaWxlTGlzdCh7XG4gICAgICBmaWxlczogZmlsZXMsXG4gICAgICByZWFkT25seTogcmVhZE9ubHksXG4gICAgICBtdWx0aXBsZTogbXVsdGlwbGUsXG4gICAgICBhY2NlcHQ6IGFjY2VwdCxcbiAgICB9KTtcbiAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIHJlc3VsdCBpcyB1bmRlZmluZWQgb3IgZW1wdHkgYXJyYXlcbiAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICAgICAvLyAqKioqKioqKioqKiBzYXZlIGZpbGVzIHRvIGVudGl0eSAqKioqKioqKioqKlxuICAgICAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RyeVNlcnZpY2UucmVzb2x2ZShtb2R1bGUsIGVudGl0eSk7XG4gICAgXG4gICAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlRXhlYyA9IGVudGl0eURlZmluaXRpb24uY29tbWFuZHM/LnVwZGF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICBcbiAgICAgICAgICBjb25zdCBlbnRpdHlEYXRhID0gYXdhaXQgdXBkYXRlRXhlYyh7XG4gICAgICAgICAgICBpZDogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmlkJyksXG4gICAgICAgICAgICBba2V5XTogcmVzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKGVudGl0eURhdGEpKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctcG9wdXAnLFxuICBzdGVwczoge1xuICAgICdzaG93LXBvcHVwJzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLXRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC1ib2R5JyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIG1vZGlmeUNvbmZpcm1lZDoge1xuICAgICAgaWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","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.0.7\", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowListViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 { 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 * 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.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityModule, imports: [RouterModule, i2.AXPWorkflowModule, i3.AXPLayoutBuilderModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", 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],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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],\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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ImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBUb2FzdEFjdGlvbiwgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBBWFBBcHBTdGFydFVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUywgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvbG9va3VwLXdpZGdldCc7XG5pbXBvcnQgeyBBWFBUYWdhYmxlQm94V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3RhZ2FibGUtYm94JztcbmltcG9ydCB7IEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvcic7XG5pbXBvcnQge1xuICBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24sXG4gIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdywgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uLFxuICBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uLFxuICBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbixcbiAgQVhQRW50aXR5TW9kaWZ5U2VjdGlvblBvcHVwQWN0aW9uLFxuICBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3csXG59IGZyb20gJy4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uLCBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24sXG4gIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cFdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9zaG93LWZpbGUtdXBsb2FkZXItcG9wdXAud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLCBBWFBTaG93TGlzdFZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdyc7XG5cbmZ1bmN0aW9uIHJvdXRlc0ZhY29yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgbGV0IHJvdXRlczogUm91dGVzID0gW107XG4gIHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9tJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy52aWV3ZXJzLnJvb3QoKTtcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW0FYUEF1dGhHdWFyZF0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJzptb2R1bGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHkvbGlzdCcsXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMubWFzdGVyLmxpc3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHZtOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudmlld2Vycy5tYXN0ZXIuc2luZ2xlKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZCcsXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHknLFxuICAgICAgICAgICAgICByZWRpcmVjdFRvOiAnOmVudGl0eS9saXN0JyxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhQV29ya2Zsb3dNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbixcbiAgICAgICAgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbixcbiAgICAgICAgJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZSc6IEFYUEVudGl0eVBlcmZvcm1EZWxldGVBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbixcbiAgICAgICAgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uLFxuICAgICAgICBBWFBUb2FzdEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLFxuICAgICAgICAnZW50aXR5LWFwcGx5LXVwZGF0ZXMnOiBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24sXG4gICAgICAgIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ2NyZWF0ZS1lbnRpdHknOiBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ2RlbGV0ZS1lbnRpdHknOiBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IEFYUE1vZGlmeUVudGl0eVNlY3Rpb25Xb3JrZmxvdyxcbiAgICAgICAgJ3F1aWNrLW1vZGlmeS1lbnRpdHknOiBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxuICAgICAgICAnb3Blbi1lbnRpdHknOiBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyxcbiAgICAgICAgJ3Nob3ctbGlzdC12aWV3JzogQVhQU2hvd0xpc3RWaWV3V29ya2Zsb3csXG4gICAgICAgICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnOiBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdyxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbnM6IHt9LFxuICAgIH0pLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW0FYUExvb2t1cFdpZGdldCwgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXQsIEFYUFRhZ2FibGVCb3hXaWRnZXRdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9VVEVTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiByb3V0ZXNGYWNvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5Q29tbWFuZFNlYXJjaERlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2VydmljZSA9IGluamVjdG9yLmdldChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgICBhcHBJbml0U2VydmljZS5yZWdpc3RlclRhc2soe1xuICAgICAgbmFtZTogJ2xheW91dC10aGVtZScsXG4gICAgICBzdGF0dXNUZXh0OiAnUHJlbG9hZCBlbnRpdGllcyAuLi4nLFxuICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICAgIHJ1bjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBsb2FkIGluIGJhY2tncm91bmRcbiAgICAgICAgc2VydmljZS5wcmVsb2FkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","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}\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 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 entityDetailsCrudActions(parentId) {\n return [\n entityDetailsCreateActions(parentId),\n entityMasterBulkDeleteAction(),\n entityDetailsEditAction(),\n entityMasterDeleteAction(),\n ];\n}\n// #endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLHFCQUFxQixFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBRWpHLGlCQUFpQjtBQUVqQixNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVM7S0FDekMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQ3hDLE9BQU87UUFDSCxLQUFLLEVBQUUscUNBQXFDO1FBQzVDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDeEMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE9BQU87UUFDSCxLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ25DLE9BQU87UUFDSCx3QkFBd0IsRUFBRTtRQUMxQiw0QkFBNEIsRUFBRTtRQUM5QixzQkFBc0IsRUFBRTtRQUN4Qix3QkFBd0IsRUFBRTtLQUM3QixDQUFDO0FBQ04sQ0FBQztBQUVELGFBQWE7QUFHYixrQkFBa0I7QUFFbEIsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWdCO0lBQ3ZELE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRTtZQUNMLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFBRTtnQkFDTCxPQUFPLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLElBQUksRUFBRTt3QkFDRixDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtxQkFDdkM7aUJBQ0o7YUFDSjtTQUNKO1FBQ0QsUUFBUSxFQUFFLFNBQVM7UUFDbkIsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUscUJBQXFCLENBQUMsU0FBUztLQUN6QyxDQUFDO0FBQ04sQ0FBQztBQUdELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxFQUFVO0lBQ25ELE9BQU87UUFDSCxJQUFJLEVBQUUsRUFBRTtRQUNSLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDM0IsS0FBSyxFQUFFLHdCQUF3QjtLQUNsQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDbkMsT0FBTztRQUNILEtBQUssRUFBRSw2QkFBNkI7UUFDcEMsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsV0FBVztRQUNyQixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxVQUFVO0tBQzFDLENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFFBQWdCO0lBQ3JELE9BQU87UUFDSCwwQkFBMEIsQ0FBQyxRQUFRLENBQUM7UUFDcEMsNEJBQTRCLEVBQUU7UUFDOUIsdUJBQXVCLEVBQUU7UUFDekIsd0JBQXdCLEVBQUU7S0FDN0IsQ0FBQztBQUNOLENBQUM7QUFFRCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5QWN0aW9uLCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUFF1ZXJ5RmlsdGVyIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5cbi8vICNyZWdpb24gTWFzdGVyXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJDcmVhdGVBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckJ1bGtEZWxldGVBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZGVsZXRlLWl0ZW1zLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDogJ2RlbGV0ZS1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCxcbiAgICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJWaWV3QWN0aW9uKCk6IEFYUEVudGl0eUFjdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLnZpZXcudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgIHR5cGU6ICd2aWV3JyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckRlbGV0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucygpOiBBWFBFbnRpdHlBY3Rpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZW50aXR5TWFzdGVyQ3JlYXRlQWN0aW9uKCksXG4gICAgICAgIGVudGl0eU1hc3RlckJ1bGtEZWxldGVBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5TWFzdGVyVmlld0FjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuLy8gI3JlZ2lvbiBEZXRhaWxzXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzQ3JlYXRlQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjYW5DcmVhdGVOZXdPbmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRJZF06ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1NpbXBsZUNvbmRpdGlvbihmazogc3RyaW5nKTogQVhQUXVlcnlGaWx0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGZrLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJpZFwiKX19JyxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZWRpdC50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdxdWljay1tb2RpZnktZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eURldGFpbHNDcnVkQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGVudGl0eURldGFpbHNDcmVhdGVBY3Rpb25zKHBhcmVudElkKSxcbiAgICAgICAgZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpLFxuICAgICAgICBlbnRpdHlEZXRhaWxzRWRpdEFjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuXG5cblxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2Fjb3JleC1wbGF0Zm9ybS1sYXlvdXQtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i1","i5","i6","i7","i3","i4"],"mappings":"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"}
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/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/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.0.7\", ngImport: i0, type: AXPDataSeederService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPDataSeederService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQU1MLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxPQUFPLGdDQUFnQztJQWUzQyxZQUFZLE1BQWlCLEVBQUUsTUFBdUI7UUFDcEQsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxRyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pGLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQUMzQyxZQUNVLFFBQTJCLEVBQzNCLE1BQTRCO1FBRDVCLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBR3RDLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDakQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDaEQsUUFBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7UUFHbkQsU0FBSSxHQUFHLFFBQVEsQ0FBc0IsR0FBRyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVUsQ0FBQztZQUMvQyxPQUFPO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLElBQUk7Z0JBQ2hELElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7YUFDbEMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQWhCQSxDQUFDO0NBaUJMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUFjdGlvbixcbiAgQVhQRW50aXR5Q29tbWFuZFNjb3BlLFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5VGFibGVDb2x1bW4sXG4gIHJlc29sdmVBY3Rpb25Mb29rLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBNZXRhRGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRDb2x1bW5Ob2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwge1xuICBwcmlvcml0eTogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeSc7XG4gIGNvbG9yOiBBWFN0eWxlQ29sb3JUeXBlO1xuICBpY29uOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5Pzogc3RyaW5nO1xuICBzZXBhcmF0ZWQ6IGJvb2xlYW47XG4gIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGU7XG4gIGRpc2FibGVkOiBib29sZWFuIHwgc3RyaW5nO1xuICBoaWRkZW46IGJvb2xlYW4gfCBzdHJpbmc7XG4gIG9wdGlvbnM6IGFueTtcbiAgbWV0YWRhdGE/OiBBWFBNZXRhRGF0YTtcbiAgZGVmYXVsdD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoZW50aXR5OiBBWFBFbnRpdHksIGFjdGlvbjogQVhQRW50aXR5QWN0aW9uKSB7XG4gICAgdGhpcy5uYW1lID0gYCR7dHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZX0mJHthY3Rpb24ubmFtZX1gO1xuICAgIHRoaXMub3B0aW9ucyA9IHR5cGVvZiBhY3Rpb24uY29tbWFuZCA9PT0gJ29iamVjdCcgPyBhY3Rpb24uY29tbWFuZC5vcHRpb25zIDogdW5kZWZpbmVkO1xuICAgIHRoaXMubWV0YWRhdGEgPSB0eXBlb2YgYWN0aW9uLmNvbW1hbmQgPT09ICdvYmplY3QnID8gYWN0aW9uLmNvbW1hbmQubWV0YWRhdGEgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVzb2x2ZWRMb29rID0gcmVzb2x2ZUFjdGlvbkxvb2soYWN0aW9uKTtcbiAgICB0aGlzLnByaW9yaXR5ID0gYWN0aW9uLnByaW9yaXR5O1xuICAgIHRoaXMudGl0bGUgPSBhY3Rpb24udGl0bGU7XG4gICAgdGhpcy5zZXBhcmF0ZWQgPSBhY3Rpb24uc2VwYXJhdGVkID8/IGZhbHNlO1xuICAgIHRoaXMuY29sb3IgPSBhY3Rpb24uY29sb3IgPz8gcmVzb2x2ZWRMb29rLmNvbG9yO1xuICAgIHRoaXMuaWNvbiA9IGFjdGlvbi5pY29uID8/IHJlc29sdmVkTG9vay5pY29uO1xuICAgIHRoaXMuaGlkZGVuID0gYWN0aW9uLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB0aGlzLmRpc2FibGVkID0gYWN0aW9uLmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuZGVmYXVsdCA9IGFjdGlvbi5kZWZhdWx0ID8/IGZhbHNlO1xuICAgIHRoaXMuc2NvcGUgPSBhY3Rpb24uc2NvcGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eTogQVhQRW50aXR5UHJvcGVydHksXG4gICAgcHJpdmF0ZSBjb2x1bW46IEFYUEVudGl0eVRhYmxlQ29sdW1uLFxuICApIHt9XG5cbiAgbmFtZSA9IHRoaXMucHJvcGVydHkubmFtZTtcbiAgdGl0bGUgPSB0aGlzLmNvbHVtbi50aXRsZSA/PyB0aGlzLnByb3BlcnR5LnRpdGxlO1xuICB2aXNpYmxlID0gdGhpcy5jb2x1bW4/Lm9wdGlvbnM/LnZpc2libGUgPz8gdHJ1ZTtcbiAgZGlyID0gdGhpcy5jb2x1bW4uc29ydD8uZGlyO1xuICBzb3J0RW5hYmxlZCA9IHRoaXMucHJvcGVydHkub3B0aW9ucz8uc29ydD8uZW5hYmxlZDtcbiAgd2lkdGg6ICcnO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXRDb2x1bW5Ob2RlPigoKSA9PiB7XG4gICAgY29uc3Qgd2lkZ2V0ID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEuaW50ZXJmYWNlITtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogdGhpcy5jb2x1bW4ub3B0aW9ucz8uZGF0YVBhdGggPz8gdGhpcy5uYW1lLFxuICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXG4gICAgICBvcHRpb25zOiB7IC4uLndpZGdldD8ub3B0aW9ucywgLi4udGhpcy5jb2x1bW4/Lm9wdGlvbnMgfSxcbiAgICB9IGFzIEFYUFdpZGdldENvbHVtbk5vZGU7XG4gIH0pO1xufVxuIl19","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);\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 });\n this.selectedItems = signal([]);\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return (this.detailEntityConfig.title ??\n this.detailEntity()?.interfaces?.detail?.list?.title ??\n this.detailEntity()?.formats.plural);\n });\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 });\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 });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Actions ******************//\n this.allActions = computed(() => {\n const list = this.detailEntity()?.interfaces?.master?.list?.actions ?? [];\n const detailEntityActionList = this.detailEntityConfig.actions ?? [];\n const mergedActions = list.map((tr) => {\n const commandName = typeof tr.command === 'string' ? tr.command : tr.command.name;\n const overrideAction = detailEntityActionList.find((action) => {\n const actionCommandName = typeof action.command === 'string' ? action.command : action.command.name;\n return actionCommandName === commandName && action.name === tr.name;\n });\n return new AXPEntityCommandTriggerViewModel(this.detailEntity(), overrideAction ?? tr);\n });\n return mergedActions;\n });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\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 });\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 });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n this.secondaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'secondary'));\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 });\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 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: action.options,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRldGFpbC1saXN0LnZpZXdtb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0QsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUVMLHFCQUFxQixFQUNyQixrQ0FBa0MsRUFFbEMsYUFBYSxHQUNkLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUErQiw2QkFBNkIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEcsTUFBTSxPQUFPLDRCQUE0QjtJQXdCdkMsWUFDVSxRQUFrQixFQUNsQixrQkFBb0MsRUFDcEMsTUFBd0M7UUFGeEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQWtCO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBMUIxQyxpQkFBWSxHQUFHLE1BQU0sQ0FBbUIsSUFBSSxDQUFDLENBQUM7UUFDOUMsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRCxh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QUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3JELE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRyxDQUFDLENBQUMsTUFBTTtZQUNsRCxJQUFJLEVBQUUsTUFBTSxDQUFDLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVztZQUN6RixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJO2dCQUMvQixNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU07Z0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSztnQkFDakMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTO2dCQUN6QyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU07YUFDcEM7WUFDRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQWVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRGF0YVNvdXJjZU9wZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlDb21tYW5kU2NvcGUsXG4gIEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UsXG4gIEFYUFJlbGF0ZWRFbnRpdHksXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSwgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBJbmplY3RvciwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsIHtcbiAgcHJpdmF0ZSBkZXRhaWxFbnRpdHkgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIGZpbHRlck9wZXJhdG9yTWlkZGxld2FyZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEZpbHRlck9wZXJhdG9yTWlkZGxld2FyZVNlcnZpY2UpO1xuICBwcml2YXRlIGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5kZXRhaWxFbnRpdHkoKT8ucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoZSk7XG4gICAgfSxcbiAgICBwYWdlU2l6ZTogNSxcbiAgICBrZXk6ICdpZCcsXG4gIH0pO1xuXG4gIHB1YmxpYyBwYXJlbnRLZXkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZGV0YWlsRW50aXR5KCk/LnBhcmVudEtleTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBkZXRhaWxFbnRpdHlDb25maWc6IEFYUFJlbGF0ZWRFbnRpdHksXG4gICAgcHJpdmF0ZSBwYXJlbnQ6IHsgZW50aXR5OiBBWFBFbnRpdHk7IGRhdGE6IGFueSB9LFxuICApIHtcbiAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRpYWxpemUoKSB7XG4gICAgY29uc3QgZW50aXR5UmVzb2x2ZXIgPSB0aGlzLmluamVjdG9yLmdldChBWFBFbnRpdHlSZXNvbHZlcik7XG4gICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuZW50aXR5LnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZW50aXR5ID0gYXdhaXQgZW50aXR5UmVzb2x2ZXIuZ2V0KG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGlmICghZW50aXR5KSB7XG4gICAgICB0aHJvdyBFcnJvcihgSW52YWxpZCBlbml0aXR5IG5hbWU6ICR7dGhpcy5kZXRhaWxFbnRpdHlDb25maWcuZW50aXR5fWApO1xuICAgIH1cbiAgICB0aGlzLmRldGFpbEVudGl0eS5zZXQoZW50aXR5KTtcbiAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXMgPSBzaWduYWw8YW55W10+KFtdKTtcblxuICBwdWJsaWMgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLnRpdGxlID8/XG4gICAgICB0aGlzLmRldGFpbEVudGl0eSgpPy5pbnRlcmZhY2VzPy5kZXRhaWw/Lmxpc3Q/LnRpdGxlISA/P1xuICAgICAgdGhpcy5kZXRhaWxFbnRpdHkoKT8uZm9ybWF0cy5wbHVyYWwhXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVmlzaWJpbGl0eSAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgaGlkZGVuID0gY29tcHV0ZWQ8UHJvbWlzZTxib29sZWFuPj4oYXN5bmMgKCkgPT4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuaGlkZGVuID09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge1xuICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdldCh0aGlzLnBhcmVudC5kYXRhLCBwYXRoKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodGhpcy5kZXRhaWxFbnRpdHlDb25maWcuaGlkZGVuLCBzY29wZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5oaWRkZW4gPz8gZmFsc2U7XG4gICAgfVxuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBJbmxpbmUgZmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICAvL3JldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcChjID0+IGMudGl0bGUpO1xuICAgIHJldHVybiBbXTtcbiAgfSk7XG5cbiAgcHVibGljIGhhc0lubGluZUZpbHRlcnMgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmxlbmd0aCA+IDA7XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIEFjdGlvbnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHJpdmF0ZSBhbGxBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmRldGFpbEVudGl0eSgpPy5pbnRlcmZhY2VzPy5tYXN0ZXI/Lmxpc3Q/LmFjdGlvbnMgPz8gW107XG4gICAgY29uc3QgZGV0YWlsRW50aXR5QWN0aW9uTGlzdCA9IHRoaXMuZGV0YWlsRW50aXR5Q29uZmlnLmFjdGlvbnMgPz8gW107XG5cbiAgICBjb25zdCBtZXJnZWRBY3Rpb25zID0gbGlzdC5tYXAoKHRyKSA9PiB7XG4gICAgICBjb25zdCBjb21tYW5kTmFtZSA9IHR5cGVvZiB0ci5jb21tYW5kID09PSAnc3RyaW5nJyA/IHRyLmNvbW1hbmQgOiB0ci5jb21tYW5kLm5hbWU7XG4gICAgICBjb25zdCBvdmVycmlkZUFjdGlvbiA9IGRldGFpbEVudGl0eUFjdGlvbkxpc3QuZmluZCgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbkNvbW1hbmROYW1lID0gdHlwZW9mIGFjdGlvbi5jb21tYW5kID09PSAnc3RyaW5nJyA/IGFjdGlvbi5jb21tYW5kIDogYWN0aW9uLmNvbW1hbmQubmFtZTtcbiAgICAgICAgcmV0dXJuIGFjdGlvbkNvbW1hbmROYW1lID09PSBjb21tYW5kTmFtZSAmJiBhY3Rpb24ubmFtZSA9PT0gdHIubmFtZTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmRldGFpbEVudGl0eSgpISwgb3ZlcnJpZGVBY3Rpb24gPz8gdHIpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlZEFjdGlvbnM7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFNjb3BlQWN0aW9uc0NvdW50ID0gY29tcHV0ZWQ8bnVtYmVyPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQpLmxlbmd0aDtcbiAgfSk7XG5cbiAgcHVibGljIHByaW1hcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoXG4gICAgICAoYSkgPT5cbiAgICAgICAgYS5wcmlvcml0eSA9PSAncHJpbWFyeScgJiZcbiAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoXG4gICAgICAoYSkgPT5cbiAgICAgICAgYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JyAmJlxuICAgICAgICAoKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgIChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwgJiYgIXRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSksXG4gICAgKTtcbiAgfSk7XG4gIHB1YmxpYyBwcmltYXJ5Um93QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+XG4gICAgdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdwcmltYXJ5JyksXG4gICk7XG5cbiAgcHVibGljIHNlY29uZGFyeVJvd0FjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PlxuICAgIHRoaXMuYWxsQWN0aW9ucygpLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCAmJiBhLnByaW9yaXR5ID09PSAnc2Vjb25kYXJ5JyksXG4gICk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogRmlsdGVyICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgcHJpdmF0ZSBpbmxpbmVGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgIGxvZ2ljOiAnb3InLFxuICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICBmaWx0ZXJzOiBbXSxcbiAgfTtcblxuICBhcHBseUlubGluZUZpbHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgLy8gY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihjID0+IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpO1xuICAgIC8vIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzID0gW107XG4gICAgLy8gaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgIHByb3BzLmZvckVhY2gocCA9PiB7XG4gICAgLy8gICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XG4gICAgLy8gICAgICAgICAgICAgZmllbGQ6IHAubmFtZSxcbiAgICAvLyAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgIC8vICAgICAgICAgICAgICAgICB0eXBlOiAnY29udGFpbnMnXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB2YWx1ZVxuICAgIC8vICAgICAgICAgfSlcbiAgICAvLyAgICAgfSlcbiAgICAvLyB9XG4gICAgdGhpcy5hcHBseUZpbHRlckFuZFNvcnQoKTtcbiAgfVxuXG4gIGFzeW5jIGFwcGx5RmlsdGVyQW5kU29ydCgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuY2xlYXJGaWx0ZXIoKTtcbiAgICAvL1xuICAgIC8vdGhpcy5kYXRhU291cmNlLnNvcnQoLi4udGhpcy5kZXRhaWxFbnRpdHkuKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIGNvbnN0IHBhcmVudEZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID1cbiAgICAgIChhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgdGhpcy5kZXRhaWxFbnRpdHlDb25maWcuY29uZGl0aW9ucz8ubWFwKGFzeW5jIChjKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpZWxkOiBjLm5hbWUsXG4gICAgICAgICAgICBvcGVyYXRvcjogYy5vcGVyYXRvciBhcyB1bmtub3duIGFzIEFYRGF0YVNvdXJjZU9wZXJhdG9yLFxuICAgICAgICAgICAgLy8gdmFsdWU6IHRoaXMucGFyZW50LmRhdGE/LmlkLFxuICAgICAgICAgICAgdmFsdWU6IGF3YWl0IHRoaXMuZXZhbHVhdGVFeHByZXNzaW9ucyhjLnZhbHVlKSxcbiAgICAgICAgICB9IGFzIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbjtcbiAgICAgICAgfSkgPz8gW10sXG4gICAgICApKSA/PyBbXTtcbiAgICBjb25zdCBwYXJlbnRGaWx0ZXJXcmFwcGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gPSB7XG4gICAgICBmaWVsZDogbnVsbCBhcyBhbnksXG4gICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICBmaWx0ZXJzOiBwYXJlbnRGaWx0ZXJzLFxuICAgIH07XG4gICAgLy9cbiAgICBjb25zdCBpbmxpbmUgPSB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ubGVuZ3RoID8/IDA7XG4gICAgY29uc3QgcGFyZW50ID0gcGFyZW50RmlsdGVyV3JhcHBlci5maWx0ZXJzPy5sZW5ndGggPz8gMDtcbiAgICAvL1xuICAgIGlmIChpbmxpbmUpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHRoaXMuaW5saW5lRmlsdGVycykpO1xuICAgIH0gZWxzZSBpZiAoIWlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIodGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHBhcmVudEZpbHRlcldyYXBwZXIpKTtcbiAgICB9IGVsc2UgaWYgKGlubGluZSAmJiBwYXJlbnQpIHtcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoXG4gICAgICAgIHRoaXMuZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlLnRyYW5zZm9ybUZpbHRlcih7XG4gICAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgICAgICAgZmlsdGVyczogW3RoaXMuaW5saW5lRmlsdGVycywgcGFyZW50RmlsdGVyV3JhcHBlcl0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gICAgLy9cbiAgICB0aGlzLmRhdGFTb3VyY2UucmVmcmVzaCgpO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQ29sdW1ucyAqKioqKioqKioqKioqKioqKiovL1xuXG4gIGNvbHVtbnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZGV0YWlsRW50aXR5KCkpIHtcbiAgICAgIGNvbnN0IGRldGFpbENvbHVtbnMgPSB0aGlzLmRldGFpbEVudGl0eUNvbmZpZy5jb2x1bW5zID8/IFtdO1xuICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuZGV0YWlsRW50aXR5KCk/LmNvbHVtbnM/Lm1hcCgoYykgPT4gYy5uYW1lKSA/PyBbXTtcbiAgICAgIGNvbnN0IHByb3BzID1cbiAgICAgICAgdGhpcy5kZXRhaWxFbnRpdHkoKT8ucHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgICAgKHApID0+IHAuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmIChkZXRhaWxDb2x1bW5zPy5sZW5ndGggPT0gMCB8fCBkZXRhaWxDb2x1bW5zPy5pbmNsdWRlcyhwLm5hbWUpKSxcbiAgICAgICAgKSA/PyBbXTtcbiAgICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PiBjb2x1bW5zLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKSk7XG4gICAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwocCwgdGhpcy5kZXRhaWxFbnRpdHkoKT8uY29sdW1ucz8uZmluZCgoYykgPT4gYy5uYW1lID09IHAubmFtZSkhKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWRTY29wZSA9IHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aFxuICAgICAgICA/IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkXG4gICAgICAgIDogYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbDtcbiAgICAgIHJldHVybiBjLm5hbWUgPT0gY29tbWFuZE5hbWUgJiYgKGlzU2VsZWN0ZWRTY29wZSB8fCBjLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFhY3Rpb24pIHJldHVybjtcblxuICAgIGNvbnN0IGFjdGlvbkRhdGEgPSBhY3Rpb24ub3B0aW9ucz8ucHJvY2Vzcz8uZGF0YTtcbiAgICBjb25zdCBpbml0aWFsRGF0YSA9IGFjdGlvbkRhdGEgPyB7IC4uLmRhdGEsIC4uLihhd2FpdCB0aGlzLmV2YWx1YXRlRXhwcmVzc2lvbnMoYWN0aW9uRGF0YSkpIH0gOiBkYXRhO1xuXG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLnNwbGl0KCcmJylbMF0sIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmRldGFpbEVudGl0eSgpISkuc291cmNlLFxuICAgICAgZGF0YTogYWN0aW9uLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCA/IHRoaXMuc2VsZWN0ZWRJdGVtcygpIDogaW5pdGlhbERhdGEsXG4gICAgICBlbnRpdHlJbmZvOiB7XG4gICAgICAgIG5hbWU6IHRoaXMuZGV0YWlsRW50aXR5KCk/Lm5hbWUsXG4gICAgICAgIG1vZHVsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ubW9kdWxlLFxuICAgICAgICB0aXRsZTogdGhpcy5kZXRhaWxFbnRpdHkoKT8udGl0bGUsXG4gICAgICAgIHBhcmVudEtleTogdGhpcy5kZXRhaWxFbnRpdHkoKT8ucGFyZW50S2V5LFxuICAgICAgICBzb3VyY2U6IHRoaXMuZGV0YWlsRW50aXR5KCk/LnNvdXJjZSxcbiAgICAgIH0sXG4gICAgICBvcHRpb25zOiBhY3Rpb24ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXZhbHVhdGVFeHByZXNzaW9ucyA9IGFzeW5jIChhY3Rpb25EYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSA9PiB7XG4gICAgY29uc3QgcGFyZW50RGF0YSA9IHRoaXMucGFyZW50LmRhdGE7XG4gICAgY29uc29sZS5sb2coeyBhY3Rpb25EYXRhLCBwYXJlbnREYXRhIH0pO1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gZ2V0KHBhcmVudERhdGEsIHBhdGgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhY3Rpb25EYXRhLCBzY29wZSk7XG4gIH07XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPEntityMiddleware, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMiddleware, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.createProp.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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 ?? {});\n this.options = signal(this.commandOptions ?? {});\n this.isInProgress = signal(false);\n this.canCreateNewOne = signal(true);\n this.redirect = signal(true);\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 });\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.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1jcmVhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQStCLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkcsT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRWhGLE1BQU0sT0FBTyxtQ0FBbUM7SUFDOUMsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7UUFFNUUsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBRSxDQUFDO1FBQ2xFLFNBQUksR0FBRyxNQUFNLENBQUMsSUFB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L0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgQVhQRW50aXR5UHJvcGVydHlDcmVhdGVWaWV3LFxuICBBWFBFbnRpdHlTZWN0aW9uVmlldyxcbiAgQVhQR3JpZExheW91dE9wdGlvbnMsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSwgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIEFYUFBhZ2VTdGF0dXMsIEFYUFdpZGdldE5vZGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUExheW91dFRoZW1lU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vdGhlbWVzL3NoYXJlZCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0LCBpc05pbCwgbWVyZ2UsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7IH1cblxuICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZCgoYykgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcbiAgbmFtZSA9IHNpZ25hbCh0aGlzLmdyb3VwLmlkKTtcblxuICB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlID8/IHRoaXMuZ3JvdXAuaWQ7XG4gIH0pO1xuXG4gIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3VwLmRlc2NyaXB0aW9uO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLnNlY3Rpb24ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgZWxlbWVudHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgeyBpbnRlcmZhY2VzLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eTtcbiAgICBjb25zdCBjcmVhdGVQcm9wcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uY3JlYXRlPy5wcm9wZXJ0aWVzID8/IFtdO1xuICAgIGNvbnN0IGNyZWF0ZVByb3BOYW1lcyA9IG5ldyBTZXQoY3JlYXRlUHJvcHMubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkpO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiBjcmVhdGVQcm9wTmFtZXMuaGFzKG5hbWUpXG4gICAgKTtcblxuICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXMubWFwKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgY3JlYXRlUHJvcCA9IGNyZWF0ZVByb3BzLmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSBwcm9wZXJ0eS5uYW1lKTtcbiAgICAgIHJldHVybiBuZXcgQVhQRW50aXR5Q3JlYXRlVmlld0VsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3BlcnR5LCBjcmVhdGVQcm9wISk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5Q3JlYXRlVmlld0VsZW1lbnRWaWV3TW9kZWwge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LFxuICAgIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWwsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eTogQVhQRW50aXR5UHJvcGVydHksXG4gICAgcHJpdmF0ZSBjcmVhdGVQcm9wOiBBWFBFbnRpdHlQcm9wZXJ0eUNyZWF0ZVZpZXdcbiAgKSB7IH1cblxuICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XG4gIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xuICBkZXNjcmlwdGlvbiA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LmRlc2NyaXB0aW9uKTtcblxuICBlZGl0YWJsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gISh0aGlzLnByb3BlcnR5LnNjaGVtYS5yZWFkb25seSA/PyBmYWxzZSk7XG4gIH0pO1xuXG4gIGlzUmVxdWlyZWQgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnM/LnNvbWUoKGMpID0+IGMucnVsZSA9PSAncmVxdWlyZWQnKSB8fCBmYWxzZTtcbiAgfSk7XG5cblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh0aGlzLmNyZWF0ZVByb3AubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgbW9kZTogdGhpcy5lZGl0YWJsZSgpID8gJ2VkaXQnIDogJ3ZpZXcnLFxuICAgICAgcGF0aDogdGhpcy5uYW1lKCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUoKSxcbiAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXG4gICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcbiAgICAgIHRyaWdnZXJzOiB3aWRnZXQudHJpZ2dlcnMsXG4gICAgICB2YWx1ZVRyYW5zZm9ybXM6IHdpZGdldC52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICBvcHRpb25zOiBtZXJnZShzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zLCB7XG4gICAgICAgIHZhbGlkYXRpb25zOiB0aGlzLnByb3BlcnR5LnZhbGlkYXRpb25zPy5tYXAoKGMpID0+ICh7IHJ1bGU6IGMucnVsZSwgbWVzc2FnZTogYy5tZXNzYWdlLCBvcHRpb25zOiBjLm9wdGlvbnMgfSkpLFxuICAgICAgfSksXG4gICAgfSBhcyBBWFBXaWRnZXROb2RlO1xuICB9KTtcbn1cblxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbCB7XG4gIHByaXZhdGUgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG5cbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZXhwcmVzc2lvbkV2YWx1YXRvciA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTZXJ2aWNlKTtcblxuICBwdWJsaWMgYnVpbGRlcjogQVhQTGF5b3V0QnVpbGRlclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxEYXRhOiBhbnkgPSB7fSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRPcHRpb25zOiBhbnlcbiAgKSB7XG4gICAgaWYgKCFpbml0aWFsRGF0YSkgaW5pdGlhbERhdGEgPSB7fTtcblxuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGV2YWw6IChwYXRoOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKGdldChpbml0aWFsRGF0YSwgcGF0aCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBwcm9jZXNzRGVmYXVsdCA9IGFzeW5jICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlKCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKCd7eycpKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUodmFsdWUsIHNjb3BlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgdGhpcy5jb25maWcucHJvcGVydGllc1xuICAgICAgLmZpbHRlcigoYykgPT4gIWlzTmlsKGMuc2NoZW1hLmRlZmF1bHRWYWx1ZSkpXG4gICAgICAuZm9yRWFjaChhc3luYyAocCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHByb2Nlc3NEZWZhdWx0KHAuc2NoZW1hLmRlZmF1bHRWYWx1ZSk7XG4gICAgICAgIHNldChpbml0aWFsRGF0YSwgcC5uYW1lLCB2YWx1ZSk7XG4gICAgICB9KTtcbiAgICAvL1xuICAgIHRoaXMuY29udGV4dC5zZXQoaW5pdGlhbERhdGEpO1xuICAgIHRoaXMub3B0aW9ucy5zZXQoY29tbWFuZE9wdGlvbnMpO1xuICAgIC8vXG4gICAgY29uc3QgeyByZWRpcmVjdCA9IHRydWUsIGNhbkNyZWF0ZU5ld09uZSA9IHRydWUgfSA9IGNvbW1hbmRPcHRpb25zPy5bJ3Byb2Nlc3MnXSA/PyB7fTtcbiAgICB0aGlzLmNhbkNyZWF0ZU5ld09uZS5zZXQoY2FuQ3JlYXRlTmV3T25lKTtcbiAgICB0aGlzLnJlZGlyZWN0LnNldChyZWRpcmVjdCk7XG4gIH1cblxuICBwdWJsaWMgY29udGV4dCA9IHNpZ25hbDxhbnk+KHRoaXMuaW5pdGlhbERhdGEgPz8ge30pO1xuICBwdWJsaWMgb3B0aW9ucyA9IHNpZ25hbDxhbnk+KHRoaXMuY29tbWFuZE9wdGlvbnMgPz8ge30pO1xuXG4gIHB1YmxpYyBpc0luUHJvZ3Jlc3MgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgY2FuQ3JlYXRlTmV3T25lID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xuICBwdWJsaWMgcmVkaXJlY3QgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q3JlYXRlVmlld1NlY3Rpb25WaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3QgY3JlYXRlUHJvcHMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LmNyZWF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XG5cbiAgICBjb25zdCB2aXNpYmxlUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+IGdyb3VwSWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgY3JlYXRlUHJvcHMuaW5jbHVkZXMobmFtZSlcbiAgICApO1xuXG4gICAgY29uc3Qgc2VjdGlvbnMgPVxuICAgICAgaW50ZXJmYWNlcz8ubWFzdGVyPy5jcmVhdGU/LnNlY3Rpb25zPy5maWx0ZXIoKHsgaWQgfSkgPT5cbiAgICAgICAgdmlzaWJsZVByb3BlcnRpZXMuc29tZSgoeyBncm91cElkIH0pID0+IGdyb3VwSWQgPT09IGlkKVxuICAgICAgKSA/PyBbXTtcblxuICAgIHJldHVybiBzZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+IG5ldyBBWFBFbnRpdHlDcmVhdGVWaWV3U2VjdGlvblZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICB9KTtcblxuICBwdWJsaWMgYXN5bmMgc2F2ZSgpOiBQcm9taXNlPGFueSB8IHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0luUHJvZ3Jlc3Muc2V0KHRydWUpO1xuICAgICAgdGhpcy5idWlsZGVyLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLlN1Ym1pdHRpbmcpO1xuICAgICAgY29uc3QgZXhlYyA9IHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleGVjKHRoaXMuY29udGV4dCgpKTtcbiAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKGMpID0+ICh7IC4uLmMsIC4uLnJlc3VsdCB9KSk7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5idWlsZGVyLnNldFN0YXR1cyhBWFBQYWdlU3RhdHVzLlN1Ym1pdHRlZCk7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYnVpbGRlci5zZXRTdGF0dXMoQVhQUGFnZVN0YXR1cy5FcnJvcik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzSW5Qcm9ncmVzcy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVOZXdPbmUoKSB7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdjcmVhdGUtZW50aXR5Jywge1xuICAgICAgZW50aXR5OiBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMoKSxcbiAgICAgIGRhdGE6IHRoaXMuaW5pdGlhbERhdGEsXG4gICAgICAvLyBlbnRpdHlJbmZvXG4gICAgfSk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlDcmVhdGVWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKFxuICAgIG1vZHVsZU5hbWU6IHN0cmluZyxcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgaW5pdGlhbERhdGE6IGFueSA9IG51bGwsXG4gICAgb3B0aW9uczogeyBjYW5DcmVhdGVOZXdPbmU6IGJvb2xlYW47IHJlZGlyZWN0OiBib29sZWFuIH0gPSB7IGNhbkNyZWF0ZU5ld09uZTogdHJ1ZSwgcmVkaXJlY3Q6IHRydWUgfVxuICApOiBQcm9taXNlPEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbD4ge1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHRoaXMuZW50aXR5U2VydmljZS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIHRoaXMubGF5b3V0LnNldE5hdmlnYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlckNyZWF0ZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGluaXRpYWxEYXRhLCBvcHRpb25zKTtcbiAgfVxufVxuIl19","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 });\n this.view = signal(this.views()[0]);\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([]);\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.hasSelectedItems = computed(() => {\n return this.selectedItems().length > 0;\n });\n //****************** Title ******************//\n this.title = computed(() => {\n return this._viewDef.title ?? this.entityDef.formats.plural;\n });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description ?? null;\n });\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 });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\n //****************** Beardcrumbs ******************//\n this.beardcrumbs = computed(() => {\n return [\n {\n title: this.title(),\n },\n ];\n });\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 });\n this.selectedScopeActionsCount = computed(() => {\n return this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Selected).length;\n });\n this.primaryRowActions = computed(() => this.allActions().filter((a) => a.scope == AXPEntityCommandScope.Individual && a.priority === 'primary'));\n //****************** Filter ******************//\n this.filterQueries = signal([]);\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([]);\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([]);\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.0.7\", ngImport: i0, type: AXPEntityListViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityListViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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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Q0FBQztRQUN4QyxPQUFPLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDOzhHQVZVLDZCQUE2QjtrSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzJGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQWNsQyxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBcUQsQ0FDOUYsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsVUFBeUMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLEVBQ3ZDLEVBQUU7SUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQ2xFLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBVyxDQUFDO0lBQzFELEVBQUU7SUFDRixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLCBBWERhdGFTb3VyY2VTb3J0T3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5LFxuICBBWFBFbnRpdHlDb21tYW5kU2NvcGUsXG4gIEFYUEVudGl0eVByb3BlcnR5LFxuICBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlLFxuICBBWFBRdWVyeVZpZXcsXG4gIEFYUFJlZnJlc2hFdmVudCxcbiAgQVhQU2V0dGluZ1NlcnZpY2UsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUEJyZWFkY3J1bWJJdGVtLFxuICBBWFBFeGVjdXRlQ29tbWFuZCxcbiAgQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlLFxuICBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSxcbiAgQVhQRmlsdGVyRGVmaW5pdGlvbixcbiAgQVhQRmlsdGVyUXVlcnksXG4gIEFYUFBsYXRmb3JtU2NvcGUsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UsIEFYUFdpZGdldFR5cGVzTWFwIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGdldCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsLCBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdTb3J0UHJvcFZpZXdNb2RlbCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGlyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyTGlzdFZpZXdRdWVyeVZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsLFxuICAgIHByaXZhdGUgdmlldzogQVhQUXVlcnlWaWV3LFxuICApIHt9XG5cbiAgbmFtZSA9IHRoaXMudmlldy5uYW1lO1xuICB0aXRsZSA9IHRoaXMudmlldy50aXRsZTtcbiAgc29ydHMgPSB0aGlzLnZpZXcuc29ydHM7XG4gIGNvbHVtbnMgPSB0aGlzLnZpZXcuY29sdW1ucztcbiAgY29uZGl0aW9ucyA9IHRoaXMudmlldy5jb25kaXRpb25zO1xuICBpbmRleENvbCA9IHRoaXMudmlldy5pbmRleENvbDtcbiAgcGFnZVNpemUgPSB0aGlzLnZpZXcucGFnZVNpemU7XG59XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsIHtcbiAgcmVhZG9ubHkgZW50aXR5RGVmID0gY2xvbmVEZWVwKHRoaXMuY29uZmlnKSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZWYgPSBjbG9uZURlZXAodGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5saXN0KSE7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFNlc3Npb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3MgPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXR0aW5nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0UmVzb2x2ZXIgPSB0aGlzLmluamVjdG9yLmdldChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4cHJlc3Npb25FdmFsdWF0b3IgPSB0aGlzLmluamVjdG9yLmdldChBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUgPSB0aGlzLmluamVjdG9yLmdldChBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlKTtcblxuICBwcml2YXRlIHNldHRpbmdFbnRpdHlLZXkgPSBgJHt0aGlzLmNvbmZpZy5tb2R1bGV9OiR7dGhpcy5jb25maWcubmFtZX1gO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGV2ZW50cyQ6IFN1YmplY3Q8eyBhY3Rpb246IHN0cmluZzsgbWV0YT86IGFueSB9PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVmlld3MgKioqKioqKioqKioqKioqKioqLy9cblxuICB2aWV3cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aWV3cyA9IHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdD8udmlld3MgPz8gW107XG5cbiAgICByZXR1cm4gdmlld3MubWFwKCh2KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHRoaXMsIHYpO1xuICAgIH0pO1xuICB9KTtcblxuICB2aWV3ID0gc2lnbmFsPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3UXVlcnlWaWV3TW9kZWw+KHRoaXMudmlld3MoKVswXSk7XG5cbiAgYXN5bmMgc2V0Vmlldyh2aWV3TmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGwpIHtcbiAgICBjb25zdCBlbnRpdHlTZXR0aW5nID0gYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXQodGhpcy5zZXR0aW5nRW50aXR5S2V5KTtcbiAgICBjb25zdCBzZWxlY3RlZFZpZXdOYW1lID0gZW50aXR5U2V0dGluZz8ubGlzdD8uY3VycmVudFZpZXc7XG4gICAgaWYgKHZpZXdOYW1lICE9IHRoaXMudmlldygpLm5hbWUpIHtcbiAgICAgIHRoaXMudmlldy5zZXQodGhpcy52aWV3cygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSAodmlld05hbWUgfHwgc2VsZWN0ZWRWaWV3TmFtZSkpID8/IHRoaXMudmlld3MoKVswXSk7XG5cbiAgICAgIHRoaXMuYXBwbHlWaWV3U29ydHMoKTtcbiAgICAgIHRoaXMuYXBwbHlWaWV3Q29sdW1ucygpO1xuICAgICAgdGhpcy5hcHBseVZpZXdGaWx0ZXJzKCk7XG4gICAgICAvLyB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xuICAgICAgdGhpcy5hcHBseVNldHRpbmdzKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0YVNvdXJjZSA9IG5ldyBBWERhdGFTb3VyY2Uoe1xuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoKTtcbiAgICB9LFxuICAgIGxvYWQ6IChlKSA9PiB7XG4gICAgICBjb25zdCBmdW5jID0gdGhpcy5lbnRpdHlEZWYucXVlcmllcy5saXN0Py5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgcmV0dXJuIGZ1bmMoZSk7XG4gICAgfSxcbiAgICBwYWdlU2l6ZTogdGhpcy52aWV3KCkucGFnZVNpemUgfHwgMTAsXG4gICAga2V5OiAnaWQnLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxuICApIHtcbiAgICB0aGlzLndvcmtmbG93LmV2ZW50cyRcbiAgICAgIC5waXBlKG9mVHlwZShBWFBSZWZyZXNoRXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KFtdKTtcbiAgICAgICAgICB0aGlzLmV2ZW50cyQubmV4dCh7IGFjdGlvbjogJ3JlZnJlc2gnLCBtZXRhOiBldmVudC5wYXlsb2FkLm1ldGEgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc29ydGVkRmllbGRzLnNldCh0aGlzLnNvcnRhYmxlRmllbGRzKCkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFwcGx5U2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zYXZlU2V0dGluZ3MoJ3ZpZXcnKTtcblxuICAgIGNvbnN0IGxpc3RWaWV3U2V0dGluZyA9IGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0KHRoaXMuc2V0dGluZ0VudGl0eUtleSk7XG4gICAgaWYgKGxpc3RWaWV3U2V0dGluZykge1xuICAgICAgY29uc3QgY29sdW1ucyA9IGxpc3RWaWV3U2V0dGluZy5saXN0LnZpZXdzW3RoaXMudmlldygpLm5hbWVdLmNvbHVtbnM7XG4gICAgICBjb25zdCBwYWdlU2l6ZSA9IGxpc3RWaWV3U2V0dGluZy5saXN0LnZpZXdzW3RoaXMudmlldygpLm5hbWVdLnBhZ2VTaXplO1xuICAgICAgY29uc3QgY29sdW1uVmlzaWJpbGl0eU1hcCA9IG5ldyBNYXAoY29sdW1ucy5tYXAoKGNvbDogYW55KSA9PiBbY29sLm5hbWUsIGNvbC52aXNpYmxlXSkpO1xuICAgICAgY29uc3QgY29sdW1uV2lkdGhzTWFwID0gbmV3IE1hcChjb2x1bW5zLm1hcCgoY29sOiBhbnkpID0+IFtjb2wubmFtZSwgY29sLndpZHRoXSkpO1xuXG4gICAgICAvLyBpZiAocGFnZVNpemUpIHtcbiAgICAgIC8vICAgdGhpcy5kYXRhU291cmNlLnNldFBhZ2VTaXplKHBhZ2VTaXplKTtcbiAgICAgIC8vIH1cblxuICAgICAgdGhpcy5jb2x1bW5zLnVwZGF0ZSgocHJldikgPT5cbiAgICAgICAgcHJldlxuICAgICAgICAgIC5tYXAoKGM6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgLi4uYywgd2lkdGg6IGNvbHVtbldpZHRoc01hcC5nZXQoYy5uYW1lKSwgdmlzaWJsZTogY29sdW1uVmlzaWJpbGl0eU1hcC5nZXQoYy5uYW1lKSA/PyBjLnZpc2libGUgfTtcbiAgICAgICAgICB9KSAvLyBVcGRhdGUgdmlzaWJpbGl0eVxuICAgICAgICAgIC5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+XG4gICAgICAgICAgICAgIGNvbHVtbnMuZmluZEluZGV4KChjb2w6IGFueSkgPT4gY29sLm5hbWUgPT09IGEubmFtZSkgLVxuICAgICAgICAgICAgICBjb2x1bW5zLmZpbmRJbmRleCgoY29sOiBhbnkpID0+IGNvbC5uYW1lID09PSBiLm5hbWUpLFxuICAgICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlU2V0dGluZ3MoY2hhbmdlc1R5cGU6ICdjb2x1bW5TaXplcycgfCAnY29sdW1uT3JkZXJzJyB8ICd2aWV3JyB8ICdwYWdlU2l6ZScsIGRhdGE/OiBhbnkpIHtcbiAgICBjb25zdCB1cGRhdGVTZXR0aW5ncyA9ICh1cGRhdGVGbjogKHByZXY6IGFueSkgPT4gYW55KSA9PiB7XG4gICAgICB0aGlzLnNldHRpbmdzLnNjb3BlKEFYUFBsYXRmb3JtU2NvcGUuVXNlcikudXBkYXRlKHRoaXMuc2V0dGluZ0VudGl0eUtleSwgdXBkYXRlRm4pO1xuICAgIH07XG5cbiAgICBzd2l0Y2ggKGNoYW5nZXNUeXBlKSB7XG4gICAgICBjYXNlICdjb2x1bW5TaXplcyc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSBkYXRhLmRhdGFGaWVsZC5zcGxpdCgnLScpWzFdO1xuICAgICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0geyAuLi5wcmV2IH07XG5cbiAgICAgICAgICBzZXQoXG4gICAgICAgICAgICBuZXdTZXR0aW5ncyxcbiAgICAgICAgICAgIGBsaXN0LnZpZXdzLiR7dGhpcy52aWV3KCkubmFtZX0uY29sdW1uc2AsXG4gICAgICAgICAgICBwcmV2Py5saXN0Py52aWV3cz8uW3RoaXMudmlldygpLm5hbWVdPy5jb2x1bW5zPy5tYXAoKGM6IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICAgd2lkdGg6IGMubmFtZSA9PT0gZmllbGQgPyBkYXRhLndpZHRoIDogYy53aWR0aCxcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcmV0dXJuIG5ld1NldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjb2x1bW5PcmRlcnMnOlxuICAgICAgICB1cGRhdGVTZXR0aW5ncygocHJldikgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0geyAuLi5wcmV2IH07XG5cbiAgICAgICAgICBzZXQoXG4gICAgICAgICAgICBuZXdTZXR0aW5ncyxcbiAgICAgICAgICAgIGBsaXN0LnZpZXdzLiR7dGhpcy52aWV3KCkubmFtZX0uY29sdW1uc2AsXG4gICAgICAgICAgICBkYXRhLm1hcCgoYzogYW55KSA9PiAoe1xuICAgICAgICAgICAgICBuYW1lOiBjLm5hbWUsXG4gICAgICAgICAgICAgIHZpc2libGU6IGMudmlzaWJsZSxcbiAgICAgICAgICAgICAgd2lkdGg6IGMud2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgIHVwZGF0ZVNldHRpbmdzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgLi4ucHJldj8ubGlzdCxcbiAgICAgICAgICAgIGN1cnJlbnRWaWV3OiB0aGlzLnZpZXcoKS5uYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3BhZ2VTaXplJzpcbiAgICAgICAgdXBkYXRlU2V0dGluZ3MoKHByZXYpID0+ICh7XG4gICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICBsaXN0OiB7XG4gICAgICAgICAgICAuLi5wcmV2Py5saXN0LFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgLi4ucHJldj8ubGlzdD8udmlld3MsXG4gICAgICAgICAgICAgIFt0aGlzLnZpZXcoKS5uYW1lXToge1xuICAgICAgICAgICAgICAgIC4uLnByZXY/Lmxpc3Q/LnZpZXdzPy5bdGhpcy52aWV3KCkubmFtZV0sXG4gICAgICAgICAgICAgICAgcGFnZVNpemU6IGRhdGEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPGFueVtdPihbXSk7XG5cbiAgcHVibGljIHBhcmVudEtleSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucGFyZW50S2V5O1xuICB9KTtcblxuICBwdWJsaWMgaGFzU2VsZWN0ZWRJdGVtcyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfSk7XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5wbHVyYWwhO1xuICB9KTtcbiAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uID8/IG51bGw7XG4gIH0pO1xuXG4gIC8vKioqKioqKioqKioqKioqKioqIElubGluZSBmaWx0ZXIgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMgPSBjb21wdXRlZDxzdHJpbmdbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCkubWFwKChjKSA9PiBjLnRpdGxlID8/IGMubmFtZSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCcmVhZGNydW1iSXRlbVtdPigoKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQWN0aW9ucyAqKioqKioqKioqKioqKioqKiovL1xuICBwcml2YXRlIGFsbEFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZW50aXR5RGVmLmludGVyZmFjZXM/Lm1hc3Rlcj8ubGlzdD8uYWN0aW9ucyA/PyBbXTtcbiAgICByZXR1cm4gbGlzdC5tYXAoKHRyKSA9PiBuZXcgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHRyKSkgPz8gW107XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBnZXRQcmltYXJ5QWN0aW9ucygpOiBQcm9taXNlPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+IHtcbiAgICBjb25zdCBzY29wZTogQVhQRXhwcmVzc2lvbkV2YWx1YXRvclNjb3BlID0ge307XG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAoYSkgPT5cbiAgICAgICAgICAgIGEucHJpb3JpdHkgPT0gJ3ByaW1hcnknICYmXG4gICAgICAgICAgICAoKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkICYmIHRoaXMuaGFzU2VsZWN0ZWRJdGVtcygpKSB8fFxuICAgICAgICAgICAgICAoYS5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsICYmICF0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkpLFxuICAgICAgICApXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgcmV0dXJuIGFjdGlvbnMgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZWNvbmRhcnlBY3Rpb25zKCk6IFByb21pc2U8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4ge1xuICAgIGNvbnN0IHNjb3BlOiBBWFBFeHByZXNzaW9uRXZhbHVhdG9yU2NvcGUgPSB7fTtcbiAgICBjb25zdCBhY3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB0aGlzLmFsbEFjdGlvbnMoKVxuICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgIChhKSA9PlxuICAgICAgICAgICAgYS5wcmlvcml0eSA9PSAnc2Vjb25kYXJ5JyAmJlxuICAgICAgICAgICAgKChhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCAmJiB0aGlzLmhhc1NlbGVjdGVkSXRlbXMoKSkgfHxcbiAgICAgICAgICAgICAgKGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlR5cGVMZXZlbCAmJiAhdGhpcy5oYXNTZWxlY3RlZEl0ZW1zKCkpKSxcbiAgICAgICAgKVxuICAgICAgICAubWFwKGFzeW5jIChhKSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNIaWRkZW4gPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5oaWRkZW4sIHNjb3BlKTtcbiAgICAgICAgICBpZiAoaXNIaWRkZW4pIHJldHVybiBudWxsO1xuICAgICAgICAgIGNvbnN0IGRpc2FibGVkID0gYXdhaXQgdGhpcy5leHByZXNzaW9uRXZhbHVhdG9yLmV2YWx1YXRlKGEuZGlzYWJsZWQsIHNjb3BlKTtcbiAgICAgICAgICByZXR1cm4geyAuLi5hLCBkaXNhYmxlZCB9O1xuICAgICAgICB9KSxcbiAgICApO1xuICAgIHJldHVybiBhY3Rpb25zIGFzIEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW107XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRTY29wZUFjdGlvbnNDb3VudCA9IGNvbXB1dGVkPG51bWJlcj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjdGlvbnMoKS5maWx0ZXIoKGEpID0+IGEuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkKS5sZW5ndGg7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5Um93QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+XG4gICAgdGhpcy5hbGxBY3Rpb25zKCkuZmlsdGVyKChhKSA9PiBhLnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsICYmIGEucHJpb3JpdHkgPT09ICdwcmltYXJ5JyksXG4gICk7XG5cbiAgcHVibGljIGFzeW5jIHNlY29uZGFyeVJvd0FjdGlvbnMocm93RGF0YTogYW55KTogUHJvbWlzZTxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4gZ2V0KHJvd0RhdGEsIHBhdGgpLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgYWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5hbGxBY3Rpb25zKClcbiAgICAgICAgLmZpbHRlcigoYSkgPT4gYS5zY29wZSA9PT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgJiYgYS5wcmlvcml0eSA9PT0gJ3NlY29uZGFyeScpXG4gICAgICAgIC5tYXAoYXN5bmMgKGEpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0hpZGRlbiA9IGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShhLmhpZGRlbiwgc2NvcGUpO1xuICAgICAgICAgIGlmIChpc0hpZGRlbikgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY29uc3QgZGlzYWJsZWQgPSBhd2FpdCB0aGlzLmV4cHJlc3Npb25FdmFsdWF0b3IuZXZhbHVhdGUoYS5kaXNhYmxlZCwgc2NvcGUpO1xuICAgICAgICAgIHJldHVybiB7IC4uLmEsIGRpc2FibGVkIH07XG4gICAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gYWN0aW9ucy5maWx0ZXIoQm9vbGVhbikgYXMgQVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIEZpbHRlciAqKioqKioqKioqKioqKioqKiovL1xuXG4gIGZpbHRlclF1ZXJpZXMgPSBzaWduYWw8QVhQRmlsdGVyUXVlcnlbXT4oW10pO1xuXG4gIGdldCBwcm9wZXJ0aWVzKCk6IEFYUEVudGl0eVByb3BlcnR5W10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzO1xuICB9XG5cbiAgZ2V0IGZpbHRlcnNEZWYoKTogQVhQRmlsdGVyRGVmaW5pdGlvbltdIHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy5lbmFibGVkIHx8IGMub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQsXG4gICAgKTtcbiAgICByZXR1cm4gcHJvcHMubWFwKChlKSA9PiB7XG4gICAgICBjb25zdCB3aWRnZXRDb25maWcgPSB0aGlzLndpZGdldFJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgIGUuc2NoZW1hLmludGVyZmFjZT8udHlwZSBhcyBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0eXBlID0gKGUub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy53aWRnZXRUeXBlIHx8XG4gICAgICAgIHdpZGdldENvbmZpZz8uZGVmYXVsdEZpbHRlcldpZGdldE5hbWUgfHxcbiAgICAgICAgZS5zY2hlbWEuaW50ZXJmYWNlPy50eXBlKSBhcyBBWFBXaWRnZXRUeXBlc01hcFtrZXlvZiBBWFBXaWRnZXRUeXBlc01hcF07XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogZS50aXRsZSxcbiAgICAgICAgZmllbGQ6IGUubmFtZSxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnY29udGFpbnMnLFxuICAgICAgICB9LFxuICAgICAgICB3aWRnZXQ6IHsgLi4uZS5zY2hlbWEuaW50ZXJmYWNlLCBwYXRoOiBlLm5hbWUsIHR5cGUgfSxcbiAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgIGlzUGFyYW1ldHJpYzogZmFsc2UsXG4gICAgICAgIGljb246IHdpZGdldENvbmZpZz8uaWNvbixcbiAgICAgICAgZmlsdGVyVHlwZToge1xuICAgICAgICAgIGFkdmFuY2U6IGUub3B0aW9ucz8uZmlsdGVyPy5hZHZhbmNlPy5lbmFibGVkID8/IGZhbHNlLFxuICAgICAgICAgIGlubGluZTogZS5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvLyBjb25zdCB2aWV3RmlsdGVycyA9IHRoaXMudmlldygpLmNvbmRpdGlvbnMubWFwKChmKSA9PiAoe1xuICAvLyAgIGZpZWxkOiBmLm5hbWUsXG4gIC8vICAgb3BlcmF0b3I6IGYub3BlcmF0b3IsXG4gIC8vICAgdmFsdWU6IGYudmFsdWUsXG4gIC8vIH0pKTtcbiAgYXN5bmMgYXBwbHlWaWV3RmlsdGVycygpIHtcbiAgICBjb25zdCB2aWV3RmlsdGVycyA9IHRoaXMudmlldygpLmNvbmRpdGlvbnMubWFwKChmKSA9PiAoe1xuICAgICAgZmllbGQ6IGYubmFtZSxcbiAgICAgIG9wZXJhdG9yOiBmLm9wZXJhdG9yLFxuICAgICAgdmFsdWU6IGYudmFsdWUsXG4gICAgfSkpO1xuICAgIHRoaXMuZmlsdGVyUXVlcmllcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGZpbHRlcnM6IHZpZXdGaWx0ZXJzIGFzIEFYUEZpbHRlclF1ZXJ5W10gfSkpO1xuICB9XG5cbiAgcmVzZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuYXBwbHlWaWV3RmlsdGVycygpO1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xuICAgIHRoaXMuZGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5zb3J0KFxuICAgICAgLi4udGhpcy5zb3J0ZWRGaWVsZHMoKVxuICAgICAgICAuZmlsdGVyKChzZikgPT4gc2YuZGlyKVxuICAgICAgICAubWFwKChzKSA9PiAoeyBkaXI6IHMuZGlyLCBmaWVsZDogcy5uYW1lIH0pIGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pLFxuICAgICk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKFxuICAgICAgdGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKHtcbiAgICAgICAgZmllbGQ6IG51bGwgYXMgYW55LFxuICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJRdWVyaWVzKCkgYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uW10sXG4gICAgICB9KSxcbiAgICApO1xuICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvLyoqKioqKioqKioqKioqKioqKiBDb2x1bW5zICoqKioqKioqKioqKioqKioqKi8vXG5cbiAgcHJpdmF0ZSBhbGxBdmFpbGFibGVDb2x1bW5zID0gKCk6IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10gPT4ge1xuICAgIGNvbnN0IHsgY29sdW1ucyA9IFtdLCBwcm9wZXJ0aWVzIH0gPSB0aGlzLmVudGl0eURlZjtcbiAgICBjb25zdCB2aXNpYmxlUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKCh7IHNjaGVtYSB9KSA9PiAhc2NoZW1hPy5oaWRkZW4pO1xuICAgIGNvbnN0IHZpc2libGVQcm9wTmFtZXMgPSBuZXcgU2V0KHZpc2libGVQcm9wZXJ0aWVzLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpKTtcbiAgICByZXR1cm4gY29sdW1uc1xuICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+IHZpc2libGVQcm9wTmFtZXMuaGFzKG5hbWUpKVxuICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5ID0gdmlzaWJsZVByb3BlcnRpZXMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IGNvbHVtbi5uYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbChwcm9wZXJ0eSEsIGNvbHVtbik7XG4gICAgICB9KTtcbiAgfTtcblxuICB2aXNpYmxlQ29sdW1uQ291bnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpLmZpbHRlcigoYykgPT4gYy52aXNpYmxlID09IHRydWUpLmxlbmd0aDtcbiAgfTtcblxuICBjb2x1bW5zID0gc2lnbmFsPEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10+KFtdKTtcblxuICByZXNldENvbHVtbnMoKSB7XG4gICAgdGhpcy5hcHBseVZpZXdDb2x1bW5zKCk7XG4gIH1cblxuICBhc3luYyBvbkNvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsW10pIHtcbiAgICB0aGlzLnNhdmVTZXR0aW5ncygnY29sdW1uT3JkZXJzJywgY29sdW1ucyk7XG4gIH1cblxuICBhcHBseVZpZXdDb2x1bW5zKCkge1xuICAgIGNvbnN0IGNvbHMgPSB0aGlzLnZpZXcoKS5jb2x1bW5zO1xuICAgIGNvbnN0IGNsb25lZCA9IHRoaXMuYWxsQXZhaWxhYmxlQ29sdW1ucygpLm1hcCgoYykgPT4ge1xuICAgICAgY29uc3QgY29sdW1uID0gdGhpcy5lbnRpdHlEZWYuY29sdW1ucz8uZmluZCgoY2MpID0+IGNjLm5hbWUgPT0gYy5uYW1lKTtcbiAgICAgIGNvbnN0IHByb3AgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbmQoKHApID0+IHAubmFtZSA9PSBjLm5hbWUpO1xuICAgICAgY29uc3QgY29sID0gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHByb3AhLCBjb2x1bW4hKTtcbiAgICAgIGNvbC52aXNpYmxlID0gIWNvbHMuc29tZSgoYykgPT4gYyA9PSBjb2wubmFtZSkgJiYgY29sLnZpc2libGUgIT0gZmFsc2U7XG4gICAgICByZXR1cm4gY29sO1xuICAgIH0pO1xuICAgIHRoaXMuY29sdW1ucy5zZXQoY2xvbmVkKTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqIFNvcnQgKioqKioqKioqKioqKioqKioqLy9cblxuICBzb3J0YWJsZUZpZWxkcyA9ICgpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKChjKSA9PiBjLm9wdGlvbnM/LnNvcnQ/LmVuYWJsZWQpO1xuICAgIHJldHVybiBwcm9wcy5tYXAoKGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGUubmFtZSxcbiAgICAgICAgdGl0bGU6IGUudGl0bGUsXG4gICAgICAgIGRpcjogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICBzb3J0YWJsZUZpZWxkc0NvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5zb3J0Py5lbmFibGVkKS5sZW5ndGggPz8gMDtcbiAgfTtcblxuICBjYW5Tb3J0ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRhYmxlRmllbGRzQ291bnQoKSA+IDA7XG4gIH07XG5cbiAgY2FuQWRkTW9yZVNvcnQgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydGVkQ291bnQoKSA8IHRoaXMuc29ydGFibGVGaWVsZHNDb3VudCgpO1xuICB9O1xuXG4gIHNvcnRlZENvdW50ID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnNvcnRlZEZpZWxkcygpLmZpbHRlcigoaSkgPT4gaS5kaXIpLmxlbmd0aDtcbiAgfTtcblxuICBzb3J0ZWRGaWVsZHMgPSBzaWduYWw8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdTb3J0UHJvcFZpZXdNb2RlbFtdPihbXSk7XG5cbiAgcmVzZXRTb3J0cygpIHtcbiAgICB0aGlzLmFwcGx5Vmlld1NvcnRzKCk7XG4gIH1cblxuICBhcHBseVZpZXdTb3J0cygpIHtcbiAgICBjb25zdCB2aWV3U29ydHMgPSB0aGlzLnZpZXcoKS5zb3J0cztcblxuICAgIHRoaXMuc29ydGVkRmllbGRzLnVwZGF0ZSgocHJldikgPT4ge1xuICAgICAgY29uc3Qgdmlld1NvcnRzTWFwID0gbmV3IE1hcCh2aWV3U29ydHMubWFwKCh2cykgPT4gW3ZzLm5hbWUsIHZzXSkpO1xuICAgICAgcmV0dXJuIHByZXYubWFwKChzZikgPT4ge1xuICAgICAgICBjb25zdCB1cGRhdGVkU29ydCA9IHZpZXdTb3J0c01hcC5nZXQoc2YubmFtZSk7XG4gICAgICAgIGlmICh1cGRhdGVkU29ydCkge1xuICAgICAgICAgIHJldHVybiB7IC4uLnVwZGF0ZWRTb3J0LCB0aXRsZTogc2YudGl0bGUgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2Y7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vKioqKioqKioqKioqKioqKioqICBDb21tYW5kcyAqKioqKioqKioqKioqKioqKiovL1xuICBwdWJsaWMgYXN5bmMgZXhlY3V0ZUNvbW1hbmQoY29tbWFuZE5hbWU6IHN0cmluZywgZGF0YTogYW55ID0gbnVsbCkge1xuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWxsQWN0aW9ucygpLmZpbmQoKGMpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGMubmFtZSA9PSBjb21tYW5kTmFtZSAmJlxuICAgICAgICAoKHRoaXMuc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCAmJiAhZGF0YSAvLyBhZGRlZCBieSBBcmFzaFxuICAgICAgICAgID8gYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWRcbiAgICAgICAgICA6IGMuc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwpIHx8XG4gICAgICAgICAgYy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsKVxuICAgICAgKTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21tYW5kID0gY29tbWFuZE5hbWUuc3BsaXQoJyYnKVswXTtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb25zKGFjdGlvbj8ub3B0aW9ucywgZGF0YSk7XG4gICAgYXdhaXQgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgIGVudGl0eTogZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlLFxuICAgICAgZW50aXR5SW5mbzoge1xuICAgICAgICBuYW1lOiB0aGlzLmVudGl0eURlZi5uYW1lLFxuICAgICAgICBtb2R1bGU6IHRoaXMuZW50aXR5RGVmLm1vZHVsZSxcbiAgICAgICAgdGl0bGU6IHRoaXMuZW50aXR5RGVmLnRpdGxlLFxuICAgICAgICBwYXJlbnRLZXk6IHRoaXMuZW50aXR5RGVmLnBhcmVudEtleSxcbiAgICAgICAgc291cmNlOiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXG4gICAgICB9LFxuICAgICAgZGF0YTogYWN0aW9uPy5zY29wZSA9PSBBWFBFbnRpdHlDb21tYW5kU2NvcGUuU2VsZWN0ZWQgPyB0aGlzLnNlbGVjdGVkSXRlbXMoKSA6IGRhdGEsXG4gICAgICBvcHRpb25zOiBvcHRpb25zLFxuICAgICAgbWV0YWRhdGE6IGFjdGlvbj8ubWV0YWRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlRXhwcmVzc2lvbnMgPSBhc3luYyAob3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgZGF0YTogYW55KSA9PiB7XG4gICAgY29uc3Qgc2NvcGU6IEFYUEV4cHJlc3Npb25FdmFsdWF0b3JTY29wZSA9IHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgZXZhbDogKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBnZXQoZGF0YSwgcGF0aCk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhwcmVzc2lvbkV2YWx1YXRvci5ldmFsdWF0ZShvcHRpb25zLCBzY29wZSk7XG4gIH07XG5cbiAgYXN5bmMgZXhlY3V0ZShjb21tYW5kOiBBWFBFeGVjdXRlQ29tbWFuZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHN3aXRjaCAoY29tbWFuZD8ubmFtZSkge1xuICAgICAgY2FzZSAnbmF2aWdhdGUnOlxuICAgICAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ25hdmlnYXRlJywge1xuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBhdGg6IGNvbW1hbmQub3B0aW9ucz8uWydwYXRoJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5leGVjdXRlQ29tbWFuZChjb21tYW5kLm5hbWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvL1xuICBkZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TGlzdFZpZXdNb2RlbEZhY3Rvcnkge1xuICBwcml2YXRlIGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgbGF5b3V0ID0gaW5qZWN0KEFYUExheW91dFRoZW1lU2VydmljZSk7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUobW9kdWxlTmFtZTogc3RyaW5nLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUEVudGl0eU1hc3Rlckxpc3RWaWV3TW9kZWw+IHtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJMaXN0Vmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIGNvbmZpZyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4+ID0gKFxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcbiAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXG4gIHNlcnZpY2U6IEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5ID0gaW5qZWN0KEFYUEVudGl0eUxpc3RWaWV3TW9kZWxGYWN0b3J5KSxcbik6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyTGlzdFZpZXdNb2RlbD4gPT4ge1xuICBjb25zdCBtb2R1bGVOYW1lID0gcm91dGUucGFyZW50Py5wYXJhbU1hcC5nZXQoJ21vZHVsZScpIGFzIHN0cmluZztcbiAgY29uc3QgZW50aXR5TmFtZSA9IHJvdXRlLnBhcmFtTWFwLmdldCgnZW50aXR5JykgYXMgc3RyaW5nO1xuICAvL1xuICByZXR1cm4gc2VydmljZS5jcmVhdGUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG59O1xuIl19","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.0.7\", ngImport: i0, type: AXPEntityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityPerformDeleteAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityPerformDeleteAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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);\n this.title = signal(this.property.title);\n this.description = signal(this.property.description);\n this.editable = computed(() => {\n return !(this.property.schema.readonly ?? false);\n });\n this.isRequired = computed(() => {\n return this.property.validations?.some((c) => c.rule == 'required') || false;\n });\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 });\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 });\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);\n this.context = signal(cloneDeep(this.entityData));\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 });\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.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityMasterUpdateViewModelFactory, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci11cGRhdGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBc0QsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0csT0FBTyxFQUEyQixhQUFhLEVBQWlCLE1BQU0saUNBQWlDLENBQUM7QUFDeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUVoRixNQUFNLE9BQU8scUNBQXFDO0lBQ2hELFlBQ1UsTUFBaUIsRUFDakIsUUFBMkI7UUFEM0IsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUdyQyxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUU7WUFDaEMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBRUgsZUFBVSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO1FBRUgsV0FBTSxHQUFHLFFBQVEsQ0FBdUIsR0FBRyxFQUFFO1lBQzNDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pILE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBVyxDQUFDO1lBQzdELEdBQUcsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTyxNQUE4QixDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBSSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7WUFDakMsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtnQkFDdkMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO2dCQUN6QixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7Z0JBQ3ZDLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUU7b0JBQ3hDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7aUJBQy9HLENBQUM7YUFDYyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBckNBLENBQUM7Q0FzQ0w7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0lBTXpDLDhDQUE4QztJQUM5QyxJQUFZLFVBQVU7UUFDcEIsT0FBUSxJQUFJLENBQUMsTUFBYyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVksVUFBVTtRQUNwQixPQUFRLElBQUksQ0FBQyxNQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFJRCxZQUNVLFFBQWtCLEVBQ2xCLE1BQWlCLEVBQ2pCLFVBQWUsRUFDZixLQUFlO1FBSGYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBeEJqQixjQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELG1CQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQXNDdkQsaUJBQVksR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFdEMsWUFBTyxHQUFHLE1BQU0sQ0FBTSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFekQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUM7WUFDOUcsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUF4QkQsOEJBQThCO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDaEQsSUFBSSxFQUFFLE1BQU07Z0JBQ1osSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2dCQUM5QixRQUFRLEVBQUU7b0JBQ1IsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxRQUFRO29CQUM1QyxJQUFJLEVBQUUsWUFBWTtpQkFDbkI7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQWFNLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQztZQUM1QyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxPQUFtQixDQUFDO2dCQUNyQyxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDcEIsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNoRCxJQUFJLEVBQUUsTUFBTTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFHRCxNQUFNLE9BQU8scUNBQXFDO0lBRGxEO1FBRVUsa0JBQWEsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztLQW9CckM7SUFsQlEsS0FBSyxDQUFDLE1BQU0sQ0FDakIsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsRUFBVSxFQUNWLEtBQWU7UUFFZixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFtQixDQUFDO1lBQ3RELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEMsT0FBTyxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekMsQ0FBQzs4R0F0QlUscUNBQXFDO2tIQUFyQyxxQ0FBcUMsY0FEeEIsTUFBTTs7MkZBQ25CLHFDQUFxQztrQkFEakQsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBFbnRpdHksIEFYUEVudGl0eVByb3BlcnR5LCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQTG9ja1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSwgQVhQUGFnZVN0YXR1cywgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQTGF5b3V0VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS90aGVtZXMvc2hhcmVkJztcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlNYXN0ZXJVcGRhdGVFbGVtZW50Vmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHByb3BlcnR5OiBBWFBFbnRpdHlQcm9wZXJ0eSxcbiAgKSB7fVxuXG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgdGl0bGUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS50aXRsZSk7XG4gIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xuXG4gIGVkaXRhYmxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhKHRoaXMucHJvcGVydHkuc2NoZW1hLnJlYWRvbmx5ID8/IGZhbHNlKTtcbiAgfSk7XG5cbiAgaXNSZXF1aXJlZCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucz8uc29tZSgoYykgPT4gYy5ydWxlID09ICdyZXF1aXJlZCcpIHx8IGZhbHNlO1xuICB9KTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZVByb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8uZmluZCgoYykgPT4gYy5uYW1lID09IHRoaXMucHJvcGVydHkubmFtZSk7XG4gICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHVwZGF0ZVByb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XG4gICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xuICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB3aWRnZXQudHlwZSxcbiAgICAgIG1vZGU6IHRoaXMuZWRpdGFibGUoKSA/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.0.7\", ngImport: i0, type: AXPEntityModifySectionPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityModifySectionPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityModifyConfirmedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityModifyConfirmedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 { AXPEntityCommandScope, getEntityInfo, } from '@acorex/platform/common';\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, 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);\n this.isLoading = signal(false);\n this.title = computed(() => {\n return this.group.title ?? this.group.id;\n });\n this.description = computed(() => {\n return this.group.description;\n });\n this.layout = computed(() => {\n const source = cloneDeep(this.section.layout ?? {});\n set(source, 'positions.default.colSpan', 12);\n return source;\n });\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 });\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 });\n this.editable = computed(() => {\n return this.editableProps().length > 0;\n });\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);\n this.path = signal(this.propertyView.dataPath ?? this.property.name);\n this.title = signal(this.property.title);\n this.showLabel = signal(this.propertyView.layout?.label?.visible != false);\n this.description = signal(this.property.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 });\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 });\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.context = signal(cloneDeep(this.entityData));\n this.actions = computed(() => {\n return (this.entityDef.interfaces?.master?.single?.actions?.map((tr) => new AXPEntityCommandTriggerViewModel(this.entityDef, tr)) ?? []);\n });\n this.primaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'primary');\n });\n this.secondaryActions = computed(() => {\n return this.actions().filter((c) => c.priority == 'secondary');\n });\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 });\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 });\n //****************** Description ******************//\n this.description = computed(() => {\n return this._viewDef.description\n ? this.formatService.format(this._viewDef.description, 'string', this.context())\n : null;\n });\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 });\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 });\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 == command);\n this.workflow.execute(command, {\n entity: getEntityInfo(this.entityDef).source,\n data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null,\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.0.7\", ngImport: i0, type: AXPEntityDetailViewModelFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityDetailViewModelFactory, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBRUwscUJBQXFCLEVBSXJCLGFBQWEsR0FDZCxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRTNFLE1BQU0sT0FBTyx1Q0FBdUM7SUFDbEQsWUFDVSxNQUFpQixFQUNqQixPQUE2QjtRQUQ3QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBR3ZDLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUUsQ0FBQztRQUNsRSxTQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQixVQUFLLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0JBQVcsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUNyRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsV0FBTSxHQUFHLFFBQVEsQ0FBdUIsR0FBRyxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQVcsQ0FBQztZQUM5RCxHQUFHLENBQUMsTUFBTSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE9BQU8sTUFBOEIsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUVILFVBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BCLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxNQUFNLGVBQWUsR0FBRyxVQUFVO2lCQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztpQkFDNUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFM0IsTUFBTSxjQUFjLEdBQ2xCLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJHLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxNQUFNLHFCQUFxQixHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFcEcsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUMxQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQzVCLE9BQU8sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUkscUJBQXFCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN0RixDQUFDO1lBRUYsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUkscUNBQXFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RyxDQUFDLENBQUMsQ0FBQztRQUVILGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUE5Q0EsQ0FBQztDQStDTDtBQUVELE1BQU0sT0FBTyxxQ0FBcUM7SUFDaEQsWUFDVSxNQUFpQixFQUNqQixPQUFnRCxFQUNoRCxZQUFtQztRQUZuQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQXlDO1FBQ2hELGlCQUFZLEdBQVosWUFBWSxDQUF1QjtRQUdyQyxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDekYsU0FBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRSxVQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3RFLGdCQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEQsV0FBTSxHQUFHLFFBQVEsQ0FBdUIsR0FBRyxFQUFFO1lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9HLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBVyxDQUFDO1lBQzNELEdBQUcsQ0FBQyxNQUFNLEVBQUUsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0MsT0FBTyxNQUE4QixDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBSSxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTyxDQUFDO1lBQ3JDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFVLENBQUM7WUFDakMsT0FBTztnQkFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztnQkFDdkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlO2dCQUN2QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDO2FBQ3pCLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUE1QkEsQ0FBQztDQTZCTDtBQUVELE1BQU0sT0FBTyw4QkFBOEI7SUFVekMsWUFDVSxRQUFrQixFQUNsQixNQUFpQixFQUNqQixVQUFlO1FBRmYsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFaUixjQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUUsQ0FBQztRQUNwQyxhQUFRLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUUsQ0FBQztRQUNqRSxZQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxrQkFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3pDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBaUNyRCxZQUFPLEdBQUcsTUFBTSxDQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUVqRCxZQUFPLEdBQUcsUUFBUSxDQUFxQyxHQUFHLEVBQUU7WUFDbEUsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FDckQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksZ0NBQWdDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FDakUsSUFBSSxFQUFFLENBQ1IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUksbUJBQWMsR0FBRyxRQUFRLENBQXFDLEdBQUcsRUFBRTtZQUN4RSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksU0FBUyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSSxxQkFBZ0IsR0FBRyxRQUFRLENBQXFDLEdBQUcsRUFBRTtZQUMxRSxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksV0FBVyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7UUFFSSxhQUFRLEdBQUcsUUFBUSxDQUE0QyxHQUFHLEVBQUU7WUFDekUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2xELE1BQU0sU0FBUyxHQUFHLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFeEYsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUMxQyxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUNyRixDQUFDO1lBRUYsTUFBTSxNQUFNLEdBQ1YsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUN0RCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQ3pELElBQUksRUFBRSxDQUFDO1lBRVYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHVDQUF1QyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDLENBQUMsQ0FBQztRQVVILCtDQUErQztRQUN4QyxVQUFLLEdBQUcsUUFBUSxDQUFTLEdBQUcsRUFBRTtZQUNuQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDekcsSUFBSSxlQUFlLEdBQUcsY0FBYyxDQUFDO1lBQ3JDLElBQUksY0FBYztnQkFBRSxlQUFlLEdBQUcsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxlQUFlLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBQ0gscURBQXFEO1FBQzlDLGdCQUFXLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUU7WUFDaEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7Z0JBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNoRixDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFFSCxxREFBcUQ7UUFDOUMsZ0JBQVcsR0FBRyxRQUFRLENBQXNCLEdBQUcsRUFBRTtZQUN0RCxPQUFPO2dCQUNMO29CQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVTtvQkFDekUsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxVQUFVO3dCQUNoQixPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPO3lCQUNwRztxQkFDRjtpQkFDRjtnQkFDRDtvQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtpQkFDcEI7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSSxvQkFBZSxHQUFHLFFBQVEsQ0FBMEMsS0FBSyxJQUFJLEVBQUU7WUFDcEYsTUFBTSxlQUFlLEdBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FDakMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksNEJBQTRCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQy9HLElBQUksRUFBRSxDQUFDO1lBRVYsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFakgsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQW1DLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7UUE3R0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO2FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtnQkFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFDN0MsQ0FBQztnQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDdEMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtpQkFDN0MsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO2FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLElBQ0UsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNO2dCQUM1RCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFDN0MsQ0FBQztnQkFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFvQ00sWUFBWTtRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDaEMsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzthQUNoRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUE2Q00sS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFtQixFQUFFLE9BQVksSUFBSTtRQUMvRCw0QkFBNEI7UUFDNUIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssdUJBQXVCLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRTtvQkFDN0MsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtvQkFDNUMsSUFBSSxFQUFFO3dCQUNKLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTt3QkFDckIsVUFBVSxFQUFHLElBQWdELENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ25HO2lCQUNGLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1IsQ0FBQztZQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUM3QixNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNO29CQUM1QyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSTtpQkFDaEYsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEwQjtRQUN0QyxRQUFRLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLFVBQVU7Z0JBQ2IsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7b0JBQ3RDLE9BQU8sRUFBRTt3QkFDUCxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztxQkFDaEM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuRCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxFQUFFO0lBQ0YsRUFBRTtJQUNGLE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztDQUNGO0FBR0QsTUFBTSxPQUFPLCtCQUErQjtJQUQ1QztRQUVVLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDM0QsV0FBTSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FjckM7SUFaUSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQWtCLEVBQUUsVUFBa0IsRUFBRSxFQUFVO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQW1CLENBQUM7WUFDdEQsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QyxPQUFPLElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBaEJVLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW9CbEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXVELENBQ2xHLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQTJDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUN6QyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHksXG4gIEFYUEVudGl0eUNvbW1hbmRTY29wZSxcbiAgQVhQRW50aXR5UHJvcGVydHlWaWV3LFxuICBBWFBFbnRpdHlTZWN0aW9uVmlldyxcbiAgQVhQR3JpZExheW91dE9wdGlvbnMsXG4gIGdldEVudGl0eUluZm8sXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEJyZWFkY3J1bWJJdGVtLCBBWFBFeGVjdXRlQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBMYXlvdXRUaGVtZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3RoZW1lcy9zaGFyZWQnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjbG9uZURlZXAsIG1lcmdlLCBzZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsIH0gZnJvbSAnLi9lbnRpdHktZGV0YWlsLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCB9IGZyb20gJy4vZW50aXR5LnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWxldGVkRXZlbnQgfSBmcm9tICcuL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eU1vZGlmeUV2ZW50IH0gZnJvbSAnLi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3cnO1xuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3LFxuICApIHt9XG5cbiAgZ3JvdXAgPSB0aGlzLmVudGl0eS5ncm91cHM/LmZpbmQoKGMpID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XG4gIGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC50aXRsZSA/PyB0aGlzLmdyb3VwLmlkO1xuICB9KTtcblxuICBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcbiAgfSk7XG5cbiAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcbiAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xuICAgIHNldChzb3VyY2UsICdwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuJywgMTIpO1xuICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XG4gIH0pO1xuXG4gIHByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgcHJvcGVydGllcywgaW50ZXJmYWNlcyB9ID0gdGhpcy5lbnRpdHk7XG4gICAgY29uc3QgZ3JvdXBQcm9wZXJ0aWVzID0gcHJvcGVydGllc1xuICAgICAgLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbilcbiAgICAgIC5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKTtcblxuICAgIGNvbnN0IHZpZXdQcm9wZXJ0aWVzID1cbiAgICAgIGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoKHsgbmFtZSB9KSA9PiBncm91cFByb3BlcnRpZXMuaW5jbHVkZXMobmFtZSkpID8/IFtdO1xuXG4gICAgcmV0dXJuIHZpZXdQcm9wZXJ0aWVzLm1hcCgocHJvcCkgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApKTtcbiAgfSk7XG5cbiAgZWRpdGFibGVQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IHByb3BlcnRpZXMsIGludGVyZmFjZXMgfSA9IHRoaXMuZW50aXR5O1xuICAgIGNvbnN0IGVkaXRhYmxlUHJvcGVydHlOYW1lcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8udXBkYXRlPy5wcm9wZXJ0aWVzPy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXTtcblxuICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+XG4gICAgICAgIGdyb3VwSWQgPT09IHRoaXMuZ3JvdXAuaWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgZWRpdGFibGVQcm9wZXJ0eU5hbWVzLmluY2x1ZGVzKG5hbWUpLFxuICAgICk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wZXJ0aWVzLm1hcCgocHJvcCkgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApKTtcbiAgfSk7XG5cbiAgZWRpdGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdGFibGVQcm9wcygpLmxlbmd0aCA+IDA7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksXG4gICAgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwsXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVZpZXc6IEFYUEVudGl0eVByb3BlcnR5VmlldyxcbiAgKSB7fVxuXG4gIHByaXZhdGUgcHJvcGVydHkgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Vmlldy5uYW1lKSE7XG4gIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcbiAgcGF0aCA9IHNpZ25hbCh0aGlzLnByb3BlcnR5Vmlldy5kYXRhUGF0aCA/PyB0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcbiAgc2hvd0xhYmVsID0gc2lnbmFsKHRoaXMucHJvcGVydHlWaWV3LmxheW91dD8ubGFiZWw/LnZpc2libGUgIT0gZmFsc2UpO1xuICBkZXNjcmlwdGlvbiA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LmRlc2NyaXB0aW9uKTtcblxuICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xuICAgIGNvbnN0IHZpZXdQcm9wID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/LmZpbmQoKGMpID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Lm5hbWUpO1xuICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh2aWV3UHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XG4gICAgc2V0KHNvdXJjZSwgJ3Bvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW4nLCAxMik7XG4gICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcbiAgfSk7XG5cbiAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcbiAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XG4gICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxuICAgICAgbW9kZTogJ3ZpZXcnLFxuICAgICAgcGF0aDogdGhpcy5wYXRoKCksXG4gICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxuICAgICAgZm9ybXVsYTogd2lkZ2V0LmZvcm11bGEsXG4gICAgICB2YWx1ZVRyYW5zZm9ybXM6IHdpZGdldC52YWx1ZVRyYW5zZm9ybXMsXG4gICAgICBvcHRpb25zOiBtZXJnZShzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zKSxcbiAgICB9IGFzIEFYUFdpZGdldE5vZGU7XG4gIH0pO1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRpdHlEZWYgPSBjbG9uZURlZXAodGhpcy5jb25maWcpITtcbiAgcHJpdmF0ZSByZWFkb25seSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSkhO1xuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZm9ybWF0U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRW50aXR5U2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBjb25maWc6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIGVudGl0eURhdGE6IGFueSxcbiAgKSB7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gZ2V0RW50aXR5SW5mbyh0aGlzLmVudGl0eURlZikuc291cmNlICYmXG4gICAgICAgICAgZXZlbnQucGF5bG9hZC5pZHMuaW5jbHVkZXModGhpcy5jb250ZXh0KCkuaWQpXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XG4gICAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXG4gICAgICAucGlwZShvZlR5cGUoQVhQRW50aXR5TW9kaWZ5RXZlbnQpKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSlcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSBnZXRFbnRpdHlJbmZvKHRoaXMuZW50aXR5RGVmKS5zb3VyY2UgJiZcbiAgICAgICAgICBldmVudC5wYXlsb2FkLnZhbHVlcy5pZCA9PT0gdGhpcy5jb250ZXh0KCkuaWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jb250ZXh0LnNldChldmVudC5wYXlsb2FkLnZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbnRleHQgPSBzaWduYWw8YW55PihjbG9uZURlZXAodGhpcy5lbnRpdHlEYXRhKSk7XG5cbiAgcHJpdmF0ZSBhY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uYWN0aW9ucz8ubWFwKFxuICAgICAgICAodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpLFxuICAgICAgKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKChjKSA9PiBjLnByaW9yaXR5ID09ICdwcmltYXJ5Jyk7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZWNvbmRhcnlBY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5Q29tbWFuZFRyaWdnZXJWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMoKS5maWx0ZXIoKGMpID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xuICB9KTtcblxuICBwdWJsaWMgc2VjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWxbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgcHJvcGVydGllcyB9ID0gdGhpcy5lbnRpdHlEZWY7XG4gICAgY29uc3Qgdmlld1Byb3BzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/Lm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpID8/IFtdO1xuXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAoeyBncm91cElkLCBzY2hlbWEsIG5hbWUgfSkgPT4gZ3JvdXBJZCAmJiAhc2NoZW1hLmhpZGRlbiAmJiB2aWV3UHJvcHMuaW5jbHVkZXMobmFtZSksXG4gICAgKTtcblxuICAgIGNvbnN0IGdyb3VwcyA9XG4gICAgICBpbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8uc2VjdGlvbnM/LmZpbHRlcigoeyBpZCB9KSA9PlxuICAgICAgICBmaWx0ZXJlZFByb3BlcnRpZXMuc29tZSgoeyBncm91cElkIH0pID0+IGdyb3VwSWQgPT09IGlkKSxcbiAgICAgICkgPz8gW107XG5cbiAgICByZXR1cm4gZ3JvdXBzLm1hcCgoc2VjdGlvbikgPT4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbikpO1xuICB9KTtcblxuICBwdWJsaWMgbmF2aWdhdGVUb1VwKCkge1xuICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbmF2aWdhdGUnLCB7XG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIHBhdGg6IHRoaXMuZW50aXR5U2VydmljZS5jcmVhdGVQYXRoKHRoaXMuZW50aXR5RGVmLm1vZHVsZSwgdGhpcy5lbnRpdHlEZWYubmFtZSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogVGl0bGUgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3Qgc3VnZ2VzdGVkUHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IFsndGl0bGUnLCAnbmFtZScsICdjb2RlJ10uaW5jbHVkZXMoYy5uYW1lKSk7XG4gICAgbGV0IHN1Z2dlc3RlZEZvcm1hdCA9ICdJdGVtICN7e2lkfX0nO1xuICAgIGlmIChzdWdnZXN0ZWRQcm9wcykgc3VnZ2VzdGVkRm9ybWF0ID0gYHt7JHtzdWdnZXN0ZWRQcm9wcy5uYW1lfX19YDtcbiAgICByZXR1cm4gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl92aWV3RGVmLnRpdGxlID8/IHN1Z2dlc3RlZEZvcm1hdCwgJ3N0cmluZycsIHRoaXMuY29udGV4dCgpKTtcbiAgfSk7XG4gIC8vKioqKioqKioqKioqKioqKioqIERlc2NyaXB0aW9uICoqKioqKioqKioqKioqKioqKi8vXG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvblxuICAgICAgPyB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYuZGVzY3JpcHRpb24sICdzdHJpbmcnLCB0aGlzLmNvbnRleHQoKSlcbiAgICAgIDogbnVsbDtcbiAgfSk7XG5cbiAgLy8qKioqKioqKioqKioqKioqKiogQmVhcmRjcnVtYnMgKioqKioqKioqKioqKioqKioqLy9cbiAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQnJlYWRjcnVtYkl0ZW1bXT4oKCkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi5mb3JtYXRzLnBsdXJhbCA/PyB0aGlzLmVudGl0eURlZi5mb3JtYXRzLmluZGl2aWR1YWwsXG4gICAgICAgIGNvbW1hbmQ6IHtcbiAgICAgICAgICBuYW1lOiAnbmF2aWdhdGUnLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIHBhdGg6IGAvJHt0aGlzLnNlc3Npb24uYXBwbGljYXRpb24/Lm5hbWV9L20vJHt0aGlzLmVudGl0eURlZi5tb2R1bGV9L2UvJHt0aGlzLmVudGl0eURlZi5uYW1lfS9saXN0YCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUoKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG5cbiAgcHVibGljIHJlbGF0ZWRFbnRpdGllcyA9IGNvbXB1dGVkPFByb21pc2U8QVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbFtdPj4oYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHJlbGF0ZWRFbnRpdGllcyA9XG4gICAgICB0aGlzLmVudGl0eURlZi5yZWxhdGVkRW50aXRpZXM/Lm1hcChcbiAgICAgICAgKHJlKSA9PiBuZXcgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCByZSwgeyBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLCBkYXRhOiB0aGlzLmVudGl0eURhdGEgfSksXG4gICAgICApID8/IFtdO1xuXG4gICAgY29uc3QgZmlsdGVyZWRFbnRpdGllcyA9IGF3YWl0IFByb21pc2UuYWxsKHJlbGF0ZWRFbnRpdGllcy5tYXAoYXN5bmMgKHJlKSA9PiAoKGF3YWl0IHJlLmhpZGRlbigpKSA/IG51bGwgOiByZSkpKTtcblxuICAgIHJldHVybiBmaWx0ZXJlZEVudGl0aWVzLmZpbHRlcigocmUpID0+IHJlICE9PSBudWxsKSBhcyBBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsW107XG4gIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlQ29tbWFuZChjb21tYW5kTmFtZTogc3RyaW5nLCBkYXRhOiBhbnkgPSBudWxsKSB7XG4gICAgLy9UT0RPOiBzeW50YWN0IGZvciB3b3JrZmxvd1xuICAgIGNvbnN0IGNvbW1hbmQgPSBjb21tYW5kTmFtZS5zcGxpdCgnJicpWzBdO1xuICAgIHN3aXRjaCAoY29tbWFuZCkge1xuICAgICAgY2FzZSAnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJzoge1xuICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ21vZGlmeS1lbnRpdHktc2VjdGlvbicsIHtcbiAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBpZDogdGhpcy5jb250ZXh0KCkuaWQsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOiAoZGF0YSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwpLmVkaXRhYmxlUHJvcHMoKS5tYXAoKG0pID0+IG0ubmFtZSgpKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9ucygpLmZpbmQoKGMpID0+IGMubmFtZSA9PSBjb21tYW5kKTtcbiAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmQsIHtcbiAgICAgICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICAgICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsID8gdGhpcy5jb250ZXh0KCkgOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IEFYUEV4ZWN1dGVDb21tYW5kKSB7XG4gICAgc3dpdGNoIChjb21tYW5kPy5uYW1lKSB7XG4gICAgICBjYXNlICduYXZpZ2F0ZSc6XG4gICAgICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbmF2aWdhdGUnLCB7XG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgcGF0aDogY29tbWFuZC5vcHRpb25zPy5bJ3BhdGgnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmV4ZWN1dGVDb21tYW5kKGNvbW1hbmQubmFtZSwgY29tbWFuZC5vcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIC8vXG4gIC8vXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5IHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIGxheW91dCA9IGluamVjdChBWFBMYXlvdXRUaGVtZVNlcnZpY2UpO1xuICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+IHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcbiAgICBpZiAoY29uZmlnLnF1ZXJpZXMuYnlLZXkpIHtcbiAgICAgIGNvbnN0IGZ1bmMgPSBjb25maWcucXVlcmllcy5ieUtleS5leGVjdXRlIGFzIEZ1bmN0aW9uO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGZ1bmMoaWQpO1xuICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgY29uZmlnLCBkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnY2Fubm90IGZldGNoICcpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxSZXNvbHZlcjogUmVzb2x2ZUZuPFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPj4gPSAoXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcbiAgc2VydmljZTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSA9IGluamVjdChBWFBFbnRpdHlEZXRhaWxWaWV3TW9kZWxGYWN0b3J5KSxcbik6IFByb21pc2U8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsPiA9PiB7XG4gIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xuICBjb25zdCBlbnRpdHlOYW1lID0gcm91dGUucGFyYW1NYXAuZ2V0KCdlbnRpdHknKSBhcyBzdHJpbmc7XG4gIGNvbnN0IGlkID0gcm91dGUucGFyYW1NYXAuZ2V0KCdpZCcpIGFzIHN0cmluZztcbiAgLy9cbiAgcmV0dXJuIHNlcnZpY2UuY3JlYXRlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUsIGlkKTtcbn07XG4iXX0=","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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JhZ2Utc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS1zdG9yYWdlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQVVoRixNQUFNLE9BQWdCLHVCQUF1QjtDQXlCNUM7QUFFRCxNQUFNLE9BQWdCLHFCQUFxQjtDQXNCMUM7QUFFRCxNQUFNLE9BQU8seUJBQXlCO0lBT3BDLFlBQ1UsY0FBK0YsRUFDaEcsVUFBa0I7UUFEakIsbUJBQWMsR0FBZCxjQUFjLENBQWlGO1FBQ2hHLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDdkIsQ0FBQztJQUVMLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBd0I7UUFDcEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBd0I7UUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxTQUFTLENBQUMsRUFBUSxFQUFFLFNBQTBDO1FBQzVE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QUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBQYWdlZExpc3RSZXN1bHQsIEFYUFF1ZXJ5UmVxdWVzdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQge1xuICBBWFBFbnRpdHlDcmVhdGVEdG8sXG4gIEFYUEVudGl0eURldGFpbER0byxcbiAgQVhQRW50aXR5TGlzdEl0ZW1EdG8sXG4gIEFYUEVudGl0eU1vZGVsLFxuICBBWFBFbnRpdHlVcGRhdGVEdG8sXG59IGZyb20gJy4vZW50aXR5LnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlPFxuICBUS2V5LFxuICBURGV0YWlsRHRvIGV4dGVuZHMgQVhQRW50aXR5RGV0YWlsRHRvPFRLZXk+ID0gQVhQRW50aXR5TW9kZWw8VEtleT4sXG4gIFRMaXN0SXRlbUR0byBleHRlbmRzIEFYUEVudGl0eUxpc3RJdGVtRHRvPFRLZXk+ID0gVERldGFpbER0byxcbiAgVENyZWF0ZUR0byBleHRlbmRzIEFYUEVudGl0eUNyZWF0ZUR0byA9IFREZXRhaWxEdG8sXG4gIFRVcGRhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlVcGRhdGVEdG88VEtleT4gPSBURGV0YWlsRHRvLFxuPiB7XG4gIGFic3RyYWN0IGdldCBkYk5hbWUoKTogc3RyaW5nO1xuXG4gIGFic3RyYWN0IGluaXRpYWwoZW50aXR5TmFtZTogc3RyaW5nLCBjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10gLCBvcHRpb25zPzoge1xuICAgIG1lcmdlVHlwZT86ICdtZXJnZScgfCAncmVwbGFjZSc7XG4gICAgdW5pcXVlS2V5cz86IHN0cmluZ1tdO1xuICB9KTogUHJvbWlzZTxUQ3JlYXRlRHRvW10+O1xuXG4gIGFic3RyYWN0IGdldE9uZShlbnRpdHlOYW1lOiBzdHJpbmcsIGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCB1cGRhdGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoZW50aXR5TmFtZTogc3RyaW5nLCBpZDogVEtleSk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgaW5zZXJ0T25lKGVudGl0eU5hbWU6IHN0cmluZywgZW50aXR5OiBUQ3JlYXRlRHRvKTogUHJvbWlzZTxUS2V5PjtcblxuICBhYnN0cmFjdCBnZXRBbGwoZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxUTGlzdEl0ZW1EdG9bXT47XG5cbiAgYWJzdHJhY3QgcXVlcnkoZW50aXR5TmFtZTogc3RyaW5nLCByZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYUEVudGl0eURhdGFQcm92aWRlcjxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBhYnN0cmFjdCBnZXQgZW50aXR5TmFtZSgpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgaW5pdGlhbChjb2xsZWN0aW9uOiBUQ3JlYXRlRHRvW10pOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz47XG5cbiAgYWJzdHJhY3QgZ2V0QWxsKCk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+O1xuXG4gIGFic3RyYWN0IHVwZGF0ZU9uZShpZDogVEtleSwga2V5VmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGluc2VydE9uZShlbnRpdHk6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+O1xuXG4gIGFic3RyYWN0IHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4gaW1wbGVtZW50cyBBWFBFbnRpdHlEYXRhUHJvdmlkZXI8VEtleSwgVERldGFpbER0bywgVExpc3RJdGVtRHRvLCBUQ3JlYXRlRHRvLCBUVXBkYXRlRHRvPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlPFRLZXksIFREZXRhaWxEdG8sIFRMaXN0SXRlbUR0bywgVENyZWF0ZUR0bywgVFVwZGF0ZUR0bz4sXG4gICAgcHVibGljIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgKSB7IH1cblxuICBhc3luYyBpbml0aWFsKGNvbGxlY3Rpb246IFRDcmVhdGVEdG9bXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RvcmFnZVNlcnZpY2UuaW5pdGlhbCh0aGlzLmVudGl0eU5hbWUsIGNvbGxlY3Rpb24pO1xuICB9XG5cbiAgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0T25lKHRoaXMuZW50aXR5TmFtZSwgaWQpO1xuICB9XG5cbiAgZ2V0QWxsKCk6IFByb21pc2U8VExpc3RJdGVtRHRvW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRBbGwodGhpcy5lbnRpdHlOYW1lKTtcbiAgfVxuXG4gIHF1ZXJ5KHJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5xdWVyeSh0aGlzLmVudGl0eU5hbWUsIHJlcXVlc3QpO1xuICB9XG5cbiAgdXBkYXRlT25lKGlkOiBUS2V5LCBrZXlWYWx1ZXM6IE9taXQ8UGFydGlhbDxUVXBkYXRlRHRvPiwgJ2lkJz4pOiBQcm9taXNlPFREZXRhaWxEdG8+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS51cGRhdGVPbmUodGhpcy5lbnRpdHlOYW1lLCBpZCwga2V5VmFsdWVzKTtcbiAgfVxuXG4gIGRlbGV0ZU9uZShpZDogVEtleSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmRlbGV0ZU9uZSh0aGlzLmVudGl0eU5hbWUsIGlkKTtcbiAgfVxuXG4gIGluc2VydE9uZShlbnRpdHk6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+IHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlU2VydmljZS5pbnNlcnRPbmUodGhpcy5lbnRpdHlOYW1lLCBlbnRpdHkpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWE1FbnRpdHlDcnVkU2VydmljZTxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBURGV0YWlsRHRvLFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBhYnN0cmFjdCBpbnNlcnRPbmUocmVxdWVzdDogVENyZWF0ZUR0byk6IFByb21pc2U8VEtleT47XG5cbiAgYWJzdHJhY3QgZ2V0T25lKGlkOiBUS2V5KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBkZWxldGVPbmUoaWQ6IFRLZXkpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHVwZGF0ZU9uZShpZDogVEtleSwgdmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPjtcblxuICBhYnN0cmFjdCBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QpOiBQcm9taXNlPEFYUFBhZ2VkTGlzdFJlc3VsdDxUTGlzdEl0ZW1EdG8+Pjtcbn1cblxuZXhwb3J0IGNsYXNzIEFYTUVudGl0eUNydWRTZXJ2aWNlSW1wbDxcbiAgVEtleSxcbiAgVERldGFpbER0byBleHRlbmRzIEFYUEVudGl0eURldGFpbER0bzxUS2V5PiA9IEFYUEVudGl0eU1vZGVsPFRLZXk+LFxuICBUTGlzdEl0ZW1EdG8gZXh0ZW5kcyBBWFBFbnRpdHlMaXN0SXRlbUR0bzxUS2V5PiA9IFREZXRhaWxEdG8sXG4gIFRDcmVhdGVEdG8gZXh0ZW5kcyBBWFBFbnRpdHlDcmVhdGVEdG8gPSBPbWl0PFREZXRhaWxEdG8sICdpZCc+LFxuICBUVXBkYXRlRHRvIGV4dGVuZHMgQVhQRW50aXR5VXBkYXRlRHRvPFRLZXk+ID0gVERldGFpbER0byxcbj4ge1xuICBwcml2YXRlIF9zdG9yYWdlU2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTdG9yYWdlU2VydmljZSk7XG4gIHByaXZhdGUgZW50aXR5UmVnaXN0ZXJ5ID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xuICBwcml2YXRlIF9lbnRpdHlEYXRhUHJvdmlkZXIgPSBuZXcgQVhQRW50aXR5RGF0YVByb3ZpZGVySW1wbDxUS2V5LCBURGV0YWlsRHRvLCBUTGlzdEl0ZW1EdG8sIFRDcmVhdGVEdG8sIFRVcGRhdGVEdG8+KFxuICAgIHRoaXMuX3N0b3JhZ2VTZXJ2aWNlLFxuICAgIHRoaXMuZW50aXR5TmFtZSxcbiAgKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eU5hbWU6IHN0cmluZykgeyB9XG5cbiAgYXN5bmMgaW5zZXJ0T25lKHJlcXVlc3Q6IFRDcmVhdGVEdG8pOiBQcm9taXNlPFRLZXk+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLmluc2VydE9uZShyZXF1ZXN0KTtcbiAgfVxuXG4gIGFzeW5jIGdldE9uZShpZDogVEtleSk6IFByb21pc2U8VERldGFpbER0bz4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuZ2V0T25lKGlkKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU9uZShpZDogVEtleSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIuZGVsZXRlT25lKGlkKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU9uZShpZDogVEtleSwgdmFsdWVzOiBPbWl0PFBhcnRpYWw8VFVwZGF0ZUR0bz4sICdpZCc+KTogUHJvbWlzZTxURGV0YWlsRHRvPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eURhdGFQcm92aWRlci51cGRhdGVPbmUoaWQsIHZhbHVlcyk7XG4gIH1cblxuICBhc3luYyBxdWVyeShyZXF1ZXN0OiBBWFBRdWVyeVJlcXVlc3QgPSB7IHNraXA6IDAsIHRha2U6IDEwMCB9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IFttb2R1bGVOYW1lLCBlbnRpdHlOYW1lXSA9IHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5lbnRpdHlOYW1lLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZW50aXR5UmVmID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RlcnkucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcbiAgICBpZiAoZW50aXR5UmVmLnBhcmVudEtleSkge1xuICAgICAgaWYgKCFyZXF1ZXN0LmZpbHRlcj8uZmlsdGVycz8ubGVuZ3RoICYmIHJlcXVlc3QuZmlsdGVyPy5maWVsZCAhPT0gZW50aXR5UmVmLnBhcmVudEtleSkge1xuICAgICAgICByZXF1ZXN0LmZpbHRlciA9IHtcbiAgICAgICAgICB2YWx1ZTogdHJ1ZSxcbiAgICAgICAgICBmaWVsZDogZW50aXR5UmVmLnBhcmVudEtleSxcbiAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgdHlwZTogJ2lzRW1wdHknLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIucXVlcnkocmVxdWVzdCk7XG4gIH1cblxuICBhc3luYyBnZXRSb290cyhyZXF1ZXN0OiB7fSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBxdWVyeVJlcXVlc3Q6IEFYUFF1ZXJ5UmVxdWVzdCA9IHtcbiAgICAgIHNraXA6IDAsXG4gICAgICB0YWtlOiAxMDAwLFxuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIHZhbHVlOiB0cnVlLFxuICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnaXNFbXB0eScsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLl9lbnRpdHlEYXRhUHJvdmlkZXIucXVlcnkocXVlcnlSZXF1ZXN0KTtcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBhc3luYyBnZXRDaGlsZHJlbihyZXF1ZXN0OiB7IHBhcmVudElkOiBUS2V5LCBwYXJlbnRLZXk/OiBzdHJpbmcgfSk6IFByb21pc2U8QVhQUGFnZWRMaXN0UmVzdWx0PFRMaXN0SXRlbUR0bz4+IHtcbiAgICBjb25zdCBwYXJlbnRLZXkgPSByZXF1ZXN0LnBhcmVudEtleSA/PyAncGFyZW50SWQnO1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QucGFyZW50SWQsXG4gICAgICAgIGZpZWxkOiBwYXJlbnRLZXksXG4gICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2VudGl0eURhdGFQcm92aWRlci5xdWVyeShxdWVyeVJlcXVlc3QpO1xuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIGdldEJ5Q2F0ZWdvcnkocmVxdWVzdDogeyBjYXRlZ29yeUlkOiBUS2V5LCBjYXRlZ29yeUtleT86IHN0cmluZyB9KTogUHJvbWlzZTxBWFBQYWdlZExpc3RSZXN1bHQ8VExpc3RJdGVtRHRvPj4ge1xuICAgIGNvbnN0IHF1ZXJ5UmVxdWVzdDogQVhQUXVlcnlSZXF1ZXN0ID0ge1xuICAgICAgc2tpcDogMCxcbiAgICAgIHRha2U6IDEwMDAsXG4gICAgICBmaWx0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHJlcXVlc3QuY2F0ZWdvcnlJZCxcbiAgICAgICAgZmllbGQ6IHJlcXVlc3QuY2F0ZWdvcnlLZXkgPz8gJ2NhdGVnb3J5SWRzJyxcbiAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICB0eXBlOiAnY29udGFpbnMnLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fZW50aXR5RGF0YVByb3ZpZGVyLnF1ZXJ5KHF1ZXJ5UmVxdWVzdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldCBzdG9yYWdlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RvcmFnZVNlcnZpY2U7XG4gIH1cbn1cbiJdfQ==","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']);\n this.multiple = computed(() => this.options()['multiple']);\n this.valueField = computed(() => this.options()['valueField'] ?? 'id');\n this.textField = computed(() => this.options()['textField'] ?? 'title');\n this.badgeClass = computed(() => this.options()['badgeClass'] ?? 'ax-accent1');\n this.displayField = computed(() => {\n return this.textField() ?? this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title';\n });\n this.loading = signal(false);\n this.entityDef = signal(null);\n this.displayItems = signal([]);\n this.efEntity = effect(async () => {\n const [module, entity] = this.entity().split('.');\n this.entityDef.set(await this.entityResolver.get(module, entity));\n });\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 });\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.0.7\", ngImport: i0, type: AXPLookupWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LXZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7OztBQTBCN0MsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHVCQUE0QjtJQXhCOUU7O1FBeUJxQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4QyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBR3BELFdBQU0sR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBVyxDQUFDLENBQUM7UUFDcEUsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FB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eC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBIb3N0QmluZGluZywgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEVudGl0eVJlc29sdmVyIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XG5pbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IGNhc3RBcnJheSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheHAtbG9va3VwLXdpZGdldC12aWV3JyxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYobG9hZGluZygpKVxuICAgIHtcbiAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz5cbiAgICB9XG4gICAgQGVsc2V7XG4gICAgICAgIEBpZihkaXNwbGF5SXRlbXMoKS5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgQGZvciAoaXRlbSBvZiBkaXNwbGF5SXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YXgtYmFkZ2UgY2xhc3M9XCJheC1wLTAuNSB7e2JhZGdlQ2xhc3MoKX19XCIgIFt0ZXh0XT1cIml0ZW0udGV4dFwiID48L2F4LWJhZGdlPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAZWxzZSBpZihkaXNwbGF5SXRlbXMoKS5sZW5ndGggPT0gMSkge1xuICAgICAgICAgIDxheC1iYWRnZSBjbGFzcz1cImF4LXAtMC41IHt7YmFkZ2VDbGFzcygpfX1cIiAgW3RleHRdPVwiZGlzcGxheUl0ZW1zKClbMF0udGV4dFwiID48L2F4LWJhZGdlPlxuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LXRleHQtbXV0ZWRcIj4tLS08L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQVhMb2FkaW5nTW9kdWxlLCBBWEJhZGdlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBlbnRpdHlSZXNvbHZlciA9IGluamVjdChBWFBFbnRpdHlSZXNvbHZlcik7XG5cblxuICBwcm90ZWN0ZWQgZW50aXR5ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZW50aXR5J10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3ZhbHVlRmllbGQnXSBhcyBzdHJpbmcpID8/ICdpZCcpO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG4gIHByb3RlY3RlZCBiYWRnZUNsYXNzID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ2JhZGdlQ2xhc3MnXSBhcyBzdHJpbmcpID8/ICdheC1hY2NlbnQxJyk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnRleHRGaWVsZCgpID8/IHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMubG9va3VwID8/IHRoaXMuZW50aXR5RGVmKCk/LnByb3BlcnRpZXMuZmluZCgoYykgPT4gYy5uYW1lICE9ICdpZCcpPy5uYW1lID8/ICd0aXRsZSc7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBlbnRpdHlEZWYgPSBzaWduYWw8QVhQRW50aXR5IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG5cbiAgcHJpdmF0ZSBlZkVudGl0eSA9IGVmZmVjdChhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IHRoaXMuZW50aXR5KCkuc3BsaXQoJy4nKTtcbiAgICB0aGlzLmVudGl0eURlZi5zZXQoYXdhaXQgdGhpcy5lbnRpdHlSZXNvbHZlci5nZXQobW9kdWxlLCBlbnRpdHkpKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBlZkRpc3BsYXkgPSBlZmZlY3QoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmIChpc05pbCh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLnNldChbXSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgaXRlbXMgPSBjYXN0QXJyYXkodmFsdWUpLm1hcChhc3luYyAoaXRlbTogYW55KSA9PiBhd2FpdCB0aGlzLmV4dHJhY3RJdGVtKGl0ZW0pKTtcbiAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLnNldChhd2FpdCBQcm9taXNlLmFsbChpdGVtcykpO1xuICAgIH1cbiAgfSlcblxuXG4gIHByaXZhdGUgYXN5bmMgZXh0cmFjdEl0ZW0oaXRlbTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbVt0aGlzLnZhbHVlRmllbGQoKV0sXG4gICAgICAgIHRleHQ6IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5kaXNwbGF5RmllbGQoKSwgJ3N0cmluZycsIGl0ZW0pLFxuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGRlZiA9IHRoaXMuZW50aXR5RGVmKCk7XG4gICAgICBjb25zdCBieUtleSA9IGRlZj8ucXVlcmllcy5ieUtleT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIGlmIChieUtleSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgICBjb25zdCBmZXRjaGVkSXRlbSA9IGF3YWl0IGJ5S2V5KGl0ZW0pO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpZDogZmV0Y2hlZEl0ZW1bdGhpcy52YWx1ZUZpZWxkKCldLFxuICAgICAgICAgIHRleHQ6IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5kaXNwbGF5RmllbGQoKSwgJ3N0cmluZycsIGZldGNoZWRJdGVtKSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaWQ6IGl0ZW0sXG4gICAgICAgIHRleHQ6IGl0ZW1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgX19jbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsczogYW55ID0ge307XG4gICAgY2xzW2BheC1mbGV4YF0gPSB0cnVlO1xuICAgIGNsc1tgYXgtZ2FwLTFgXSA9IHRydWU7XG4gICAgcmV0dXJuIGNscztcbiAgfVxufVxuIl19","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 \"@angular/common\";\nimport * as i2 from \"@acorex/cdk/common\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/data-table\";\nimport * as i6 from \"@acorex/components/search-box\";\nimport * as i7 from \"@acorex/platform/layout/builder\";\nimport * as i8 from \"@acorex/core/translation\";\nexport class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {\n constructor() {\n super(...arguments);\n this.grid = viewChild('grid');\n this.initialSelectedItems = [];\n this.selectedItems = signal([]);\n this.allowSelect = computed(() => this.selectedItems().length > 0);\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.0.7\", ngImport: i0, type: AXPLookupWidgetSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: AXCommonModule }, { kind: \"directive\", type: i2.AXAutoFocusDirective, selector: \"[axAutoFocus]\", inputs: [\"axAutoFocus\", \"axAutoFocusTime\"] }, { 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: AXFormModule }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i4.AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: i4.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", 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: AXDropdownButtonModule }, { kind: \"ngmodule\", type: AXDataTableModule }, { kind: \"component\", type: i5.AXDataTableComponent, selector: \"ax-data-table\", inputs: [\"dataSource\", \"parentField\", \"rowTemplate\", \"emptyTemplate\", \"alternative\", \"showHeader\", \"fixedHeader\", \"showFooter\", \"fixedFooter\", \"itemHeight\", \"allowReordering\", \"paging\", \"fetchDataMode\", \"loading\", \"focusedRow\"], outputs: [\"selectedRowsChange\", \"focusedRowChange\", \"onRowClick\", \"onRowDbClick\", \"onColumnsOrderChanged\", \"onColumnSizeChanged\", \"onPageChanged\"] }, { kind: \"component\", type: i5.AXRowSelectColumnComponent, selector: \"ax-select-column\", inputs: [\"width\", \"caption\", \"fixed\"] }, { 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\"] }, { kind: \"ngmodule\", type: AXPLayoutBuilderModule }, { kind: \"component\", type: i7.AXPWidgetColumnRendererComponent, selector: \"axp-widget-column-renderer\", inputs: [\"caption\", \"customExpandIcon\", \"customCollapseIcon\", \"customWidth\", \"node\", \"footerTemplate\", \"expandHandler\", \"cellTemplate\", \"headerTemplate\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBaUQsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRyxPQUFPLEVBRUwsaUJBQWlCLEdBR2xCLE1BQU0sK0JBQStCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7OztBQW9GL0QsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLG1CQUFtQjtJQWxGekU7O1FBdUZZLFNBQUksR0FBRyxTQUFTLENBQXVCLE1BQU0sQ0FBQyxDQUFDO1FB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Q0FBQyxvQkFBb0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FsRVUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MsNk1BakZqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpRVQsMkRBR0MsWUFBWSxtRkFDWixjQUFjLDJKQUNkLGNBQWMsNlhBQ2QsWUFBWSw4QkFDWixpQkFBaUIsc2NBQ2pCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHltQkFDakIsaUJBQWlCLDRZQUNqQixzQkFBc0IsbVNBQ3RCLG1CQUFtQjs7MkZBSVYsZ0NBQWdDO2tCQWxGNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUVUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3FCQUNwQjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgQVhEYXRhVGFibGVDb21wb25lbnQsXG4gIEFYRGF0YVRhYmxlTW9kdWxlLFxuICBBWERhdGFUYWJsZVJvd0NsaWNrLFxuICBBWERhdGFUYWJsZVJvd0RiQ2xpY2ssXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bi1idXR0b24nO1xuaW1wb3J0IHsgQVhGb3JtTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Zvcm0nO1xuaW1wb3J0IHsgQVhCYXNlUGFnZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wYWdlJztcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB9IGZyb20gJy4vbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LXAtNCBheC1mbGV4IGF4LWZsZXgtY29sIGF4LWdhcC00ICBheC1vdmVyZmxvdy1oaWRkZW5cIj5cbiAgICAgIEBpZiAodm0uaGFzSW5saW5lRmlsdGVycygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIj5cbiAgICAgICAgICA8YXgtc2VhcmNoLWJveFxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIignd2lkZ2V0Lmxvb2t1cC5zZWFyY2gnIHwgdHJhbnNsYXRlIHwgYXN5bmMpICsgdm0uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgW2F4QXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICAgPjxheC1jbGVhci1idXR0b24+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 return func(e);\n },\n pageSize: 10,\n key: 'id',\n });\n this.canCreate = computed(() => {\n return this.entityDef.commands?.create?.execute != null;\n });\n this.parentKey = computed(() => {\n return this.entityDef.parentKey;\n });\n this.allowMultiple = computed(() => {\n return this.options.allowMultiple ?? false;\n });\n this.inlineFiltersPlaceholders = computed(() => {\n return (this.entityDef?.properties.filter((p) => p.options?.filter?.inline?.enabled).map((c) => c.title ?? c.name) ?? []);\n });\n this.hasInlineFilters = computed(() => {\n return this.inlineFiltersPlaceholders().length > 0;\n });\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}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBd0QsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RyxPQUFPLEVBQ0wscUJBQXFCLEVBRXJCLGtDQUFrQyxFQUNsQyxhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFJM0MsWUFDVSxRQUFrQixFQUNsQixTQUFvQixFQUNwQixVQU1KO1FBQ0EsYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsT0FBTyxFQUFFLEVBQUU7S0FDWjtRQWJLLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQVdaO1FBakJHLGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2pELDZCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFtQnpGLGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtn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QyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDbkQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDckIsS0FBSyxFQUFFLElBQVc7WUFDbEIsS0FBSyxFQUFFLEtBQUs7WUFDWixRQUFRLEVBQUUsSUFBVztZQUNyQixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQW1CLENBQUM7UUFDOUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VDYWxsYmFja1Jlc3VsdCwgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7XG4gIEFYUENsZWFuTmVzdGVkRmlsdGVycyxcbiAgQVhQRW50aXR5LFxuICBBWFBGaWx0ZXJPcGVyYXRvck1pZGRsZXdhcmVTZXJ2aWNlLFxuICBnZXRFbnRpdHlJbmZvLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdDb2x1bW5WaWV3TW9kZWwgfSBmcm9tICcuLi8uLi9lbnRpdHkudmlld21vZGVsJztcblxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIHtcbiAgcHJpdmF0ZSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSk7XG4gIHByaXZhdGUgZmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQRmlsdGVyT3BlcmF0b3JNaWRkbGV3YXJlU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBlbnRpdHlEZWY6IEFYUEVudGl0eSxcbiAgICBwcml2YXRlIG9wdGlvbnM6IHtcbiAgICAgIHBhcmVudEZpbHRlcnM/OiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xuICAgICAgY3VzdG9tRmlsdGVyPzogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHwgbnVsbDtcbiAgICAgIHNvcnRlZEZpZWxkcz86IHsgbmFtZTogc3RyaW5nOyBkaXI6ICdhc2MnIHwgJ2Rlc2MnIH1bXTtcbiAgICAgIGFsbG93TXVsdGlwbGU/OiBib29sZWFuO1xuICAgICAgY29sdW1ucz86IHN0cmluZ1tdO1xuICAgIH0gPSB7XG4gICAgICAgIHBhcmVudEZpbHRlcnM6IG51bGwsXG4gICAgICAgIGN1c3RvbUZpbHRlcjogbnVsbCxcbiAgICAgICAgc29ydGVkRmllbGRzOiBbXSxcbiAgICAgICAgY29sdW1uczogW10sXG4gICAgICB9LFxuICApIHsgfVxuXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcbiAgICBieUtleTogKGtleSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMuYnlLZXkuZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKCk7XG4gICAgfSxcbiAgICBsb2FkOiAoZSkgPT4ge1xuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICAgIHJldHVybiBmdW5jKGUpO1xuICAgIH0sXG4gICAgcGFnZVNpemU6IDEwLFxuICAgIGtleTogJ2lkJyxcbiAgfSk7XG5cbiAgcHVibGljIGNhbkNyZWF0ZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuY29tbWFuZHM/LmNyZWF0ZT8uZXhlY3V0ZSAhPSBudWxsO1xuICB9KTtcblxuICBwdWJsaWMgcGFyZW50S2V5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wYXJlbnRLZXk7XG4gIH0pO1xuXG4gIHB1YmxpYyBhbGxvd011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYWxsb3dNdWx0aXBsZSA/PyBmYWxzZTtcbiAgfSk7XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2NyZWF0ZS1lbnRpdHknLCB7XG4gICAgICBlbnRpdHk6IGdldEVudGl0eUluZm8odGhpcy5lbnRpdHlEZWYpLnNvdXJjZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWY/LnByb3BlcnRpZXMuZmlsdGVyKChwKSA9PiBwLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKS5tYXAoKGMpID0+IGMudGl0bGUgPz8gYy5uYW1lKSA/PyBbXVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyBoYXNJbmxpbmVGaWx0ZXJzID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xuICB9KTtcblxuICBwdWJsaWMgY29sdW1ucyA9ICgpID0+IHtcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XG4gICAgY29uc3QgY29sdW1ucyA9IGxpc3RDb2x1bW5zPy5tYXAoKGMpID0+IGMubmFtZSkgPz8gW107XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigocCkgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpO1xuICAgIGNvbnN0IGRpc3BsYXlDb2x1bW5zID0gcHJvcHMuZmlsdGVyKChwKSA9PlxuICAgICAgKHRoaXMub3B0aW9ucy5jb2x1bW5zPy5sZW5ndGggPz8gMCkgPiAwXG4gICAgICAgID8gdGhpcy5vcHRpb25zLmNvbHVtbnMhLnNvbWUoKGMpID0+IGMgPT0gcC5uYW1lKVxuICAgICAgICA6IGNvbHVtbnMuc29tZSgoYykgPT4gYyA9PSBwLm5hbWUpLFxuICAgICk7XG4gICAgLy9cbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKChwKSA9PiB7XG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKChjKSA9PiBjLm5hbWUgPT0gcC5uYW1lKSEpO1xuICAgIH0pO1xuICB9O1xuXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ29yJyxcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXG4gICAgZmlsdGVyczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBhZHZhbmNlRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICBsb2dpYzogJ2FuZCcsXG4gICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxuICAgIGZpbHRlcnM6IFtdLFxuICB9O1xuXG4gIGFwcGx5SW5saW5lRmlsdGVyKHZhbHVlOiBzdHJpbmcsIHJlZnJlc2g6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcigoYykgPT4gYy5vcHRpb25zPy5maWx0ZXI/LmlubGluZT8uZW5hYmxlZCk7XG4gICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnMgPSBbXTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHByb3BzLmZvckVhY2goKHApID0+IHtcbiAgICAgICAgdGhpcy5pbmxpbmVGaWx0ZXJzLmZpbHRlcnM/LnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBwLm5hbWUsXG4gICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgIHR5cGU6ICdjb250YWlucycsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHJlZnJlc2gpIHRoaXMuYXBwbHlGaWx0ZXJBbmRTb3J0KCk7XG4gIH1cblxuICBhcHBseUZpbHRlckFuZFNvcnQoKSB7XG4gICAgLy8gdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XG4gICAgLy9cbiAgICAvL3RoaXMuZGF0YVNvdXJjZS5zb3J0KC4uLnRoaXMuc29ydGVkRmllbGRzKCkubWFwKHMgPT4gKHsgZGlyOiBzLmRpciwgZmllbGQ6IHMubmFtZSB9IGFzIEFYRGF0YVNvdXJjZVNvcnRPcHRpb24pKSk7XG4gICAgLy9cblxuICAgIC8vIENoZWNrIGlmIGlubGluZUZpbHRlcnMgb3IgcGFyZW50RmlsdGVycyBoYXZlIGFueSBmaWx0ZXJzXG4gICAgY29uc3QgaGFzSW5saW5lRmlsdGVycyA9ICh0aGlzLmlubGluZUZpbHRlcnM/LmZpbHRlcnM/Lmxlbmd0aCA/PyAwKSA+IDA7XG4gICAgY29uc3QgaGFzUGFyZW50RmlsdGVycyA9ICh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcblxuICAgIC8vIENvbnN0cnVjdCB0aGUgZmlsdGVycyBhcnJheSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgZmlsdGVyc1xuICAgIGNvbnN0IGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XG4gICAgY29uc29sZS5sb2codGhpcy5vcHRpb25zLmN1c3RvbUZpbHRlcik7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5jdXN0b21GaWx0ZXIpIHtcbiAgICAgIGNvbnN0IGNsZWFuZWRGaWx0ZXJzID0gQVhQQ2xlYW5OZXN0ZWRGaWx0ZXJzKFt0aGlzLm9wdGlvbnMuY3VzdG9tRmlsdGVyXSk7XG4gICAgICBpZiAoY2xlYW5lZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2godGhpcy5maWx0ZXJPcGVyYXRvck1pZGRsZXdhcmUudHJhbnNmb3JtRmlsdGVyKGNsZWFuZWRGaWx0ZXJzWzBdKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChoYXNJbmxpbmVGaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5pbmxpbmVGaWx0ZXJzKTtcbiAgICB9XG4gICAgaWYgKGhhc1BhcmVudEZpbHRlcnMgJiYgdGhpcy5vcHRpb25zLnBhcmVudEZpbHRlcnMpIHtcbiAgICAgIGZpbHRlcnMucHVzaCh0aGlzLm9wdGlvbnMucGFyZW50RmlsdGVycyk7XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgdGhlIGZpbHRlcnMgdG8gdGhlIGRhdGFTb3VyY2VcbiAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyKHtcbiAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcbiAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSk7XG5cbiAgICAvLyBSZWZyZXNoIHRoZSBkYXRhU291cmNlXG4gICAgdGhpcy5kYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xuICAgIHRoaXMuYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWUudHJpbSgpLCBmYWxzZSk7XG4gICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICByZXR1cm4gKGF3YWl0IGZ1bmMoeyBmaWx0ZXI6IHRoaXMuaW5saW5lRmlsdGVycywgdGFrZTogMTAgfSkpID8/IFtdO1xuICB9XG59XG4iXX0=","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/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@acorex/components/button\";\nimport * as i4 from \"@acorex/components/decorators\";\nimport * as i5 from \"@acorex/components/loading\";\nimport * as i6 from \"@acorex/components/form\";\nimport * as i7 from \"@acorex/components/tag-box\";\nimport * as i8 from \"@acorex/core/translation\";\nimport * as i9 from \"@acorex/components/select-box\";\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']);\n this.entity = computed(() => this.options()['entity']);\n this.disabled = computed(() => this.options()['disabled']);\n this.columns = computed(() => this.options()['columns'] ?? []);\n this.customFilter = computed(() => this.options()['filter']);\n this.multiple = computed(() => (this.options()['multiple'] ?? false));\n this.look = computed(() => this.options()['look'] ?? 'lookup');\n this.textField = computed(() => {\n return (this.entityDef()?.formats.lookup ?? this.entityDef()?.properties.find((c) => c.name != 'id')?.name ?? 'title');\n });\n this.valueField = computed(() => this.entityDef()?.properties.find((c) => c.name == 'id')?.name ?? 'id');\n this.entityDef = signal(null);\n this.searchTerm = signal(null);\n this.selectedItems = signal([]);\n this.textbox = viewChild(AXTagBoxComponent);\n this.isLoading = signal(false);\n this.isOpen = signal(false);\n this.vm = signal(null);\n this.placeholder = computed(() => {\n return this.selectedItems().length\n ? ''\n : this.translateService.translateSync('widget.lookup.search') + this.vm()?.inlineFiltersPlaceholders().join(', ');\n });\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 });\n this.#efValue = effect(() => {\n if (this.getValue()) {\n this.findByValue();\n }\n });\n }\n #efEntity;\n #efValue;\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 < 3 ? 'sm' : columnsCount > 3 ? 'lg' : 'md',\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 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.0.7\", ngImport: i0, type: AXPLookupWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.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: 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.AXDecoratorClearButtonComponent, selector: \"ax-clear-button\", 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: \"component\", type: i5.AXLoadingComponent, selector: \"ax-loading\", inputs: [\"visible\", \"type\", \"context\"], outputs: [\"visibleChange\"] }, { kind: \"ngmodule\", type: AXValidationModule }, { kind: \"ngmodule\", type: AXFormModule }, { kind: \"directive\", type: i6.AXValidationRuleDirective, selector: \"ax-validation-rule\", inputs: [\"rule\", \"options\", \"message\", \"disabled\"] }, { kind: \"ngmodule\", type: AXTagBoxModule }, { kind: \"component\", type: i7.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: \"pipe\", type: i8.AXTranslatorPipe, name: \"translate\" }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"component\", type: i9.AXSelectBoxComponent, selector: \"ax-select-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"minValue\", \"maxValue\", \"value\", \"state\", \"name\", \"id\", \"type\", \"look\", \"multiple\", \"valueField\", \"textField\", \"disabledField\", \"textTemplate\", \"selectedItems\", \"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\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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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WEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHtcbiAgQVhDbGlja0V2ZW50LFxuICBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sXG4gIEFYRm9jdXNFdmVudCxcbiAgQVhIdG1sRXZlbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcbmltcG9ydCB7IEFYTG9hZGluZ01vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVGFnQm94Q29tcG9uZW50LCBBWFRhZ0JveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90YWctYm94JztcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBRdWVyeUZpbHRlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0b3IsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjYXN0QXJyYXksIGdldCwgaXNFbXB0eSwgaXNOaWwsIHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlSZXNvbHZlciB9IGZyb20gJy4uLy4uL2VudGl0eS5jb25maWcnO1xuaW1wb3J0IHsgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2xvb2t1cC13aWRnZXQtc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XG5pbXBvcnQgeyBleHRyYWN0VmFsdWUsIHNldFNtYXJ0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldExvb2tUeXBlIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LnR5cGVzJztcbmltcG9ydCB7IEFYU2VsZWN0Qm94Q29tcG9uZW50LCBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1sb29rdXAtd2lkZ2V0LWVkaXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9vaygpID09ICdzZWxlY3QnKSB7XG4gICAgICA8YXgtc2VsZWN0LWJveFxuICAgICAgICBbZGF0YVNvdXJjZV09XCJ2bSgpPy5kYXRhU291cmNlIVwiXG4gICAgICAgIFtuZ01vZGVsXT1cInNlbGVjdGVkSXRlbXMoKVwiXG4gICAgICAgIFt0ZXh0RmllbGRdPVwidGV4dEZpZWxkKClcIlxuICAgICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSgpXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cInNlbGVjdEJveFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPGF4LXNlYXJjaC1ib3g+XG4gICAgICA8L2F4LXNlYXJjaC1ib3g+XG4gICAgPC9heC1zZWxlY3QtYm94PlxuICAgIH0gQGVsc2Uge1xuICAgIDxheC10YWctYm94XG4gICAgICBbbmdNb2RlbF09XCJzZWxlY3RlZEl0ZW1zKClcIlxuICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGQoKVwiXG4gICAgICBbdmFsdWVGaWVsZF09XCJ2YWx1ZUZpZWxkKClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICBbYWRkT25FbnRlcl09XCJmYWxzZVwiXG4gICAgICBbYWRkT25Db21tYV09XCJmYWxzZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAob25LZXlVcCk9XCJoYW5kbGVLZXlVcCgkZXZlbnQpXCJcbiAgICAgIChvbkJsdXIpPVwiaGFuZGxlT25CbHVyKCRldmVudClcIlxuICAgID5cbiAgICAgIEBmb3IgKHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvblJ1bGVzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgICAgW3J1bGVdPVwidmFsaWRhdGlvbi5ydWxlXCJcbiAgICAgICAgICBbbWVzc2FnZV09XCJ2YWxpZGF0aW9uLm9wdGlvbnM/Lm1lc3NhZ2VcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICAgID48L2F4LXZhbGlkYXRpb24tcnVsZT5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VsZWN0ZWRJdGVtcygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgPGF4LWNsZWFyLWJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlQ2xlYXJDbGljaygpXCI+PC9heC1jbGVhci1idXR0b24+XG4gICAgICB9XG5cbiAgICAgIDxheC1zdWZmaXg+XG4gICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJibGFua1wiIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcoKSB8fCBkaXNhYmxlZCgpXCIgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj4gPC9heC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24+XG4gICAgICA8L2F4LXN1ZmZpeD5cbiAgICA8L2F4LXRhZy1ib3g+XG4gIH1cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgLy9cbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWERlY29yYXRvck1vZHVsZSxcbiAgICBBWExvYWRpbmdNb2R1bGUsXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgIEFYRm9ybU1vZHVsZSxcbiAgICBBWFRhZ0JveE1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYU2VsZWN0Qm94TW9kdWxlLFxuICAgIEFYU2VhcmNoQm94Q29tcG9uZW50XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudGl0eVJlc29sdmVyID0gaW5qZWN0KEFYUEVudGl0eVJlc29sdmVyKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1hdFNlcnZpY2UgPSBpbmplY3QoQVhGb3JtYXRTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZXhwb3NlID0gY29tcHV0ZWQ8c3RyaW5nIHwgdW5kZWZpbmVkIHwgYW55W10+KCgpID0+IHRoaXMub3B0aW9ucygpWydleHBvc2UnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgZW50aXR5ID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZW50aXR5J10gYXMgc3RyaW5nKTtcbiAgcHJvdGVjdGVkIGRpc2FibGVkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZGlzYWJsZWQnXSBhcyBzdHJpbmcpO1xuICBwcm90ZWN0ZWQgY29sdW1ucyA9IGNvbXB1dGVkPHN0cmluZ1tdPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ2NvbHVtbnMnXSBhcyBzdHJpbmdbXSkgPz8gW10pO1xuICBwcm90ZWN0ZWQgY3VzdG9tRmlsdGVyID0gY29tcHV0ZWQ8QVhEYXRhU291cmNlRmlsdGVyT3B0aW9uPihcbiAgICAoKSA9PiB0aGlzLm9wdGlvbnMoKVsnZmlsdGVyJ10gYXMgQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uLFxuICApO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSA/PyBmYWxzZSkgYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCBsb29rID0gY29tcHV0ZWQ8QVhQTG9va3VwV2lkZ2V0TG9va1R5cGU+KCgpID0+IHRoaXMub3B0aW9ucygpWydsb29rJ10gYXMgQVhQTG9va3VwV2lkZ2V0TG9va1R5cGUgPz8gJ2xvb2t1cCcpO1xuXG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbnRpdHlEZWYoKT8uZm9ybWF0cy5sb29rdXAgPz8gdGhpcy5lbnRpdHlEZWYoKT8ucHJvcGVydGllcy5maW5kKChjKSA9PiBjLm5hbWUgIT0gJ2lkJyk/Lm5hbWUgPz8gJ3RpdGxlJ1xuICAgICk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB0aGlzLmVudGl0eURlZigpPy5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IGMubmFtZSA9PSAnaWQnKT8ubmFtZSA/PyAnaWQnKTtcblxuICBwcm90ZWN0ZWQgY29uZGl0aW9ucz86IEFYUFF1ZXJ5RmlsdGVyW107XG5cbiAgcHJvdGVjdGVkIGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHwgbnVsbDtcblxuICBwcml2YXRlIGVudGl0eURlZiA9IHNpZ25hbDxBWFBFbnRpdHkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0ZWRJdGVtcyA9IHNpZ25hbDxhbnlbXT4oW10pO1xuXG4gIHRleHRib3ggPSB2aWV3Q2hpbGQoQVhUYWdCb3hDb21wb25lbnQpO1xuXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByb3RlY3RlZCB2bSA9IHNpZ25hbDxBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB8IG51bGw+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBwbGFjZWhvbGRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zKCkubGVuZ3RoXG4gICAgICA/ICcnXG4gICAgICA6IHRoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKCd3aWRnZXQubG9va3VwLnNlYXJjaCcpICsgdGhpcy52bSgpPy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKTtcbiAgfSk7XG5cbiAgI2VmRW50aXR5ID0gZWZmZWN0KGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gdGhpcy5lbnRpdHkoKS5zcGxpdCgnLicpO1xuICAgIHRoaXMuZW50aXR5RGVmLnNldChhd2FpdCB0aGlzLmVudGl0eVJlc29sdmVyLmdldChtb2R1bGUsIGVudGl0eSkpO1xuICAgIHRoaXMudm0uc2V0KFxuICAgICAgbmV3IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHRoaXMuZW50aXR5RGVmKCkhLCB7XG4gICAgICAgIHBhcmVudEZpbHRlcnM6IHRoaXMuZmlsdGVyLFxuICAgICAgICBhbGxvd011bHRpcGxlOiB0aGlzLm11bHRpcGxlKCksXG4gICAgICB9KSxcbiAgICApO1xuICB9KTtcblxuICAjZWZWYWx1ZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ2V0VmFsdWUoKSkge1xuICAgICAgdGhpcy5maW5kQnlWYWx1ZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBmaW5kQnlWYWx1ZSgpIHtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgY29uc3QgdmFsdWVzID0gY2FzdEFycmF5KHJhd1ZhbHVlKTtcbiAgICBjb25zdCBieUtleSA9IHRoaXMuZW50aXR5RGVmKCk/LnF1ZXJpZXMuYnlLZXk/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgaWYgKGJ5S2V5ICYmIHZhbHVlcy5sZW5ndGgpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKCkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCBQcm9taXNlLmFsbCh2YWx1ZXMubWFwKCh2YWx1ZSkgPT4gYnlLZXkoZXh0cmFjdFZhbHVlKHZhbHVlLCB0aGlzLnZhbHVlRmllbGQoKSkpKSk7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaWQgPSBleHRyYWN0VmFsdWUodmFsdWVzWzBdLCB0aGlzLnZhbHVlRmllbGQoKSk7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBieUtleShpZCk7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMoaXRlbSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0SXRlbXMoW10pO1xuICAgIH1cbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZU9uQ2xpY2soZTogQVhDbGlja0V2ZW50KSB7XG4gICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd1NlbGVjdG9yKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKTtcbiAgICBjb25zdCBjb2x1bW5zQ291bnQgPSB0aGlzLmNvbHVtbnMoKS5sZW5ndGggPiAwID8gdGhpcy5jb2x1bW5zKCkubGVuZ3RoIDogdGhpcy52bSgpPy5jb2x1bW5zKCkubGVuZ3RoID8/IDA7XG5cbiAgICB0aGlzLnBvcHVwU2VydmljZVxuICAgICAgLm9wZW4oQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JDb21wb25lbnQsIHtcbiAgICAgICAgdGl0bGU6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKCd3aWRnZXQubG9va3VwLnNlYXJjaCcpfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKFxuICAgICAgICAgIHRoaXMuZW50aXR5RGVmKCk/LmZvcm1hdHMucGx1cmFsID8/ICcnLFxuICAgICAgICApfWAsXG5cbiAgICAgICAgc2l6ZTogY29sdW1uc0NvdW50IDwgMyA/ICdzbScgOiBjb2x1bW5zQ291bnQgPiAzID8gJ2xnJyA6ICdtZCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB2bTogbmV3IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHRoaXMuZW50aXR5RGVmKCkhLCB7XG4gICAgICAgICAgICBjdXN0b21GaWx0ZXI6IHRoaXMuY3VzdG9tRmlsdGVyKCksXG4gICAgICAgICAgICBwYXJlbnRGaWx0ZXJzOiB0aGlzLmZpbHRlcixcbiAgICAgICAgICAgIGFsbG93TXVsdGlwbGU6IHRoaXMubXVsdGlwbGUoKSxcbiAgICAgICAgICAgIGNvbHVtbnM6IHRoaXMuY29sdW1ucygpLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNlYXJjaFRlcm06IHRoaXMuc2VhcmNoVGVybSgpLFxuICAgICAgICAgIGluaXRpYWxTZWxlY3RlZEl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXMoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgICAgIHRoaXMudGV4dGJveCgpPy5mb2N1cygpO1xuICAgICAgICBpZiAoZS5kYXRhPy5pdGVtcykge1xuICAgICAgICAgIHRoaXMuc2V0SXRlbXMoZS5kYXRhPy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNlbGVjdEJveFZhbHVlQ2hhbmdlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCBpdGVtcyA9IChlLmNvbXBvbmVudCBhcyBBWFNlbGVjdEJveENvbXBvbmVudCkuc2VsZWN0ZWRJdGVtcztcbiAgICB0aGlzLnNldEl0ZW1zKGl0ZW1zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XG4gICAgaWYgKGUuaXNVc2VySW50ZXJhY3Rpb24pIHtcbiAgICAgIGlmIChpc05pbChlLnZhbHVlKSB8fCBpc0VtcHR5KGUudmFsdWUpKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5zaW5nbGVPck11bHRpcGxlKGUudmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT25CbHVyKGU6IEFYRm9jdXNFdmVudCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgICAgfVxuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlS2V5VXAoZTogQVhIdG1sRXZlbnQpIHtcbiAgICBjb25zdCBrZXlFdmVudCA9IGUubmF0aXZlRXZlbnQgYXMgS2V5Ym9hcmRFdmVudDtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudGV4dGJveCgpPy5pbnB1dFZhbHVlKCkhO1xuICAgIHRoaXMuc2VhcmNoVGVybS5zZXQodmFsdWUpO1xuICAgIGlmICgoa2V5RXZlbnQuY29kZSA9PSAnRW50ZXInIHx8IGtleUV2ZW50LmNvZGUgPT0gJ051bXBhZEVudGVyJykgJiYgdmFsdWUpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudm0oKT8uZmluZCh2YWx1ZSk7XG4gICAgICBpZiAocmVzdWx0Py50b3RhbCA9PSAxKSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbXMocmVzdWx0Lml0ZW1zWzBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgICBpZiAoa2V5RXZlbnQuY29kZSA9PSAnQXJyb3dEb3duJykge1xuICAgICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvL1xuICAgIGl0ZW1zID0gY2FzdEFycmF5KGl0ZW1zKTtcbiAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KGl0ZW1zKTtcbiAgICAvL1xuICAgIGNvbnN0IGtleXMgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCB0aGlzLnZhbHVlRmllbGQoKSkpO1xuICAgIC8vXG4gICAgLy8gZXh0cmFjdCBkYXRhIGZyb20gdmFsdWVGaWVsZCBhbmQgc2V0IGNvbnRleHQgYnkgZXhwb3NlIHBhdGhcbiAgICBpZiAodGhpcy5leHBvc2UoKSkge1xuICAgICAgY29uc3QgZXhwb3NlVmFsdWUgPSBjYXN0QXJyYXkodGhpcy5leHBvc2UoKSk7XG4gICAgICBjb25zdCBpdGVtVG9FeHBvc2U6IGFueSA9IHt9O1xuICAgICAgLy9cbiAgICAgIGV4cG9zZVZhbHVlLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBpID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gaXRlbXMubWFwKChpdGVtKSA9PiBzZXQoe30sIGkgYXMgc3RyaW5nLCBnZXQoaXRlbSwgaSkpKTtcbiAgICAgICAgICBzZXRTbWFydChpdGVtVG9FeHBvc2UsIGksIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBleHRyYWN0IGRhdGEgZnJvbSBpdGVtIGJ5IHNvdXJjZSBwYXRoIGFuZCBzZXQgY29udGV4dCBieSB0YXJnZXQgcGF0aFxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMubXVsdGlwbGUoKVxuICAgICAgICAgICAgPyBpdGVtcy5tYXAoKGl0ZW0pID0+IHNldCh7fSwgaS5zb3VyY2UsIGdldChpdGVtLCBpLnNvdXJjZSkpKVxuICAgICAgICAgICAgOiBpdGVtcy5tYXAoKGl0ZW0pID0+IGdldChpdGVtLCBpLnNvdXJjZSkpO1xuICAgICAgICAgIHNldFNtYXJ0KGl0ZW1Ub0V4cG9zZSwgaS50YXJnZXQsIHRoaXMuc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXMpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLnBhdGNoKGl0ZW1Ub0V4cG9zZSk7XG4gICAgICAvLyBmaXJlIHRyaWdnZXJzXG4gICAgICB0aGlzLnNldFZhbHVlKHRoaXMuc2luZ2xlT3JNdWx0aXBsZShrZXlzKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNpbmdsZU9yTXVsdGlwbGUoa2V5cykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGVhckNsaWNrKCkge1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpIHtcbiAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY2xlYXJJbnB1dCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5zZXQoW10pO1xuICB9XG5cbiAgcHVibGljIGNsZWFySW5wdXQoKSB7XG4gICAgdGhpcy50ZXh0Ym94KCk/LmlucHV0VmFsdWUuc2V0KCcnKTtcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgc2luZ2xlT3JNdWx0aXBsZSh2YWx1ZXM6IGFueVtdKTogYW55IHwgYW55W10ge1xuICAgIHJldHVybiB0aGlzLm11bHRpcGxlKCkgPyB2YWx1ZXMgOiB2YWx1ZXNbMF07XG4gIH1cbn1cbiJdfQ==","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)));\n }\n extractItem(item) {\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.0.7\", ngImport: i0, type: AXPLookupWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy9sb29rdXAtd2lkZ2V0L2xvb2t1cC13aWRnZXQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQWdCN0MsTUFBTSxPQUFPLDhCQUErQixTQUFRLHdCQUE2QjtJQWZqRjs7UUFnQlksZUFBVSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3hELGNBQVMsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUN6RCxlQUFVLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxZQUFZLENBQUM7UUFFaEUsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ3JDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3hFLENBQUM7S0FhSDtJQVhTLFdBQVcsQ0FBQyxJQUFTO1FBQzNCLE9BQU8sT0FBTyxJQUFJLElBQUksUUFBUTtZQUM1QixDQUFDLENBQUM7Z0JBQ0EsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDMUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN6QztZQUNELENBQUMsQ0FBQztnQkFDQSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJO2dCQUN2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJO2FBQ3ZCLENBQUM7SUFDTixDQUFDOzhHQXJCVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixxSkFkL0I7Ozs7Ozs7OztHQVNULDJEQUVTLGFBQWE7OzJGQUdaLDhCQUE4QjtrQkFmMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7OztHQVNUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7aUJBQ2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhCYWRnZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9iYWRnZSc7XG5pbXBvcnQgeyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhc3RBcnJheSwgaXNOaWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTFcIj5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgZGlzcGxheUl0ZW1zKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGF4LWJhZGdlIFt0ZXh0XT1cIml0ZW1bdGhpcy50ZXh0RmllbGRdXCIgW2NsYXNzXT1cImJhZGdlQ2xhc3NcIj48L2F4LWJhZGdlPlxuICAgICAgfVxuICAgICAgQGVtcHR5IHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC10ZXh0LW11dGVkXCI+LS0tPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFsncmF3VmFsdWUnLCAncm93RGF0YSddLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRDb2x1bW5Db21wb25lbnQgZXh0ZW5kcyBBWFBDb2x1bW5XaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCB2YWx1ZUZpZWxkOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ3ZhbHVlRmllbGQnXSA/PyAnaWQnO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ3RleHRGaWVsZCddID8/ICd0aXRsZSc7XG4gIHByb3RlY3RlZCBiYWRnZUNsYXNzOiBzdHJpbmcgPSB0aGlzLm9wdGlvbnNbJ2JhZGdlQ2xhc3MnXSA/PyAnYXgtYWNjZW50MSc7XG5cbiAgcHJvdGVjdGVkIGRpc3BsYXlJdGVtcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgaXNOaWwodGhpcy5yYXdWYWx1ZSlcbiAgICAgID8gW11cbiAgICAgIDogY2FzdEFycmF5KHRoaXMucmF3VmFsdWUpLm1hcCgoaXRlbTogYW55KSA9PiB0aGlzLmV4dHJhY3RJdGVtKGl0ZW0pKSxcbiAgKTtcblxuICBwcml2YXRlIGV4dHJhY3RJdGVtKGl0ZW06IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09ICdvYmplY3QnXG4gICAgICA/IHtcbiAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtPy5bdGhpcy50ZXh0RmllbGRdLFxuICAgICAgfVxuICAgICAgOiB7XG4gICAgICAgIFt0aGlzLnZhbHVlRmllbGRdOiBpdGVtLFxuICAgICAgICBbdGhpcy50ZXh0RmllbGRdOiBpdGVtLFxuICAgICAgfTtcbiAgfVxufVxuIl19","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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL3RhZ2FibGUtYm94L3RhZ2FibGUtYm94LXdpZGdldC1jb2x1bW4uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBa0I3RSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsdUJBQTRCO0lBaEJwRjs7UUFpQlksa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZHLGFBQVEsR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBWSxDQUFDLENBQUM7UUFFcEYsK0JBQStCO1FBQ3JCLGlCQUFZLEdBQUcsUUFBUSxDQUFVLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQVksQ0FBQyxDQUFDO1FBQ2xGLGNBQVMsR0FBRyxRQUFRLENBQVMsR0FBRyxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBWSxJQUFJLE9BQU8sQ0FBQyxDQUFDO1FBRWpHLDZCQUE2QjtRQUNuQixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7S0FDSjs4R0F0Qlksa0NBQWtDO2tHQUFsQyxrQ0FBa0MsK0ZBZm5DOzs7Ozs7Ozs7O0dBVVQsMkRBRVMsYUFBYTs7MkZBR1osa0NBQWtDO2tCQWhCOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFkZ2VNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYmFkZ2UnO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtZ2FwLTEgYXgtZmxleC13cmFwXCI+XG4gICAgICBAaWYgKHVzZVNlbGVjdEJveCgpICYmIGdldERhdGEoKS5sZW5ndGggPiAwKSB7IEBmb3IgKGl0ZW0gb2YgZ2V0RGF0YSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxheC1iYWRnZSBbbG9va109XCIndHdvdG9uZSdcIiBbdGV4dF09XCJpdGVtW3RleHRGaWVsZCgpXVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgICB9IH0gQGVsc2UgeyBAaWYobXVsdGlwbGUoKSkgeyBAZm9yIChpdGVtIG9mIGludGVybmFsVmFsdWUoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1pbmxpbmUtYmxvY2tcIj57eyBpdGVtIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtYmctc2xhdGUtMTAwIGF4LXB4LTIgYXgtcHktMSBheC1yb3VuZGVkIGF4LWlubGluZS1ibG9ja1wiPnt7IGludGVybmFsVmFsdWUoKVswXSB9fTwvc3Bhbj5cbiAgICAgIH0gfVxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Q29sdW1uQ29tcG9uZW50IGV4dGVuZHMgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQ8YW55PiB7XG4gIHByb3RlY3RlZCBpbnRlcm5hbFZhbHVlID0gY29tcHV0ZWQoKCkgPT4gKEFycmF5LmlzQXJyYXkodGhpcy5nZXRWYWx1ZSgpKSA/IHRoaXMuZ2V0VmFsdWUoKSA6IFt0aGlzLmdldFZhbHVlKCldKSk7XG5cbiAgcHJvdGVjdGVkIG11bHRpcGxlID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ211bHRpcGxlJ10gYXMgYm9vbGVhbik7XG5cbiAgLy8g2YjbjNqY2q/bjOKAjNmH2KfbjCDZhdix2KrYqNi3INio2KcgU2VsZWN0Qm94XG4gIHByb3RlY3RlZCB1c2VTZWxlY3RCb3ggPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsndXNlU2VsZWN0Qm94J10gYXMgYm9vbGVhbik7XG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+ICh0aGlzLm9wdGlvbnMoKVsndGV4dEZpZWxkJ10gYXMgc3RyaW5nKSA/PyAndGl0bGUnKTtcblxuICAvLyDYp9iz2KrYrtix2KfYrCDYr9in2K/Zh+KAjNmH2Kcg2KjYsdin24wg2YbZhdin24zYtFxuICBwcm90ZWN0ZWQgZ2V0RGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMudXNlU2VsZWN0Qm94KCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdO1xuICB9KTtcbn1cbiJdfQ==","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']);\n this.disabled = computed(() => this.options()['disabled']);\n this.placeholder = computed(() => this.options()['placeholder']);\n // پارامترهای SelectBox\n this.moduleName = computed(() => this.options()['module']);\n this.entityName = computed(() => this.options()['entity']);\n this.allowSearch = computed(() => this.options()['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.0.7\", ngImport: i0, type: AXPTagableBoxWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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\", \"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.0.7\", 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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d0JBQ2pCLGlCQUFpQjtxQkFDcEI7b0JBQ0MsTUFBTSxFQUFFLEVBQUU7aUJBQ1g7OEJBcUNhLE9BQU87c0JBRGxCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERhdGFTb3VyY2UsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94Jztcbi8vIGltcG9ydCB7IEFYVGFnQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhZy1ib3gnO1xuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XG5pbXBvcnQgeyBBWFRleHRCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGV4dC1ib3gnO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhQVmFsdWVXaWRnZXRDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhQRW50aXR5UmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9lbnRpdHkuY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXhwLXRhZ2FibGUtYm94LXdpZGdldCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWdyaWQgYXgtZ3JpZC1jb2xzLTEyIGF4LWdhcC00XCI+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.0.7\", ngImport: i0, type: AXPTagableBoxWidgetFilterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", 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.0.7\", 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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetPrintComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvdGFnYWJsZS1ib3gvdGFnYWJsZS1ib3gtd2lkZ2V0LXByaW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFzQjdFLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSx1QkFBNEI7SUFwQm5GOztRQXFCWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxpQ0FBaUM7a0dBQWpDLGlDQUFpQywrRkFuQmxDOzs7Ozs7Ozs7Ozs7OztHQWNUOzsyRkFLVSxpQ0FBaUM7a0JBcEI3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7R0FjVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2PlxuICAgICAgQGlmICh1c2VTZWxlY3RCb3goKSAmJiBnZXREYXRhKCkubGVuZ3RoID4gMCkgeyBAZm9yIChpdGVtIG9mIGdldERhdGEoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LWJnLXNsYXRlLTEwMCBheC1weC0yIGF4LXB5LTEgYXgtcm91bmRlZCBheC1tci0yIGF4LW1iLTIgYXgtaW5saW5lLWJsb2NrXCI+e3tcbiAgICAgICAgaXRlbVt0ZXh0RmllbGQoKV1cbiAgICAgIH19PC9zcGFuPlxuICAgICAgfSB9IEBlbHNlIHsgQGlmKG11bHRpcGxlKCkpIHsgQGZvciAoaXRlbSBvZiBpbnRlcm5hbFZhbHVlKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7IGl0ZW0gfX08L3NwYW4+XG4gICAgICB9IH0gQGVsc2Uge1xuICAgICAgPHNwYW4gY2xhc3M9XCJheC1iZy1zbGF0ZS0xMDAgYXgtcHgtMiBheC1weS0xIGF4LXJvdW5kZWQgYXgtbXItMiBheC1tYi0yIGF4LWlubGluZS1ibG9ja1wiPnt7XG4gICAgICAgIGludGVybmFsVmFsdWUoKVswXVxuICAgICAgfX08L3NwYW4+XG4gICAgICB9IH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0UHJpbnRDb21wb25lbnQgZXh0ZW5kcyBBWFBWYWx1ZVdpZGdldENvbXBvbmVudDxhbnk+IHtcbiAgcHJvdGVjdGVkIGludGVybmFsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiAoQXJyYXkuaXNBcnJheSh0aGlzLmdldFZhbHVlKCkpID8gdGhpcy5nZXRWYWx1ZSgpIDogW3RoaXMuZ2V0VmFsdWUoKV0pKTtcblxuICBwcm90ZWN0ZWQgbXVsdGlwbGUgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB0aGlzLm9wdGlvbnMoKVsnbXVsdGlwbGUnXSBhcyBib29sZWFuKTtcblxuICAvLyDZiNuM2pjar9uM4oCM2YfYp9uMINmF2LHYqtio2Lcg2KjYpyBTZWxlY3RCb3hcbiAgcHJvdGVjdGVkIHVzZVNlbGVjdEJveCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWyd1c2VTZWxlY3RCb3gnXSBhcyBib29sZWFuKTtcbiAgcHJvdGVjdGVkIHRleHRGaWVsZCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4gKHRoaXMub3B0aW9ucygpWyd0ZXh0RmllbGQnXSBhcyBzdHJpbmcpID8/ICd0aXRsZScpO1xuXG4gIC8vINin2LPYqtiu2LHYp9isINiv2KfYr9mH4oCM2YfYpyDYqNix2KfbjCDZhtmF2KfbjNi0XG4gIHByb3RlY3RlZCBnZXREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy51c2VTZWxlY3RCb3goKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG4gIH0pO1xufVxuIl19","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()]));\n this.multiple = computed(() => this.options()['multiple']);\n // ویژگی‌های مرتبط با SelectBox\n this.useSelectBox = computed(() => this.options()['useSelectBox']);\n this.textField = computed(() => this.options()['textField'] ?? 'title');\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 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPTagableBoxWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnYWJsZS1ib3gtd2lkZ2V0LXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd2lkZ2V0cy90YWdhYmxlLWJveC90YWdhYmxlLWJveC13aWRnZXQtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFhN0UsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLHVCQUE0QjtJQVhsRjs7UUFZWSxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkcsYUFBUSxHQUFHLFFBQVEsQ0FBVSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFZLENBQUMsQ0FBQztRQUVwRiwrQkFBK0I7UUFDckIsaUJBQVksR0FBRyxRQUFRLENBQVUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBWSxDQUFDLENBQUM7UUFDbEYsY0FBUyxHQUFHLFFBQVEsQ0FBUyxHQUFHLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFFakcsNkJBQTZCO1FBQ25CLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFFRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztLQUNKOzhHQXRCWSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyx5R0FUakM7Ozs7R0FJVCwyREFFUyxhQUFhOzsyRkFHWixnQ0FBZ0M7a0JBWDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7O0dBSVQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsTUFBTSxFQUFFLEVBQUU7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC10YWdhYmxlLWJveC13aWRnZXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBmb3IgKGl0ZW0gb2YgaW50ZXJuYWxWYWx1ZSgpOyB0cmFjayAkaW5kZXgpIHtcbiAgICA8YXgtYmFkZ2UgW2xvb2tdPVwiJ3R3b3RvbmUnXCIgW3RleHRdPVwiaXRlbVwiIGNvbG9yPVwicHJpbWFyeVwiPjwvYXgtYmFkZ2U+XG4gICAgfVxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0FYQmFkZ2VNb2R1bGVdLFxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBUYWdhYmxlQm94V2lkZ2V0Vmlld0NvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcm90ZWN0ZWQgaW50ZXJuYWxWYWx1ZSA9IGNvbXB1dGVkKCgpID0+IChBcnJheS5pc0FycmF5KHRoaXMuZ2V0VmFsdWUoKSkgPyB0aGlzLmdldFZhbHVlKCkgOiBbdGhpcy5nZXRWYWx1ZSgpXSkpO1xuXG4gIHByb3RlY3RlZCBtdWx0aXBsZSA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMub3B0aW9ucygpWydtdWx0aXBsZSddIGFzIGJvb2xlYW4pO1xuXG4gIC8vINmI24zamNqv24zigIzZh9in24wg2YXYsdiq2KjYtyDYqNinIFNlbGVjdEJveFxuICBwcm90ZWN0ZWQgdXNlU2VsZWN0Qm94ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ3VzZVNlbGVjdEJveCddIGFzIGJvb2xlYW4pO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiAodGhpcy5vcHRpb25zKClbJ3RleHRGaWVsZCddIGFzIHN0cmluZykgPz8gJ3RpdGxlJyk7XG5cbiAgLy8g2KfYs9iq2K7Ysdin2Kwg2K/Yp9iv2YfigIzZh9inINio2LHYp9uMINmG2YXYp9uM2LRcbiAgcHJvdGVjdGVkIGdldERhdGEgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnVzZVNlbGVjdEJveCgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbiAgfSk7XG59XG4iXX0=","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);\n this.isOpen = signal(false);\n this.textField = signal('');\n this.displayText = computed(() => this.getValue()?.title || '');\n this.selectedWidgetNode = signal(null);\n this.selectedItem = signal(null);\n this.placeholder = computed(() => this.options()['placeholder'] ?? '');\n this.loading = computed(() => this.options()['loading'] ?? false);\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.0.7\", ngImport: i0, type: AXPWidgetSelectorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.7\", 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.0.7\", 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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Q25COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDJEQUdDLFdBQVcsOFZBQ1gsaUJBQWlCLDhCQUNqQixlQUFlLHFiQUNmLGNBQWMsNlhBQ2QsaUJBQWlCLHNWQUNqQixlQUFlLDhCQUNmLGtCQUFrQiw4QkFDbEIsWUFBWSw4S0FDWixnQ0FBZ0M7OzJGQUd2QixvQ0FBb0M7a0JBbENoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsWUFBWTt3QkFDWixnQ0FBZ0M7cUJBQ25DO2lCQUNBOzhCQU1DLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWEZvcm1Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZm9ybSc7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCwgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcbmltcG9ydCB7IEFYVmFsaWRhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50LFxuICBBWFBXaWRnZXRDb25maWcsXG4gIEFYUFdpZGdldE5vZGUsXG4gIEFYUFdpZGdldFJlZ2lzdHJ5U2VydmljZSxcbiAgQVhQV2lkZ2V0VHlwZXNNYXAsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQV2lkZ2V0UHJvcGVydGllc0NoYW5nZWRFdmVudCwgQVhQV2lkZ2V0UHJvcGVydHlWaWV3ZXJDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9kZXNpZ25lcic7XG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHNvcnRCeSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZTogYFxuICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dCgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbcmVhZG9ubHldPVwidHJ1ZVwiPlxuICAgICAgQGZvciAodmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uUnVsZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlXG4gICAgICAgIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiXG4gICAgICAgIFttZXNzYWdlXT1cInZhbGlkYXRpb24ub3B0aW9ucz8ubWVzc2FnZVwiXG4gICAgICAgIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiXG4gICAgICA+PC9heC12YWxpZGF0aW9uLXJ1bGU+XG4gICAgICB9XG4gICAgICA8YXgtc3VmZml4PlxuICAgICAgICA8YXgtYnV0dG9uIGNvbG9yPVwiZ2hvc3RcIiBsb29rPVwidHdvdG9uZVwiIChvbkNsaWNrKT1cInNob3dTZWxlY3RvcigpXCI+XG4gICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj4gPC9heC1pY29uPlxuICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgIDwvYXgtc3VmZml4PlxuICAgIDwvYXgtdGV4dC1ib3g+XG4gICAgQGlmKHNlbGVjdGVkV2lkZ2V0Tm9kZSgpKXtcbiAgICA8YXhwLXdpZGdldC1wcm9wZXJ0eS12aWV3ZXIgW3dpZGdldF09XCJzZWxlY3RlZFdpZGdldE5vZGUoKSFcIiAob25DaGFuZ2VkKT1cImhhbmRsZUNoYW5nZVdpZGdldCgkZXZlbnQpXCI+XG4gICAgPC9heHAtd2lkZ2V0LXByb3BlcnR5LXZpZXdlcj5cbiAgICB9XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhUZXh0Qm94TW9kdWxlLFxuICAgIEFYQnV0dG9uTW9kdWxlLFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYTG9hZGluZ01vZHVsZSxcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgQVhGb3JtTW9kdWxlLFxuICAgIEFYUFdpZGdldFByb3BlcnR5Vmlld2VyQ29tcG9uZW50XG5dXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFZhbHVlV2lkZ2V0Q29tcG9uZW50PGFueT4ge1xuICBwcml2YXRlIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG4gIHByaXZhdGUgd2lkZ2V0UmVnaXN0ZXJ5U2VydmljZSA9IGluamVjdChBWFBXaWRnZXRSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIEBWaWV3Q2hpbGQoQVhUZXh0Qm94Q29tcG9uZW50KVxuICB0ZXh0Ym94OiBBWFRleHRCb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIHByb3RlY3RlZCBkaXNwbGF5VGV4dCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZ2V0VmFsdWUoKT8udGl0bGUgfHwgJycpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRXaWRnZXROb2RlID0gc2lnbmFsPEFYUFdpZGdldE5vZGUgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbSA9IHNpZ25hbDxhbnkgfCBudWxsPihudWxsKTtcblxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKVsncGxhY2Vob2xkZXInXSA/PyAnJyk7XG4gIHByb3RlY3RlZCBsb2FkaW5nID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5vcHRpb25zKClbJ2xvYWRpbmcnXSA/PyBmYWxzZSk7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdldFZhbHVlKCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRXaWRnZXROb2RlLnNldCh0aGlzLmdldFZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNob3dTZWxlY3RvcigpIHtcbiAgICBjb25zdCBjb20gPSBhd2FpdCBpbXBvcnQoJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2Rlc2lnbmVyJykudGhlbigoYykgPT4gYy5BWFBEZXNpZ25lcldpZGdldFBpY2tlckNvbXBvbmVudCk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5wb3B1cFNlcnZpY2Uub3Blbihjb20sIHtcbiAgICAgIHRpdGxlOiAnV2lkZ2V0IEdhbGxlcnknLFxuICAgICAgc2l6ZTogJ21kJyxcbiAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICB3aWRnZXRzOiBzb3J0QnkoXG4gICAgICAgICAgdGhpcy53aWRnZXRSZWdpc3RlcnlTZXJ2aWNlLmFsbCgpLFxuICAgICAgICAgIChjKSA9PiBjLnRpdGxlXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmICgocmVzdWx0LmRhdGE/LndpZGdldHMgPz8gW10pLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXN1bHQuZGF0YT8ud2lkZ2V0cyBhcyBBWFBXaWRnZXRDb25maWdbXTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZSA9IHRoaXMuY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShzZWxlY3RlZFswXSk7XG4gICAgICB0aGlzLnNlbGVjdGVkV2lkZ2V0Tm9kZS5zZXQoc2VsZWN0ZWROb2RlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFdpZGdldENvbmZpZ1RvTm9kZShjb25maWc6IEFYUFdpZGdldENvbmZpZyk6IEFYUFdpZGdldE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBjb25maWcubmFtZSBhcyAoa2V5b2YgQVhQV2lkZ2V0VHlwZXNNYXApLFxuICAgIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQ2hhbmdlV2lkZ2V0KGU6IEFYUFdpZGdldFByb3BlcnRpZXNDaGFuZ2VkRXZlbnQpIHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLndpZGdldFJlZ2lzdGVyeVNlcnZpY2UucmVzb2x2ZShlLnZhbHVlcy50eXBlKTtcbiAgICB0aGlzLnNldFZhbHVlKHsgdGl0bGU6IHdpZGdldD8udGl0bGUsIC4uLmUudmFsdWVzIH0pO1xuICB9XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPWidgetSelectorWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.7\", 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.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityCreatePopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreatePopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityCreateSubmittedAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityCreateSubmittedAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 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.0.7\", ngImport: i0, type: AXPQuickEntityModifyPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPQuickEntityModifyPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPEntityApplyUpdatesAction, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kaWZ5LWVudGl0eS53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFlLGlCQUFpQixFQUFzQixNQUFNLDJCQUEyQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRzNELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxpQkFBaUI7SUFEdEU7O1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNoRCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzdELFdBQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7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QUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekMsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDN0UsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBbUIsQ0FBQztZQUM3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNwQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDOzhHQWhCVSwyQkFBMkI7a0hBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEFYUEVudGl0eU1hc3RlclVwZGF0ZVZpZXdNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9lbnRpdHktbWFzdGVyLXVwZGF0ZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBBWFBfRU5USVRZX0NPTkZJR19UT0tFTiB9IGZyb20gJy4uL2VudGl0eS5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdGVyeSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQVhQX0VOVElUWV9DT05GSUdfVE9LRU4pO1xuICBwcml2YXRlIGZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5TWFzdGVyVXBkYXRlVmlld01vZGVsRmFjdG9yeSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBbbW9kdWxlTmFtZSwgZW50aXR5TmFtZV0gPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ2VudGl0eScpLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICBjb25zdCBlbnRpdHlSZWYgPSBhd2FpdCB0aGlzLmVudGl0eVJlZ2lzdGVyeS5yZXNvbHZlKG1vZHVsZU5hbWUsIGVudGl0eU5hbWUpO1xuICAgIGNvbnN0IHsgcGFyZW50S2V5IH0gPSBlbnRpdHlSZWY7XG5cbiAgICBjb25zdCB7IGlkIH0gPSBkYXRhO1xuICAgIGNvbnN0IHsgaW50ZXJmYWNlcywgdGl0bGUgfSA9IGVudGl0eVJlZjtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/Lm1hcCgocCkgPT4gcC5uYW1lKSB8fCBbXTtcblxuICAgIGNvbnN0IHZtID0gYXdhaXQgdGhpcy5mYWN0b3J5LmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCwgcHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBvcHRpb25zID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJyk7XG4gICAgY29uc3QgZGVjb3JhdGlvbiA9IG9wdGlvbnM/LlsnZGVjb3JhdGlvbiddO1xuICAgIGNvbnN0IGhlYWRlclRpdGxlID0gZGVjb3JhdGlvbj8uaGVhZGVyPy50aXRsZTtcblxuICAgIGNvbnN0IGxheW91dCA9IG9wdGlvbnM/LlsnbGF5b3V0J107XG4gICAgY29uc3Qgc2l6ZSA9IGxheW91dD8uc2l6ZTtcblxuICAgIGlmIChwYXJlbnRLZXkpIHtcbiAgICAgIGNvbnRleHQuc2V0VmFyaWFibGUoJ3BhcmVudEtleScsIHBhcmVudEtleSk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tID0gYXdhaXQgdGhpcy5jb25maWcudmlld2Vycy5tYXN0ZXIubW9kaWZ5KCk7XG4gICAgY29uc3QgcG9wdXAgPSBhd2FpdCB0aGlzLnBvcHVwU2VydmljZS5vcGVuKGNvbSwge1xuICAgICAgdGl0bGU6IGhlYWRlclRpdGxlXG4gICAgICAgID8gaGVhZGVyVGl0bGVcbiAgICAgICAgOiAodGl0bGUgPz9cbiAgICAgICAgICBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlU3luYygnZW50aXR5Lm1vZGlmeScpfSAke3RoaXMudHJhbnNsYXRlU2VydmljZS50cmFuc2xhdGVTeW5jKFxuICAgICAgICAgICAgZW50aXR5UmVmLmZvcm1hdHMuaW5kaXZpZHVhbCxcbiAgICAgICAgICApfWApLFxuICAgICAgc2l6ZTogdGhpcy5wbGF0Zm9ybS5pcygnTW9iaWxlJykgfHwgdGhpcy5wbGF0Zm9ybS5pcygnU00nKSA/ICdmdWxsJyA6IHNpemUgPyBzaXplIDogJ21kJyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdm0sXG4gICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgIGVudGl0eTogZW50aXR5UmVmLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgIGlmIChwb3B1cC5kYXRhPy5yZXN1bHQgPT0gdHJ1ZSkge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ3Jlc3VsdCcsIHRydWUpO1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnZGF0YScsIGNsb25lRGVlcChwb3B1cC5kYXRhLmNvbnRleHQpKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYUFF1aWNrTW9kaWZ5RW50aXR5V29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ21vZGlmeVBvcHVwJyxcbiAgc3RlcHM6IHtcbiAgICBtb2RpZnlQb3B1cDoge1xuICAgICAgaWQ6ICdtb2RpZnlQb3B1cCcsXG4gICAgICBhY3Rpb246ICdBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLXRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC1ib2R5JyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIG1vZGlmeUNvbmZpcm1lZDoge1xuICAgICAgaWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eUFwcGx5VXBkYXRlc0FjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBlbnRpdHlSZWdpc3RlcnkgPSBpbmplY3QoQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgW21vZHVsZU5hbWUsIGVudGl0eU5hbWVdID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgICAgY29uc3QgZGF0YSA9IGNvbnRleHQuZ2V0VmFyaWFibGUoJ2RhdGEnKTtcbiAgICAgIGNvbnN0IGVudGl0eVJlZiA9IGF3YWl0IHRoaXMuZW50aXR5UmVnaXN0ZXJ5LnJlc29sdmUobW9kdWxlTmFtZSwgZW50aXR5TmFtZSk7XG4gICAgICBjb25zdCBleGVjID0gZW50aXR5UmVmLmNvbW1hbmRzPy51cGRhdGU/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleGVjKGRhdGEpO1xuICAgICAgY29udGV4dC5zZXRWYXJpYWJsZSgnZGF0YScsIHJlc3VsdCk7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgdHJ1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCBmYWxzZSk7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgnZXJyb3InLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=","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.0.7\", ngImport: i0, type: AXPShowDetailViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowDetailViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 // *********** show file list ***********\n const res = await this.fileUploaderWidgetService.showFileList({\n files: files,\n readOnly: readOnly,\n multiple: multiple,\n accept: accept,\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.0.7\", ngImport: i0, type: AXPShowFileUploaderPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowFileUploaderPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1maWxlLXVwbG9hZGVyLXBvcHVwLndvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvd29ya2Zsb3dzL3Nob3ctZmlsZS11cGxvYWRlci1wb3B1cC53b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWUsaUJBQWlCLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFFL0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFHdEMsTUFBTSxPQUFPLDhCQUErQixTQUFRLGlCQUFpQjtJQURyRTs7UUFFVSw4QkFBeUIsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNqRSwwQkFBcUIsR0FBRyxNQUFNLENBQUMsa0NBQWtDLENBQUMsQ0FBQztLQXdDNUU7SUF0Q0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUV2QyxzQ0FBc0M7UUFDdEMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBUyxhQUFhLENBQUMsQ0FBQztRQUN2RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFVLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBVSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFTLHFCQUFxQixDQUFDLENBQUM7UUFDdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBb0IsZUFBZSxDQUFDLENBQUM7UUFFdEUseUNBQXlDO1FBQ3pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQztZQUM1RCxLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVHLCtDQUErQztRQUMvQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQVMsUUFBUSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRixJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxPQUFtQixDQUFDO1lBRTFFLE1BQU0sVUFBVSxHQUFHLE1BQU0sVUFBVSxDQUFDO2dCQUNsQyxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBUyxZQUFZLENBQUM7Z0JBQzdDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRzthQUNYLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDOzhHQXpDVSw4QkFBOEI7a0hBQTlCLDhCQUE4Qjs7MkZBQTlCLDhCQUE4QjtrQkFEMUMsVUFBVTs7QUE2Q1gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQWdCO0lBQzNELFdBQVcsRUFBRSxZQUFZO0lBQ3pCLEtBQUssRUFBRTtRQUNMLFlBQVksRUFBRTtZQUNaLE1BQU0sRUFBRSxnQ0FBZ0M7WUFDeEMsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUscUNBQXFDLEVBQUUsQ0FBQztvQkFDbkYsVUFBVSxFQUFFLGNBQWM7aUJBQzNCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLEVBQUUsRUFBRSxjQUFjO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxTQUFTO2dCQUNoQixLQUFLLEVBQUUsZ0NBQWdDO2dCQUN2QyxPQUFPLEVBQUUsK0JBQStCO2FBQ3pDO1lBQ0QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLFVBQVUsRUFBRSxFQUFFO29CQUNkLFVBQVUsRUFBRSxpQkFBaUI7aUJBQzlCO2FBQ0Y7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLEVBQUUsRUFBRSxpQkFBaUI7WUFDckIsTUFBTSxFQUFFLGdDQUFnQztTQUN6QztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEZpbGVMaXN0SXRlbSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBGaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93aWRnZXRzJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9lbnRpdHktcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSBmaWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KEFYUEZpbGVVcGxvYWRlcldpZGdldFNlcnZpY2UpO1xuICBwcml2YXRlIGVudGl0eVJlZ2lzdHJ5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcblxuICBhc3luYyBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuXG4gICAgLy8gKioqKioqKioqKiogZ2V0IG9wdGlvbnMgKioqKioqKioqKipcbiAgICBjb25zdCBrZXkgPSBjb250ZXh0LmdldFZhcmlhYmxlPHN0cmluZz4oJ29wdGlvbnMua2V5Jyk7XG4gICAgY29uc3QgcmVhZE9ubHkgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLnJlYWRPbmx5Jyk7XG4gICAgY29uc3QgbXVsdGlwbGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGJvb2xlYW4+KCdvcHRpb25zLm11bHRpcGxlJyk7XG4gICAgY29uc3QgYWNjZXB0ID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmFjY2VwdCcpO1xuICAgIGNvbnN0IG1heEZpbGVTaXplID0gY29udGV4dC5nZXRWYXJpYWJsZTxudW1iZXI+KCdvcHRpb25zLm1heEZpbGVTaXplJyk7XG4gICAgY29uc3QgZmlsZXMgPSBjb250ZXh0LmdldFZhcmlhYmxlPEFYUEZpbGVMaXN0SXRlbVtdPignb3B0aW9ucy5maWxlcycpO1xuICAgIFxuICAgIC8vICoqKioqKioqKioqIHNob3cgZmlsZSBsaXN0ICoqKioqKioqKioqXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5maWxlVXBsb2FkZXJXaWRnZXRTZXJ2aWNlLnNob3dGaWxlTGlzdCh7XG4gICAgICBmaWxlczogZmlsZXMsXG4gICAgICByZWFkT25seTogcmVhZE9ubHksXG4gICAgICBtdWx0aXBsZTogbXVsdGlwbGUsXG4gICAgICBhY2NlcHQ6IGFjY2VwdCxcbiAgICB9KTtcbiAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIHJlc3VsdCBpcyB1bmRlZmluZWQgb3IgZW1wdHkgYXJyYXlcbiAgICBpZiAoIXJlcyB8fCByZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgncmVzdWx0JywgZmFsc2UpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgICAgICAvLyAqKioqKioqKioqKiBzYXZlIGZpbGVzIHRvIGVudGl0eSAqKioqKioqKioqKlxuICAgICAgICBjb25zdCBbbW9kdWxlLCBlbnRpdHldID0gY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdlbnRpdHknKS5zcGxpdCgnLicpO1xuICAgICAgICBjb25zdCBlbnRpdHlEZWZpbml0aW9uID0gYXdhaXQgdGhpcy5lbnRpdHlSZWdpc3RyeVNlcnZpY2UucmVzb2x2ZShtb2R1bGUsIGVudGl0eSk7XG4gICAgXG4gICAgICAgIGlmIChlbnRpdHlEZWZpbml0aW9uKSB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlRXhlYyA9IGVudGl0eURlZmluaXRpb24uY29tbWFuZHM/LnVwZGF0ZT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcbiAgICBcbiAgICAgICAgICBjb25zdCBlbnRpdHlEYXRhID0gYXdhaXQgdXBkYXRlRXhlYyh7XG4gICAgICAgICAgICBpZDogY29udGV4dC5nZXRWYXJpYWJsZTxzdHJpbmc+KCdvcHRpb25zLmlkJyksXG4gICAgICAgICAgICBba2V5XTogcmVzLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdyZXN1bHQnLCB0cnVlKTtcbiAgICAgICAgICBjb250ZXh0LnNldFZhcmlhYmxlKCdkYXRhJywgY2xvbmVEZWVwKGVudGl0eURhdGEpKTtcbiAgICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctcG9wdXAnLFxuICBzdGVwczoge1xuICAgICdzaG93LXBvcHVwJzoge1xuICAgICAgYWN0aW9uOiAnQVhQU2hvd0ZpbGVVcGxvYWRlclBvcHVwQWN0aW9uJyxcbiAgICAgIG5leHRTdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcInJlc3VsdFwiKSA9PSB0cnVlJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICBzdWNjZXNzVG9hc3Q6IHtcbiAgICAgIGlkOiAnc3VjY2Vzc1RvYXN0JyxcbiAgICAgIGFjdGlvbjogJ0FYUFRvYXN0QWN0aW9uJyxcbiAgICAgIGlucHV0OiB7XG4gICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgIHRpdGxlOiAnd29ya2Zsb3cuZW50aXR5LW1vZGlmaWVkLXRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ3dvcmtmbG93LmVudGl0eS1tb2RpZmllZC1ib2R5JyxcbiAgICAgIH0sXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIG1vZGlmeUNvbmZpcm1lZDoge1xuICAgICAgaWQ6ICdtb2RpZnlDb25maXJtZWQnLFxuICAgICAgYWN0aW9uOiAnQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uJyxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","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.0.7\", ngImport: i0, type: AXPShowListViewAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.7\", ngImport: i0, type: AXPShowListViewAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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 { 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 * 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.0.7\", 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.0.7\", ngImport: i0, type: AXPEntityModule, imports: [RouterModule, i2.AXPWorkflowModule, i3.AXPLayoutBuilderModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.0.7\", 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],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.7\", 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],\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL2VudGl0eS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwSCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsOEJBQThCLEdBQy9CLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDM0csT0FBTyxFQUNMLDJCQUEyQixFQUMzQiwrQkFBK0IsRUFDL0IsNEJBQTRCLEdBQzdCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixpQ0FBaUMsRUFDakMsOEJBQThCLEdBQy9CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEcsT0FBTyxFQUNMLDhCQUE4QixFQUM5QixnQ0FBZ0MsR0FDakMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFFaEcsU0FBUyxZQUFZO0lBQ25CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUN4QixNQUFNLEdBQUc7UUFDUDtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsYUFBYSxFQUFFLEdBQUcsRUFBRTtnQkFDbEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxXQUFXLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDM0IsUUFBUSxFQUFFO2dCQUNSO29CQUNFLElBQUksRUFBRSxTQUFTO29CQUNmLFFBQVEsRUFBRTt3QkFDUjs0QkFDRSxJQUFJLEVBQUUsZ0JBQWdCOzRCQUN0QixhQUFhLEVBQUUsR0FBRyxFQUFFO2dDQUNsQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDOzRCQUN0QyxDQUFDOzRCQUNELE9BQU8sRUFBRTtnQ0FDUCxFQUFFLEVBQUUsOEJBQThCOzZCQUNuQzs0QkFDRCxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO3lCQUN2Qjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsb0JBQW9COzRCQUMxQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsZ0NBQWdDLEVBQUU7NEJBQ2pELGFBQWEsRUFBRSxHQUFHLEVBQUU7Z0NBQ2xCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3hDLENBQUM7NEJBQ0QsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTt5QkFDdkI7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLGVBQWU7NEJBQ3JCLFVBQVUsRUFBRSxvQkFBb0I7NEJBQ2hDLFNBQVMsRUFBRSxNQUFNO3lCQUNsQjt3QkFDRDs0QkFDRSxJQUFJLEVBQUUsV0FBVzs0QkFDakIsVUFBVSxFQUFFLGNBQWM7NEJBQzFCLFNBQVMsRUFBRSxNQUFNO3lCQUNsQjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQXdERCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFZLGNBQW9DLEVBQUUsUUFBa0I7UUFDbEUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQ2pFLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDMUIsSUFBSSxFQUFFLGNBQWM7WUFDcEIsVUFBVSxFQUFFLHNCQUFzQjtZQUNsQyxRQUFRLEVBQUUsR0FBRztZQUNiLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDZCxxQkFBcUI7Z0JBQ3JCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FaVSxlQUFlOytHQUFmLGVBQWUsWUFwRHhCLFlBQVk7K0dBb0RILGVBQWUsYUFsQmY7WUFDVDtnQkFDRSxPQUFPLEVBQUUsTUFBTTtnQkFDZixLQUFLLEVBQUUsSUFBSTtnQkFDWCxVQUFVLEVBQUUsWUFBWTthQUN6QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSw4QkFBOEI7Z0JBQ3ZDLFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRDtnQkFDRSxPQUFPLEVBQUUsOEJBQThCO2dCQUN2QyxRQUFRLEVBQUUsd0NBQXdDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFsREMsWUFBWTtZQUNaLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztnQkFDekIsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtvQkFDMUIsNEJBQTRCO29CQUM1Qix5QkFBeUI7b0JBQ3pCLHVCQUF1QixFQUFFLDRCQUE0QjtvQkFDckQsaUNBQWlDO29CQUNqQywrQkFBK0I7b0JBQy9CLDhCQUE4QjtvQkFDOUIsY0FBYztvQkFDZCx1QkFBdUI7b0JBQ3ZCLDhCQUE4QjtvQkFDOUIscUJBQXFCO29CQUNyQixzQkFBc0IsRUFBRSwyQkFBMkI7b0JBQ25ELDhCQUE4QjtpQkFDL0I7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGVBQWUsRUFBRSx1QkFBdUI7b0JBQ3hDLGVBQWUsRUFBRSx1QkFBdUI7b0JBQ3hDLHVCQUF1QixFQUFFLDhCQUE4QjtvQkFDdkQscUJBQXFCLEVBQUUsNEJBQTRCO29CQUNuRCxhQUFhLEVBQUUsMEJBQTBCO29CQUN6QyxnQkFBZ0IsRUFBRSx1QkFBdUI7b0JBQ3pDLDBCQUEwQixFQUFFLGdDQUFnQztpQkFDN0Q7Z0JBQ0QsU0FBUyxFQUFFLEVBQUU7YUFDZCxDQUFDO1lBQ0Ysc0JBQXNCLENBQUMsUUFBUSxDQUFDO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsbUJBQW1CLENBQUM7YUFDekUsQ0FBQzs7MkZBc0JPLGVBQWU7a0JBdEQzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQixDQUFDLFFBQVEsQ0FBQzs0QkFDekIsT0FBTyxFQUFFO2dDQUNQLDBCQUEwQjtnQ0FDMUIsNEJBQTRCO2dDQUM1Qix5QkFBeUI7Z0NBQ3pCLHVCQUF1QixFQUFFLDRCQUE0QjtnQ0FDckQsaUNBQWlDO2dDQUNqQywrQkFBK0I7Z0NBQy9CLDhCQUE4QjtnQ0FDOUIsY0FBYztnQ0FDZCx1QkFBdUI7Z0NBQ3ZCLDhCQUE4QjtnQ0FDOUIscUJBQXFCO2dDQUNyQixzQkFBc0IsRUFBRSwyQkFBMkI7Z0NBQ25ELDhCQUE4Qjs2QkFDL0I7NEJBQ0QsU0FBUyxFQUFFO2dDQUNULGVBQWUsRUFBRSx1QkFBdUI7Z0NBQ3hDLGVBQWUsRUFBRSx1QkFBdUI7Z0NBQ3hDLHVCQUF1QixFQUFFLDhCQUE4QjtnQ0FDdkQscUJBQXFCLEVBQUUsNEJBQTRCO2dDQUNuRCxhQUFhLEVBQUUsMEJBQTBCO2dDQUN6QyxnQkFBZ0IsRUFBRSx1QkFBdUI7Z0NBQ3pDLDBCQUEwQixFQUFFLGdDQUFnQzs2QkFDN0Q7NEJBQ0QsU0FBUyxFQUFFLEVBQUU7eUJBQ2QsQ0FBQzt3QkFDRixzQkFBc0IsQ0FBQyxRQUFRLENBQUM7NEJBQzlCLE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsQ0FBQzt5QkFDekUsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsRUFBRTtvQkFDWCxZQUFZLEVBQUUsRUFBRTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxNQUFNOzRCQUNmLEtBQUssRUFBRSxJQUFJOzRCQUNYLFVBQVUsRUFBRSxZQUFZO3lCQUN6Qjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxRQUFRLEVBQUUsaUNBQWlDOzRCQUMzQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxRQUFRLEVBQUUsd0NBQXdDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEF1dGhHdWFyZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBUb2FzdEFjdGlvbiwgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbiwgQVhQX1NFQVJDSF9ERUZJTklUSU9OX1BST1ZJREVSIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuXG5pbXBvcnQgeyBBWFBBcHBTdGFydFVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJPVVRFUywgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5TGlzdFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLWxpc3Qudmlld21vZGVsJztcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbFJlc29sdmVyIH0gZnJvbSAnLi9lbnRpdHktbWFzdGVyLXNpbmdsZS52aWV3bW9kZWwnO1xuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnLi9lbnRpdHkuY29uZmlnJztcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRTZWFyY2hEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3NlYXJjaC1kZWZpbml0aW9uLWNvbW1hbmQucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9zZWFyY2gtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWFBMb29rdXBXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvbG9va3VwLXdpZGdldCc7XG5pbXBvcnQgeyBBWFBUYWdhYmxlQm94V2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3RhZ2FibGUtYm94JztcbmltcG9ydCB7IEFYUFdpZGdldFNlbGVjdG9yV2lkZ2V0IH0gZnJvbSAnLi93aWRnZXRzL3dpZGdldC1zZWxlY3Rvcic7XG5pbXBvcnQge1xuICBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgQVhQRW50aXR5Q3JlYXRlUG9wdXBBY3Rpb24sXG4gIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbn0gZnJvbSAnLi93b3JrZmxvd3MvY3JlYXRlLWVudGl0eS53b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdywgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbiB9IGZyb20gJy4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3cnO1xuaW1wb3J0IHtcbiAgQVhQRW50aXR5QXBwbHlVcGRhdGVzQWN0aW9uLFxuICBBWFBRdWlja0VudGl0eU1vZGlmeVBvcHVwQWN0aW9uLFxuICBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9tb2RpZnktZW50aXR5LndvcmtmbG93JztcbmltcG9ydCB7XG4gIEFYUEVudGl0eU1vZGlmeUNvbmZpcm1lZEFjdGlvbixcbiAgQVhQRW50aXR5TW9kaWZ5U2VjdGlvblBvcHVwQWN0aW9uLFxuICBBWFBNb2RpZnlFbnRpdHlTZWN0aW9uV29ya2Zsb3csXG59IGZyb20gJy4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNob3dEZXRhaWxWaWV3QWN0aW9uLCBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctZGV0YWlscy53b3JrZmxvdyc7XG5pbXBvcnQge1xuICBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBBY3Rpb24sXG4gIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cFdvcmtmbG93LFxufSBmcm9tICcuL3dvcmtmbG93cy9zaG93LWZpbGUtdXBsb2FkZXItcG9wdXAud29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLCBBWFBTaG93TGlzdFZpZXdXb3JrZmxvdyB9IGZyb20gJy4vd29ya2Zsb3dzL3Nob3ctbGlzdC53b3JrZmxvdyc7XG5cbmZ1bmN0aW9uIHJvdXRlc0ZhY29yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgbGV0IHJvdXRlczogUm91dGVzID0gW107XG4gIHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICBwYXRoOiAnOmFwcC9tJyxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy52aWV3ZXJzLnJvb3QoKTtcbiAgICAgIH0sXG4gICAgICBjYW5BY3RpdmF0ZTogW0FYUEF1dGhHdWFyZF0sXG4gICAgICBjaGlsZHJlbjogW1xuICAgICAgICB7XG4gICAgICAgICAgcGF0aDogJzptb2R1bGUnLFxuICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHkvbGlzdCcsXG4gICAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMubWFzdGVyLmxpc3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHZtOiBBWFBFbnRpdHlMaXN0Vmlld01vZGVsUmVzb2x2ZXIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZC92aWV3JyxcbiAgICAgICAgICAgICAgcmVzb2x2ZTogeyB2bTogQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXIgfSxcbiAgICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcudmlld2Vycy5tYXN0ZXIuc2luZ2xlKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGRhdGE6IHsgcmV1c2U6IGZhbHNlIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXRoOiAnZS86ZW50aXR5LzppZCcsXG4gICAgICAgICAgICAgIHJlZGlyZWN0VG86ICdlLzplbnRpdHkvOmlkL3ZpZXcnLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2g6ICdmdWxsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGg6ICdlLzplbnRpdHknLFxuICAgICAgICAgICAgICByZWRpcmVjdFRvOiAnOmVudGl0eS9saXN0JyxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF07XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgQVhQV29ya2Zsb3dNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgYWN0aW9uczoge1xuICAgICAgICBBWFBFbnRpdHlDcmVhdGVQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5UGVyZm9ybURlbGV0ZUFjdGlvbixcbiAgICAgICAgQVhQV29ya2Zsb3dOYXZpZ2F0ZUFjdGlvbixcbiAgICAgICAgJ2VudGl0eS1wZXJmb3JtLWRlbGV0ZSc6IEFYUEVudGl0eVBlcmZvcm1EZWxldGVBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eU1vZGlmeVNlY3Rpb25Qb3B1cEFjdGlvbixcbiAgICAgICAgQVhQUXVpY2tFbnRpdHlNb2RpZnlQb3B1cEFjdGlvbixcbiAgICAgICAgQVhQRW50aXR5TW9kaWZ5Q29uZmlybWVkQWN0aW9uLFxuICAgICAgICBBWFBUb2FzdEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0RldGFpbFZpZXdBY3Rpb24sXG4gICAgICAgIEFYUEVudGl0eUNyZWF0ZVN1Ym1pdHRlZEFjdGlvbixcbiAgICAgICAgQVhQU2hvd0xpc3RWaWV3QWN0aW9uLFxuICAgICAgICAnZW50aXR5LWFwcGx5LXVwZGF0ZXMnOiBBWFBFbnRpdHlBcHBseVVwZGF0ZXNBY3Rpb24sXG4gICAgICAgIEFYUFNob3dGaWxlVXBsb2FkZXJQb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgJ2NyZWF0ZS1lbnRpdHknOiBBWFBDcmVhdGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ2RlbGV0ZS1lbnRpdHknOiBBWFBEZWxldGVFbnRpdHlXb3JrZmxvdyxcbiAgICAgICAgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IEFYUE1vZGlmeUVudGl0eVNlY3Rpb25Xb3JrZmxvdyxcbiAgICAgICAgJ3F1aWNrLW1vZGlmeS1lbnRpdHknOiBBWFBRdWlja01vZGlmeUVudGl0eVdvcmtmbG93LFxuICAgICAgICAnb3Blbi1lbnRpdHknOiBBWFBTaG93RGV0YWlsc1ZpZXdXb3JrZmxvdyxcbiAgICAgICAgJ3Nob3ctbGlzdC12aWV3JzogQVhQU2hvd0xpc3RWaWV3V29ya2Zsb3csXG4gICAgICAgICdzaG93LWZpbGUtdXBsb2FkZXItcG9wdXAnOiBBWFBTaG93RmlsZVVwbG9hZGVyUG9wdXBXb3JrZmxvdyxcbiAgICAgIH0sXG4gICAgICBmdW5jdGlvbnM6IHt9LFxuICAgIH0pLFxuICAgIEFYUExheW91dEJ1aWxkZXJNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgd2lkZ2V0czogW0FYUExvb2t1cFdpZGdldCwgQVhQV2lkZ2V0U2VsZWN0b3JXaWRnZXQsIEFYUFRhZ2FibGVCb3hXaWRnZXRdLFxuICAgIH0pLFxuICBdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9VVEVTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiByb3V0ZXNGYWNvcnksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5U2VhcmNoRGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfU0VBUkNIX0RFRklOSVRJT05fUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhQRW50aXR5Q29tbWFuZFNlYXJjaERlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKGFwcEluaXRTZXJ2aWNlOiBBWFBBcHBTdGFydFVwU2VydmljZSwgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgY29uc3Qgc2VydmljZSA9IGluamVjdG9yLmdldChBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlKTtcbiAgICBhcHBJbml0U2VydmljZS5yZWdpc3RlclRhc2soe1xuICAgICAgbmFtZTogJ2xheW91dC10aGVtZScsXG4gICAgICBzdGF0dXNUZXh0OiAnUHJlbG9hZCBlbnRpdGllcyAuLi4nLFxuICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICAgIHJ1bjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBsb2FkIGluIGJhY2tncm91bmRcbiAgICAgICAgc2VydmljZS5wcmVsb2FkKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=","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}\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 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 entityDetailsCrudActions(parentId) {\n return [\n entityDetailsCreateActions(parentId),\n entityMasterBulkDeleteAction(),\n entityDetailsEditAction(),\n entityMasterDeleteAction(),\n ];\n}\n// #endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLHFCQUFxQixFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBRWpHLGlCQUFpQjtBQUVqQixNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFNBQVM7S0FDekMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQ3hDLE9BQU87UUFDSCxLQUFLLEVBQUUscUNBQXFDO1FBQzVDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFFBQVE7S0FDeEMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsc0JBQXNCO0lBQ2xDLE9BQU87UUFDSCxLQUFLLEVBQUUsNkJBQTZCO1FBQ3BDLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsd0JBQXdCO0lBQ3BDLE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLElBQUksRUFBRSxRQUFRO1FBQ2QsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7S0FDMUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ25DLE9BQU87UUFDSCx3QkFBd0IsRUFBRTtRQUMxQiw0QkFBNEIsRUFBRTtRQUM5QixzQkFBc0IsRUFBRTtRQUN4Qix3QkFBd0IsRUFBRTtLQUM3QixDQUFDO0FBQ04sQ0FBQztBQUVELGFBQWE7QUFHYixrQkFBa0I7QUFFbEIsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWdCO0lBQ3ZELE9BQU87UUFDSCxLQUFLLEVBQUUsK0JBQStCO1FBQ3RDLE9BQU8sRUFBRTtZQUNMLElBQUksRUFBRSxlQUFlO1lBQ3JCLE9BQU8sRUFBRTtnQkFDTCxPQUFPLEVBQUU7b0JBQ0wsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsZUFBZSxFQUFFLElBQUk7b0JBQ3JCLElBQUksRUFBRTt3QkFDRixDQUFDLFFBQVEsQ0FBQyxFQUFFLHdCQUF3QjtxQkFDdkM7aUJBQ0o7YUFDSjtTQUNKO1FBQ0QsUUFBUSxFQUFFLFNBQVM7UUFDbkIsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLLEVBQUUscUJBQXFCLENBQUMsU0FBUztLQUN6QyxDQUFDO0FBQ04sQ0FBQztBQUdELE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxFQUFVO0lBQ25ELE9BQU87UUFDSCxJQUFJLEVBQUUsRUFBRTtRQUNSLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDM0IsS0FBSyxFQUFFLHdCQUF3QjtLQUNsQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDbkMsT0FBTztRQUNILEtBQUssRUFBRSw2QkFBNkI7UUFDcEMsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixRQUFRLEVBQUUsV0FBVztRQUNyQixJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxVQUFVO0tBQzFDLENBQUM7QUFDTixDQUFDO0FBR0QsTUFBTSxVQUFVLHdCQUF3QixDQUFDLFFBQWdCO0lBQ3JELE9BQU87UUFDSCwwQkFBMEIsQ0FBQyxRQUFRLENBQUM7UUFDcEMsNEJBQTRCLEVBQUU7UUFDOUIsdUJBQXVCLEVBQUU7UUFDekIsd0JBQXdCLEVBQUU7S0FDN0IsQ0FBQztBQUNOLENBQUM7QUFFRCxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQRW50aXR5QWN0aW9uLCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUFF1ZXJ5RmlsdGVyIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vY29tbW9uXCI7XG5cbi8vICNyZWdpb24gTWFzdGVyXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJDcmVhdGVBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckJ1bGtEZWxldGVBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZGVsZXRlLWl0ZW1zLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDogJ2RlbGV0ZS1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnZGVsZXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5TZWxlY3RlZCxcbiAgICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJWaWV3QWN0aW9uKCk6IEFYUEVudGl0eUFjdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLnZpZXcudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnb3Blbi1lbnRpdHknLFxuICAgICAgICBwcmlvcml0eTogJ3NlY29uZGFyeScsXG4gICAgICAgIHR5cGU6ICd2aWV3JyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eU1hc3RlckRlbGV0ZUFjdGlvbigpOiBBWFBFbnRpdHlBY3Rpb24ge1xuICAgIHJldHVybiB7XG4gICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5kZWxldGUudGl0bGUnLFxuICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICB9O1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucygpOiBBWFBFbnRpdHlBY3Rpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgZW50aXR5TWFzdGVyQ3JlYXRlQWN0aW9uKCksXG4gICAgICAgIGVudGl0eU1hc3RlckJ1bGtEZWxldGVBY3Rpb24oKSxcbiAgICAgICAgZW50aXR5TWFzdGVyVmlld0FjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuLy8gI3JlZ2lvbiBEZXRhaWxzXG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlEZXRhaWxzQ3JlYXRlQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY3JlYXRlLnRpdGxlJyxcbiAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZS1lbnRpdHknLFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHByb2Nlc3M6IHtcbiAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjYW5DcmVhdGVOZXdPbmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRJZF06ICd7e2NvbnRleHQuZXZhbChcImlkXCIpfX0nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcmlvcml0eTogJ3ByaW1hcnknLFxuICAgICAgICB0eXBlOiAnY3JlYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5UeXBlTGV2ZWwsXG4gICAgfTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc1NpbXBsZUNvbmRpdGlvbihmazogc3RyaW5nKTogQVhQUXVlcnlGaWx0ZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IGZrLFxuICAgICAgICBvcGVyYXRvcjogeyB0eXBlOiAnZXF1YWwnIH0sXG4gICAgICAgIHZhbHVlOiAne3tjb250ZXh0LmV2YWwoXCJpZFwiKX19JyxcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5RGV0YWlsc0VkaXRBY3Rpb24oKTogQVhQRW50aXR5QWN0aW9uIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuZWRpdC50aXRsZScsXG4gICAgICAgIGNvbW1hbmQ6ICdxdWljay1tb2RpZnktZW50aXR5JyxcbiAgICAgICAgcHJpb3JpdHk6ICdzZWNvbmRhcnknLFxuICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgIH07XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eURldGFpbHNDcnVkQWN0aW9ucyhwYXJlbnRJZDogc3RyaW5nKTogQVhQRW50aXR5QWN0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICAgIGVudGl0eURldGFpbHNDcmVhdGVBY3Rpb25zKHBhcmVudElkKSxcbiAgICAgICAgZW50aXR5TWFzdGVyQnVsa0RlbGV0ZUFjdGlvbigpLFxuICAgICAgICBlbnRpdHlEZXRhaWxzRWRpdEFjdGlvbigpLFxuICAgICAgICBlbnRpdHlNYXN0ZXJEZWxldGVBY3Rpb24oKSxcbiAgICBdO1xufVxuXG4vLyAjZW5kcmVnaW9uXG5cblxuXG5cblxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLWxheW91dC1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2Fjb3JleC1wbGF0Zm9ybS1sYXlvdXQtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2","i1","i5","i6","i7","i3","i4"],"mappings":"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"}