@acorex/modules 21.0.0-next.7 → 21.0.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/business-core/README.md +44 -1
- package/document-management/index.d.ts +1 -2
- package/fesm2022/acorex-modules-application-management.mjs +1 -0
- package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-auth-acorex-modules-auth-D5jGjm6i.mjs → acorex-modules-auth-acorex-modules-auth-8XP9xX7L.mjs} +95 -51
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-8XP9xX7L.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-app-chooser.component-BL3Fmc7y.mjs → acorex-modules-auth-app-chooser.component-BvbLYIXA.mjs} +6 -6
- package/fesm2022/acorex-modules-auth-app-chooser.component-BvbLYIXA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-login.module-D8-GN_Hx.mjs → acorex-modules-auth-login.module-DLWlieUn.mjs} +4 -4
- package/fesm2022/{acorex-modules-auth-login.module-D8-GN_Hx.mjs.map → acorex-modules-auth-login.module-DLWlieUn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-master.layout-CgDrAbPS.mjs → acorex-modules-auth-master.layout-BzV1eUvM.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-master.layout-CgDrAbPS.mjs.map → acorex-modules-auth-master.layout-BzV1eUvM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-lEMWnVJL.mjs → acorex-modules-auth-oauth-callback.component-CqaXMQdp.mjs} +5 -5
- package/fesm2022/{acorex-modules-auth-oauth-callback.component-lEMWnVJL.mjs.map → acorex-modules-auth-oauth-callback.component-CqaXMQdp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-password.component-BQII_ltO.mjs → acorex-modules-auth-password.component-BR2qrph-.mjs} +9 -9
- package/fesm2022/{acorex-modules-auth-password.component-BQII_ltO.mjs.map → acorex-modules-auth-password.component-BR2qrph-.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-password.component-DMmRFHgO.mjs +563 -0
- package/fesm2022/acorex-modules-auth-password.component-DMmRFHgO.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-routes-BGLnoGO4.mjs → acorex-modules-auth-routes-BRQJ6Mx_.mjs} +2 -2
- package/fesm2022/{acorex-modules-auth-routes-BGLnoGO4.mjs.map → acorex-modules-auth-routes-BRQJ6Mx_.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CptZLRwB.mjs +58 -0
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-CptZLRwB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-BmlUjtYC.mjs → acorex-modules-auth-two-factor-code.component-CvheFTK7.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-two-factor-code.component-BmlUjtYC.mjs.map → acorex-modules-auth-two-factor-code.component-CvheFTK7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-two-factor.module-D1UjsoB8.mjs → acorex-modules-auth-two-factor.module-TGGOwEpP.mjs} +3 -3
- package/fesm2022/{acorex-modules-auth-two-factor.module-D1UjsoB8.mjs.map → acorex-modules-auth-two-factor.module-TGGOwEpP.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-auth-user-sessions.component-CIlGFT7H.mjs → acorex-modules-auth-user-sessions.component-C_JzCXUy.mjs} +6 -6
- package/fesm2022/{acorex-modules-auth-user-sessions.component-CIlGFT7H.mjs.map → acorex-modules-auth-user-sessions.component-C_JzCXUy.mjs.map} +1 -1
- package/fesm2022/acorex-modules-auth.mjs +1 -1
- package/fesm2022/{acorex-modules-business-core-business-status.entity-DE3JJYdY.mjs → acorex-modules-business-core-business-status.entity-BYUneIcN.mjs} +2 -2
- package/fesm2022/acorex-modules-business-core-business-status.entity-BYUneIcN.mjs.map +1 -0
- package/fesm2022/{acorex-modules-business-core-business-type.entity-_IwOWQVA.mjs → acorex-modules-business-core-business-type.entity-DEy8LvEV.mjs} +2 -2
- package/fesm2022/acorex-modules-business-core-business-type.entity-DEy8LvEV.mjs.map +1 -0
- package/fesm2022/{acorex-modules-business-core-industry.entity-bwgPAZDk.mjs → acorex-modules-business-core-industry.entity-CGNfgpMs.mjs} +2 -2
- package/fesm2022/acorex-modules-business-core-industry.entity-CGNfgpMs.mjs.map +1 -0
- package/fesm2022/{acorex-modules-business-core-manufacturer.entity-CDlQlBUD.mjs → acorex-modules-business-core-manufacturer.entity-DhyMx-nJ.mjs} +2 -1
- package/fesm2022/acorex-modules-business-core-manufacturer.entity-DhyMx-nJ.mjs.map +1 -0
- package/fesm2022/acorex-modules-business-core.mjs +4 -4
- package/fesm2022/{acorex-modules-customer-management-customer-segment.entity-CUBg2GZp.mjs → acorex-modules-customer-management-customer-segment.entity-CoYAU5g3.mjs} +2 -1
- package/fesm2022/acorex-modules-customer-management-customer-segment.entity-CoYAU5g3.mjs.map +1 -0
- package/fesm2022/{acorex-modules-customer-management-customer-type.entity-rmq6BeCF.mjs → acorex-modules-customer-management-customer-type.entity-pt4gpOGq.mjs} +2 -1
- package/fesm2022/acorex-modules-customer-management-customer-type.entity-pt4gpOGq.mjs.map +1 -0
- package/fesm2022/acorex-modules-customer-management.mjs +2 -2
- package/fesm2022/acorex-modules-document-management.mjs +5 -2
- package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-financial-core.mjs +7 -5
- package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
- package/fesm2022/acorex-modules-human-capital-management-approve-leave-request.command-DN2T2hBp.mjs +59 -0
- package/fesm2022/acorex-modules-human-capital-management-approve-leave-request.command-DN2T2hBp.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management-cancel-leave-request.command-CYMo0I8p.mjs +59 -0
- package/fesm2022/acorex-modules-human-capital-management-cancel-leave-request.command-CYMo0I8p.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-BDh7IX7_.mjs → acorex-modules-human-capital-management-leave-request.entity-Dm_IKrVw.mjs} +1 -2
- package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-Dm_IKrVw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-DlCdAtaz.mjs → acorex-modules-human-capital-management-leave-type.entity-CY81Nohl.mjs} +11 -3
- package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-CY81Nohl.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management-reject-leave-request.command-1Bn0gaZi.mjs +62 -0
- package/fesm2022/acorex-modules-human-capital-management-reject-leave-request.command-1Bn0gaZi.mjs.map +1 -0
- package/fesm2022/acorex-modules-human-capital-management.mjs +114 -38
- package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-learning-management-certificate-definition.entity-BVvSzl2b.mjs → acorex-modules-learning-management-certificate-definition.entity-27VKYxw1.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-certificate-definition.entity-27VKYxw1.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-course.entity-BYb3Mgyi.mjs → acorex-modules-learning-management-course.entity-BN8XHAPz.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-course.entity-BN8XHAPz.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-skill.entity-CK93JIPg.mjs → acorex-modules-learning-management-skill.entity-rfMFaOAJ.mjs} +2 -1
- package/fesm2022/acorex-modules-learning-management-skill.entity-rfMFaOAJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-training-definition.entity-C5RVLTy7.mjs → acorex-modules-learning-management-training-definition.entity-NQqJ5avw.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-training-definition.entity-NQqJ5avw.mjs.map +1 -0
- package/fesm2022/{acorex-modules-learning-management-training.entity-KfxtUHEK.mjs → acorex-modules-learning-management-training.entity-DHGSlVR3.mjs} +2 -2
- package/fesm2022/acorex-modules-learning-management-training.entity-DHGSlVR3.mjs.map +1 -0
- package/fesm2022/acorex-modules-learning-management.mjs +5 -5
- package/fesm2022/acorex-modules-notification-management.mjs +34 -16
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-order-management.mjs +4 -0
- package/fesm2022/acorex-modules-order-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-Cki_0gIY.mjs → acorex-modules-organization-management-job-definition.entity-s-TfP412.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-job-definition.entity-s-TfP412.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-m7QrOTgN.mjs → acorex-modules-organization-management-position.entity-vbmjSfyb.mjs} +2 -2
- package/fesm2022/acorex-modules-organization-management-position.entity-vbmjSfyb.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +2 -2
- package/fesm2022/{acorex-modules-person-management-person.entity-DWfnmtVe.mjs → acorex-modules-person-management-person.entity-BnliZw-K.mjs} +35 -33
- package/fesm2022/acorex-modules-person-management-person.entity-BnliZw-K.mjs.map +1 -0
- package/fesm2022/acorex-modules-person-management.mjs +1 -1
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CAntNN8Z.mjs} +4 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-BOo-XED8.mjs.map → acorex-modules-platform-management-acorex-modules-platform-management-CAntNN8Z.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs → acorex-modules-platform-management-menu-list.component-CWutHAb3.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-menu-list.component-BtQ0O4sx.mjs.map → acorex-modules-platform-management-menu-list.component-CWutHAb3.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/{acorex-modules-product-catalog-brand.entity-DIv0bsiY.mjs → acorex-modules-product-catalog-brand.entity-C8VOfwF0.mjs} +2 -1
- package/fesm2022/acorex-modules-product-catalog-brand.entity-C8VOfwF0.mjs.map +1 -0
- package/fesm2022/{acorex-modules-product-catalog-product-sku.entity-CQw4VxjA.mjs → acorex-modules-product-catalog-product-sku.entity-Cxif--1E.mjs} +2 -1
- package/fesm2022/acorex-modules-product-catalog-product-sku.entity-Cxif--1E.mjs.map +1 -0
- package/fesm2022/{acorex-modules-product-catalog-product.entity-Cqye5OFr.mjs → acorex-modules-product-catalog-product.entity--aXivZUd.mjs} +2 -1
- package/fesm2022/acorex-modules-product-catalog-product.entity--aXivZUd.mjs.map +1 -0
- package/fesm2022/acorex-modules-product-catalog.mjs +3 -3
- package/fesm2022/acorex-modules-project-management.mjs +30 -1
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-Cp5QCIll.mjs → acorex-modules-report-management-report-runner-root-page.component-DEX4VgHX.mjs} +9 -9
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DEX4VgHX.mjs.map +1 -0
- package/fesm2022/acorex-modules-report-management.mjs +1 -1
- package/fesm2022/acorex-modules-subscription-management.mjs +3 -0
- package/fesm2022/acorex-modules-subscription-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-supplier-management.mjs +1 -0
- package/fesm2022/acorex-modules-supplier-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs → acorex-modules-task-management-task-board.page-6D76WpRB.mjs} +468 -42
- package/fesm2022/acorex-modules-task-management-task-board.page-6D76WpRB.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +9 -3
- package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-tenant-management.mjs +2 -0
- package/fesm2022/acorex-modules-tenant-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +1692 -28
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/human-capital-management/index.d.ts +1 -0
- package/package.json +2 -2
- package/task-management/index.d.ts +1 -1
- package/workflow-management/index.d.ts +446 -11
- package/fesm2022/acorex-modules-auth-acorex-modules-auth-D5jGjm6i.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-app-chooser.component-BL3Fmc7y.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-password.component-DKG8o8k8.mjs +0 -226
- package/fesm2022/acorex-modules-auth-password.component-DKG8o8k8.mjs.map +0 -1
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-DNDhBKDp.mjs +0 -109
- package/fesm2022/acorex-modules-auth-tenant-chooser.component-DNDhBKDp.mjs.map +0 -1
- package/fesm2022/acorex-modules-business-core-business-status.entity-DE3JJYdY.mjs.map +0 -1
- package/fesm2022/acorex-modules-business-core-business-type.entity-_IwOWQVA.mjs.map +0 -1
- package/fesm2022/acorex-modules-business-core-industry.entity-bwgPAZDk.mjs.map +0 -1
- package/fesm2022/acorex-modules-business-core-manufacturer.entity-CDlQlBUD.mjs.map +0 -1
- package/fesm2022/acorex-modules-customer-management-customer-segment.entity-CUBg2GZp.mjs.map +0 -1
- package/fesm2022/acorex-modules-customer-management-customer-type.entity-rmq6BeCF.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-BDh7IX7_.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-DlCdAtaz.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-certificate-definition.entity-BVvSzl2b.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-course.entity-BYb3Mgyi.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-skill.entity-CK93JIPg.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-training-definition.entity-C5RVLTy7.mjs.map +0 -1
- package/fesm2022/acorex-modules-learning-management-training.entity-KfxtUHEK.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-job-definition.entity-Cki_0gIY.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-position.entity-m7QrOTgN.mjs.map +0 -1
- package/fesm2022/acorex-modules-person-management-person.entity-DWfnmtVe.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-brand.entity-DIv0bsiY.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product-sku.entity-CQw4VxjA.mjs.map +0 -1
- package/fesm2022/acorex-modules-product-catalog-product.entity-Cqye5OFr.mjs.map +0 -1
- package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-Cp5QCIll.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-Cm8wJD-y.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-workflow-management.mjs","sources":["../tmp-esm2022/workflow-management/lib/const.js","../tmp-esm2022/workflow-management/lib/entity.provider.js","../tmp-esm2022/workflow-management/lib/menu.keys.js","../tmp-esm2022/workflow-management/lib/menu.provider.js","../tmp-esm2022/workflow-management/lib/manifest.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.plugin.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.workflow.js","../tmp-esm2022/workflow-management/lib/features/sign/widgets/signature-list/signature-list-widget.config.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.service.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/commands/execute-workflow.command.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.entity.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.service.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.entity.js","../tmp-esm2022/workflow-management/lib/workflow-definitions/workflow-definition.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/workflow-activities-definition.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/category.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/workflows/workflow-category.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/workflows/workflow-definition-metadata.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/check-permission.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/execute-query.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/execute-command.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/show-confirm-popup.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/show-layout-popup.activity.js","../tmp-esm2022/workflow-management/lib/workflow-management.module.js","../tmp-esm2022/workflow-management/acorex-modules-workflow-management.js"],"sourcesContent":["const config = {\n i18n: 'workflow-management',\n module: 'WorkflowManagement',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'workflow-management',\n name: config.module,\n title: '@workflow-management:module.title',\n icon: 'fa-light fa-diagram-project',\n },\n entities: {\n workflowDefinition: {\n name: 'WorkflowDefinition',\n source: `${config.module}.WorkflowDefinition`,\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.title',\n titlePlural: '@workflow-management:workflow-definitions.entities.workflow-definition.plural',\n icon: 'fa-light fa-diagram-project',\n },\n workflowInstance: {\n name: 'WorkflowInstance',\n source: `${config.module}.WorkflowInstance`,\n title: '@workflow-management:workflow-instances.entities.workflow-instance.title',\n titlePlural: '@workflow-management:workflow-instances.entities.workflow-instance.plural',\n icon: 'fa-light fa-play-circle',\n },\n activityCategory: {\n name: 'ActivityCategory',\n fullName: `${config.module}.ActivityCategory`,\n title: '@workflow-management:activities.entities.activity-category.title',\n titlePlural: '@workflow-management:activities.entities.activity-category.plural',\n icon: 'fa-light fa-folder',\n },\n activityDefinition: {\n name: 'ActivityDefinition',\n fullName: `${config.module}.ActivityDefinition`,\n title: '@workflow-management:activities.entities.activity-definition.title',\n titlePlural: '@workflow-management:activities.entities.activity-definition.plural',\n icon: 'fa-light fa-puzzle-piece',\n },\n workflowCategory: {\n name: 'WorkflowCategory',\n fullName: `${config.module}.WorkflowCategory`,\n title: '@workflow-management:workflows.entities.workflow-category.title',\n titlePlural: '@workflow-management:workflows.entities.workflow-category.plural',\n icon: 'fa-light fa-folder',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixNQUFNLEVBQUUsb0JBQW9CO0NBQzdCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTTtJQUNOLE1BQU0sRUFBRTtRQUNOLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ25CLEtBQUssRUFBRSxtQ0FBbUM7UUFDMUMsSUFBSSxFQUFFLDZCQUE2QjtLQUNwQztJQUNELFFBQVEsRUFBRTtRQUNSLGtCQUFrQixFQUFFO1lBQ2xCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCO1lBQzdDLEtBQUssRUFBRSw4RUFBOEU7WUFDckYsV0FBVyxFQUFFLCtFQUErRTtZQUM1RixJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxtQkFBbUI7WUFDM0MsS0FBSyxFQUFFLDBFQUEwRTtZQUNqRixXQUFXLEVBQUUsMkVBQTJFO1lBQ3hGLElBQUksRUFBRSx5QkFBeUI7U0FDaEM7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQjtZQUM3QyxLQUFLLEVBQUUsa0VBQWtFO1lBQ3pFLFdBQVcsRUFBRSxtRUFBbUU7WUFDaEYsSUFBSSxFQUFFLG9CQUFvQjtTQUMzQjtRQUNELGtCQUFrQixFQUFFO1lBQ2xCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCO1lBQy9DLEtBQUssRUFBRSxvRUFBb0U7WUFDM0UsV0FBVyxFQUFFLHFFQUFxRTtZQUNsRixJQUFJLEVBQUUsMEJBQTBCO1NBQ2pDO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxtQkFBbUI7WUFDN0MsS0FBSyxFQUFFLGlFQUFpRTtZQUN4RSxXQUFXLEVBQUUsa0VBQWtFO1lBQy9FLElBQUksRUFBRSxvQkFBb0I7U0FDM0I7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb25maWcgPSB7XG4gIGkxOG46ICd3b3JrZmxvdy1tYW5hZ2VtZW50JyxcbiAgbW9kdWxlOiAnV29ya2Zsb3dNYW5hZ2VtZW50Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBSb290Q29uZmlnID0ge1xuICBjb25maWcsXG4gIG1vZHVsZToge1xuICAgIHJvdXRlOiAnd29ya2Zsb3ctbWFuYWdlbWVudCcsXG4gICAgbmFtZTogY29uZmlnLm1vZHVsZSxcbiAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50Om1vZHVsZS50aXRsZScsXG4gICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWRpYWdyYW0tcHJvamVjdCcsXG4gIH0sXG4gIGVudGl0aWVzOiB7XG4gICAgd29ya2Zsb3dEZWZpbml0aW9uOiB7XG4gICAgICBuYW1lOiAnV29ya2Zsb3dEZWZpbml0aW9uJyxcbiAgICAgIHNvdXJjZTogYCR7Y29uZmlnLm1vZHVsZX0uV29ya2Zsb3dEZWZpbml0aW9uYCxcbiAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi50aXRsZScsXG4gICAgICB0aXRsZVBsdXJhbDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24ucGx1cmFsJyxcbiAgICAgIGljb246ICdmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3QnLFxuICAgIH0sXG4gICAgd29ya2Zsb3dJbnN0YW5jZToge1xuICAgICAgbmFtZTogJ1dvcmtmbG93SW5zdGFuY2UnLFxuICAgICAgc291cmNlOiBgJHtjb25maWcubW9kdWxlfS5Xb3JrZmxvd0luc3RhbmNlYCxcbiAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLnRpdGxlJyxcbiAgICAgIHRpdGxlUGx1cmFsOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLnBsdXJhbCcsXG4gICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGxheS1jaXJjbGUnLFxuICAgIH0sXG4gICAgYWN0aXZpdHlDYXRlZ29yeToge1xuICAgICAgbmFtZTogJ0FjdGl2aXR5Q2F0ZWdvcnknLFxuICAgICAgZnVsbE5hbWU6IGAke2NvbmZpZy5tb2R1bGV9LkFjdGl2aXR5Q2F0ZWdvcnlgLFxuICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDphY3Rpdml0aWVzLmVudGl0aWVzLmFjdGl2aXR5LWNhdGVnb3J5LnRpdGxlJyxcbiAgICAgIHRpdGxlUGx1cmFsOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6YWN0aXZpdGllcy5lbnRpdGllcy5hY3Rpdml0eS1jYXRlZ29yeS5wbHVyYWwnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlcicsXG4gICAgfSxcbiAgICBhY3Rpdml0eURlZmluaXRpb246IHtcbiAgICAgIG5hbWU6ICdBY3Rpdml0eURlZmluaXRpb24nLFxuICAgICAgZnVsbE5hbWU6IGAke2NvbmZpZy5tb2R1bGV9LkFjdGl2aXR5RGVmaW5pdGlvbmAsXG4gICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmFjdGl2aXRpZXMuZW50aXRpZXMuYWN0aXZpdHktZGVmaW5pdGlvbi50aXRsZScsXG4gICAgICB0aXRsZVBsdXJhbDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmFjdGl2aXRpZXMuZW50aXRpZXMuYWN0aXZpdHktZGVmaW5pdGlvbi5wbHVyYWwnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXB1enpsZS1waWVjZScsXG4gICAgfSxcbiAgICB3b3JrZmxvd0NhdGVnb3J5OiB7XG4gICAgICBuYW1lOiAnV29ya2Zsb3dDYXRlZ29yeScsXG4gICAgICBmdWxsTmFtZTogYCR7Y29uZmlnLm1vZHVsZX0uV29ya2Zsb3dDYXRlZ29yeWAsXG4gICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93cy5lbnRpdGllcy53b3JrZmxvdy1jYXRlZ29yeS50aXRsZScsXG4gICAgICB0aXRsZVBsdXJhbDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93cy5lbnRpdGllcy53b3JrZmxvdy1jYXRlZ29yeS5wbHVyYWwnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlcicsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementModuleEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n preload() {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName, entityName) {\n if (moduleName === RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.workflowDefinition.name:\n return (await import('./entities/workflow-definition/workflow-definition.entity')).factory(this.injector);\n case RootConfig.entities.workflowInstance.name:\n return (await import('./entities/workflow-instance/workflow-instance.entity')).factory(this.injector);\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdHkucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR3JDLE1BQU0sT0FBTyx5Q0FBeUM7SUFEdEQ7UUFVVSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBYXJDO0lBckJRLE9BQU87UUFDWixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUUsTUFBTSxFQUFFLE1BQU07WUFDZCxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUk7U0FDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBSUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO1FBQzlDLElBQUksVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUMsUUFBUSxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUk7b0JBQzlDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQywyREFBMkQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUcsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUk7b0JBQzVDLE9BQU8sQ0FBQyxNQUFNLE1BQU0sQ0FBQyx1REFBdUQsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxRyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FyQlUseUNBQXlDO21IQUF6Qyx5Q0FBeUM7OzRGQUF6Qyx5Q0FBeUM7a0JBRHJELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uTG9hZGVyLCBBWFBFbnRpdHlQcmVsb2FkRW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudE1vZHVsZUVudGl0eVByb3ZpZGVyIGltcGxlbWVudHMgQVhQRW50aXR5RGVmaW5pdGlvbkxvYWRlciB7XG4gIHB1YmxpYyBwcmVsb2FkKCk6IEFYUEVudGl0eVByZWxvYWRFbnRpdHlbXSB7XG4gICAgY29uc3QgbW9kdWxlID0gUm9vdENvbmZpZy5tb2R1bGUubmFtZTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShPYmplY3QudmFsdWVzKFJvb3RDb25maWcuZW50aXRpZXMpKS5tYXAoKGVudGl0eTogYW55KSA9PiAoe1xuICAgICAgbW9kdWxlOiBtb2R1bGUsXG4gICAgICBlbnRpdHk6IGVudGl0eS5uYW1lLFxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGFzeW5jIGdldChtb2R1bGVOYW1lOiBzdHJpbmcsIGVudGl0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICAgIGlmIChtb2R1bGVOYW1lID09PSBSb290Q29uZmlnLm1vZHVsZS5uYW1lKSB7XG4gICAgICBzd2l0Y2ggKGVudGl0eU5hbWUpIHtcbiAgICAgICAgY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi5uYW1lOlxuICAgICAgICAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24vd29ya2Zsb3ctZGVmaW5pdGlvbi5lbnRpdHknKSkuZmFjdG9yeSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgY2FzZSBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UubmFtZTpcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IGltcG9ydCgnLi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZS93b3JrZmxvdy1pbnN0YW5jZS5lbnRpdHknKSkuZmFjdG9yeSh0aGlzLmluamVjdG9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuIl19","export const AXPWorkflowManagementMenuKeys = {\n Root: 'workflow-management:menu',\n WorkflowDefinitions: 'workflow-management:workflow-definitions',\n WorkflowInstances: 'workflow-management:workflow-instances',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9tZW51LmtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFDM0MsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxtQkFBbUIsRUFBRSwwQ0FBMEM7SUFDL0QsaUJBQWlCLEVBQUUsd0NBQXdDO0NBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVhQV29ya2Zsb3dNYW5hZ2VtZW50TWVudUtleXMgPSB7XG4gIFJvb3Q6ICd3b3JrZmxvdy1tYW5hZ2VtZW50Om1lbnUnLFxuICBXb3JrZmxvd0RlZmluaXRpb25zOiAnd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucycsXG4gIFdvcmtmbG93SW5zdGFuY2VzOiAnd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMnLFxufSBhcyBjb25zdDtcblxuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXPWorkflowManagementMenuKeys } from './menu.keys';\nexport class AXMMenuProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.sessionService = inject(AXPSessionService);\n }\n async provide(context) {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n const module = RootConfig.module;\n context.addItems([\n {\n name: AXPWorkflowManagementMenuKeys.Root,\n priority: 9500,\n text: '@workflow-management:module.menus.root.title',\n icon: module.icon,\n policy: {\n features: [module.name],\n },\n children: [\n {\n name: AXPWorkflowManagementMenuKeys.WorkflowDefinitions,\n text: '@workflow-management:workflow-definitions.menus.workflow-definitions.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.workflowDefinition.name),\n priority: 10,\n icon: RootConfig.entities.workflowDefinition.icon,\n },\n {\n name: AXPWorkflowManagementMenuKeys.WorkflowInstances,\n text: '@workflow-management:workflow-instances.menus.workflow-instances.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.workflowInstance.name),\n priority: 20,\n icon: RootConfig.entities.workflowInstance.icon,\n },\n ],\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFzQ3JELENBQUM7SUFwQ0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFakMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmO2dCQUNFLElBQUksRUFBRSw2QkFBNkIsQ0FBQyxJQUFJO2dCQUN4QyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsOENBQThDO2dCQUNwRCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUN4QjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLDZCQUE2QixDQUFDLG1CQUFtQjt3QkFDdkQsSUFBSSxFQUFFLDRFQUE0RTt3QkFDbEYsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7d0JBQzdGLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUk7cUJBQ2xEO29CQUNEO3dCQUNFLElBQUksRUFBRSw2QkFBNkIsQ0FBQyxpQkFBaUI7d0JBQ3JELElBQUksRUFBRSx3RUFBd0U7d0JBQzlFLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO3dCQUMzRixRQUFRLEVBQUUsRUFBRTt3QkFDWixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO3FCQUNoRDtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQU2Vzc2lvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQTWVudVByb3ZpZGVyLCBBWFBNZW51UHJvdmlkZXJDb250ZXh0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01hbmFnZW1lbnRNZW51S2V5cyB9IGZyb20gJy4vbWVudS5rZXlzJztcblxuZXhwb3J0IGNsYXNzIEFYTU1lbnVQcm92aWRlciBpbXBsZW1lbnRzIEFYUE1lbnVQcm92aWRlciB7XG4gIHByaXZhdGUgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZSA9IGluamVjdChBWFBTZXNzaW9uU2VydmljZSk7XG5cbiAgYXN5bmMgcHJvdmlkZShjb250ZXh0OiBBWFBNZW51UHJvdmlkZXJDb250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXNBdXRob3JpemVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZXNzaW9uU2VydmljZS5pc0F1dGhvcml6ZWQkKTtcbiAgICBpZiAoIWlzQXV0aG9yaXplZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZSA9IFJvb3RDb25maWcubW9kdWxlO1xuXG4gICAgY29udGV4dC5hZGRJdGVtcyhbXG4gICAgICB7XG4gICAgICAgIG5hbWU6IEFYUFdvcmtmbG93TWFuYWdlbWVudE1lbnVLZXlzLlJvb3QsXG4gICAgICAgIHByaW9yaXR5OiA5NTAwLFxuICAgICAgICB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6bW9kdWxlLm1lbnVzLnJvb3QudGl0bGUnLFxuICAgICAgICBpY29uOiBtb2R1bGUuaWNvbixcbiAgICAgICAgcG9saWN5OiB7XG4gICAgICAgICAgZmVhdHVyZXM6IFttb2R1bGUubmFtZV0sXG4gICAgICAgIH0sXG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogQVhQV29ya2Zsb3dNYW5hZ2VtZW50TWVudUtleXMuV29ya2Zsb3dEZWZpbml0aW9ucyxcbiAgICAgICAgICAgIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5tZW51cy53b3JrZmxvdy1kZWZpbml0aW9ucy50aXRsZScsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2UuY3JlYXRlUGF0aChtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZSksXG4gICAgICAgICAgICBwcmlvcml0eTogMTAsXG4gICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi5pY29uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogQVhQV29ya2Zsb3dNYW5hZ2VtZW50TWVudUtleXMuV29ya2Zsb3dJbnN0YW5jZXMsXG4gICAgICAgICAgICB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLm1lbnVzLndvcmtmbG93LWluc3RhbmNlcy50aXRsZScsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLmVudGl0eVNlcnZpY2UuY3JlYXRlUGF0aChtb2R1bGUubmFtZSwgUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLm5hbWUpLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDIwLFxuICAgICAgICAgICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLmljb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXSk7XG4gIH1cbn1cbiJdfQ==","//#region ---- Imports ----\nimport { RootConfig } from './const';\n//#endregion\n//#region ---- Manifest Definition ----\n/**\n * Workflow Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const WorkflowManagementManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n // Module dependencies (optional)\n};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL21hbmlmZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLFlBQVk7QUFFWiwyQ0FBMkM7QUFFM0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXNCO0lBQzNELElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7SUFDNUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSztJQUM5QixJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQzVCLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7SUFFNUIsaUNBQWlDO0NBQ2xDLENBQUM7QUFFRixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFBNb2R1bGVNYW5pZmVzdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1hbmlmZXN0IERlZmluaXRpb24gICAtLS0tXG5cbi8qKlxuICogV29ya2Zsb3cgTWFuYWdlbWVudCBNb2R1bGUgTWFuaWZlc3QuXG4gKiBEZWZpbmVzIG1vZHVsZSBtZXRhZGF0YSwgZmVhdHVyZXMsIGFuZCBwcm92aWRlciByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY29uc3QgV29ya2Zsb3dNYW5hZ2VtZW50TWFuaWZlc3Q6IEFYUE1vZHVsZU1hbmlmZXN0ID0ge1xuICBuYW1lOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB0aXRsZTogUm9vdENvbmZpZy5tb2R1bGUudGl0bGUsXG4gIGljb246IFJvb3RDb25maWcubW9kdWxlLmljb24sXG4gIGkxOG46IFJvb3RDb25maWcuY29uZmlnLmkxOG4sXG5cbiAgLy8gTW9kdWxlIGRlcGVuZGVuY2llcyAob3B0aW9uYWwpXG59O1xuXG4vLyNlbmRyZWdpb25cblxuIl19","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { actionExists, ensureListActions } from '@acorex/platform/layout/entity';\nexport const signPlugin = {\n name: 'sign',\n order: 47,\n apply: (ctx, options) => {\n const opts = options ?? {};\n const field = opts.field && opts.field.trim().length > 0 ? opts.field : 'signatures';\n const displayTitle = opts.title && opts.title.trim().length > 0 ? opts.title : 'Digital Signatures';\n const moduleName = ctx.entity.module;\n const baseEntityName = ctx.entity.name;\n const distributionEntityName = `${baseEntityName}Distribution`;\n if (typeof options?.command === 'string') {\n options.command = {\n name: options.command,\n options: {\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n schemaEntity: ctx,\n },\n };\n }\n else {\n if (options?.command) {\n options.command = {\n name: options.command.name,\n options: {\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n schemaEntity: ctx,\n ...options.command.options,\n },\n metadata: options.command.metadata,\n };\n }\n }\n const action = {\n title: '@general:actions.sign.title',\n name: 'sign-entity',\n command: {\n name: 'sign',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n viewType: options?.viewType ?? 'none',\n checkBoxLabel: options?.checkBoxLabel,\n command: options?.command,\n },\n },\n priority: 'secondary',\n type: 'sign',\n scope: AXPEntityCommandScope.Individual,\n disabled: \"{{ (context.eval('signatures') ?? []).filter((x) => x.auditInfo.created.by.id === session.currentUser().id).length > 0 }}\",\n };\n // Ensure group and section ids (unique per field)\n const sectionId = `signatures-${field}`;\n const groupIdForProperty = `signatures-${field}`;\n const existingGroups = ctx.groups.list() ?? [];\n if (!existingGroups.some((g) => g.id === groupIdForProperty)) {\n ctx.groups.add({ id: groupIdForProperty, title: displayTitle });\n }\n // Ensure property exists for displaying signatures\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === field)) {\n ctx.properties.add({\n name: field,\n title: displayTitle,\n groupId: groupIdForProperty,\n schema: {\n dataType: 'string',\n interface: {\n type: 'signature-list',\n },\n },\n });\n }\n // Ensure single view section and property layout exists\n const sectionOrder = 9;\n const colSpan = 12;\n ctx.interfaces.master.single.update((single) => {\n const next = single ?? { title: ctx.entity.title, sections: [], properties: [] };\n next.sections = next.sections ?? [];\n if (!next.sections.some((s) => s.id === sectionId)) {\n next.sections.push({ id: sectionId, title: displayTitle, order: 200 });\n }\n next.properties = next.properties ?? [];\n if (!next.properties.some((p) => p.name === field)) {\n next.properties.push({\n name: field,\n layout: {\n label: { visible: false },\n positions: { lg: { colSpan, order: sectionOrder } },\n },\n });\n }\n return next;\n });\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = i.master.list.actions;\n if (!actionExists(actions, action.name ?? '')) {\n actions.push(action);\n }\n const singleActions = i.master.single.actions;\n if (!actionExists(singleActions, action.name ?? '')) {\n singleActions.push(action);\n }\n return i;\n });\n // Stamp normalized config for middleware\n ctx.entity.extensions ??= {};\n ctx.entity.extensions.signatures ??= {};\n ctx.entity.extensions.signatures[field] = { title: displayTitle };\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NpZ24vc2lnbi5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QyxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQXlCLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFReEcsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUEwQjtJQUMvQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQThCLEVBQUUsRUFBRTtRQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFJLElBQVksQ0FBQyxLQUFLLElBQUssSUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDaEgsTUFBTSxZQUFZLEdBQ2YsSUFBWSxDQUFDLEtBQUssSUFBSyxJQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1FBRTVHLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxjQUFjLGNBQWMsQ0FBQztRQUUvRCxJQUFJLE9BQU8s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LEVBQUUsRUFBRTtxQkFDcEQ7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFJLENBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQTRCLENBQUM7WUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBSSxDQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUE0QixDQUFDO1lBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBRUQsT0FBTyxDQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCx5Q0FBeUM7UUFDeEMsR0FBRyxDQUFDLE1BQWMsQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxNQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUM7UUFDaEQsR0FBRyxDQUFDLE1BQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzdFLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29tbWFuZEFjdGlvbkNhbGxiYWNrLCBBWFBFbnRpdHlBY3Rpb24sIEFYUEVudGl0eUNvbW1hbmRTY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGFjdGlvbkV4aXN0cywgQVhQRW50aXR5QWN0aW9uUGx1Z2luLCBlbnN1cmVMaXN0QWN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhNU2lnblBsdWdpbk9wdGlvbnMge1xuICB2aWV3VHlwZTogJ2NoZWNrQm94JyB8ICdzaWduJyB8ICdub25lJzsgLy8gbm9uZSBpcyBkZWZhdWx0XG4gIGNoZWNrQm94TGFiZWw/OiBzdHJpbmc7IC8vIGlmIHZpZXdUeXBlIGlzIGNoZWNrQm94LCB0aGlzIGxhYmVsIHdpbGwgYmUgdXNlZFxuICBjb21tYW5kOiBBWFBDb21tYW5kQWN0aW9uQ2FsbGJhY2s7IC8vIGNvbW1hbmQgbmFtZVxufVxuXG5leHBvcnQgY29uc3Qgc2lnblBsdWdpbjogQVhQRW50aXR5QWN0aW9uUGx1Z2luID0ge1xuICBuYW1lOiAnc2lnbicsXG4gIG9yZGVyOiA0NyxcbiAgYXBwbHk6IChjdHgsIG9wdGlvbnM/OiBBWE1TaWduUGx1Z2luT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zID8/IHt9O1xuICAgIGNvbnN0IGZpZWxkID0gKG9wdHMgYXMgYW55KS5maWVsZCAmJiAob3B0cyBhcyBhbnkpLmZpZWxkLnRyaW0oKS5sZW5ndGggPiAwID8gKG9wdHMgYXMgYW55KS5maWVsZCA6ICdzaWduYXR1cmVzJztcbiAgICBjb25zdCBkaXNwbGF5VGl0bGUgPVxuICAgICAgKG9wdHMgYXMgYW55KS50aXRsZSAmJiAob3B0cyBhcyBhbnkpLnRpdGxlLnRyaW0oKS5sZW5ndGggPiAwID8gKG9wdHMgYXMgYW55KS50aXRsZSA6ICdEaWdpdGFsIFNpZ25hdHVyZXMnO1xuXG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IGN0eC5lbnRpdHkubW9kdWxlO1xuICAgIGNvbnN0IGJhc2VFbnRpdHlOYW1lID0gY3R4LmVudGl0eS5uYW1lO1xuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbkVudGl0eU5hbWUgPSBgJHtiYXNlRW50aXR5TmFtZX1EaXN0cmlidXRpb25gO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zPy5jb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5jb21tYW5kID0ge1xuICAgICAgICBuYW1lOiBvcHRpb25zLmNvbW1hbmQsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBlbnRpdHk6IGAke2N0eC5lbnRpdHkubW9kdWxlfS4ke2N0eC5lbnRpdHkubmFtZX1gLFxuICAgICAgICAgIHNjaGVtYUVudGl0eTogY3R4LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnM/LmNvbW1hbmQpIHtcbiAgICAgICAgb3B0aW9ucy5jb21tYW5kID0ge1xuICAgICAgICAgIG5hbWU6IG9wdGlvbnMuY29tbWFuZC5uYW1lLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVudGl0eTogYCR7Y3R4LmVudGl0eS5tb2R1bGV9LiR7Y3R4LmVudGl0eS5uYW1lfWAsXG4gICAgICAgICAgICBzY2hlbWFFbnRpdHk6IGN0eCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuY29tbWFuZC5vcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0YWRhdGE6IG9wdGlvbnMuY29tbWFuZC5tZXRhZGF0YSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb246IEFYUEVudGl0eUFjdGlvbiA9IHtcbiAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnRpdGxlJyxcbiAgICAgIG5hbWU6ICdzaWduLWVudGl0eScsXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6ICdzaWduJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgIHJlZlR5cGU6IGAke2N0eC5lbnRpdHkubW9kdWxlfS4ke2N0eC5lbnRpdHkubmFtZX1gLFxuICAgICAgICAgIHZpZXdUeXBlOiBvcHRpb25zPy52aWV3VHlwZSA/PyAnbm9uZScsXG4gICAgICAgICAgY2hlY2tCb3hMYWJlbDogb3B0aW9ucz8uY2hlY2tCb3hMYWJlbCxcbiAgICAgICAgICBjb21tYW5kOiBvcHRpb25zPy5jb21tYW5kLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgIHR5cGU6ICdzaWduJyxcbiAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgIGRpc2FibGVkOlxuICAgICAgICBcInt7IChjb250ZXh0LmV2YWwoJ3NpZ25hdHVyZXMnKSA/PyBbXSkuZmlsdGVyKCh4KSA9PiB4LmF1ZGl0SW5mby5jcmVhdGVkLmJ5LmlkID09PSBzZXNzaW9uLmN1cnJlbnRVc2VyKCkuaWQpLmxlbmd0aCA+IDAgfX1cIixcbiAgICB9O1xuXG4gICAgLy8gRW5zdXJlIGdyb3VwIGFuZCBzZWN0aW9uIGlkcyAodW5pcXVlIHBlciBmaWVsZClcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBgc2lnbmF0dXJlcy0ke2ZpZWxkfWA7XG4gICAgY29uc3QgZ3JvdXBJZEZvclByb3BlcnR5ID0gYHNpZ25hdHVyZXMtJHtmaWVsZH1gO1xuICAgIGNvbnN0IGV4aXN0aW5nR3JvdXBzID0gY3R4Lmdyb3Vwcy5saXN0KCkgPz8gW107XG4gICAgaWYgKCFleGlzdGluZ0dyb3Vwcy5zb21lKChnOiBhbnkpID0+IGcuaWQgPT09IGdyb3VwSWRGb3JQcm9wZXJ0eSkpIHtcbiAgICAgIGN0eC5ncm91cHMuYWRkKHsgaWQ6IGdyb3VwSWRGb3JQcm9wZXJ0eSwgdGl0bGU6IGRpc3BsYXlUaXRsZSB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHByb3BlcnR5IGV4aXN0cyBmb3IgZGlzcGxheWluZyBzaWduYXR1cmVzXG4gICAgY29uc3QgcHJvcHMgPSBjdHgucHJvcGVydGllcy5saXN0KCk7XG4gICAgaWYgKCFwcm9wcy5zb21lKChwOiBhbnkpID0+IHAubmFtZSA9PT0gZmllbGQpKSB7XG4gICAgICBjdHgucHJvcGVydGllcy5hZGQoe1xuICAgICAgICBuYW1lOiBmaWVsZCxcbiAgICAgICAgdGl0bGU6IGRpc3BsYXlUaXRsZSxcbiAgICAgICAgZ3JvdXBJZDogZ3JvdXBJZEZvclByb3BlcnR5LFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiAnc2lnbmF0dXJlLWxpc3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHNpbmdsZSB2aWV3IHNlY3Rpb24gYW5kIHByb3BlcnR5IGxheW91dCBleGlzdHNcbiAgICBjb25zdCBzZWN0aW9uT3JkZXIgPSA5O1xuICAgIGNvbnN0IGNvbFNwYW4gPSAxMjtcbiAgICBjdHguaW50ZXJmYWNlcy5tYXN0ZXIuc2luZ2xlLnVwZGF0ZSgoc2luZ2xlKSA9PiB7XG4gICAgICBjb25zdCBuZXh0OiBhbnkgPSBzaW5nbGUgPz8geyB0aXRsZTogY3R4LmVudGl0eS50aXRsZSwgc2VjdGlvbnM6IFtdLCBwcm9wZXJ0aWVzOiBbXSB9O1xuICAgICAgbmV4dC5zZWN0aW9ucyA9IG5leHQuc2VjdGlvbnMgPz8gW107XG4gICAgICBpZiAoIW5leHQuc2VjdGlvbnMuc29tZSgoczogYW55KSA9PiBzLmlkID09PSBzZWN0aW9uSWQpKSB7XG4gICAgICAgIG5leHQuc2VjdGlvbnMucHVzaCh7IGlkOiBzZWN0aW9uSWQsIHRpdGxlOiBkaXNwbGF5VGl0bGUsIG9yZGVyOiAyMDAgfSk7XG4gICAgICB9XG4gICAgICBuZXh0LnByb3BlcnRpZXMgPSBuZXh0LnByb3BlcnRpZXMgPz8gW107XG4gICAgICBpZiAoIW5leHQucHJvcGVydGllcy5zb21lKChwOiBhbnkpID0+IHAubmFtZSA9PT0gZmllbGQpKSB7XG4gICAgICAgIG5leHQucHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZCxcbiAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgIGxhYmVsOiB7IHZpc2libGU6IGZhbHNlIH0sXG4gICAgICAgICAgICBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3Bhbiwgb3JkZXI6IHNlY3Rpb25PcmRlciB9IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcblxuICAgIGVuc3VyZUxpc3RBY3Rpb25zKGN0eCk7XG4gICAgY3R4LmludGVyZmFjZXMudXBkYXRlKChpKSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gKGkgYXMgYW55KS5tYXN0ZXIubGlzdC5hY3Rpb25zIGFzIEFYUEVudGl0eUFjdGlvbltdO1xuICAgICAgaWYgKCFhY3Rpb25FeGlzdHMoYWN0aW9ucywgYWN0aW9uLm5hbWUgPz8gJycpKSB7XG4gICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzaW5nbGVBY3Rpb25zID0gKGkgYXMgYW55KS5tYXN0ZXIuc2luZ2xlLmFjdGlvbnMgYXMgQVhQRW50aXR5QWN0aW9uW107XG4gICAgICBpZiAoIWFjdGlvbkV4aXN0cyhzaW5nbGVBY3Rpb25zLCBhY3Rpb24ubmFtZSA/PyAnJykpIHtcbiAgICAgICAgc2luZ2xlQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpIGFzIGFueTtcbiAgICB9KTtcblxuICAgIC8vIFN0YW1wIG5vcm1hbGl6ZWQgY29uZmlnIGZvciBtaWRkbGV3YXJlXG4gICAgKGN0eC5lbnRpdHkgYXMgYW55KS5leHRlbnNpb25zID8/PSB7fTtcbiAgICAoY3R4LmVudGl0eSBhcyBhbnkpLmV4dGVuc2lvbnMuc2lnbmF0dXJlcyA/Pz0ge307XG4gICAgKGN0eC5lbnRpdHkgYXMgYW55KS5leHRlbnNpb25zLnNpZ25hdHVyZXNbZmllbGRdID0geyB0aXRsZTogZGlzcGxheVRpdGxlIH07XG4gIH0sXG59O1xuIl19","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n/**\n * Action to show document distribution popup\n */\nexport class AXMSignPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.translationService = inject(AXTranslationService);\n this.layoutBuilder = inject(AXPLayoutBuilderService);\n this.entityService = inject(AXPEntityService);\n }\n async execute(context) {\n const refId = context.getVariable('options')['refId'];\n const refType = context.getVariable('options')['refType'];\n const viewType = context.getVariable('options')['viewType'];\n const checkBoxLabel = context.getVariable('options')['checkBoxLabel'] ?? await this.translationService.translateAsync('@general:actions.sign.checkBox.label');\n const signatureLabel = context.getVariable('options')['signatureLabel'] ?? await this.translationService.translateAsync('@general:actions.sign.signature.label');\n const command = context.getVariable('options')['command'];\n const dialogTitle = await this.translationService.translateAsync('@general:actions.sign.title');\n const signatureEntityService = this.entityService.withEntity(`${refType}Signature`).data();\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n dialog\n .setTitle(dialogTitle)\n .setSize('md')\n .setContext({})\n .content(flex => {\n flex\n .setDirection('column')\n .formField('@general:actions.sign.title', field => {\n field.path('signed');\n // Determine widget type based on viewType\n if (viewType === 'checkBox') {\n field.toggleSwitch({\n label: checkBoxLabel,\n });\n }\n else if (viewType === 'none') {\n field.customWidget('text-block-layout', {\n content: signatureLabel,\n });\n }\n else {\n field.customWidget('signature', {\n label: checkBoxLabel,\n });\n }\n });\n })\n .setActions(actions => {\n actions.cancel('@general:actions.cancel.title');\n const submitAction = {\n title: '@general:actions.sign.title',\n color: 'primary',\n command: typeof command === 'string' ? {\n name: command,\n } : command,\n };\n actions.custom(submitAction);\n });\n })\n .show();\n const action = dialogRef.action();\n if (action === 'cancel') {\n context.setOutput('confirmed', 'cancelled');\n dialogRef.close();\n return;\n }\n const ctx = dialogRef.context();\n dialogRef.setLoading(true);\n dialogRef.close();\n const signId = await signatureEntityService.create({\n [refType]: refId,\n signed: ctx.signed,\n // user : session.currentUser(),\n meta: {\n type: viewType,\n },\n });\n if (signId) {\n context.setOutput('confirmed', 'success');\n }\n else {\n context.setOutput('confirmed', 'failed');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction, decorators: [{\n type: Injectable\n }] });\n/**\n * Workflow for distributing documents to users\n */\nexport const AXMSignWorkflow = {\n startStepId: 'show-sign-popup',\n steps: {\n 'show-sign-popup': {\n id: 'show-sign-popup',\n action: 'AXMSignPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"confirmed\") == \"success\"' }],\n nextStepId: 'show-success',\n },\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"confirmed\") == \"failed\"' }],\n nextStepId: 'show-error',\n },\n ],\n },\n 'show-success': {\n id: 'show-success',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'general:actions.sign.success.title',\n content: 'general:actions.sign.success.message',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'reload-entity',\n },\n ],\n },\n 'show-error': {\n id: 'show-error',\n action: 'AXPToastAction',\n input: {\n color: 'danger',\n title: 'general:actions.sign.error.title',\n content: 'general:actions.sign.error.message',\n },\n },\n 'reload-entity': {\n id: 'reload-entity',\n action: 'reload',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2lnbi9zaWduLndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxpQkFBaUIsRUFBc0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRixPQUFPLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUE0QixnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUU1Rjs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFEekQ7O1FBRVUsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBa0YzRDtJQWhGQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBRXZDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0sU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBTSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFNLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0s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LFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxvQ0FBb0M7Z0JBQzNDLE9BQU8sRUFBRSxzQ0FBc0M7YUFDaEQ7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsVUFBVSxFQUFFLGVBQWU7aUJBQzVCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLEVBQUUsRUFBRSxZQUFZO1lBQ2hCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxrQ0FBa0M7Z0JBQ3pDLE9BQU8sRUFBRSxvQ0FBb0M7YUFDOUM7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLEVBQUUsRUFBRSxlQUFlO1lBQ25CLE1BQU0sRUFBRSxRQUFRO1NBQ2pCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsLCBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLyoqXG4gKiBBY3Rpb24gdG8gc2hvdyBkb2N1bWVudCBkaXN0cmlidXRpb24gcG9wdXBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVNpZ25Qb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dEJ1aWxkZXIgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIGNvbnN0IHJlZklkID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJylbJ3JlZklkJ107XG4gICAgY29uc3QgcmVmVHlwZSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55Pignb3B0aW9ucycpWydyZWZUeXBlJ107XG4gICAgY29uc3Qgdmlld1R5cGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsndmlld1R5cGUnXTtcbiAgICBjb25zdCBjaGVja0JveExhYmVsID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJylbJ2NoZWNrQm94TGFiZWwnXSA/PyBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5zaWduLmNoZWNrQm94LmxhYmVsJyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlTGFiZWwgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsnc2lnbmF0dXJlTGFiZWwnXSA/PyBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnNpZ25hdHVyZS5sYWJlbCcpO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsnY29tbWFuZCddO1xuICAgIGNvbnN0IGRpYWxvZ1RpdGxlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOmFjdGlvbnMuc2lnbi50aXRsZScpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlRW50aXR5U2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZS53aXRoRW50aXR5KGAke3JlZlR5cGV9U2lnbmF0dXJlYCkuZGF0YTxhbnksIGFueT4oKTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IGF3YWl0IHRoaXMubGF5b3V0QnVpbGRlclxuICAgICAgLmNyZWF0ZSgpXG4gICAgICAuZGlhbG9nKGRpYWxvZyA9PiB7XG4gICAgICAgIGRpYWxvZ1xuICAgICAgICAgIC5zZXRUaXRsZShkaWFsb2dUaXRsZSlcbiAgICAgICAgICAuc2V0U2l6ZSgnbWQnKVxuICAgICAgICAgIC5zZXRDb250ZXh0KHt9KVxuICAgICAgICAgIC5jb250ZW50KGZsZXggPT4ge1xuICAgICAgICAgICAgZmxleFxuICAgICAgICAgICAgICAuc2V0RGlyZWN0aW9uKCdjb2x1bW4nKVxuICAgICAgICAgICAgICAuZm9ybUZpZWxkKCdAZ2VuZXJhbDphY3Rpb25zLnNpZ24udGl0bGUnLCBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucGF0aCgnc2lnbmVkJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2lkZ2V0IHR5cGUgYmFzZWQgb24gdmlld1R5cGVcbiAgICAgICAgICAgICAgICBpZiAodmlld1R5cGUgPT09ICdjaGVja0JveCcpIHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkLnRvZ2dsZVN3aXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjaGVja0JveExhYmVsLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3VHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZC5jdXN0b21XaWRnZXQoJ3RleHQtYmxvY2stbGF5b3V0Jywge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBzaWduYXR1cmVMYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZC5jdXN0b21XaWRnZXQoJ3NpZ25hdHVyZScsIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNoZWNrQm94TGFiZWwsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNldEFjdGlvbnMoYWN0aW9ucyA9PiB7XG4gICAgICAgICAgICBhY3Rpb25zLmNhbmNlbCgnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnKTtcbiAgICAgICAgICAgIGNvbnN0IHN1Ym1pdEFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0gPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnRpdGxlJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgY29tbWFuZDogdHlwZW9mIGNvbW1hbmQgPT09ICdzdHJpbmcnID8ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGNvbW1hbmQsXG4gICAgICAgICAgICAgIH0gOiBjb21tYW5kLFxuICAgICAgICAgICAgfSBhcyBBWFBBY3Rpb25NZW51SXRlbTtcbiAgICAgICAgICAgIGFjdGlvbnMuY3VzdG9tKHN1Ym1pdEFjdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLnNob3coKTtcblxuICAgIGNvbnN0IGFjdGlvbiA9IGRpYWxvZ1JlZi5hY3Rpb24oKTtcbiAgICBpZiAoYWN0aW9uID09PSAnY2FuY2VsJykge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ2NvbmZpcm1lZCcsICdjYW5jZWxsZWQnKTtcbiAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN0eCA9IGRpYWxvZ1JlZi5jb250ZXh0KCkgYXMgeyBzaWduZWQ/OiBhbnkgfTtcbiAgICBkaWFsb2dSZWYuc2V0TG9hZGluZyh0cnVlKTtcblxuICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIGNvbnN0IHNpZ25JZCA9IGF3YWl0IHNpZ25hdHVyZUVudGl0eVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIFtyZWZUeXBlXTogcmVmSWQsXG4gICAgICBzaWduZWQ6IGN0eC5zaWduZWQsXG4gICAgICAvLyAgdXNlciA6IHNlc3Npb24uY3VycmVudFVzZXIoKSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogdmlld1R5cGUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChzaWduSWQpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdjb25maXJtZWQnLCAnc3VjY2VzcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgnY29uZmlybWVkJywgJ2ZhaWxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdvcmtmbG93IGZvciBkaXN0cmlidXRpbmcgZG9jdW1lbnRzIHRvIHVzZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWE1TaWduV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctc2lnbi1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctc2lnbi1wb3B1cCc6IHtcbiAgICAgIGlkOiAnc2hvdy1zaWduLXBvcHVwJyxcbiAgICAgIGFjdGlvbjogJ0FYTVNpZ25Qb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJjb25maXJtZWRcIikgPT0gXCJzdWNjZXNzXCInIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzaG93LXN1Y2Nlc3MnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcImNvbmZpcm1lZFwiKSA9PSBcImZhaWxlZFwiJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lcnJvcicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG5cbiAgICAnc2hvdy1zdWNjZXNzJzoge1xuICAgICAgaWQ6ICdzaG93LXN1Y2Nlc3MnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICdnZW5lcmFsOmFjdGlvbnMuc2lnbi5zdWNjZXNzLnRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLnN1Y2Nlc3MubWVzc2FnZScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAncmVsb2FkLWVudGl0eScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3Nob3ctZXJyb3InOiB7XG4gICAgICBpZDogJ3Nob3ctZXJyb3InLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICB0aXRsZTogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLmVycm9yLnRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLmVycm9yLm1lc3NhZ2UnLFxuICAgICAgfSxcbiAgICB9LFxuICAgICdyZWxvYWQtZW50aXR5Jzoge1xuICAgICAgaWQ6ICdyZWxvYWQtZW50aXR5JyxcbiAgICAgIGFjdGlvbjogJ3JlbG9hZCcsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/layout/widgets';\nexport const AXPSignatureListWidget = {\n name: 'signature-list',\n title: 'Signature List',\n description: 'Displays signature list',\n icon: 'fa-light fa-text',\n categories: AXP_WIDGETS_LAYOUT_CATEGORY,\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'view',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./signature-list-widget-view.component').then((c) => c.AXPSignatureListWidgetViewComponent),\n },\n edit: {\n component: () => import('./signature-list-widget-view.component').then((c) => c.AXPSignatureListWidgetViewComponent),\n },\n designer: {\n component: () => import('./signature-list-widget-designer.component').then((c) => c.AXPSignatureListWidgetDesignerComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2lnbi93aWRnZXRzL3NpZ25hdHVyZS1saXN0L3NpZ25hdHVyZS1saXN0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUTVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNyRCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsV0FBVyxFQUFFLHlCQUF5QjtJQUN0QyxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQ3pDLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUM7SUFDdkQsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3JIO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3JIO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNkLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1NBQzlHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQVXNlclJlZmVyZW5jZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19MQVlPVVRfQ0FURUdPUlksIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX05BTUVfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBTaWduYXR1cmVMaXN0SXRlbSB7XG4gIHVzZXI6IEFYUFVzZXJSZWZlcmVuY2U7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xufVxuXG5leHBvcnQgY29uc3QgQVhQU2lnbmF0dXJlTGlzdFdpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnc2lnbmF0dXJlLWxpc3QnLFxuICB0aXRsZTogJ1NpZ25hdHVyZSBMaXN0JyxcbiAgZGVzY3JpcHRpb246ICdEaXNwbGF5cyBzaWduYXR1cmUgbGlzdCcsXG4gIGljb246ICdmYS1saWdodCBmYS10ZXh0JyxcbiAgY2F0ZWdvcmllczogQVhQX1dJREdFVFNfTEFZT1VUX0NBVEVHT1JZLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRW50aXR5V2lkZ2V0XSxcbiAgdHlwZTogJ3ZpZXcnLFxuICBwcm9wZXJ0aWVzOiBbQVhQX05BTUVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vc2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBTaWduYXR1cmVMaXN0V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9zaWduYXR1cmUtbGlzdC13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFNpZ25hdHVyZUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGRlc2lnbmVyOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi9zaWduYXR1cmUtbGlzdC13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBTaWduYXR1cmVMaXN0V2lkZ2V0RGVzaWduZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG59O1xuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBzaWduYXR1cmVMaXN0OiAnc2lnbmF0dXJlLWxpc3QnO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2lnbmF0dXJlTGlzdFdpZGdldERlc2lnbmVyT3B0aW9ucyB7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2lnbmF0dXJlTGlzdFdpZGdldFZpZXdPcHRpb25zIHtcbiAgY29udGVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBTaWduYXR1cmVMaXN0V2lkZ2V0RWRpdE9wdGlvbnMge1xuICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRQcmludE9wdGlvbnMge1xuICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRPcHRpb25zIHtcbiAgZGVzaWduZXI6IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXREZXNpZ25lck9wdGlvbnM7XG4gIHZpZXc6IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRWaWV3T3B0aW9ucztcbiAgZWRpdDogQVhQU2lnbmF0dXJlTGlzdFdpZGdldEVkaXRPcHRpb25zO1xuICBwcmludDogQVhQU2lnbmF0dXJlTGlzdFdpZGdldFByaW50T3B0aW9ucztcbn1cbiJdfQ==","import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { NgModule } from '@angular/core';\nimport { signPlugin } from './sign.plugin';\nimport { AXMSignPopupAction, AXMSignWorkflow } from './sign.workflow';\nimport { AXPSignatureListWidget } from './widgets/signature-list/signature-list-widget.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/workflow\";\nimport * as i2 from \"@acorex/platform/layout/widget-core\";\nexport class AXMSignPluginModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, imports: [i1.AXPWorkflowModule, i2.AXPWidgetCoreModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: signPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n ], imports: [AXPWorkflowModule.forChild({\n actions: {\n AXMSignPopupAction,\n },\n workflows: {\n sign: AXMSignWorkflow,\n },\n }),\n AXPWidgetCoreModule.forChild({\n widgets: [AXPSignatureListWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: signPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n ],\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXMSignPopupAction,\n },\n workflows: {\n sign: AXMSignWorkflow,\n },\n }),\n AXPWidgetCoreModule.forChild({\n widgets: [AXPSignatureListWidget],\n }),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NpZ24vc2lnbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtDQUFrQyxFQUFtQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7QUFtQy9GLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsYUFoQ25CO1lBQ1QsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1lBQ3hFO2dCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7Z0JBQzNDLEtBQUssRUFBRSxJQUFJO2dCQUNYLFVBQVUsRUFBRSxHQUFHLEVBQUU7b0JBQ2YsTUFBTSxRQUFRLEdBQW9DO3dCQUNoRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFOzRCQUN4Qix1RUFBdUU7NEJBQ3ZFLHFHQUFxRzs0QkFDckcsNERBQTREOzRCQUM1RCxnSEFBZ0g7d0JBQ2xILENBQUM7cUJBQ0YsQ0FBQztvQkFDRixPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQzthQUNGO1NBQ0YsWUFFQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsZUFBZTtpQkFDdEI7YUFDRixDQUFDO1lBQ0YsbUJBQW1CLENBQUMsUUFBUSxDQUFDO2dCQUMzQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQyxDQUFDOzs0RkFHTyxtQkFBbUI7a0JBakMvQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7d0JBQ3hFOzRCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7NEJBQzNDLEtBQUssRUFBRSxJQUFJOzRCQUNYLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0NBQ2YsTUFBTSxRQUFRLEdBQW9DO29DQUNoRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO3dDQUN4Qix1RUFBdUU7d0NBQ3ZFLHFHQUFxRzt3Q0FDckcsNERBQTREO3dDQUM1RCxnSEFBZ0g7b0NBQ2xILENBQUM7aUNBQ0YsQ0FBQztnQ0FDRixPQUFPLFFBQVEsQ0FBQzs0QkFDbEIsQ0FBQzt5QkFDRjtxQkFDRjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCLENBQUMsUUFBUSxDQUFDOzRCQUN6QixPQUFPLEVBQUU7Z0NBQ1Asa0JBQWtCOzZCQUNuQjs0QkFDRCxTQUFTLEVBQUU7Z0NBQ1QsSUFBSSxFQUFFLGVBQWU7NkJBQ3RCO3lCQUNGLENBQUM7d0JBQ0YsbUJBQW1CLENBQUMsUUFBUSxDQUFDOzRCQUMzQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzt5QkFDbEMsQ0FBQztxQkFDSDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9BQ1RJT05fUExVR0lOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNpZ25QbHVnaW4gfSBmcm9tICcuL3NpZ24ucGx1Z2luJztcbmltcG9ydCB7IEFYTVNpZ25Qb3B1cEFjdGlvbiwgQVhNU2lnbldvcmtmbG93IH0gZnJvbSAnLi9zaWduLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvc2lnbmF0dXJlLWxpc3Qvc2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhQX0VOVElUWV9BQ1RJT05fUExVR0lOLCBtdWx0aTogdHJ1ZSwgdXNlVmFsdWU6IHNpZ25QbHVnaW4gfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfUEVSTUlTU0lPTl9ERUZJTklUSU9OX1BST1ZJREVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyID0ge1xuICAgICAgICAgIGRlZmluZTogYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIHBlcm1pc3Npb25zIGZvciBhbnkgZW50aXR5IHRoYXQgZGVjbGFyZWQgY2F0ZWdvcnkgZXh0ZW5zaW9uXG4gICAgICAgICAgICAvLyBXZSBjYW7igJl0IHNjYW4gcmVnaXN0cnkgaGVyZSByZWxpYWJseSBhdCBib290c3RyYXA7IHJlbHkgb24gZ2VuZXJpYyBwYXR0ZXJuIHBlciBtb2R1bGUgdmlhIHdpbGRjYXJkXG4gICAgICAgICAgICAvLyBDb25zdW1lcnMgY2FuIHN0aWxsIG92ZXJyaWRlIHdpdGggbW9kdWxlLWxldmVsIHByb3ZpZGVycy5cbiAgICAgICAgICAgIC8vIE5vLW9wIGhlcmU7IHBlcm1pc3Npb25zIHdpbGwgYmUgYWRkZWQgd2hlbiBjYXRlZ29yeSBlbnRpdHkgaXMgcmVzb2x2ZWQgdmlhIHByb3ZpZGVFbnRpdHkgZWxzZXdoZXJlIGlmIG5lZWRlZC5cbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWFBXb3JrZmxvd01vZHVsZS5mb3JDaGlsZCh7XG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIEFYTVNpZ25Qb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgc2lnbjogQVhNU2lnbldvcmtmbG93LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIHdpZGdldHM6IFtBWFBTaWduYXR1cmVMaXN0V2lkZ2V0XSxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNU2lnblBsdWdpbk1vZHVsZSB7fVxuIl19","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowDefinitionEntityService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl extends AXMWorkflowManagementWorkflowDefinitionEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.workflowDefinition.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL3dvcmtmbG93LWRlZmluaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBZ0Isb0RBQXFELFNBQVEsd0JBR2xGO0NBQUc7QUFHSixNQUFNLE9BQU8sd0RBQXlELFNBQVEsb0RBQW9EO0lBQ2hJO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7K0dBSFUsd0RBQXdEO21IQUF4RCx3REFBd0Q7OzRGQUF4RCx3REFBd0Q7a0JBRHBFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eU1vZGVsIH0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIHN0cmluZyxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5TW9kZWxcbj4ge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2VJbXBsIGV4dGVuZHMgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZX1gKTtcbiAgfVxufVxuXG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXMWorkflowManagementWorkflowDefinitionEntityService, AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, } from './workflow-definition.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowDefinitionEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, providers: [\n {\n provide: AXMWorkflowManagementWorkflowDefinitionEntityService,\n useClass: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMWorkflowManagementWorkflowDefinitionEntityService,\n useClass: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24vd29ya2Zsb3ctZGVmaW5pdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsb0RBQW9ELEVBQ3BELHdEQUF3RCxHQUN6RCxNQUFNLCtCQUErQixDQUFDOztBQWF2QyxNQUFNLE9BQU8sbURBQW1EOytHQUFuRCxtREFBbUQ7Z0hBQW5ELG1EQUFtRDtnSEFBbkQsbURBQW1ELGFBUG5EO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG9EQUFvRDtnQkFDN0QsUUFBUSxFQUFFLHdEQUF3RDthQUNuRTtTQUNGOzs0RkFFVSxtREFBbUQ7a0JBWC9ELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0RBQW9EOzRCQUM3RCxRQUFRLEVBQUUsd0RBQXdEO3lCQUNuRTtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0RlZmluaXRpb25FbnRpdHlTZXJ2aWNlLFxuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0RlZmluaXRpb25FbnRpdHlTZXJ2aWNlSW1wbCxcbn0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5U2VydmljZUltcGwsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5TW9kdWxlIHt9XG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPWorkflowManager } from '@acorex/platform/workflow';\nimport { AXToastService } from '@acorex/components/toast';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * Execute Workflow Command\n *\n * Starts and manages workflow execution from entity list.\n * Handles the complete workflow lifecycle including frontend/backend activities.\n */\nexport class ExecuteWorkflowCommand {\n constructor() {\n //#region ---- Services ----\n this.workflowManager = inject(AXPWorkflowManager);\n this.toastService = inject(AXToastService);\n }\n //#endregion\n //#region ---- Command Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteWorkflowCommand] Starting workflow: ${input.workflowId}`);\n // Start workflow execution\n const result = await this.workflowManager.start(input.workflowId, input.input || {});\n if (!result.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: result.error || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: result.error || 'Unknown error'\n },\n data: {\n instanceId: result.instanceId || '',\n output: null,\n }\n };\n }\n // Handle workflow execution loop\n let currentResult = result;\n while (currentResult.nextTask) {\n const task = currentResult.nextTask;\n console.log(`[ExecuteWorkflowCommand] Executing frontend task: ${task.activityType}`);\n // Execute frontend task\n const { output, outcome } = await this.workflowManager.execute(task);\n // Complete task and get next\n currentResult = await this.workflowManager.complete(currentResult.instanceId, task, outcome, output);\n if (!currentResult.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: currentResult.error || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: currentResult.error || 'Unknown error'\n },\n data: {\n instanceId: currentResult.instanceId || '',\n output: null,\n }\n };\n }\n }\n // Workflow completed successfully\n console.log(`[ExecuteWorkflowCommand] Workflow completed:`, currentResult.state?.output);\n this.toastService.show({\n color: 'success',\n title: 'Workflow Completed',\n content: 'Workflow executed successfully',\n closeButton: true,\n timeOut: 3000,\n });\n return {\n success: true,\n data: {\n instanceId: currentResult.instanceId,\n output: currentResult.state?.output,\n }\n };\n }\n catch (error) {\n console.error(`[ExecuteWorkflowCommand] Error:`, error);\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Error',\n content: error.message || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error'\n },\n data: {\n instanceId: '',\n output: null,\n }\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS13b3JrZmxvdy5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL2NvbW1hbmRzL2V4ZWN1dGUtd29ya2Zsb3cuY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBa0MxRCxZQUFZO0FBRVo7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRUUsZ0NBQWdDO1FBRWYsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXFIeEQ7SUFuSEMsWUFBWTtJQUVaLDhDQUE4QztJQUU5QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQTJCO1FBQ3ZDLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsK0NBQStDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRS9FLDJCQUEyQjtZQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUVyRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDckIsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsS0FB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TyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxlQUFlO2lCQUN2QztnQkFDRCxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLEVBQUU7b0JBQ2QsTUFBTSxFQUFFLElBQUk7aUJBQ2I7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBdEhVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUFdvcmtmbG93TWFuYWdlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBFeGVjdXRlV29ya2Zsb3cgY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVXb3JrZmxvd0lucHV0IHtcbiAgLyoqXG4gICAqIFdvcmtmbG93IG5hbWUgKHVuaXF1ZSBrZXkpXG4gICAqL1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgaW5wdXQgZGF0YVxuICAgKi9cbiAgaW5wdXQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKipcbiAqIE91dHB1dCBmb3IgRXhlY3V0ZVdvcmtmbG93IGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlV29ya2Zsb3dPdXRwdXQge1xuICAvKipcbiAgICogSW5zdGFuY2UgSURcbiAgICovXG4gIGluc3RhbmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgb3V0cHV0XG4gICAqL1xuICBvdXRwdXQ6IGFueTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogRXhlY3V0ZSBXb3JrZmxvdyBDb21tYW5kXG4gKiBcbiAqIFN0YXJ0cyBhbmQgbWFuYWdlcyB3b3JrZmxvdyBleGVjdXRpb24gZnJvbSBlbnRpdHkgbGlzdC5cbiAqIEhhbmRsZXMgdGhlIGNvbXBsZXRlIHdvcmtmbG93IGxpZmVjeWNsZSBpbmNsdWRpbmcgZnJvbnRlbmQvYmFja2VuZCBhY3Rpdml0aWVzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXhlY3V0ZVdvcmtmbG93Q29tbWFuZCBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8RXhlY3V0ZVdvcmtmbG93SW5wdXQsIEV4ZWN1dGVXb3JrZmxvd091dHB1dD4ge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3dNYW5hZ2VyID0gaW5qZWN0KEFYUFdvcmtmbG93TWFuYWdlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDogRXhlY3V0ZVdvcmtmbG93SW5wdXQpOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PEV4ZWN1dGVXb3JrZmxvd091dHB1dD4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc29sZS5sb2coYFtFeGVjdXRlV29ya2Zsb3dDb21tYW5kXSBTdGFydGluZyB3b3JrZmxvdzogJHtpbnB1dC53b3JrZmxvd0lkfWApO1xuXG4gICAgICAvLyBTdGFydCB3b3JrZmxvdyBleGVjdXRpb25cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLnN0YXJ0KGlucHV0LndvcmtmbG93SWQsIGlucHV0LmlucHV0IHx8IHt9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgdGl0bGU6ICdXb3JrZmxvdyBFeGVjdXRpb24gRmFpbGVkJyxcbiAgICAgICAgICBjb250ZW50OiByZXN1bHQuZXJyb3IgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgIHRpbWVPdXQ6IDUwMDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgdGV4dDogcmVzdWx0LmVycm9yIHx8ICdVbmtub3duIGVycm9yJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5zdGFuY2VJZDogcmVzdWx0Lmluc3RhbmNlSWQgfHwgJycsXG4gICAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgd29ya2Zsb3cgZXhlY3V0aW9uIGxvb3BcbiAgICAgIGxldCBjdXJyZW50UmVzdWx0ID0gcmVzdWx0O1xuICAgICAgd2hpbGUgKGN1cnJlbnRSZXN1bHQubmV4dFRhc2spIHtcbiAgICAgICAgY29uc3QgdGFzayA9IGN1cnJlbnRSZXN1bHQubmV4dFRhc2s7XG5cbiAgICAgICAgY29uc29sZS5sb2coYFtFeGVjdXRlV29ya2Zsb3dDb21tYW5kXSBFeGVjdXRpbmcgZnJvbnRlbmQgdGFzazogJHt0YXNrLmFjdGl2aXR5VHlwZX1gKTtcblxuICAgICAgICAvLyBFeGVjdXRlIGZyb250ZW5kIHRhc2tcbiAgICAgICAgY29uc3QgeyBvdXRwdXQsIG91dGNvbWUgfSA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLmV4ZWN1dGUodGFzayk7XG5cbiAgICAgICAgLy8gQ29tcGxldGUgdGFzayBhbmQgZ2V0IG5leHRcbiAgICAgICAgY3VycmVudFJlc3VsdCA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLmNvbXBsZXRlKFxuICAgICAgICAgIGN1cnJlbnRSZXN1bHQuaW5zdGFuY2VJZCEsXG4gICAgICAgICAgdGFzayxcbiAgICAgICAgICBvdXRjb21lLFxuICAgICAgICAgIG91dHB1dFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghY3VycmVudFJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICB0aXRsZTogJ1dvcmtmbG93IEV4ZWN1dGlvbiBGYWlsZWQnLFxuICAgICAgICAgICAgY29udGVudDogY3VycmVudFJlc3VsdC5lcnJvciB8fCAnVW5rbm93biBlcnJvcicsXG4gICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHRpbWVPdXQ6IDUwMDAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgICAgIHRleHQ6IGN1cnJlbnRSZXN1bHQuZXJyb3IgfHwgJ1Vua25vd24gZXJyb3InXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBpbnN0YW5jZUlkOiBjdXJyZW50UmVzdWx0Lmluc3RhbmNlSWQgfHwgJycsXG4gICAgICAgICAgICAgIG91dHB1dDogbnVsbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdvcmtmbG93IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcbiAgICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZVdvcmtmbG93Q29tbWFuZF0gV29ya2Zsb3cgY29tcGxldGVkOmAsIGN1cnJlbnRSZXN1bHQuc3RhdGU/Lm91dHB1dCk7XG5cbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ1dvcmtmbG93IENvbXBsZXRlZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdXb3JrZmxvdyBleGVjdXRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogY3VycmVudFJlc3VsdC5pbnN0YW5jZUlkISxcbiAgICAgICAgICBvdXRwdXQ6IGN1cnJlbnRSZXN1bHQuc3RhdGU/Lm91dHB1dCxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbRXhlY3V0ZVdvcmtmbG93Q29tbWFuZF0gRXJyb3I6YCwgZXJyb3IpO1xuXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICB0aXRsZTogJ1dvcmtmbG93IEV4ZWN1dGlvbiBFcnJvcicsXG4gICAgICAgIGNvbnRlbnQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogNTAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAnJyxcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ==","import { AXPWidgetsList } from '@acorex/modules/common';\nimport { AXPEntityCommandScope, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nexport async function factory(injector) {\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workflowDefinition.name,\n title: RootConfig.entities.workflowDefinition.title,\n icon: RootConfig.entities.workflowDefinition.icon,\n formats: {\n individual: RootConfig.entities.workflowDefinition.title,\n plural: RootConfig.entities.workflowDefinition.titlePlural,\n displayName: '{{ title || name }}',\n searchResult: {\n title: '{{ title || name }}',\n description: '{{ description }}',\n },\n },\n plugins: [{ name: 'history' }, { name: 'lock' }, { name: 'archive' }],\n groups: [\n {\n id: 'basicInfo',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.basic-info',\n },\n {\n id: 'configuration',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.configuration',\n },\n {\n id: 'metadata',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.metadata',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'metadata',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }, { rule: 'unique' }],\n },\n {\n name: 'title',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'description',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.description.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 3,\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.description.placeholder',\n },\n },\n },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.version.title',\n groupId: 'metadata',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'isLatest',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-latest.title',\n groupId: 'metadata',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n readonly: true,\n },\n options: {\n filter: { inline: { enabled: true } },\n },\n },\n {\n name: 'isPublished',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-published.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n },\n options: {\n filter: { inline: { enabled: true } },\n },\n },\n {\n name: 'isReadonly',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-readonly.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n },\n },\n {\n name: 'isSystem',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-system.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n readonly: true,\n },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.created-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n ],\n columns: [\n {\n name: 'title',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.version.title',\n showAs: { type: AXPWidgetsCatalog.number },\n options: { width: '100px' },\n },\n {\n name: 'isLatest',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-latest.title',\n showAs: { type: AXPWidgetsCatalog.toggle, options: { trueText: 'Latest', falseText: '-' } },\n options: { width: '100px' },\n },\n {\n name: 'isPublished',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-published.title',\n showAs: { type: AXPWidgetsCatalog.toggle },\n options: { width: '120px' },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.created-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basicInfo' }, { id: 'configuration' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basicInfo' }, { id: 'configuration' }],\n properties: [\n { name: 'definitionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n single: {\n title: '{{ name }}',\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'configuration', order: 2, layout: { positions: { lg: { colSpan: 6 } } } },\n { id: 'metadata', order: 3, layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'version', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isLatest', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isSystem', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [\n ...entityMasterCrudActions(),\n {\n title: '@workflow-management:workflow-definitions.actions.execute.title',\n name: 'execute-workflow',\n command: {\n name: 'WorkflowManagement.WorkflowDefinition:Execute',\n options: {\n workflowId: '{{ context.eval(\"name\") }}',\n input: {},\n },\n },\n icon: 'fa-light fa-play',\n color: 'success',\n priority: 'primary',\n type: 'execute',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'createdAt', dir: 'desc' }] })],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24vd29ya2Zsb3ctZGVmaW5pdGlvbi5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBYSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBQUMsUUFBa0I7SUFDOUMsTUFBTSxTQUFTLEdBQWM7UUFDM0IsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUM5QixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ2pELEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDbkQsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSTtRQUNqRCxPQUFPLEVBQUU7WUFDUCxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO1lBQ3hELE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVc7WUFDMUQsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxZQUFZLEVBQUU7Z0JBQ1os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QUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN0RSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDdEU7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxZQUFZO29CQUNuQixRQUFRLEVBQUU7d0JBQ1IsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDN0UsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDaEYsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDNUU7b0JBQ0QsVUFBVSxFQUFFO3dCQUNWLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUMvRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDaEUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3ZFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNsRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbkUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3RFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNyRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbkUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7cUJBQ3JFO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztpQkFDMUM7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRTt3QkFDUCxHQUFHLHVCQUF1QixFQUFFO3dCQUM1Qjs0QkFDRSxLQUFLLEVBQUUsaUVBQWlFOzRCQUN4RSxJQUFJLEVBQUUsa0JBQWtCOzRCQUN4QixPQUFPLEVBQUU7Z0NBQ1AsSUFBSSxFQUFFLCtDQUErQztnQ0FDckQsT0FBTyxFQUFFO29DQUNQLFVBQVUsRUFBRSw0QkFBNEI7b0NBQ3hDLEtBQUssRUFBRSxFQUFFO2lDQUNWOzZCQUNGOzRCQUNELElBQUksRUFBRSxrQkFBa0I7NEJBQ3hCLEtBQUssRUFBRSxTQUFTOzRCQUNoQixRQUFRLEVBQUUsU0FBUzs0QkFDbkIsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7eUJBQ3hDO3FCQUNGO29CQUNELEtBQUssRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDN0U7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRzTGlzdCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIGNyZWF0ZUFsbFF1ZXJ5VmlldyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGVudGl0eU1hc3RlckNydWRBY3Rpb25zLCBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICBjb25zdCBlbnRpdHlEZWY6IEFYUEVudGl0eSA9IHtcbiAgICBtb2R1bGU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgbmFtZTogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZSxcbiAgICB0aXRsZTogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24udGl0bGUsXG4gICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24uaWNvbixcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpbmRpdmlkdWFsOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi50aXRsZSxcbiAgICAgIHBsdXJhbDogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24udGl0bGVQbHVyYWwsXG4gICAgICBkaXNwbGF5TmFtZTogJ3t7IHRpdGxlIHx8IG5hbWUgfX0nLFxuICAgICAgc2VhcmNoUmVzdWx0OiB7XG4gICAgICAgIHRpdGxlOiAne3sgdGl0bGUgfHwgbmFtZSB9fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAne3sgZGVzY3JpcHRpb24gfX0nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFt7IG5hbWU6ICdoaXN0b3J5JyB9LCB7IG5hbWU6ICdsb2NrJyB9LCB7IG5hbWU6ICdhcmNoaXZlJyB9XSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZ3JvdXBzLmJhc2ljLWluZm8nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmdyb3Vwcy5jb25maWd1cmF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWV0YWRhdGEnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZ3JvdXBzLm1ldGFkYXRhJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHRpdGxlOiAnSUQnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3V1aWQnLFxuICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgIG51bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgICB1bmlxdWU6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLm5hbWUudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLm5hbWUucGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH0sIHsgcnVsZTogJ3VuaXF1ZScgfV0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLnRpdGxlLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ2Jhc2ljSW5mbycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAgICAgICAgICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy50aXRsZS5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMuZGVzY3JpcHRpb24udGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5MYXJnZVRleHRCb3gsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHJvd3M6IDMsXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAgICAgICAgICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMudmVyc2lvbi50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNMYXRlc3QnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLWxhdGVzdC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGZpbHRlcjogeyBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNQdWJsaXNoZWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLXB1Ymxpc2hlZC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyOiB7IGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpc1JlYWRvbmx5JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1yZWFkb25seS50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lzU3lzdGVtJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1zeXN0ZW0udGl0bGUnLFxuICAgICAgICBncm91cElkOiAnY29uZmlndXJhdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmNyZWF0ZWQtYXQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZGF0ZVRpbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbHVtbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy50aXRsZS50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMubmFtZS50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMudmVyc2lvbi50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEwMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lzTGF0ZXN0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1sYXRlc3QudGl0bGUnLFxuICAgICAgICBzaG93QXM6IHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLCBvcHRpb25zOiB7IHRydWVUZXh0OiAnTGF0ZXN0JywgZmFsc2VUZXh0OiAnLScgfSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTAwcHgnIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNQdWJsaXNoZWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLXB1Ymxpc2hlZC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEyMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMuY3JlYXRlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbeyBpZDogJ2Jhc2ljSW5mbycgfSwgeyBpZDogJ2NvbmZpZ3VyYXRpb24nIH1dLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RpdGxlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzUHVibGlzaGVkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1JlYWRvbmx5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFt7IGlkOiAnYmFzaWNJbmZvJyB9LCB7IGlkOiAnY29uZmlndXJhdGlvbicgfV0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAgeyBuYW1lOiAnZGVmaW5pdGlvbklkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICduYW1lJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzUHVibGlzaGVkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1JlYWRvbmx5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgc2luZ2xlOiB7XG4gICAgICAgICAgdGl0bGU6ICd7eyBuYW1lIH19JyxcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAgeyBpZDogJ2Jhc2ljSW5mbycsIG9yZGVyOiAxLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDEyIH0gfSB9IH0sXG4gICAgICAgICAgICB7IGlkOiAnY29uZmlndXJhdGlvbicsIG9yZGVyOiAyLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgaWQ6ICdtZXRhZGF0YScsIG9yZGVyOiAzLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RpdGxlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3ZlcnNpb24nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzTGF0ZXN0JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1B1Ymxpc2hlZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNSZWFkb25seScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNTeXN0ZW0nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2NyZWF0ZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlclJlY29yZEFjdGlvbnMoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAuLi5lbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucygpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmFjdGlvbnMuZXhlY3V0ZS50aXRsZScsXG4gICAgICAgICAgICAgIG5hbWU6ICdleGVjdXRlLXdvcmtmbG93JyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdXb3JrZmxvd01hbmFnZW1lbnQuV29ya2Zsb3dEZWZpbml0aW9uOkV4ZWN1dGUnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHdvcmtmbG93SWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJuYW1lXCIpIH19JyxcbiAgICAgICAgICAgICAgICAgIGlucHV0OiB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGxheScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdleGVjdXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHZpZXdzOiBbY3JlYXRlQWxsUXVlcnlWaWV3KHsgc29ydHM6IFt7IG5hbWU6ICdjcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XSB9KV0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGVudGl0eURlZjtcbn1cbiJdfQ==","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowInstanceEntityService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMWorkflowManagementWorkflowInstanceEntityServiceImpl extends AXMWorkflowManagementWorkflowInstanceEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.workflowInstance.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvd29ya2Zsb3ctaW5zdGFuY2Uvd29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBZ0Isa0RBQW1ELFNBQVEsd0JBR2hGO0NBQUc7QUFHSixNQUFNLE9BQU8sc0RBQXVELFNBQVEsa0RBQWtEO0lBQzVIO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7K0dBSFUsc0RBQXNEO21IQUF0RCxzREFBc0Q7OzRGQUF0RCxzREFBc0Q7a0JBRGxFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlNb2RlbCB9IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2UudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eVNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIHN0cmluZyxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eU1vZGVsXG4+IHt9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZUltcGwgZXh0ZW5kcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLm5hbWV9YCk7XG4gIH1cbn1cblxuIl19","import { NgModule } from '@angular/core';\nimport { AXMWorkflowManagementWorkflowInstanceEntityService, AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, } from './workflow-instance.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowInstanceEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, providers: [\n {\n provide: AXMWorkflowManagementWorkflowInstanceEntityService,\n useClass: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMWorkflowManagementWorkflowInstanceEntityService,\n useClass: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZS93b3JrZmxvdy1pbnN0YW5jZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsa0RBQWtELEVBQ2xELHNEQUFzRCxHQUN2RCxNQUFNLDZCQUE2QixDQUFDOztBQWFyQyxNQUFNLE9BQU8saURBQWlEOytHQUFqRCxpREFBaUQ7Z0hBQWpELGlEQUFpRDtnSEFBakQsaURBQWlELGFBUGpEO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGtEQUFrRDtnQkFDM0QsUUFBUSxFQUFFLHNEQUFzRDthQUNqRTtTQUNGOzs0RkFFVSxpREFBaUQ7a0JBWDdELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0RBQWtEOzRCQUMzRCxRQUFRLEVBQUUsc0RBQXNEO3lCQUNqRTtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eVNlcnZpY2VJbXBsLFxufSBmcm9tICcuL3dvcmtmbG93LWluc3RhbmNlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlTZXJ2aWNlSW1wbCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5TW9kdWxlIHt9XG5cbiJdfQ==","import { AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nimport { AXMWorkflowManagementWorkflowInstanceEntityService } from './workflow-instance.service';\nexport async function factory(injector) {\n const dataService = injector.get(AXMWorkflowManagementWorkflowInstanceEntityService);\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workflowInstance.name,\n title: RootConfig.entities.workflowInstance.title,\n icon: RootConfig.entities.workflowInstance.icon,\n formats: {\n individual: RootConfig.entities.workflowInstance.title,\n plural: RootConfig.entities.workflowInstance.titlePlural,\n displayName: '{{ name || definitionId }}',\n searchResult: {\n title: '{{ name || definitionId }}',\n description: '{{ status }} - {{ subStatus }}',\n },\n },\n plugins: [{ name: 'history' }],\n groups: [\n {\n id: 'basicInfo',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.basic-info',\n },\n {\n id: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.status',\n },\n {\n id: 'metadata',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.metadata',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'metadata',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'definitionId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.status.title',\n groupId: 'status',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'Running', text: '@workflow-management:workflow-instances.states.running' },\n { value: 'Finished', text: '@workflow-management:workflow-instances.states.finished' },\n ],\n },\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'subStatus',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.sub-status.title',\n groupId: 'status',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'Pending', text: '@workflow-management:workflow-instances.states.pending' },\n { value: 'Executing', text: '@workflow-management:workflow-instances.states.executing' },\n { value: 'Suspended', text: '@workflow-management:workflow-instances.states.suspended' },\n { value: 'Finished', text: '@workflow-management:workflow-instances.states.finished' },\n { value: 'Cancelled', text: '@workflow-management:workflow-instances.states.cancelled' },\n { value: 'Faulted', text: '@workflow-management:workflow-instances.states.faulted' },\n ],\n },\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'correlationId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.correlation-id.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.correlation-id.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.version.title',\n groupId: 'metadata',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'incidentCount',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.incident-count.title',\n groupId: 'status',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.created-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'updatedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.updated-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'finishedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.finished-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n ],\n columns: [\n {\n name: 'definitionId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.status.title',\n showAs: { type: AXPWidgetsCatalog.text },\n options: { width: '120px' },\n },\n {\n name: 'subStatus',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.sub-status.title',\n showAs: { type: AXPWidgetsCatalog.text },\n options: { width: '140px' },\n },\n {\n name: 'incidentCount',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.incident-count.title',\n showAs: { type: AXPWidgetsCatalog.number },\n options: { width: '100px' },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.created-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n {\n name: 'finishedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.finished-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n ],\n commands: {\n delete: {\n execute: async (id) => await dataService.deleteOne(id),\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n const item = await dataService.getOne(id);\n return item;\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{ name || definitionId }}',\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'status', order: 2, layout: { positions: { lg: { colSpan: 6 } } } },\n { id: 'metadata', order: 3, layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n properties: [\n { name: 'definitionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'correlationId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'version', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'status', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'subStatus', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'incidentCount', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'updatedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'finishedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'createdAt', dir: 'desc' }] })],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UuZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZS93b3JrZmxvdy1pbnN0YW5jZS5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakcsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBQUMsUUFBa0I7SUFDOUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBRXJGLE1BQU0sU0FBUyxHQUFjO1FBQzNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtRQUMvQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ2pELElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUk7UUFDL0MsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSztZQUN0RCxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3hELFdBQVcsRUFBRSw0QkFBNEI7WUFDekMsWUFBWSxFQUFFO2dCQUNaLEtBQUssRUFBRSw0QkFBNEI7Z0JBQ25DLFdBQVcsRUFBRSxnQ0FBZ0M7YUFDOUM7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLEVBQUUsRUFBRSxXQUFXO2dCQUNmLEtBQUssRUFBRSxzRkFBc0Y7YUFDOUY7WUFDRDtnQkFDRSxFQUFFLEVBQUUsUUFBUTtnQkFDWixLQUFLLEVBQUUsa0ZBQWtGO2FBQzFGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsS0FBSyxFQUFFLG9GQUFvRjthQUM1RjtTQUNGO1FBQ0QsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtpQkFDMUI7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsK0ZBQStGO2dCQUN0RyxPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7d0JBQzVCLE9BQU8sRUFBRTs0QkFDUCxXQUFXLEVBQ1QscUdBQXFHO3lCQUN4RztxQkFDRjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDbEU7Z0JBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDcEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsc0ZBQXNGO2dCQUM3RixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7d0JBQzVCLE9BQU8sRUFBRTs0QkFDUCxXQUFXLEVBQ1QsNEZBQTRGO3lCQUMvRjtxQkFDRjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDbEU7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSx3RkFBd0Y7Z0JBQy9GLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTt3QkFDOUIsT0FBTyxFQUFFOzRCQUNQLFVBQVUsRUFBRSxPQUFPOzRCQUNuQixTQUFTLEVBQUUsTUFBTTs0QkFDakIsVUFBVSxFQUFFO2dDQUNWLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7Z0NBQ3BGLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUseURBQXlELEVBQUU7NkJBQ3ZGO3lCQUNGO3FCQUNGO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSw0RkFBNEY7Z0JBQ25HLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTt3QkFDOUIsT0FBTyxFQUFFOzRCQUNQLFVBQVUsRUFBRSxPQUFPOzRCQUNuQixTQUFTLEVBQUUsTUFBTTs0QkFDakIsVUFBVSxFQUFFO2dDQUNWLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7Z0NBQ3BGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUseURBQXlELEVBQUU7Z0NBQ3RGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7NkJBQ3JGO3lCQUNGO3FCQUNGO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTt3QkFDNUIsT0FBTyxFQUFFOzRCQUNQLFdBQVcsRUFDVCxzR0FBc0c7eUJBQ3pHO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLHlGQUF5RjtnQkFDaEcsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO3FCQUMvQjtvQkFDRCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtxQkFDL0I7b0JBQ0QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDdkM7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsNEZBQTRGO2dCQUNuRyxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxNQUFNO29CQUNoQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7cUJBQ2pDO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7aUJBQ3ZDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLDRGQUE0RjtnQkFDbkcsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO3FCQUNqQztvQkFDRCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSw2RkFBNkY7Z0JBQ3BHLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtxQkFDakM7b0JBQ0QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDdkM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSwrRkFBK0Y7Z0JBQ3RHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsc0ZBQXNGO2dCQUM3RixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLHdGQUF3RjtnQkFDL0YsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTtnQkFDeEMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUM1QjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsNEZBQTRGO2dCQUNuRyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2dCQUN4QyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQzVCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7YUFDNUI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLDRGQUE0RjtnQkFDbkcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtnQkFDNUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUM1QjtZQUNEO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsNkZBQTZGO2dCQUNwRyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQzVCO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7YUFDNUQ7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQVUsRUFBRSxFQUFFO29CQUM1QixNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07YUFDaEM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFNLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUk7YUFDOUI7U0FDRjtRQUNELFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLDRCQUE0QjtvQkFDbkMsUUFBUSxFQUFFO3dCQUNSLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQzdFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3pFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7cUJBQzVFO29CQUNELFVBQVUsRUFBRTt3QkFDVixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDdkUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQy9ELEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN4RSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbEUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ2pFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNwRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDeEUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3BFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNwRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDdEU7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO2lCQUMxQztnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO29CQUN2QyxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzdFO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0c0xpc3QgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvY29tbW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQRW50aXR5Q29tbWFuZFNjb3BlLCBBWFBFbnRpdHlRdWVyeVR5cGUsIGNyZWF0ZUFsbFF1ZXJ5VmlldyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGVudGl0eU1hc3RlckNydWRBY3Rpb25zLCBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICBjb25zdCBkYXRhU2VydmljZSA9IGluamVjdG9yLmdldChBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSk7XG5cbiAgY29uc3QgZW50aXR5RGVmOiBBWFBFbnRpdHkgPSB7XG4gICAgbW9kdWxlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIG5hbWU6IFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dJbnN0YW5jZS5uYW1lLFxuICAgIHRpdGxlOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UudGl0bGUsXG4gICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLmljb24sXG4gICAgZm9ybWF0czoge1xuICAgICAgaW5kaXZpZHVhbDogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLnRpdGxlLFxuICAgICAgcGx1cmFsOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UudGl0bGVQbHVyYWwsXG4gICAgICBkaXNwbGF5TmFtZTogJ3t7IG5hbWUgfHwgZGVmaW5pdGlvbklkIH19JyxcbiAgICAgIHNlYXJjaFJlc3VsdDoge1xuICAgICAgICB0aXRsZTogJ3t7IG5hbWUgfHwgZGVmaW5pdGlvbklkIH19JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICd7eyBzdGF0dXMgfX0gLSB7eyBzdWJTdGF0dXMgfX0nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFt7IG5hbWU6ICdoaXN0b3J5JyB9XSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5ncm91cHMuYmFzaWMtaW5mbycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3N0YXR1cycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmdyb3Vwcy5zdGF0dXMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmdyb3Vwcy5tZXRhZGF0YScsXG4gICAgICB9LFxuICAgIF0sXG4gICAgcHJvcGVydGllczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICB0aXRsZTogJ0lEJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICd1dWlkJyxcbiAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgICAgdW5pcXVlOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZWZpbml0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuZGVmaW5pdGlvbi1pZC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgICAgICAgICAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5kZWZpbml0aW9uLWlkLnBsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0aW9uczogW3sgcnVsZTogJ3JlcXVpcmVkJyB9XSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLm5hbWUudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMubmFtZS5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ3N0YXR1cycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnUnVubmluZycsIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuc3RhdGVzLnJ1bm5pbmcnIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ0ZpbmlzaGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuZmluaXNoZWQnIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdWJTdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3ViLXN0YXR1cy50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdzdGF0dXMnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1BlbmRpbmcnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5wZW5kaW5nJyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdFeGVjdXRpbmcnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5leGVjdXRpbmcnIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1N1c3BlbmRlZCcsIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuc3RhdGVzLnN1c3BlbmRlZCcgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnRmluaXNoZWQnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5maW5pc2hlZCcgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnQ2FuY2VsbGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuY2FuY2VsbGVkJyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdGYXVsdGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuZmF1bHRlZCcgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvcnJlbGF0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY29ycmVsYXRpb24taWQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY29ycmVsYXRpb24taWQucGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy52ZXJzaW9uLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpbmNpZGVudENvdW50JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmluY2lkZW50LWNvdW50LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ3N0YXR1cycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmNyZWF0ZWQtYXQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZGF0ZVRpbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy51cGRhdGVkLWF0LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdmaW5pc2hlZEF0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmZpbmlzaGVkLWF0LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZWZpbml0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuZGVmaW5pdGlvbi1pZC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5uYW1lLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEyMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3N1YlN0YXR1cycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5zdWItc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzE0MHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2luY2lkZW50Q291bnQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuaW5jaWRlbnQtY291bnQudGl0bGUnLFxuICAgICAgICBzaG93QXM6IHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyIH0sXG4gICAgICAgIG9wdGlvbnM6IHsgd2lkdGg6ICcxMDBweCcgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY3JlYXRlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnZmluaXNoZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5maW5pc2hlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29tbWFuZHM6IHtcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IGFueSkgPT4gYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlT25lKGlkKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBxdWVyaWVzOiB7XG4gICAgICBieUtleToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBkYXRhU2VydmljZS5nZXRPbmUoaWQpO1xuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuU2luZ2xlLFxuICAgICAgfSxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5xdWVyeShlKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QsXG4gICAgICB9LFxuICAgIH0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIHNpbmdsZToge1xuICAgICAgICAgIHRpdGxlOiAne3sgbmFtZSB8fCBkZWZpbml0aW9uSWQgfX0nLFxuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7IGlkOiAnYmFzaWNJbmZvJywgb3JkZXI6IDEsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgaWQ6ICdzdGF0dXMnLCBvcmRlcjogMiwgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IGlkOiAnbWV0YWRhdGEnLCBvcmRlcjogMywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkZWZpbml0aW9uSWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2NvcnJlbGF0aW9uSWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3ZlcnNpb24nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXR1cycsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3ViU3RhdHVzJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpbmNpZGVudENvdW50JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjcmVhdGVkQXQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3VwZGF0ZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZmluaXNoZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlclJlY29yZEFjdGlvbnMoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbLi4uZW50aXR5TWFzdGVyQ3J1ZEFjdGlvbnMoKV0sXG4gICAgICAgICAgdmlld3M6IFtjcmVhdGVBbGxRdWVyeVZpZXcoeyBzb3J0czogW3sgbmFtZTogJ2NyZWF0ZWRBdCcsIGRpcjogJ2Rlc2MnIH1dIH0pXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gZW50aXR5RGVmO1xufVxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow definition provider that loads definitions from JSON files.\n *\n * JSON files should be placed in:\n * - `libs/modules/workflow-management/src/lib/workflow-definitions/definitions/*.json`\n *\n * Each JSON file should contain a simplified workflow definition (AXPWorkflowDefinitionJson).\n * System fields are automatically added when loading.\n * The filename (without .json extension) should match the 'name' field in JSON.\n *\n * Definitions are loaded lazily - only when requested via `get(name)`.\n *\n * @example\n * File: `welcome-workflow.json`\n * ```json\n * {\n * \"name\": \"welcome-workflow\",\n * \"title\": \"Welcome Workflow\",\n * \"root\": { ... }\n * }\n * ```\n */\nexport class AXMWorkflowDefinitionProvider {\n /**\n * Get workflow definition by name (unique key).\n * Loads the corresponding JSON file dynamically.\n * @param name - The workflow name (filename without .json, or name from JSON)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n throw new Error('Not implemented');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvd29ya2Zsb3ctZGVmaW5pdGlvbnMvd29ya2Zsb3ctZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVEzQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUN4Qzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FUVSw2QkFBNkI7bUhBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUERhdGFHZW5lcmF0b3IgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHtcbiAgQVhQV29ya2Zsb3dEZWZpbml0aW9uLFxuICBBWFBXb3JrZmxvd0RlZmluaXRpb25Kc29uLFxuICBBWFBXb3JrZmxvd0RlZmluaXRpb25Mb2FkZXIsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuXG4vKipcbiAqIFdvcmtmbG93IGRlZmluaXRpb24gcHJvdmlkZXIgdGhhdCBsb2FkcyBkZWZpbml0aW9ucyBmcm9tIEpTT04gZmlsZXMuXG4gKiBcbiAqIEpTT04gZmlsZXMgc2hvdWxkIGJlIHBsYWNlZCBpbjpcbiAqIC0gYGxpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvd29ya2Zsb3ctZGVmaW5pdGlvbnMvZGVmaW5pdGlvbnMvKi5qc29uYFxuICogXG4gKiBFYWNoIEpTT04gZmlsZSBzaG91bGQgY29udGFpbiBhIHNpbXBsaWZpZWQgd29ya2Zsb3cgZGVmaW5pdGlvbiAoQVhQV29ya2Zsb3dEZWZpbml0aW9uSnNvbikuXG4gKiBTeXN0ZW0gZmllbGRzIGFyZSBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW4gbG9hZGluZy5cbiAqIFRoZSBmaWxlbmFtZSAod2l0aG91dCAuanNvbiBleHRlbnNpb24pIHNob3VsZCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkIGluIEpTT04uXG4gKiBcbiAqIERlZmluaXRpb25zIGFyZSBsb2FkZWQgbGF6aWx5IC0gb25seSB3aGVuIHJlcXVlc3RlZCB2aWEgYGdldChuYW1lKWAuXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBGaWxlOiBgd2VsY29tZS13b3JrZmxvdy5qc29uYFxuICogYGBganNvblxuICoge1xuICogICBcIm5hbWVcIjogXCJ3ZWxjb21lLXdvcmtmbG93XCIsXG4gKiAgIFwidGl0bGVcIjogXCJXZWxjb21lIFdvcmtmbG93XCIsXG4gKiAgIFwicm9vdFwiOiB7IC4uLiB9XG4gKiB9XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93RGVmaW5pdGlvblByb3ZpZGVyIGltcGxlbWVudHMgQVhQV29ya2Zsb3dEZWZpbml0aW9uTG9hZGVyIHtcbiAgLyoqXG4gICAqIEdldCB3b3JrZmxvdyBkZWZpbml0aW9uIGJ5IG5hbWUgKHVuaXF1ZSBrZXkpLlxuICAgKiBMb2FkcyB0aGUgY29ycmVzcG9uZGluZyBKU09OIGZpbGUgZHluYW1pY2FsbHkuXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIHdvcmtmbG93IG5hbWUgKGZpbGVuYW1lIHdpdGhvdXQgLmpzb24sIG9yIG5hbWUgZnJvbSBKU09OKVxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb24gfCBudWxsPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Activities Definition Provider\n *\n * Provides activity definitions (metadata only).\n * Activity definitions contain metadata for UI and tooling.\n * The `name` property is used as the command key for execution.\n * Reads from entity service (mock data).\n */\nexport class AXMWorkflowActivitiesDefinitionProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.activityDefinitionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.activityDefinition.name).data();\n }\n //#endregion\n //#region ---- AXPActivityProvider Implementation ----\n async getList(categoryId) {\n // Use 'equal' operator to filter by category field\n const result = await this.activityDefinitionService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'category',\n operator: {\n type: 'equal',\n },\n value: categoryId,\n }]\n }\n });\n return result.items;\n }\n async getById(name) {\n // Try to find by name field first, then by type field\n const byName = await this.activityDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'name',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byName.items && byName.items.length > 0) {\n return byName.items[0];\n }\n // Try by type field\n const byType = await this.activityDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'type',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byType.items && byType.items.length > 0) {\n return byType.items[0];\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYWN0aXZpdGllcy1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy93b3JrZmxvdy1hY3Rpdml0aWVzLWRlZmluaXRpb24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU1Qzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLHVDQUF1QztJQURwRDtRQUVJLCtDQUErQztRQUU5QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELDhCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUM3RCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzlDLENBQUMsSUFBSSxFQUFZLENBQUM7S0FzRXRCO0lBcEVHLFlBQVk7SUFFWiwwREFBMEQ7SUFFMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFrQjtRQUM1QixtREFBbUQ7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1lBQ3RELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUM7d0JBQ04sS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLFVBQVU7cUJBQ3BCLENBQUM7YUFDTDtTQUNKLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLEtBQWdDLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBWTtRQUN0QixzREFBc0Q7UUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1lBQ3RELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUM7WUFDUCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUM7d0JBQ04sS0FBSyxFQUFFLE1BQU07d0JBQ2IsUUFBUSxFQUFFOzRCQUNOLElBQUksRUFBRSxPQUFPO3lCQUNoQjt3QkFDRCxLQUFLLEVBQUUsSUFBSTtxQkFDZCxDQUFDO2FBQ0w7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBMEIsQ0FBQztRQUNwRCxDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxNQUFNO3dCQUNiLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLElBQUk7cUJBQ2QsQ0FBQzthQUNMO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQTBCLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBMUVRLHVDQUF1QzttSEFBdkMsdUNBQXVDOzs0RkFBdkMsdUNBQXVDO2tCQURuRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBBY3Rpdml0eVByb3ZpZGVyLCBBWFBBY3Rpdml0eURlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0JztcblxuLyoqXG4gKiBXb3JrZmxvdyBBY3Rpdml0aWVzIERlZmluaXRpb24gUHJvdmlkZXJcbiAqIFxuICogUHJvdmlkZXMgYWN0aXZpdHkgZGVmaW5pdGlvbnMgKG1ldGFkYXRhIG9ubHkpLlxuICogQWN0aXZpdHkgZGVmaW5pdGlvbnMgY29udGFpbiBtZXRhZGF0YSBmb3IgVUkgYW5kIHRvb2xpbmcuXG4gKiBUaGUgYG5hbWVgIHByb3BlcnR5IGlzIHVzZWQgYXMgdGhlIGNvbW1hbmQga2V5IGZvciBleGVjdXRpb24uXG4gKiBSZWFkcyBmcm9tIGVudGl0eSBzZXJ2aWNlIChtb2NrIGRhdGEpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dBY3Rpdml0aWVzRGVmaW5pdGlvblByb3ZpZGVyIGltcGxlbWVudHMgQVhQQWN0aXZpdHlQcm92aWRlciB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UgPSB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICAgICAgUm9vdENvbmZpZy5tb2R1bGUubmFtZSxcbiAgICAgICAgUm9vdENvbmZpZy5lbnRpdGllcy5hY3Rpdml0eURlZmluaXRpb24ubmFtZVxuICAgICkuZGF0YTxhbnksIGFueT4oKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBBWFBBY3Rpdml0eVByb3ZpZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gICAgYXN5bmMgZ2V0TGlzdChjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdPiB7XG4gICAgICAgIC8vIFVzZSAnZXF1YWwnIG9wZXJhdG9yIHRvIGZpbHRlciBieSBjYXRlZ29yeSBmaWVsZFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEwMDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnlJZCxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtcyBhcyBBWFBBY3Rpdml0eURlZmluaXRpb25bXTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRCeUlkKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlEZWZpbml0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGJ5IG5hbWUgZmllbGQgZmlyc3QsIHRoZW4gYnkgdHlwZSBmaWVsZFxuICAgICAgICBjb25zdCBieU5hbWUgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgaWYgKGJ5TmFtZS5pdGVtcyAmJiBieU5hbWUuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGJ5TmFtZS5pdGVtc1swXSBhcyBBWFBBY3Rpdml0eURlZmluaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgYnkgdHlwZSBmaWVsZFxuICAgICAgICBjb25zdCBieVR5cGUgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChieVR5cGUuaXRlbXMgJiYgYnlUeXBlLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBieVR5cGUuaXRlbXNbMF0gYXMgQVhQQWN0aXZpdHlEZWZpbml0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Provider for activity categories.\n * Reads categories from entity service (mock data).\n */\nexport class AXCCategoryProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.categoryService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.activityCategory.name).data();\n }\n async getList(parentId) {\n const list = [];\n if (parentId) {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'parentId',\n operator: {\n type: 'equal',\n },\n value: parentId,\n }]\n }\n });\n list.push(...result.items);\n }\n else {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n });\n list.push(...result.items);\n }\n return list;\n }\n async getById(id) {\n return await this.categoryService.byKey(id);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS9jYXRlZ29yeS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUV6Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBR21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDckQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMxQyxDQUFDLElBQUksRUFBWSxDQUFDO0tBbUNwQjtJQWpDQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQWlCO1FBQzdCLE1BQU0sSUFBSSxHQUEwQixFQUFFLENBQUM7UUFFdkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsS0FBSztvQkFDWixPQUFPLEVBQUUsQ0FBQzs0QkFDUixLQUFLLEVBQUUsVUFBVTs0QkFDakIsUUFBUSxFQUFFO2dDQUNSLElBQUksRUFBRSxPQUFPOzZCQUNkOzRCQUNELEtBQUssRUFBRSxRQUFRO3lCQUNoQixDQUFDO2lCQUNIO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQXhDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlciwgQVhQQWN0aXZpdHlDYXRlZ29yeSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIGFjdGl2aXR5IGNhdGVnb3JpZXMuXG4gKiBSZWFkcyBjYXRlZ29yaWVzIGZyb20gZW50aXR5IHNlcnZpY2UgKG1vY2sgZGF0YSkuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWENDYXRlZ29yeVByb3ZpZGVyIGltcGxlbWVudHMgQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyIHtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2UgPSB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlDYXRlZ29yeS5uYW1lXG4gICkuZGF0YTxhbnksIGFueT4oKTtcblxuICBhc3luYyBnZXRMaXN0KHBhcmVudElkPzogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5W10+IHtcbiAgICBjb25zdCBsaXN0OiBBWFBBY3Rpdml0eUNhdGVnb3J5W10gPSBbXTtcbiAgICBcbiAgICBpZiAocGFyZW50SWQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgc2tpcDogMCxcbiAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IHBhcmVudElkLFxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGlzdC5wdXNoKC4uLnJlc3VsdC5pdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgc2tpcDogMCxcbiAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgIH0pO1xuICAgICAgbGlzdC5wdXNoKC4uLnJlc3VsdC5pdGVtcyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBsaXN0O1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmJ5S2V5KGlkKTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Category Provider\n *\n * Provides workflow categories from entity service.\n * Reads from entity service (mock data or API).\n */\nexport class AXMWorkflowCategoryProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.categoryService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowCategory?.name || 'WorkflowCategory').data();\n }\n //#endregion\n //#region ---- AXPWorkflowCategoryProvider Implementation ----\n async getList(parentId) {\n const filters = [];\n if (parentId === undefined) {\n // Root categories: parentId is null or undefined\n filters.push({\n field: 'parentId',\n operator: {\n type: 'isNull',\n },\n });\n }\n else {\n // Child categories: parentId matches\n filters.push({\n field: 'parentId',\n operator: {\n type: 'equal',\n },\n value: parentId,\n });\n }\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters,\n },\n });\n return (result.items || []);\n }\n async getById(id) {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'id',\n operator: {\n type: 'equal',\n },\n value: id,\n }],\n },\n });\n if (result.items && result.items.length > 0) {\n return result.items[0];\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY2F0ZWdvcnkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS93b3JrZmxvd3Mvd29ya2Zsb3ctY2F0ZWdvcnkucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU1Qzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTywyQkFBMkI7SUFEeEM7UUFFSSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUNuRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksa0JBQWtCLENBQ25FLENBQUMsSUFBSSxFQUFZLENBQUM7S0FnRXRCO0lBOURHLFlBQVk7SUFFWixrRUFBa0U7SUFFbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFpQjtRQUMzQixNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFFMUIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsaURBQWlEO1lBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFFBQVEsRUFBRTtvQkFDTixJQUFJLEVBQUUsUUFBUTtpQkFDakI7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLHFDQUFxQztZQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNULEtBQUssRUFBRSxVQUFVO2dCQUNqQixRQUFRLEVBQUU7b0JBQ04sSUFBSSxFQUFFLE9BQU87aUJBQ2hCO2dCQUNELEtBQUssRUFBRSxRQUFRO2FBQ2xCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTzthQUNWO1NBQ0osQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUEwQixDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxJQUFJO3dCQUNYLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLEVBQUU7cUJBQ1osQ0FBQzthQUNMO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBcEVRLDJCQUEyQjttSEFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0NhdGVnb3J5UHJvdmlkZXIsIEFYUFdvcmtmbG93Q2F0ZWdvcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0JztcblxuLyoqXG4gKiBXb3JrZmxvdyBDYXRlZ29yeSBQcm92aWRlclxuICogXG4gKiBQcm92aWRlcyB3b3JrZmxvdyBjYXRlZ29yaWVzIGZyb20gZW50aXR5IHNlcnZpY2UuXG4gKiBSZWFkcyBmcm9tIGVudGl0eSBzZXJ2aWNlIChtb2NrIGRhdGEgb3IgQVBJKS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciBpbXBsZW1lbnRzIEFYUFdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGNhdGVnb3J5U2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZS53aXRoRW50aXR5KFxuICAgICAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93Q2F0ZWdvcnk/Lm5hbWUgfHwgJ1dvcmtmbG93Q2F0ZWdvcnknXG4gICAgKS5kYXRhPGFueSwgYW55PigpO1xuXG4gICAgLy8jZW5kcmVnaW9uXG5cbiAgICAvLyNyZWdpb24gLS0tLSAgIEFYUFdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuICAgIGFzeW5jIGdldExpc3QocGFyZW50SWQ/OiBzdHJpbmcpOiBQcm9taXNlPEFYUFdvcmtmbG93Q2F0ZWdvcnlbXT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGlmIChwYXJlbnRJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAvLyBSb290IGNhdGVnb3JpZXM6IHBhcmVudElkIGlzIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgIGZpZWxkOiAncGFyZW50SWQnLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpc051bGwnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENoaWxkIGNhdGVnb3JpZXM6IHBhcmVudElkIG1hdGNoZXNcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdwYXJlbnRJZCcsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBwYXJlbnRJZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEwMDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAocmVzdWx0Lml0ZW1zIHx8IFtdKSBhcyBBWFBXb3JrZmxvd0NhdGVnb3J5W107XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0NhdGVnb3J5IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgICAgIHNraXA6IDAsXG4gICAgICAgICAgICB0YWtlOiAxLFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnaWQnLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2VxdWFsJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGlkLFxuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3VsdC5pdGVtcyAmJiByZXN1bHQuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtc1swXSBhcyBBWFBXb3JrZmxvd0NhdGVnb3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Definition Metadata Provider\n *\n * Provides workflow definition metadata (metadata only).\n * Workflow definition metadata contains metadata for UI and tooling.\n * The `name` property is used as the workflow identifier.\n * Reads from entity service (mock data or API).\n */\nexport class AXMWorkflowDefinitionMetadataProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.workflowDefinitionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowDefinition.name).data();\n }\n //#endregion\n //#region ---- AXPWorkflowProvider Implementation ----\n async getList(categoryId) {\n // Use 'equal' operator to filter by category field\n const result = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'category',\n operator: {\n type: 'equal',\n },\n value: categoryId,\n }]\n }\n });\n // Convert entity data to metadata format\n return (result.items || []).map((item) => ({\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || categoryId,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n }));\n }\n async getById(name) {\n // Try to find by name field first, then by id field\n const byName = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'name',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byName.items && byName.items.length > 0) {\n const item = byName.items[0];\n return {\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || undefined,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n };\n }\n // Try by id field\n const byId = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'id',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byId.items && byId.items.length > 0) {\n const item = byId.items[0];\n return {\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || undefined,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n };\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi1tZXRhZGF0YS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL3dvcmtmbG93cy93b3JrZmxvdy1kZWZpbml0aW9uLW1ldGFkYXRhLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFNUM7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxxQ0FBcUM7SUFEbEQ7UUFFSSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCw4QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDN0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUM5QyxDQUFDLElBQUksRUFBWSxDQUFDO0tBcUd0QjtJQW5HRyxZQUFZO0lBRVosMERBQTBEO0lBRTFELEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBa0I7UUFDNUIsbURBQW1EO1FBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxVQUFVO3dCQUNqQixRQUFRLEVB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SUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPO2dCQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRTtnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7Z0JBQy9DLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLFNBQVM7Z0JBQzFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVM7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLDZCQUE2QjtnQkFDaEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQztnQkFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTtnQkFDckMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTthQUN4QyxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBekdRLHFDQUFxQzttSEFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1Byb3ZpZGVyLCBBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uc3QnO1xuXG4vKipcbiAqIFdvcmtmbG93IERlZmluaXRpb24gTWV0YWRhdGEgUHJvdmlkZXJcbiAqIFxuICogUHJvdmlkZXMgd29ya2Zsb3cgZGVmaW5pdGlvbiBtZXRhZGF0YSAobWV0YWRhdGEgb25seSkuXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIG1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIGZvciBVSSBhbmQgdG9vbGluZy5cbiAqIFRoZSBgbmFtZWAgcHJvcGVydHkgaXMgdXNlZCBhcyB0aGUgd29ya2Zsb3cgaWRlbnRpZmllci5cbiAqIFJlYWRzIGZyb20gZW50aXR5IHNlcnZpY2UgKG1vY2sgZGF0YSBvciBBUEkpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dEZWZpbml0aW9uTWV0YWRhdGFQcm92aWRlciBpbXBsZW1lbnRzIEFYUFdvcmtmbG93UHJvdmlkZXIge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG4gICAgcHJpdmF0ZSB3b3JrZmxvd0RlZmluaXRpb25TZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlLndpdGhFbnRpdHkoXG4gICAgICAgIFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgICAgIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dEZWZpbml0aW9uLm5hbWVcbiAgICApLmRhdGE8YW55LCBhbnk+KCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQVhQV29ya2Zsb3dQcm92aWRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuICAgIGFzeW5jIGdldExpc3QoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YVtdPiB7XG4gICAgICAgIC8vIFVzZSAnZXF1YWwnIG9wZXJhdG9yIHRvIGZpbHRlciBieSBjYXRlZ29yeSBmaWVsZFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLndvcmtmbG93RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEwMDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnlJZCxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDb252ZXJ0IGVudGl0eSBkYXRhIHRvIG1ldGFkYXRhIGZvcm1hdFxuICAgICAgICByZXR1cm4gKHJlc3VsdC5pdGVtcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpOiBBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YSA9PiAoe1xuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uaWQgfHwgJycsXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSB8fCBpdGVtLm5hbWUgfHwgaXRlbS5pZCB8fCAnJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBpdGVtLmNhdGVnb3J5IHx8IGNhdGVnb3J5SWQsXG4gICAgICAgICAgICBpY29uOiBpdGVtLmljb24gfHwgJ2ZhLWxpZ2h0IGZhLWRpYWdyYW0tcHJvamVjdCcsXG4gICAgICAgICAgICB2ZXJzaW9uOiBpdGVtLnZlcnNpb24gfHwgMSxcbiAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICBpc0Jyb3dzYWJsZTogaXRlbS5pc0Jyb3dzYWJsZSA/PyB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QnlJZChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUFdvcmtmbG93RGVmaW5pdGlvbk1ldGFkYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGJ5IG5hbWUgZmllbGQgZmlyc3QsIHRoZW4gYnkgaWQgZmllbGRcbiAgICAgICAgY29uc3QgYnlOYW1lID0gYXdhaXQgdGhpcy53b3JrZmxvd0RlZmluaXRpb25TZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgICAgIHNraXA6IDAsXG4gICAgICAgICAgICB0YWtlOiAxLFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIGlmIChieU5hbWUuaXRlbXMgJiYgYnlOYW1lLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBieU5hbWUuaXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uIHx8ICdmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3QnLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IGl0ZW0udmVyc2lvbiB8fCAxLFxuICAgICAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICAgICAgaXNCcm93c2FibGU6IGl0ZW0uaXNCcm93c2FibGUgPz8gdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgYnkgaWQgZmllbGRcbiAgICAgICAgY29uc3QgYnlJZCA9IGF3YWl0IHRoaXMud29ya2Zsb3dEZWZpbml0aW9uU2VydmljZS5xdWVyeSh7XG4gICAgICAgICAgICBza2lwOiAwLFxuICAgICAgICAgICAgdGFrZTogMSxcbiAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChieUlkLml0ZW1zICYmIGJ5SWQuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGJ5SWQuaXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uIHx8ICdmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3QnLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IGl0ZW0udmVyc2lvbiB8fCAxLFxuICAgICAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICAgICAgaXNCcm93c2FibGU6IGl0ZW0uaXNCcm93c2FibGUgPz8gdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * CheckPermission Activity (Backend)\n *\n * Checks if a user has specific permission.\n * This is a mock implementation that always grants permission for demo purposes.\n *\n * In production, this would check against real permission system.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:check-permission\n *\n * Outcomes:\n * - HasPermission: User has the permission\n * - NoPermission: User does not have the permission\n */\nexport class CheckPermissionActivity {\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n // Mock implementation: always grant permission for demo\n // In production, check against permission service\n const hasPermission = true; // TODO: Integrate with real permission system\n const output = {\n hasPermission,\n userId: input.userId || 'current-user',\n permission: input.permission,\n };\n // Determine outcome based on permission check\n const outcomes = hasPermission\n ? { HasPermission: true }\n : { NoPermission: true };\n console.log(`[CheckPermissionActivity] Checked permission '${input.permission}' for user '${output.userId}': ${hasPermission ? 'GRANTED' : 'DENIED'}`);\n return {\n success: true,\n data: {\n output,\n outcomes,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stcGVybWlzc2lvbi5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL2FjdGl2aXRpZXMvY2hlY2stcGVybWlzc2lvbi5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXlDM0MsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxpREFBaUQ7SUFFakQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUEyQjtRQUUzQix3REFBd0Q7UUFDeEQsa0RBQWtEO1FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLDhDQUE4QztRQUUxRSxNQUFNLE1BQU0sR0FBMEI7WUFDcEMsYUFBYTtZQUNiLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLGNBQWM7WUFDdEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUM7UUFFRiw4Q0FBOEM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsYUFBYTtZQUM1QixDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUzQixPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxLQUFLLENBQUMsVUFBVSxlQUFlLE1BQU0sQ0FBQyxNQUFNLE1BQU0sYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFdkosT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sUUFBUTthQUNUO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBL0JVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbi8qKlxuICogSW5wdXQgZm9yIENoZWNrUGVybWlzc2lvbiBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1Blcm1pc3Npb25JbnB1dCB7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9uIGtleSB0byBjaGVjayAoZS5nLiwgXCJVc2Vycy5DcmVhdGVcIilcbiAgICovXG4gIHBlcm1pc3Npb246IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBJRCB0byBjaGVjayAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIGN1cnJlbnQgdXNlcilcbiAgICovXG4gIHVzZXJJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPdXRwdXQgZm9yIENoZWNrUGVybWlzc2lvbiBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1Blcm1pc3Npb25PdXRwdXQge1xuICAvKipcbiAgICogV2hldGhlciB1c2VyIGhhcyB0aGUgcGVybWlzc2lvblxuICAgKi9cbiAgaGFzUGVybWlzc2lvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlciBJRCB0aGF0IHdhcyBjaGVja2VkXG4gICAqL1xuICB1c2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGVybWlzc2lvbiB0aGF0IHdhcyBjaGVja2VkXG4gICAqL1xuICBwZXJtaXNzaW9uOiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIENoZWNrUGVybWlzc2lvbiBBY3Rpdml0eSAoQmFja2VuZClcbiAqIFxuICogQ2hlY2tzIGlmIGEgdXNlciBoYXMgc3BlY2lmaWMgcGVybWlzc2lvbi5cbiAqIFRoaXMgaXMgYSBtb2NrIGltcGxlbWVudGF0aW9uIHRoYXQgYWx3YXlzIGdyYW50cyBwZXJtaXNzaW9uIGZvciBkZW1vIHB1cnBvc2VzLlxuICogXG4gKiBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGNoZWNrIGFnYWluc3QgcmVhbCBwZXJtaXNzaW9uIHN5c3RlbS5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGJhY2tlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OmNoZWNrLXBlcm1pc3Npb25cbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIEhhc1Blcm1pc3Npb246IFVzZXIgaGFzIHRoZSBwZXJtaXNzaW9uXG4gKiAtIE5vUGVybWlzc2lvbjogVXNlciBkb2VzIG5vdCBoYXZlIHRoZSBwZXJtaXNzaW9uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja1Blcm1pc3Npb25BY3Rpdml0eVxuICBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8Q2hlY2tQZXJtaXNzaW9uSW5wdXQsIHsgb3V0cHV0OiBDaGVja1Blcm1pc3Npb25PdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBBWFBDb21tYW5kIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgaW5wdXQ6IENoZWNrUGVybWlzc2lvbklucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBDaGVja1Blcm1pc3Npb25PdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgLy8gTW9jayBpbXBsZW1lbnRhdGlvbjogYWx3YXlzIGdyYW50IHBlcm1pc3Npb24gZm9yIGRlbW9cbiAgICAvLyBJbiBwcm9kdWN0aW9uLCBjaGVjayBhZ2FpbnN0IHBlcm1pc3Npb24gc2VydmljZVxuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSB0cnVlOyAvLyBUT0RPOiBJbnRlZ3JhdGUgd2l0aCByZWFsIHBlcm1pc3Npb24gc3lzdGVtXG5cbiAgICBjb25zdCBvdXRwdXQ6IENoZWNrUGVybWlzc2lvbk91dHB1dCA9IHtcbiAgICAgIGhhc1Blcm1pc3Npb24sXG4gICAgICB1c2VySWQ6IGlucHV0LnVzZXJJZCB8fCAnY3VycmVudC11c2VyJyxcbiAgICAgIHBlcm1pc3Npb246IGlucHV0LnBlcm1pc3Npb24sXG4gICAgfTtcblxuICAgIC8vIERldGVybWluZSBvdXRjb21lIGJhc2VkIG9uIHBlcm1pc3Npb24gY2hlY2tcbiAgICBjb25zdCBvdXRjb21lcyA9IGhhc1Blcm1pc3Npb25cbiAgICAgID8geyBIYXNQZXJtaXNzaW9uOiB0cnVlIH1cbiAgICAgIDogeyBOb1Blcm1pc3Npb246IHRydWUgfTtcblxuICAgIGNvbnNvbGUubG9nKGBbQ2hlY2tQZXJtaXNzaW9uQWN0aXZpdHldIENoZWNrZWQgcGVybWlzc2lvbiAnJHtpbnB1dC5wZXJtaXNzaW9ufScgZm9yIHVzZXIgJyR7b3V0cHV0LnVzZXJJZH0nOiAke2hhc1Blcm1pc3Npb24gPyAnR1JBTlRFRCcgOiAnREVOSUVEJ31gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICBvdXRwdXQsXG4gICAgICAgIG91dGNvbWVzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ExecuteQuery Activity (Backend)\n *\n * Executes a query operation.\n * This is a mock implementation that simulates common queries.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:execute-query\n *\n * Outcomes:\n * - Done: Query executed successfully\n * - Valid: Data is valid (for validation queries)\n * - Exists: Data exists (for existence checks)\n * - NotFound: Data not found\n * - Failed: Query execution failed\n */\nexport class ExecuteQueryActivity {\n constructor() {\n //#region ---- Services ----\n this.storageService = inject(AXPEntityStorageService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteQueryActivity] Executing query '${input.queryKey}' with parameters:`, input.parameters);\n // Route to appropriate query handler based on queryKey\n const result = await this.routeQuery(input.queryKey, input.parameters || {});\n return {\n success: true,\n data: result,\n };\n }\n catch (error) {\n console.error(`[ExecuteQueryActivity] Query '${input.queryKey}' failed:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error',\n },\n data: {\n output: {\n data: null,\n success: false,\n error: error.message || 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n //#endregion\n //#region ---- Query Routing ----\n /**\n * Routes query to appropriate handler based on queryKey.\n */\n async routeQuery(queryKey, parameters) {\n switch (queryKey) {\n case 'User:CheckEmailExists':\n return await this.checkEmailExists(parameters);\n case 'Data:Validate':\n return await this.validateData(parameters);\n default:\n // Mock: return empty result for unknown queries\n console.warn(`[ExecuteQueryActivity] Unknown query key: ${queryKey}`);\n return {\n output: {\n data: null,\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n }\n //#endregion\n //#region ---- Query Handlers ----\n /**\n * Checks if email already exists in database.\n */\n async checkEmailExists(parameters) {\n const email = parameters['email'] || parameters['userEmail'];\n // Mock implementation: randomly decide if email exists\n // In production, check against real database\n const exists = Math.random() > 0.8; // 20% chance email exists\n console.log(`[ExecuteQueryActivity] Checking email '${email}': ${exists ? 'EXISTS' : 'AVAILABLE'}`);\n const outcome = exists ? 'Exists' : 'Valid';\n return {\n output: {\n data: {\n email,\n exists,\n available: !exists,\n },\n success: true,\n },\n outcomes: {\n [outcome]: true,\n Done: true,\n },\n };\n }\n /**\n * Validates data structure and content.\n */\n async validateData(parameters) {\n const data = parameters['data'];\n // Mock validation: check if data exists and has content\n const isValid = data && Object.keys(data).length > 0;\n console.log(`[ExecuteQueryActivity] Validating data: ${isValid ? 'VALID' : 'INVALID'}`);\n const outcome = isValid ? 'Valid' : 'Invalid';\n return {\n output: {\n data: {\n valid: isValid,\n errors: isValid ? [] : ['Data is empty or invalid'],\n },\n success: true,\n },\n outcomes: {\n [outcome]: true,\n Done: true,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL2FjdGl2aXRpZXMvZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUF1Q3pFLFlBQVk7QUFFWjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBR0UsZ0NBQWdDO1FBRWYsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQTZJbkU7SUEzSUMsWUFBWTtJQUVaLGlEQUFpRDtJQUVqRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQXdCO1FBRXhCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLEtBQUssQ0FBQyxRQUFRLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU3Ryx1REFBdUQ7WUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUU3RSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEtBQUssQ0FBQyxRQUFRLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVqRixPQUFPO2dCQUNM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LE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO2lCQUNwRDtnQkFDRCxPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBOUlVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLy8jcmVnaW9uIC0tLS0gICBUeXBlcyAgIC0tLS1cblxuLyoqXG4gKiBJbnB1dCBmb3IgRXhlY3V0ZVF1ZXJ5IGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVRdWVyeUlucHV0IHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGtleSB0byBleGVjdXRlIChlLmcuLCBcIlVzZXI6Q2hlY2tFbWFpbEV4aXN0c1wiKVxuICAgKi9cbiAgcXVlcnlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcGFyYW1ldGVyc1xuICAgKi9cbiAgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3V0cHV0IGZvciBFeGVjdXRlUXVlcnkgYWN0aXZpdHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZVF1ZXJ5T3V0cHV0IHtcbiAgLyoqXG4gICAqIFF1ZXJ5IHJlc3VsdCBkYXRhXG4gICAqL1xuICBkYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcXVlcnkgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAqL1xuICBzdWNjZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGlmIHF1ZXJ5IGZhaWxlZFxuICAgKi9cbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIEV4ZWN1dGVRdWVyeSBBY3Rpdml0eSAoQmFja2VuZClcbiAqIFxuICogRXhlY3V0ZXMgYSBxdWVyeSBvcGVyYXRpb24uXG4gKiBUaGlzIGlzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiB0aGF0IHNpbXVsYXRlcyBjb21tb24gcXVlcmllcy5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGJhY2tlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OmV4ZWN1dGUtcXVlcnlcbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIERvbmU6IFF1ZXJ5IGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICogLSBWYWxpZDogRGF0YSBpcyB2YWxpZCAoZm9yIHZhbGlkYXRpb24gcXVlcmllcylcbiAqIC0gRXhpc3RzOiBEYXRhIGV4aXN0cyAoZm9yIGV4aXN0ZW5jZSBjaGVja3MpXG4gKiAtIE5vdEZvdW5kOiBEYXRhIG5vdCBmb3VuZFxuICogLSBGYWlsZWQ6IFF1ZXJ5IGV4ZWN1dGlvbiBmYWlsZWRcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVRdWVyeUFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxFeGVjdXRlUXVlcnlJbnB1dCwgeyBvdXRwdXQ6IEV4ZWN1dGVRdWVyeU91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQVhQQ29tbWFuZCBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuICBhc3luYyBleGVjdXRlKFxuICAgIGlucHV0OiBFeGVjdXRlUXVlcnlJbnB1dCxcbiAgKTogUHJvbWlzZTxBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogRXhlY3V0ZVF1ZXJ5T3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBFeGVjdXRpbmcgcXVlcnkgJyR7aW5wdXQucXVlcnlLZXl9JyB3aXRoIHBhcmFtZXRlcnM6YCwgaW5wdXQucGFyYW1ldGVycyk7XG5cbiAgICAgIC8vIFJvdXRlIHRvIGFwcHJvcHJpYXRlIHF1ZXJ5IGhhbmRsZXIgYmFzZWQgb24gcXVlcnlLZXlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucm91dGVRdWVyeShpbnB1dC5xdWVyeUtleSwgaW5wdXQucGFyYW1ldGVycyB8fCB7fSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBRdWVyeSAnJHtpbnB1dC5xdWVyeUtleX0nIGZhaWxlZDpgLCBlcnJvcik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBRdWVyeSBSb3V0aW5nICAgLS0tLVxuXG4gIC8qKlxuICAgKiBSb3V0ZXMgcXVlcnkgdG8gYXBwcm9wcmlhdGUgaGFuZGxlciBiYXNlZCBvbiBxdWVyeUtleS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVRdWVyeShcbiAgICBxdWVyeUtleTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTx7IG91dHB1dDogRXhlY3V0ZVF1ZXJ5T3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9PiB7XG4gICAgc3dpdGNoIChxdWVyeUtleSkge1xuICAgICAgY2FzZSAnVXNlcjpDaGVja0VtYWlsRXhpc3RzJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tFbWFpbEV4aXN0cyhwYXJhbWV0ZXJzKTtcblxuICAgICAgY2FzZSAnRGF0YTpWYWxpZGF0ZSc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZhbGlkYXRlRGF0YShwYXJhbWV0ZXJzKTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gTW9jazogcmV0dXJuIGVtcHR5IHJlc3VsdCBmb3IgdW5rbm93biBxdWVyaWVzXG4gICAgICAgIGNvbnNvbGUud2FybihgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBVbmtub3duIHF1ZXJ5IGtleTogJHtxdWVyeUtleX1gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIERvbmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFF1ZXJ5IEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZW1haWwgYWxyZWFkeSBleGlzdHMgaW4gZGF0YWJhc2UuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNoZWNrRW1haWxFeGlzdHMoXG4gICAgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlUXVlcnlPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgICBjb25zdCBlbWFpbCA9IHBhcmFtZXRlcnNbJ2VtYWlsJ10gfHwgcGFyYW1ldGVyc1sndXNlckVtYWlsJ107XG5cbiAgICAvLyBNb2NrIGltcGxlbWVudGF0aW9uOiByYW5kb21seSBkZWNpZGUgaWYgZW1haWwgZXhpc3RzXG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgY2hlY2sgYWdhaW5zdCByZWFsIGRhdGFiYXNlXG4gICAgY29uc3QgZXhpc3RzID0gTWF0aC5yYW5kb20oKSA+IDAuODsgLy8gMjAlIGNoYW5jZSBlbWFpbCBleGlzdHNcblxuICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZVF1ZXJ5QWN0aXZpdHldIENoZWNraW5nIGVtYWlsICcke2VtYWlsfSc6ICR7ZXhpc3RzID8gJ0VYSVNUUycgOiAnQVZBSUxBQkxFJ31gKTtcblxuICAgIGNvbnN0IG91dGNvbWUgPSBleGlzdHMgPyAnRXhpc3RzJyA6ICdWYWxpZCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICBleGlzdHMsXG4gICAgICAgICAgYXZhaWxhYmxlOiAhZXhpc3RzLFxuICAgICAgICB9LFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgIFtvdXRjb21lXTogdHJ1ZSxcbiAgICAgICAgRG9uZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgZGF0YSBzdHJ1Y3R1cmUgYW5kIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlRGF0YShcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8eyBvdXRwdXQ6IEV4ZWN1dGVRdWVyeU91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIGNvbnN0IGRhdGEgPSBwYXJhbWV0ZXJzWydkYXRhJ107XG5cbiAgICAvLyBNb2NrIHZhbGlkYXRpb246IGNoZWNrIGlmIGRhdGEgZXhpc3RzIGFuZCBoYXMgY29udGVudFxuICAgIGNvbnN0IGlzVmFsaWQgPSBkYXRhICYmIE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDA7XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBWYWxpZGF0aW5nIGRhdGE6ICR7aXNWYWxpZCA/ICdWQUxJRCcgOiAnSU5WQUxJRCd9YCk7XG5cbiAgICBjb25zdCBvdXRjb21lID0gaXNWYWxpZCA/ICdWYWxpZCcgOiAnSW52YWxpZCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB2YWxpZDogaXNWYWxpZCxcbiAgICAgICAgICBlcnJvcnM6IGlzVmFsaWQgPyBbXSA6IFsnRGF0YSBpcyBlbXB0eSBvciBpbnZhbGlkJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgW291dGNvbWVdOiB0cnVlLFxuICAgICAgICBEb25lOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ExecuteCommand Activity (Backend)\n *\n * Executes a command operation.\n * This is a mock implementation that simulates common commands.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:execute-command\n *\n * Outcomes:\n * - Done: Command executed successfully\n * - Failed: Command execution failed\n */\nexport class ExecuteCommandActivity {\n constructor() {\n //#region ---- Services ----\n this.storageService = inject(AXPEntityStorageService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteCommandActivity] Executing command '${input.commandKey}' with input:`, input.input);\n // Route to appropriate command handler based on commandKey\n const result = await this.routeCommand(input.commandKey, input.input || {});\n return {\n success: true,\n data: result,\n };\n }\n catch (error) {\n console.error(`[ExecuteCommandActivity] Command '${input.commandKey}' failed:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error',\n },\n data: {\n output: {\n result: null,\n success: false,\n error: error.message || 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n //#endregion\n //#region ---- Command Routing ----\n /**\n * Routes command to appropriate handler based on commandKey.\n */\n async routeCommand(commandKey, input) {\n switch (commandKey) {\n case 'User:Create':\n return await this.createUser(input);\n case 'Data:Process':\n return await this.processData(input);\n default:\n // Mock: return success for unknown commands\n console.warn(`[ExecuteCommandActivity] Unknown command key: ${commandKey}`);\n return {\n output: {\n result: { success: true },\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n }\n //#endregion\n //#region ---- Command Handlers ----\n /**\n * Creates a new user in the system.\n */\n async createUser(input) {\n // Extract user data from input\n const email = input['email'] || input['userEmail'];\n const name = input['name'] || input['userName'] || 'New User';\n const role = input['role'] || input['userRole'] || 'User';\n // Create new user object\n const userId = AXPDataGenerator.uuid();\n const newUser = {\n id: userId,\n email,\n name,\n role,\n createdAt: new Date().toISOString(),\n isActive: true,\n };\n console.log(`[ExecuteCommandActivity] Creating user:`, newUser);\n // In production, save to database via EntityStorageService or API\n // For mock, we'll just simulate success\n // await this.storageService.create('User', newUser);\n return {\n output: {\n result: newUser,\n success: true,\n entityId: userId,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n /**\n * Processes data according to business rules.\n */\n async processData(input) {\n const data = input['data'];\n // Mock processing: just add timestamp and processed flag\n const processedData = {\n ...data,\n processed: true,\n processedAt: new Date().toISOString(),\n };\n console.log(`[ExecuteCommandActivity] Processed data:`, processedData);\n return {\n output: {\n result: processedData,\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1jb21tYW5kLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy9leGVjdXRlLWNvbW1hbmQuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUEyQixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQTRDekUsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFHRSxnQ0FBZ0M7UUFFZixtQkFBYyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBbUpuRTtJQWpKQyxZQUFZO0lBRVosaURBQWlEO0lBRWpELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBMEI7UUFFMUIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsS0FBSyxDQUFDLFVBQVUsZUFBZSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV6RywyREFBMkQ7WUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUU1RSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEtBQUssQ0FBQyxV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TyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUV2RSxPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FwSlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0LCBBWFBEYXRhR2VuZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBFeGVjdXRlQ29tbWFuZCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZElucHV0IHtcbiAgLyoqXG4gICAqIENvbW1hbmQga2V5IHRvIGV4ZWN1dGUgKGUuZy4sIFwiVXNlcjpDcmVhdGVcIilcbiAgICovXG4gIGNvbW1hbmRLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZCBpbnB1dCBkYXRhXG4gICAqL1xuICBpbnB1dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3V0cHV0IGZvciBFeGVjdXRlQ29tbWFuZCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZE91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21tYW5kIHJlc3VsdCBkYXRhXG4gICAqL1xuICByZXN1bHQ6IGFueTtcblxuICAvKipcbiAgICogV2hldGhlciBjb21tYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgc3VjY2VzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBpZiBjb21tYW5kIGZhaWxlZFxuICAgKi9cbiAgZXJyb3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQvVXBkYXRlZCBlbnRpdHkgSUQgKGlmIGFwcGxpY2FibGUpXG4gICAqL1xuICBlbnRpdHlJZD86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogRXhlY3V0ZUNvbW1hbmQgQWN0aXZpdHkgKEJhY2tlbmQpXG4gKiBcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBvcGVyYXRpb24uXG4gKiBUaGlzIGlzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiB0aGF0IHNpbXVsYXRlcyBjb21tb24gY29tbWFuZHMuXG4gKiBcbiAqIEV4ZWN1dGlvbiBNb2RlOiBiYWNrZW5kXG4gKiBBY3Rpdml0eSBUeXBlOiB3b3JrZmxvdy1hY3Rpdml0eTpleGVjdXRlLWNvbW1hbmRcbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIERvbmU6IENvbW1hbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gKiAtIEZhaWxlZDogQ29tbWFuZCBleGVjdXRpb24gZmFpbGVkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxFeGVjdXRlQ29tbWFuZElucHV0LCB7IG91dHB1dDogRXhlY3V0ZUNvbW1hbmRPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEFYUENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogRXhlY3V0ZUNvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogRXhlY3V0ZUNvbW1hbmRPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZUNvbW1hbmRBY3Rpdml0eV0gRXhlY3V0aW5nIGNvbW1hbmQgJyR7aW5wdXQuY29tbWFuZEtleX0nIHdpdGggaW5wdXQ6YCwgaW5wdXQuaW5wdXQpO1xuXG4gICAgICAvLyBSb3V0ZSB0byBhcHByb3ByaWF0ZSBjb21tYW5kIGhhbmRsZXIgYmFzZWQgb24gY29tbWFuZEtleVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yb3V0ZUNvbW1hbmQoaW5wdXQuY29tbWFuZEtleSwgaW5wdXQuaW5wdXQgfHwge30pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XSBDb21tYW5kICcke2lucHV0LmNvbW1hbmRLZXl9JyBmYWlsZWQ6YCwgZXJyb3IpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQ6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21tYW5kIFJvdXRpbmcgICAtLS0tXG5cbiAgLyoqXG4gICAqIFJvdXRlcyBjb21tYW5kIHRvIGFwcHJvcHJpYXRlIGhhbmRsZXIgYmFzZWQgb24gY29tbWFuZEtleS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVDb21tYW5kKFxuICAgIGNvbW1hbmRLZXk6IHN0cmluZyxcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIHN3aXRjaCAoY29tbWFuZEtleSkge1xuICAgICAgY2FzZSAnVXNlcjpDcmVhdGUnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVVc2VyKGlucHV0KTtcblxuICAgICAgY2FzZSAnRGF0YTpQcm9jZXNzJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvY2Vzc0RhdGEoaW5wdXQpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBNb2NrOiByZXR1cm4gc3VjY2VzcyBmb3IgdW5rbm93biBjb21tYW5kc1xuICAgICAgICBjb25zb2xlLndhcm4oYFtFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XSBVbmtub3duIGNvbW1hbmQga2V5OiAke2NvbW1hbmRLZXl9YCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQ6IHsgc3VjY2VzczogdHJ1ZSB9LFxuICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBEb25lOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21tYW5kIEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHVzZXIgaW4gdGhlIHN5c3RlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlVXNlcihcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIC8vIEV4dHJhY3QgdXNlciBkYXRhIGZyb20gaW5wdXRcbiAgICBjb25zdCBlbWFpbCA9IGlucHV0WydlbWFpbCddIHx8IGlucHV0Wyd1c2VyRW1haWwnXTtcbiAgICBjb25zdCBuYW1lID0gaW5wdXRbJ25hbWUnXSB8fCBpbnB1dFsndXNlck5hbWUnXSB8fCAnTmV3IFVzZXInO1xuICAgIGNvbnN0IHJvbGUgPSBpbnB1dFsncm9sZSddIHx8IGlucHV0Wyd1c2VyUm9sZSddIHx8ICdVc2VyJztcblxuICAgIC8vIENyZWF0ZSBuZXcgdXNlciBvYmplY3RcbiAgICBjb25zdCB1c2VySWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcbiAgICBjb25zdCBuZXdVc2VyID0ge1xuICAgICAgaWQ6IHVzZXJJZCxcbiAgICAgIGVtYWlsLFxuICAgICAgbmFtZSxcbiAgICAgIHJvbGUsXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVDb21tYW5kQWN0aXZpdHldIENyZWF0aW5nIHVzZXI6YCwgbmV3VXNlcik7XG5cbiAgICAvLyBJbiBwcm9kdWN0aW9uLCBzYXZlIHRvIGRhdGFiYXNlIHZpYSBFbnRpdHlTdG9yYWdlU2VydmljZSBvciBBUElcbiAgICAvLyBGb3IgbW9jaywgd2UnbGwganVzdCBzaW11bGF0ZSBzdWNjZXNzXG4gICAgLy8gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5jcmVhdGUoJ1VzZXInLCBuZXdVc2VyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgcmVzdWx0OiBuZXdVc2VyLFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBlbnRpdHlJZDogdXNlcklkLFxuICAgICAgfSxcbiAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgIERvbmU6IHRydWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvY2Vzc2VzIGRhdGEgYWNjb3JkaW5nIHRvIGJ1c2luZXNzIHJ1bGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRGF0YShcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIGNvbnN0IGRhdGEgPSBpbnB1dFsnZGF0YSddO1xuXG4gICAgLy8gTW9jayBwcm9jZXNzaW5nOiBqdXN0IGFkZCB0aW1lc3RhbXAgYW5kIHByb2Nlc3NlZCBmbGFnXG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0YSA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgICBwcm9jZXNzZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVDb21tYW5kQWN0aXZpdHldIFByb2Nlc3NlZCBkYXRhOmAsIHByb2Nlc3NlZERhdGEpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG91dHB1dDoge1xuICAgICAgICByZXN1bHQ6IHByb2Nlc3NlZERhdGEsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgRG9uZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuXG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ShowConfirmPopup Activity (Frontend)\n *\n * Shows a confirmation popup dialog with OK and Cancel buttons.\n * This activity runs on the frontend and requires user interaction.\n *\n * Execution Mode: frontend\n * Activity Type: workflow-activity:show-confirm-popup\n *\n * Outcomes:\n * - ok: User clicked OK button\n * - cancel: User clicked Cancel button or closed the dialog\n */\nexport class ShowConfirmPopupActivity {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n // Translate title and message if they are translation keys\n const title = await this.translationService.translateAsync(input.title);\n const message = await this.translationService.translateAsync(input.message);\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(title, message, input.type || 'warning', input.direction || 'horizontal', input.closable ?? false, input.defaultAction || 'cancel');\n const confirmed = dialogResult.result === true;\n // Determine outcome based on user action\n const outcomes = confirmed\n ? { ok: true }\n : { cancel: true };\n console.log(`[ShowConfirmPopupActivity] User ${confirmed ? 'confirmed' : 'cancelled'} the dialog`);\n return {\n success: true,\n data: {\n output: {},\n outcomes,\n },\n };\n }\n catch (error) {\n console.error(`[ShowConfirmPopupActivity] Failed to show confirm popup:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Failed to show confirmation dialog',\n },\n data: {\n output: {},\n outcomes: {\n cancel: true,\n },\n },\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1jb25maXJtLXBvcHVwLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy9zaG93LWNvbmZpcm0tcG9wdXAuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWdEaEUsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFHRSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0EyRHBFO0lBekRDLFlBQVk7SUFFWixpREFBaUQ7SUFFakQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCwyREFBMkQ7WUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTVFLDJCQUEyQjtZQUMzQixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUNuRCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUN2QixLQUFLLENBQUMsU0FBUyxJQUFJLFlBQVksRUFDL0IsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQ3ZCLEtBQUssQ0FBQyxhQUFhLElBQUksUUFBUSxDQUNoQyxDQUFDO1lBRUYsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7WUFFL0MseUNBQXlDO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLFNBQVM7Z0JBQ3hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7Z0JBQ2QsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1lBRXJCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLGFBQWEsQ0FBQyxDQUFDO1lBRW5HLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUE0QjtvQkFDcEMsUUFBUTtpQkFDVDthQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWpGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLG9DQUFvQztpQkFDNUQ7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUE0QjtvQkFDcEMsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQTdEVSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBBWERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBTaG93Q29uZmlybVBvcHVwIGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dDb25maXJtUG9wdXBJbnB1dCB7XG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogTWVzc2FnZS9jb250ZW50IG9mIHRoZSBjb25maXJtYXRpb24gZGlhbG9nXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpYWxvZyB0eXBlL2NvbG9yIChlLmcuLCAnd2FybmluZycsICdkYW5nZXInLCAnaW5mbycsICdzdWNjZXNzJylcbiAgICovXG4gIHR5cGU/OiBBWFN0eWxlQ29sb3JUeXBlO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gbGF5b3V0IGRpcmVjdGlvbiAoJ2hvcml6b250YWwnIG9yICd2ZXJ0aWNhbCcpXG4gICAqL1xuICBkaXJlY3Rpb24/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGRpYWxvZyBpcyBjbG9zYWJsZVxuICAgKi9cbiAgY2xvc2FibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGlvbiBidXR0b24gKCdjb25maXJtJyBvciAnY2FuY2VsJylcbiAgICovXG4gIGRlZmF1bHRBY3Rpb24/OiAnY29uZmlybScgfCAnY2FuY2VsJztcbn1cblxuLyoqXG4gKiBPdXRwdXQgZm9yIFNob3dDb25maXJtUG9wdXAgYWN0aXZpdHkuXG4gKiBPdXRjb21lIGlzIGRldGVybWluZWQgYnkgdGhlIG91dGNvbWVzIG9iamVjdCAob2sgb3IgY2FuY2VsKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG93Q29uZmlybVBvcHVwT3V0cHV0IHtcbiAgLy8gTm8gb3V0cHV0IGRhdGEgbmVlZGVkIC0gb3V0Y29tZSBpcyBkZXRlcm1pbmVkIGJ5IG91dGNvbWVzXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFNob3dDb25maXJtUG9wdXAgQWN0aXZpdHkgKEZyb250ZW5kKVxuICogXG4gKiBTaG93cyBhIGNvbmZpcm1hdGlvbiBwb3B1cCBkaWFsb2cgd2l0aCBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMuXG4gKiBUaGlzIGFjdGl2aXR5IHJ1bnMgb24gdGhlIGZyb250ZW5kIGFuZCByZXF1aXJlcyB1c2VyIGludGVyYWN0aW9uLlxuICogXG4gKiBFeGVjdXRpb24gTW9kZTogZnJvbnRlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OnNob3ctY29uZmlybS1wb3B1cFxuICogXG4gKiBPdXRjb21lczpcbiAqIC0gb2s6IFVzZXIgY2xpY2tlZCBPSyBidXR0b25cbiAqIC0gY2FuY2VsOiBVc2VyIGNsaWNrZWQgQ2FuY2VsIGJ1dHRvbiBvciBjbG9zZWQgdGhlIGRpYWxvZ1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2hvd0NvbmZpcm1Qb3B1cEFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxTaG93Q29uZmlybVBvcHVwSW5wdXQsIHsgb3V0cHV0OiBTaG93Q29uZmlybVBvcHVwT3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9PiB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEFYUENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogU2hvd0NvbmZpcm1Qb3B1cElucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBTaG93Q29uZmlybVBvcHVwT3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9Pj4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBUcmFuc2xhdGUgdGl0bGUgYW5kIG1lc3NhZ2UgaWYgdGhleSBhcmUgdHJhbnNsYXRpb24ga2V5c1xuICAgICAgY29uc3QgdGl0bGUgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyhpbnB1dC50aXRsZSk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoaW5wdXQubWVzc2FnZSk7XG5cbiAgICAgIC8vIFNob3cgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgICAgY29uc3QgZGlhbG9nUmVzdWx0ID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBpbnB1dC50eXBlIHx8ICd3YXJuaW5nJyxcbiAgICAgICAgaW5wdXQuZGlyZWN0aW9uIHx8ICdob3Jpem9udGFsJyxcbiAgICAgICAgaW5wdXQuY2xvc2FibGUgPz8gZmFsc2UsXG4gICAgICAgIGlucHV0LmRlZmF1bHRBY3Rpb24gfHwgJ2NhbmNlbCcsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25maXJtZWQgPSBkaWFsb2dSZXN1bHQucmVzdWx0ID09PSB0cnVlO1xuXG4gICAgICAvLyBEZXRlcm1pbmUgb3V0Y29tZSBiYXNlZCBvbiB1c2VyIGFjdGlvblxuICAgICAgY29uc3Qgb3V0Y29tZXMgPSBjb25maXJtZWRcbiAgICAgICAgPyB7IG9rOiB0cnVlIH1cbiAgICAgICAgOiB7IGNhbmNlbDogdHJ1ZSB9O1xuXG4gICAgICBjb25zb2xlLmxvZyhgW1Nob3dDb25maXJtUG9wdXBBY3Rpdml0eV0gVXNlciAke2NvbmZpcm1lZCA/ICdjb25maXJtZWQnIDogJ2NhbmNlbGxlZCd9IHRoZSBkaWFsb2dgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG91dHB1dDoge30gYXMgU2hvd0NvbmZpcm1Qb3B1cE91dHB1dCxcbiAgICAgICAgICBvdXRjb21lcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW1Nob3dDb25maXJtUG9wdXBBY3Rpdml0eV0gRmFpbGVkIHRvIHNob3cgY29uZmlybSBwb3B1cDpgLCBlcnJvcik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyb3IubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHNob3cgY29uZmlybWF0aW9uIGRpYWxvZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHt9IGFzIFNob3dDb25maXJtUG9wdXBPdXRwdXQsXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIGNhbmNlbDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19","//#region ---- Imports ----\nimport { Injectable, inject } from '@angular/core';\nimport { AXPWidgetSerializationHelper } from '@acorex/platform/layout/widget-core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPDialogRendererComponent } from '@acorex/platform/layout/builder';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ShowLayoutPopup Activity (Frontend)\n *\n * Shows a popup dialog with a custom layout built using layout builder.\n * The layout can be provided as JSON string or AXPWidgetNode object.\n *\n * Execution Mode: frontend\n * Activity Type: workflow-activity:show-layout-popup\n *\n * Outcomes:\n * Outcomes are dynamically generated based on the actions provided in the input.\n * Each action creates a corresponding outcome with the action name (from command.name or action.name).\n * If no actions are provided, default actions (cancel, submit) are used.\n *\n * Examples:\n * - If action has command.name = 'save', outcome will be { save: true }\n * - If action has name = 'delete', outcome will be { delete: true }\n * - Default outcomes: { cancel: true } or { submit: true }\n */\nexport class ShowLayoutPopupActivity {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.popupService = inject(AXPopupService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n // Parse layout definition\n let layoutNode;\n if (typeof input.layout === 'string') {\n // If it's a JSON string, parse it\n try {\n layoutNode = AXPWidgetSerializationHelper.fromJson(input.layout);\n }\n catch (error) {\n throw new Error(`Invalid layout JSON: ${error.message}`);\n }\n }\n else {\n // If it's already an object, use it directly (clone to avoid mutations)\n layoutNode = cloneDeep(input.layout);\n }\n // Validate layout node\n if (!layoutNode || !layoutNode.type) {\n throw new Error('Invalid layout: missing type property');\n }\n // Build actions from input or use defaults\n const actions = input.actions || {\n suffix: [\n {\n title: '@general:actions.cancel.title',\n icon: 'fa-times',\n color: 'default',\n command: { name: 'cancel' },\n },\n {\n title: '@general:actions.submit.title',\n icon: 'fa-check',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n },\n ],\n };\n // Create dialog configuration\n const dialogConfig = {\n title: input.title || 'Dialog',\n context: input.context || {},\n definition: layoutNode,\n actions: {\n footer: {\n prefix: actions.prefix || [],\n suffix: actions.suffix || [],\n },\n },\n };\n // Extract action names for outcomes (from command.name or action.name)\n const actionNames = new Set();\n if (actions.prefix) {\n actions.prefix.forEach((action) => {\n const actionName = action.command?.name || action.name || 'unknown';\n actionNames.add(actionName);\n });\n }\n if (actions.suffix) {\n actions.suffix.forEach((action) => {\n const actionName = action.command?.name || action.name || 'unknown';\n actionNames.add(actionName);\n });\n }\n // Show dialog using AXPDialogRendererComponent\n const dialogResult = await new Promise((resolve) => {\n this.popupService.open(AXPDialogRendererComponent, {\n title: dialogConfig.title,\n size: input.size || 'md',\n closeButton: input.closeButton !== undefined ? input.closeButton : true,\n closeOnBackdropClick: false,\n draggable: false,\n data: {\n config: dialogConfig,\n callBack: (result) => {\n resolve({\n context: result.context?.() || dialogConfig.context,\n action: result.action?.() || 'cancel',\n });\n },\n },\n });\n });\n // Extract result data and action\n const result = dialogResult?.context || {};\n const action = dialogResult?.action || 'cancel';\n // Build outcomes dynamically based on action names\n // Each action creates a corresponding outcome\n const outcomes = {};\n // Set the outcome for the clicked action to true\n if (action && actionNames.has(action)) {\n outcomes[action] = true;\n }\n else if (action) {\n // If action is not in the list, still add it as outcome\n outcomes[action] = true;\n }\n console.log(`[ShowLayoutPopupActivity] Dialog closed with action: ${action}`, result);\n return {\n success: true,\n data: {\n output: {\n result,\n action,\n },\n outcomes,\n },\n };\n }\n catch (error) {\n console.error(`[ShowLayoutPopupActivity] Failed to show layout popup:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Failed to show layout popup',\n },\n data: {\n output: {\n result: {},\n action: 'cancel',\n },\n outcomes: {\n cancel: true,\n },\n },\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1sYXlvdXQtcG9wdXAuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS9hY3Rpdml0aWVzL3Nob3ctbGF5b3V0LXBvcHVwLmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWlCLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQThDLE1BQU0saUNBQWlDLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUE0RHRDLFlBQVk7QUFFWjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUdFLCtDQUErQztRQUU5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWtKeEQ7SUFoSkMsWUFBWTtJQUVaLGlEQUFpRDtJQUVqRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQTJCO1FBRTNCLElBQUksQ0FBQztZQUNILDBCQUEwQjtZQUMxQixJQUFJLFVBQXlCLENBQUM7WUFFOUIsSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLGtDQUFrQztnQkFDbEMsSUFBSSxDQUFDO29CQUNILFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2dCQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0s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O1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFL0UsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksNkJBQTZCO2lCQUNyRDtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFO3dCQUNOLE1BQU0sRUFBRSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxRQUFRO3FCQUNqQjtvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBbkpVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSwgQVhQV2lkZ2V0U2VyaWFsaXphdGlvbkhlbHBlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlLCBBWFBvcHVwU2l6ZVR5cGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQRGlhbG9nUmVuZGVyZXJDb21wb25lbnQsIERpYWxvZ1JlbmRlcmVyQ29uZmlnLCBEaWFsb2dSZW5kZXJlclJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbi8qKlxuICogSW5wdXQgZm9yIFNob3dMYXlvdXRQb3B1cCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG93TGF5b3V0UG9wdXBJbnB1dCB7XG4gIC8qKlxuICAgKiBMYXlvdXQgZGVmaW5pdGlvbiBhcyBKU09OIHN0cmluZyBvciBBWFBXaWRnZXROb2RlIG9iamVjdFxuICAgKi9cbiAgbGF5b3V0OiBzdHJpbmcgfCBBWFBXaWRnZXROb2RlO1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgdGl0bGVcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgc2l6ZVxuICAgKi9cbiAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGNsb3NlIGJ1dHRvblxuICAgKi9cbiAgY2xvc2VCdXR0b24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGNvbnRleHQgZGF0YSBmb3IgdGhlIGZvcm1cbiAgICovXG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgYWN0aW9ucyAoYnV0dG9ucykgdG8gZGlzcGxheSBpbiBmb290ZXJcbiAgICogRWFjaCBhY3Rpb24gd2lsbCBjcmVhdGUgYSBjb3JyZXNwb25kaW5nIG91dGNvbWVcbiAgICovXG4gIGFjdGlvbnM/OiB7XG4gICAgcHJlZml4PzogQVhQQWN0aW9uTWVudUl0ZW1bXTtcbiAgICBzdWZmaXg/OiBBWFBBY3Rpb25NZW51SXRlbVtdO1xuICB9O1xufVxuXG4vKipcbiAqIE91dHB1dCBmb3IgU2hvd0xheW91dFBvcHVwIGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dMYXlvdXRQb3B1cE91dHB1dCB7XG4gIC8qKlxuICAgKiBSZXN1bHQgZGF0YSBmcm9tIHRoZSBkaWFsb2cgKGZvcm0gdmFsdWVzKVxuICAgKi9cbiAgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBBY3Rpb24gdGhhdCB3YXMgY2xpY2tlZCAoZS5nLiwgJ3N1Ym1pdCcsICdjYW5jZWwnLCBvciBjdXN0b20gYWN0aW9uIG5hbWUpXG4gICAqL1xuICBhY3Rpb246IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogU2hvd0xheW91dFBvcHVwIEFjdGl2aXR5IChGcm9udGVuZClcbiAqIFxuICogU2hvd3MgYSBwb3B1cCBkaWFsb2cgd2l0aCBhIGN1c3RvbSBsYXlvdXQgYnVpbHQgdXNpbmcgbGF5b3V0IGJ1aWxkZXIuXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBwcm92aWRlZCBhcyBKU09OIHN0cmluZyBvciBBWFBXaWRnZXROb2RlIG9iamVjdC5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGZyb250ZW5kXG4gKiBBY3Rpdml0eSBUeXBlOiB3b3JrZmxvdy1hY3Rpdml0eTpzaG93LWxheW91dC1wb3B1cFxuICogXG4gKiBPdXRjb21lczpcbiAqIE91dGNvbWVzIGFyZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgYmFzZWQgb24gdGhlIGFjdGlvbnMgcHJvdmlkZWQgaW4gdGhlIGlucHV0LlxuICogRWFjaCBhY3Rpb24gY3JlYXRlcyBhIGNvcnJlc3BvbmRpbmcgb3V0Y29tZSB3aXRoIHRoZSBhY3Rpb24gbmFtZSAoZnJvbSBjb21tYW5kLm5hbWUgb3IgYWN0aW9uLm5hbWUpLlxuICogSWYgbm8gYWN0aW9ucyBhcmUgcHJvdmlkZWQsIGRlZmF1bHQgYWN0aW9ucyAoY2FuY2VsLCBzdWJtaXQpIGFyZSB1c2VkLlxuICogXG4gKiBFeGFtcGxlczpcbiAqIC0gSWYgYWN0aW9uIGhhcyBjb21tYW5kLm5hbWUgPSAnc2F2ZScsIG91dGNvbWUgd2lsbCBiZSB7IHNhdmU6IHRydWUgfVxuICogLSBJZiBhY3Rpb24gaGFzIG5hbWUgPSAnZGVsZXRlJywgb3V0Y29tZSB3aWxsIGJlIHsgZGVsZXRlOiB0cnVlIH1cbiAqIC0gRGVmYXVsdCBvdXRjb21lczogeyBjYW5jZWw6IHRydWUgfSBvciB7IHN1Ym1pdDogdHJ1ZSB9XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93TGF5b3V0UG9wdXBBY3Rpdml0eVxuICBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8U2hvd0xheW91dFBvcHVwSW5wdXQsIHsgb3V0cHV0OiBTaG93TGF5b3V0UG9wdXBPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBBWFBDb21tYW5kIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgaW5wdXQ6IFNob3dMYXlvdXRQb3B1cElucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBTaG93TGF5b3V0UG9wdXBPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFBhcnNlIGxheW91dCBkZWZpbml0aW9uXG4gICAgICBsZXQgbGF5b3V0Tm9kZTogQVhQV2lkZ2V0Tm9kZTtcblxuICAgICAgaWYgKHR5cGVvZiBpbnB1dC5sYXlvdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYSBKU09OIHN0cmluZywgcGFyc2UgaXRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsYXlvdXROb2RlID0gQVhQV2lkZ2V0U2VyaWFsaXphdGlvbkhlbHBlci5mcm9tSnNvbihpbnB1dC5sYXlvdXQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxheW91dCBKU09OOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIGl0J3MgYWxyZWFkeSBhbiBvYmplY3QsIHVzZSBpdCBkaXJlY3RseSAoY2xvbmUgdG8gYXZvaWQgbXV0YXRpb25zKVxuICAgICAgICBsYXlvdXROb2RlID0gY2xvbmVEZWVwKGlucHV0LmxheW91dCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIGxheW91dCBub2RlXG4gICAgICBpZiAoIWxheW91dE5vZGUgfHwgIWxheW91dE5vZGUudHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbGF5b3V0OiBtaXNzaW5nIHR5cGUgcHJvcGVydHknKTtcbiAgICAgIH1cblxuICAgICAgLy8gQnVpbGQgYWN0aW9ucyBmcm9tIGlucHV0IG9yIHVzZSBkZWZhdWx0c1xuICAgICAgY29uc3QgYWN0aW9ucyA9IGlucHV0LmFjdGlvbnMgfHwge1xuICAgICAgICBzdWZmaXg6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyxcbiAgICAgICAgICAgIGljb246ICdmYS10aW1lcycsXG4gICAgICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgY29tbWFuZDogeyBuYW1lOiAnY2FuY2VsJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLnN1Ym1pdC50aXRsZScsXG4gICAgICAgICAgICBpY29uOiAnZmEtY2hlY2snLFxuICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHsgbmFtZTogJ3N1Ym1pdCcsIG9wdGlvbnM6IHsgdmFsaWRhdGU6IHRydWUgfSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgZGlhbG9nIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogRGlhbG9nUmVuZGVyZXJDb25maWcgPSB7XG4gICAgICAgIHRpdGxlOiBpbnB1dC50aXRsZSB8fCAnRGlhbG9nJyxcbiAgICAgICAgY29udGV4dDogaW5wdXQuY29udGV4dCB8fCB7fSxcbiAgICAgICAgZGVmaW5pdGlvbjogbGF5b3V0Tm9kZSxcbiAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgICAgcHJlZml4OiBhY3Rpb25zLnByZWZpeCB8fCBbXSxcbiAgICAgICAgICAgIHN1ZmZpeDogYWN0aW9ucy5zdWZmaXggfHwgW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIC8vIEV4dHJhY3QgYWN0aW9uIG5hbWVzIGZvciBvdXRjb21lcyAoZnJvbSBjb21tYW5kLm5hbWUgb3IgYWN0aW9uLm5hbWUpXG4gICAgICBjb25zdCBhY3Rpb25OYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgaWYgKGFjdGlvbnMucHJlZml4KSB7XG4gICAgICAgIGFjdGlvbnMucHJlZml4LmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBhY3Rpb24uY29tbWFuZD8ubmFtZSB8fCBhY3Rpb24ubmFtZSB8fCAndW5rbm93bic7XG4gICAgICAgICAgYWN0aW9uTmFtZXMuYWRkKGFjdGlvbk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25zLnN1ZmZpeCkge1xuICAgICAgICBhY3Rpb25zLnN1ZmZpeC5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb25OYW1lID0gYWN0aW9uLmNvbW1hbmQ/Lm5hbWUgfHwgYWN0aW9uLm5hbWUgfHwgJ3Vua25vd24nO1xuICAgICAgICAgIGFjdGlvbk5hbWVzLmFkZChhY3Rpb25OYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNob3cgZGlhbG9nIHVzaW5nIEFYUERpYWxvZ1JlbmRlcmVyQ29tcG9uZW50XG4gICAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCBuZXcgUHJvbWlzZTxEaWFsb2dSZW5kZXJlclJlc3VsdD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWFBEaWFsb2dSZW5kZXJlckNvbXBvbmVudCwge1xuICAgICAgICAgIHRpdGxlOiBkaWFsb2dDb25maWcudGl0bGUsXG4gICAgICAgICAgc2l6ZTogaW5wdXQuc2l6ZSB8fCAnbWQnLFxuICAgICAgICAgIGNsb3NlQnV0dG9uOiBpbnB1dC5jbG9zZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gaW5wdXQuY2xvc2VCdXR0b24gOiB0cnVlLFxuICAgICAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNvbmZpZzogZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgY2FsbEJhY2s6IChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiByZXN1bHQuY29udGV4dD8uKCkgfHwgZGlhbG9nQ29uZmlnLmNvbnRleHQsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiByZXN1bHQuYWN0aW9uPy4oKSB8fCAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEV4dHJhY3QgcmVzdWx0IGRhdGEgYW5kIGFjdGlvblxuICAgICAgY29uc3QgcmVzdWx0ID0gZGlhbG9nUmVzdWx0Py5jb250ZXh0IHx8IHt9O1xuICAgICAgY29uc3QgYWN0aW9uID0gZGlhbG9nUmVzdWx0Py5hY3Rpb24gfHwgJ2NhbmNlbCc7XG5cbiAgICAgIC8vIEJ1aWxkIG91dGNvbWVzIGR5bmFtaWNhbGx5IGJhc2VkIG9uIGFjdGlvbiBuYW1lc1xuICAgICAgLy8gRWFjaCBhY3Rpb24gY3JlYXRlcyBhIGNvcnJlc3BvbmRpbmcgb3V0Y29tZVxuICAgICAgY29uc3Qgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIFxuICAgICAgLy8gU2V0IHRoZSBvdXRjb21lIGZvciB0aGUgY2xpY2tlZCBhY3Rpb24gdG8gdHJ1ZVxuICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb25OYW1lcy5oYXMoYWN0aW9uKSkge1xuICAgICAgICBvdXRjb21lc1thY3Rpb25dID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uKSB7XG4gICAgICAgIC8vIElmIGFjdGlvbiBpcyBub3QgaW4gdGhlIGxpc3QsIHN0aWxsIGFkZCBpdCBhcyBvdXRjb21lXG4gICAgICAgIG91dGNvbWVzW2FjdGlvbl0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgW1Nob3dMYXlvdXRQb3B1cEFjdGl2aXR5XSBEaWFsb2cgY2xvc2VkIHdpdGggYWN0aW9uOiAke2FjdGlvbn1gLCByZXN1bHQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdXRjb21lcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW1Nob3dMYXlvdXRQb3B1cEFjdGl2aXR5XSBGYWlsZWQgdG8gc2hvdyBsYXlvdXQgcG9wdXA6YCwgZXJyb3IpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzaG93IGxheW91dCBwb3B1cCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIHJlc3VsdDoge30sXG4gICAgICAgICAgICBhY3Rpb246ICdjYW5jZWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIGNhbmNlbDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19","import { AXMCalendarManagementModule } from '@acorex/modules/calendar-management';\nimport { AXP_WORKFLOW_DEFINITION_LOADER, AXP_ACTIVITY_PROVIDER, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_PROVIDER } from '@acorex/platform/workflow';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex/platform/core';\nimport { WorkflowManagementManifest } from './manifest';\nimport { NgModule } from '@angular/core';\nimport { AXMSignPluginModule } from './features/sign/sign.module';\nimport { AXMWorkflowManagementWorkflowDefinitionEntityModule } from './entities/workflow-definition';\nimport { AXMWorkflowManagementWorkflowInstanceEntityModule } from './entities/workflow-instance';\nimport { AXMWorkflowDefinitionProvider } from './workflow-definitions/workflow-definition.provider';\nimport { AXMWorkflowActivitiesDefinitionProvider } from './features/engine/activities/workflow-activities-definition.provider';\nimport { AXCCategoryProvider } from './features/engine/category.provider';\nimport { AXMWorkflowCategoryProvider } from './features/engine/workflows/workflow-category.provider';\nimport { AXMWorkflowDefinitionMetadataProvider } from './features/engine/workflows/workflow-definition-metadata.provider';\nimport { CheckPermissionActivity, ExecuteQueryActivity, ExecuteCommandActivity, ShowConfirmPopupActivity, ShowLayoutPopupActivity, } from './features/engine/activities';\nimport { AXPDomainModule, provideEntity } from '@acorex/platform/domain';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, imports: [AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, providers: [\n provideCommandSetups([\n {\n key: 'WorkflowManagement.WorkflowDefinition:Execute',\n command: () => import('./entities/workflow-definition/commands').then((c) => c.ExecuteWorkflowCommand),\n },\n ]),\n provideEntity([\n RootConfig.entities.activityCategory.fullName,\n RootConfig.entities.activityDefinition.fullName,\n RootConfig.entities.workflowCategory?.fullName || `${RootConfig.module.name}.WorkflowCategory`,\n ]),\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: WorkflowManagementManifest,\n multi: true,\n },\n {\n provide: AXP_WORKFLOW_DEFINITION_LOADER,\n useClass: AXMWorkflowDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_CATEGORY_PROVIDER,\n useClass: AXCCategoryProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_PROVIDER,\n useClass: AXMWorkflowActivitiesDefinitionProvider,\n multi: true,\n },\n // Workflow Category Provider\n {\n provide: AXP_WORKFLOW_CATEGORY_PROVIDER,\n useClass: AXMWorkflowCategoryProvider,\n multi: true,\n },\n // Workflow Definition Metadata Provider\n {\n provide: AXP_WORKFLOW_PROVIDER,\n useClass: AXMWorkflowDefinitionMetadataProvider,\n multi: true,\n },\n // Provide activity classes for dependency injection\n CheckPermissionActivity,\n ExecuteQueryActivity,\n ExecuteCommandActivity,\n ShowConfirmPopupActivity,\n ShowLayoutPopupActivity,\n ], imports: [AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule,\n ],\n providers: [\n provideCommandSetups([\n {\n key: 'WorkflowManagement.WorkflowDefinition:Execute',\n command: () => import('./entities/workflow-definition/commands').then((c) => c.ExecuteWorkflowCommand),\n },\n ]),\n provideEntity([\n RootConfig.entities.activityCategory.fullName,\n RootConfig.entities.activityDefinition.fullName,\n RootConfig.entities.workflowCategory?.fullName || `${RootConfig.module.name}.WorkflowCategory`,\n ]),\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: WorkflowManagementManifest,\n multi: true,\n },\n {\n provide: AXP_WORKFLOW_DEFINITION_LOADER,\n useClass: AXMWorkflowDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_CATEGORY_PROVIDER,\n useClass: AXCCategoryProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_PROVIDER,\n useClass: AXMWorkflowActivitiesDefinitionProvider,\n multi: true,\n },\n // Workflow Category Provider\n {\n provide: AXP_WORKFLOW_CATEGORY_PROVIDER,\n useClass: AXMWorkflowCategoryProvider,\n multi: true,\n },\n // Workflow Definition Metadata Provider\n {\n provide: AXP_WORKFLOW_PROVIDER,\n useClass: AXMWorkflowDefinitionMetadataProvider,\n multi: true,\n },\n // Provide activity classes for dependency injection\n CheckPermissionActivity,\n ExecuteQueryActivity,\n ExecuteCommandActivity,\n ShowConfirmPopupActivity,\n ShowLayoutPopupActivity,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtREFBbUQsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQzFILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9C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LElBQUksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksbUJBQW1CO3lCQUMvRixDQUFDO3dCQUNGLDJCQUEyQjt3QkFDM0I7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsUUFBUSxFQUFFLDBCQUEwQjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLDZCQUE2Qjs0QkFDdkMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLG1CQUFtQjs0QkFDN0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLHVDQUF1Qzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsNkJBQTZCO3dCQUM3Qjs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxRQUFRLEVBQUUsMkJBQTJCOzRCQUNyQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCx3Q0FBd0M7d0JBQ3hDOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxxQ0FBcUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELG9EQUFvRDt3QkFDcEQsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNQ2FsZW5kYXJNYW5hZ2VtZW50TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2NhbGVuZGFyLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhQX1dPUktGTE9XX0RFRklOSVRJT05fTE9BREVSLCBBWFBfQUNUSVZJVFlfUFJPVklERVIsIEFYUF9BQ1RJVklUWV9DQVRFR09SWV9QUk9WSURFUiwgQVhQX1dPUktGTE9XX0NBVEVHT1JZX1BST1ZJREVSLCBBWFBfV09SS0ZMT1dfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IHByb3ZpZGVDb21tYW5kU2V0dXBzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUF9NT0RVTEVfTUFOSUZFU1RfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgV29ya2Zsb3dNYW5hZ2VtZW50TWFuaWZlc3QgfSBmcm9tICcuL21hbmlmZXN0JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1TaWduUGx1Z2luTW9kdWxlIH0gZnJvbSAnLi9mZWF0dXJlcy9zaWduL3NpZ24ubW9kdWxlJztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eU1vZHVsZSB9IGZyb20gJy4vZW50aXRpZXMvd29ya2Zsb3ctZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5TW9kdWxlIH0gZnJvbSAnLi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZSc7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd0RlZmluaXRpb25Qcm92aWRlciB9IGZyb20gJy4vd29ya2Zsb3ctZGVmaW5pdGlvbnMvd29ya2Zsb3ctZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd0FjdGl2aXRpZXNEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL2ZlYXR1cmVzL2VuZ2luZS9hY3Rpdml0aWVzL3dvcmtmbG93LWFjdGl2aXRpZXMtZGVmaW5pdGlvbi5wcm92aWRlcic7XG5pbXBvcnQgeyBBWENDYXRlZ29yeVByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9lbmdpbmUvY2F0ZWdvcnkucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhNV29ya2Zsb3dDYXRlZ29yeVByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9lbmdpbmUvd29ya2Zsb3dzL3dvcmtmbG93LWNhdGVnb3J5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTVdvcmtmbG93RGVmaW5pdGlvbk1ldGFkYXRhUHJvdmlkZXIgfSBmcm9tICcuL2ZlYXR1cmVzL2VuZ2luZS93b3JrZmxvd3Mvd29ya2Zsb3ctZGVmaW5pdGlvbi1tZXRhZGF0YS5wcm92aWRlcic7XG5pbXBvcnQge1xuICBDaGVja1Blcm1pc3Npb25BY3Rpdml0eSxcbiAgRXhlY3V0ZVF1ZXJ5QWN0aXZpdHksXG4gIEV4ZWN1dGVDb21tYW5kQWN0aXZpdHksXG4gIFNob3dDb25maXJtUG9wdXBBY3Rpdml0eSxcbiAgU2hvd0xheW91dFBvcHVwQWN0aXZpdHksXG59IGZyb20gJy4vZmVhdHVyZXMvZW5naW5lL2FjdGl2aXRpZXMnO1xuaW1wb3J0IHsgQVhQRG9tYWluTW9kdWxlLCBwcm92aWRlRW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9kb21haW4nO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4vY29uc3QnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQVhNQ2FsZW5kYXJNYW5hZ2VtZW50TW9kdWxlLFxuICAgIEFYTVNpZ25QbHVnaW5Nb2R1bGUsXG4gICAgQVhQRG9tYWluTW9kdWxlLFxuICAgIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eU1vZHVsZSxcbiAgICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5TW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlQ29tbWFuZFNldHVwcyhbXG4gICAgICB7XG4gICAgICAgIGtleTogJ1dvcmtmbG93TWFuYWdlbWVudC5Xb3JrZmxvd0RlZmluaXRpb246RXhlY3V0ZScsXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL2NvbW1hbmRzJykudGhlbigoYykgPT4gYy5FeGVjdXRlV29ya2Zsb3dDb21tYW5kKSxcbiAgICAgIH0sXG4gICAgXSksXG4gICAgcHJvdmlkZUVudGl0eShbXG4gICAgICBSb290Q29uZmlnLmVudGl0aWVzLmFjdGl2aXR5Q2F0ZWdvcnkuZnVsbE5hbWUsXG4gICAgICBSb290Q29uZmlnLmVudGl0aWVzLmFjdGl2aXR5RGVmaW5pdGlvbi5mdWxsTmFtZSxcbiAgICAgIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dDYXRlZ29yeT8uZnVsbE5hbWUgfHwgYCR7Um9vdENvbmZpZy5tb2R1bGUubmFtZX0uV29ya2Zsb3dDYXRlZ29yeWAsXG4gICAgXSksXG4gICAgLy8gTW9kdWxlIE1hbmlmZXN0IFByb3ZpZGVyXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX01PRFVMRV9NQU5JRkVTVF9QUk9WSURFUixcbiAgICAgIHVzZVZhbHVlOiBXb3JrZmxvd01hbmFnZW1lbnRNYW5pZmVzdCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1dPUktGTE9XX0RFRklOSVRJT05fTE9BREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93RGVmaW5pdGlvblByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfQUNUSVZJVFlfQ0FURUdPUllfUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhDQ2F0ZWdvcnlQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0FDVElWSVRZX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93QWN0aXZpdGllc0RlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gV29ya2Zsb3cgQ2F0ZWdvcnkgUHJvdmlkZXJcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfV09SS0ZMT1dfQ0FURUdPUllfUFJPVklERVIsXG4gICAgICB1c2VDbGFzczogQVhNV29ya2Zsb3dDYXRlZ29yeVByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICAvLyBXb3JrZmxvdyBEZWZpbml0aW9uIE1ldGFkYXRhIFByb3ZpZGVyXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1dPUktGTE9XX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93RGVmaW5pdGlvbk1ldGFkYXRhUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vIFByb3ZpZGUgYWN0aXZpdHkgY2xhc3NlcyBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb25cbiAgICBDaGVja1Blcm1pc3Npb25BY3Rpdml0eSxcbiAgICBFeGVjdXRlUXVlcnlBY3Rpdml0eSxcbiAgICBFeGVjdXRlQ29tbWFuZEFjdGl2aXR5LFxuICAgIFNob3dDb25maXJtUG9wdXBBY3Rpdml0eSxcbiAgICBTaG93TGF5b3V0UG9wdXBBY3Rpdml0eSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50TW9kdWxlIHsgfVxuXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtd29ya2Zsb3ctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9hY29yZXgtbW9kdWxlcy13b3JrZmxvdy1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["factory"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-workflow-management.mjs","sources":["../tmp-esm2022/workflow-management/lib/const.js","../tmp-esm2022/workflow-management/lib/entity.provider.js","../tmp-esm2022/workflow-management/lib/menu.keys.js","../tmp-esm2022/workflow-management/lib/menu.provider.js","../tmp-esm2022/workflow-management/lib/manifest.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.plugin.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.workflow.js","../tmp-esm2022/workflow-management/lib/features/sign/widgets/signature-list/signature-list-widget.config.js","../tmp-esm2022/workflow-management/lib/features/sign/sign.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.service.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/commands/execute-workflow.command.js","../tmp-esm2022/workflow-management/lib/entities/workflow-definition/workflow-definition.entity.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.service.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.module.js","../tmp-esm2022/workflow-management/lib/entities/workflow-instance/workflow-instance.entity.js","../tmp-esm2022/workflow-management/lib/workflow-definitions/workflow-definition.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/workflow-activities-definition.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/category.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/workflows/workflow-category.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/workflows/workflow-definition-metadata.provider.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/check-permission.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/execute-query.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/execute-command.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/show-confirm-popup.activity.js","../tmp-esm2022/workflow-management/lib/features/engine/activities/show-layout-popup.activity.js","../tmp-esm2022/workflow-management/lib/workflow-management.module.js","../tmp-esm2022/workflow-management/lib/features/engine/studio/components/activity-categories-tree/activity-categories-tree.component.js","../tmp-esm2022/workflow-management/lib/features/engine/studio/workflow-studio.component.js","../tmp-esm2022/workflow-management/acorex-modules-workflow-management.js"],"sourcesContent":["const config = {\n i18n: 'workflow-management',\n module: 'WorkflowManagement',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'workflow-management',\n name: config.module,\n title: '@workflow-management:module.title',\n icon: 'fa-light fa-diagram-project',\n },\n entities: {\n workflowDefinition: {\n name: 'WorkflowDefinition',\n fullName: `${config.module}.WorkflowDefinition`,\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.title',\n titlePlural: '@workflow-management:workflow-definitions.entities.workflow-definition.plural',\n icon: 'fa-light fa-diagram-project',\n },\n workflowInstance: {\n name: 'WorkflowInstance',\n fullName: `${config.module}.WorkflowInstance`,\n title: '@workflow-management:workflow-instances.entities.workflow-instance.title',\n titlePlural: '@workflow-management:workflow-instances.entities.workflow-instance.plural',\n icon: 'fa-light fa-play-circle',\n },\n activityCategory: {\n name: 'ActivityCategory',\n fullName: `${config.module}.ActivityCategory`,\n title: '@workflow-management:activities.entities.activity-category.title',\n titlePlural: '@workflow-management:activities.entities.activity-category.plural',\n icon: 'fa-light fa-folder',\n },\n activityDefinition: {\n name: 'ActivityDefinition',\n fullName: `${config.module}.ActivityDefinition`,\n title: '@workflow-management:activities.entities.activity-definition.title',\n titlePlural: '@workflow-management:activities.entities.activity-definition.plural',\n icon: 'fa-light fa-puzzle-piece',\n },\n // workflowCategory: {\n // name: 'WorkflowCategory',\n // fullName: `${config.module}.WorkflowCategory`,\n // title: '@workflow-management:workflows.entities.workflow-category.title',\n // titlePlural: '@workflow-management:workflows.entities.workflow-category.plural',\n // icon: 'fa-light fa-folder',\n // },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2NvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sTUFBTSxHQUFHO0lBQ2IsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixNQUFNLEVBQUUsb0JBQW9CO0NBQzdCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsTUFBTTtJQUNOLE1BQU0sRUFBRTtRQUNOLEtBQUssRUFBRSxxQkFBcUI7UUFDNUIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQ25CLEtBQUssRUFBRSxtQ0FBbUM7UUFDMUMsSUFBSSxFQUFFLDZCQUE2QjtLQUNwQztJQUNELFFBQVEsRUFBRTtRQUNSLGtCQUFrQixFQUFFO1lBQ2xCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCO1lBQy9DLEtBQUssRUFBRSw4RUFBOEU7WUFDckYsV0FBVyxFQUFFLCtFQUErRTtZQUM1RixJQUFJLEVBQUUsNkJBQTZCO1NBQ3BDO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQjtZQUN4QixRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxtQkFBbUI7WUFDN0MsS0FBSyxFQUFFLDBFQUEwRTtZQUNqRixXQUFXLEVBQUUsMkVBQTJFO1lBQ3hGLElBQUksRUFBRSx5QkFBeUI7U0FDaEM7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQjtZQUM3QyxLQUFLLEVBQUUsa0VBQWtFO1lBQ3pFLFdBQVcsRUFBRSxtRUFBbUU7WUFDaEYsSUFBSSxFQUFFLG9CQUFvQjtTQUMzQjtRQUNELGtCQUFrQixFQUFFO1lBQ2xCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0scUJBQXFCO1lBQy9DLEtBQUssRUFBRSxvRUFBb0U7WUFDM0UsV0FBVyxFQUFFLHFFQUFxRTtZQUNsRixJQUFJLEVBQUUsMEJBQTBCO1NBQ2pDO1FBQ0Qsc0JBQXNCO1FBQ3RCLDhCQUE4QjtRQUM5QixtREFBbUQ7UUFDbkQsOEVBQThFO1FBQzlFLHFGQUFxRjtRQUNyRixnQ0FBZ0M7UUFDaEMsS0FBSztLQUNOO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbmZpZyA9IHtcbiAgaTE4bjogJ3dvcmtmbG93LW1hbmFnZW1lbnQnLFxuICBtb2R1bGU6ICdXb3JrZmxvd01hbmFnZW1lbnQnLFxufTtcblxuZXhwb3J0IGNvbnN0IFJvb3RDb25maWcgPSB7XG4gIGNvbmZpZyxcbiAgbW9kdWxlOiB7XG4gICAgcm91dGU6ICd3b3JrZmxvdy1tYW5hZ2VtZW50JyxcbiAgICBuYW1lOiBjb25maWcubW9kdWxlLFxuICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6bW9kdWxlLnRpdGxlJyxcbiAgICBpY29uOiAnZmEtbGlnaHQgZmEtZGlhZ3JhbS1wcm9qZWN0JyxcbiAgfSxcbiAgZW50aXRpZXM6IHtcbiAgICB3b3JrZmxvd0RlZmluaXRpb246IHtcbiAgICAgIG5hbWU6ICdXb3JrZmxvd0RlZmluaXRpb24nLFxuICAgICAgZnVsbE5hbWU6IGAke2NvbmZpZy5tb2R1bGV9LldvcmtmbG93RGVmaW5pdGlvbmAsXG4gICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24udGl0bGUnLFxuICAgICAgdGl0bGVQbHVyYWw6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLnBsdXJhbCcsXG4gICAgICBpY29uOiAnZmEtbGlnaHQgZmEtZGlhZ3JhbS1wcm9qZWN0JyxcbiAgICB9LFxuICAgIHdvcmtmbG93SW5zdGFuY2U6IHtcbiAgICAgIG5hbWU6ICdXb3JrZmxvd0luc3RhbmNlJyxcbiAgICAgIGZ1bGxOYW1lOiBgJHtjb25maWcubW9kdWxlfS5Xb3JrZmxvd0luc3RhbmNlYCxcbiAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLnRpdGxlJyxcbiAgICAgIHRpdGxlUGx1cmFsOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLnBsdXJhbCcsXG4gICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGxheS1jaXJjbGUnLFxuICAgIH0sXG4gICAgYWN0aXZpdHlDYXRlZ29yeToge1xuICAgICAgbmFtZTogJ0FjdGl2aXR5Q2F0ZWdvcnknLFxuICAgICAgZnVsbE5hbWU6IGAke2NvbmZpZy5tb2R1bGV9LkFjdGl2aXR5Q2F0ZWdvcnlgLFxuICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDphY3Rpdml0aWVzLmVudGl0aWVzLmFjdGl2aXR5LWNhdGVnb3J5LnRpdGxlJyxcbiAgICAgIHRpdGxlUGx1cmFsOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6YWN0aXZpdGllcy5lbnRpdGllcy5hY3Rpdml0eS1jYXRlZ29yeS5wbHVyYWwnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlcicsXG4gICAgfSxcbiAgICBhY3Rpdml0eURlZmluaXRpb246IHtcbiAgICAgIG5hbWU6ICdBY3Rpdml0eURlZmluaXRpb24nLFxuICAgICAgZnVsbE5hbWU6IGAke2NvbmZpZy5tb2R1bGV9LkFjdGl2aXR5RGVmaW5pdGlvbmAsXG4gICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmFjdGl2aXRpZXMuZW50aXRpZXMuYWN0aXZpdHktZGVmaW5pdGlvbi50aXRsZScsXG4gICAgICB0aXRsZVBsdXJhbDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OmFjdGl2aXRpZXMuZW50aXRpZXMuYWN0aXZpdHktZGVmaW5pdGlvbi5wbHVyYWwnLFxuICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXB1enpsZS1waWVjZScsXG4gICAgfSxcbiAgICAvLyB3b3JrZmxvd0NhdGVnb3J5OiB7XG4gICAgLy8gICBuYW1lOiAnV29ya2Zsb3dDYXRlZ29yeScsXG4gICAgLy8gICBmdWxsTmFtZTogYCR7Y29uZmlnLm1vZHVsZX0uV29ya2Zsb3dDYXRlZ29yeWAsXG4gICAgLy8gICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93cy5lbnRpdGllcy53b3JrZmxvdy1jYXRlZ29yeS50aXRsZScsXG4gICAgLy8gICB0aXRsZVBsdXJhbDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93cy5lbnRpdGllcy53b3JrZmxvdy1jYXRlZ29yeS5wbHVyYWwnLFxuICAgIC8vICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlcicsXG4gICAgLy8gfSxcbiAgfSxcbn07XG4iXX0=","import { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementModuleEntityProvider {\n constructor() {\n this.injector = inject(Injector);\n }\n preload() {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName, entityName) {\n if (moduleName === RootConfig.module.name) {\n switch (entityName) {\n case RootConfig.entities.workflowDefinition.name:\n return (await import('./entities/workflow-definition/workflow-definition.entity')).factory(this.injector);\n case RootConfig.entities.workflowInstance.name:\n return (await import('./entities/workflow-instance/workflow-instance.entity')).factory(this.injector);\n case RootConfig.entities.activityDefinition.name:\n return {\n name: RootConfig.entities.activityDefinition.name,\n module: RootConfig.module.name,\n title: RootConfig.entities.activityDefinition.title,\n formats: {\n individual: RootConfig.entities.activityDefinition.title,\n plural: RootConfig.entities.activityDefinition.titlePlural,\n },\n properties: [],\n };\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModuleEntityProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdHkucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBR3JDLE1BQU0sT0FBTyx5Q0FBeUM7SUFEdEQ7UUFVVSxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBd0JyQztJQWhDUSxPQUFPO1FBQ1osTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1NBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUlELEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM5QyxJQUFJLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLFFBQVEsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO29CQUM5QyxPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVHLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO29CQUM1QyxPQUFPLENBQUMsTUFBTSxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3hHLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO29CQUM5QyxPQUFPO3dCQUNMLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUk7d0JBQ2pELE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7d0JBQzlCLEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUs7d0JBQ25ELE9BQU8sRUFBRTs0QkFDUCxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLOzRCQUN4RCxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXO3lCQUMzRDt3QkFDRCxVQUFVLEVBQUUsRUFBRTtxQkFDRixDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOytHQWhDVSx5Q0FBeUM7bUhBQXpDLHlDQUF5Qzs7NEZBQXpDLHlDQUF5QztrQkFEckQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEVudGl0eSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUEVudGl0eURlZmluaXRpb25Mb2FkZXIsIEFYUEVudGl0eVByZWxvYWRFbnRpdHkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4vY29uc3QnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50TW9kdWxlRW50aXR5UHJvdmlkZXIgaW1wbGVtZW50cyBBWFBFbnRpdHlEZWZpbml0aW9uTG9hZGVyIHtcbiAgcHVibGljIHByZWxvYWQoKTogQVhQRW50aXR5UHJlbG9hZEVudGl0eVtdIHtcbiAgICBjb25zdCBtb2R1bGUgPSBSb290Q29uZmlnLm1vZHVsZS5uYW1lO1xuICAgIHJldHVybiBBcnJheS5mcm9tKE9iamVjdC52YWx1ZXMoUm9vdENvbmZpZy5lbnRpdGllcykpLm1hcCgoZW50aXR5OiBhbnkpID0+ICh7XG4gICAgICBtb2R1bGU6IG1vZHVsZSxcbiAgICAgIGVudGl0eTogZW50aXR5Lm5hbWUsXG4gICAgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgYXN5bmMgZ2V0KG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPiB7XG4gICAgaWYgKG1vZHVsZU5hbWUgPT09IFJvb3RDb25maWcubW9kdWxlLm5hbWUpIHtcbiAgICAgIHN3aXRjaCAoZW50aXR5TmFtZSkge1xuICAgICAgICBjYXNlIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dEZWZpbml0aW9uLm5hbWU6XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBpbXBvcnQoJy4vZW50aXRpZXMvd29ya2Zsb3ctZGVmaW5pdGlvbi93b3JrZmxvdy1kZWZpbml0aW9uLmVudGl0eScpKS5mYWN0b3J5KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjYXNlIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dJbnN0YW5jZS5uYW1lOlxuICAgICAgICAgIHJldHVybiAoYXdhaXQgaW1wb3J0KCcuL2VudGl0aWVzL3dvcmtmbG93LWluc3RhbmNlL3dvcmtmbG93LWluc3RhbmNlLmVudGl0eScpKS5mYWN0b3J5KHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBjYXNlIFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlEZWZpbml0aW9uLm5hbWU6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlEZWZpbml0aW9uLm5hbWUsXG4gICAgICAgICAgICBtb2R1bGU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogUm9vdENvbmZpZy5lbnRpdGllcy5hY3Rpdml0eURlZmluaXRpb24udGl0bGUsXG4gICAgICAgICAgICBmb3JtYXRzOiB7XG4gICAgICAgICAgICAgIGluZGl2aWR1YWw6IFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlEZWZpbml0aW9uLnRpdGxlLFxuICAgICAgICAgICAgICBwbHVyYWw6IFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlEZWZpbml0aW9uLnRpdGxlUGx1cmFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb3BlcnRpZXM6IFtdLFxuICAgICAgICAgIH0gYXMgQVhQRW50aXR5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG4iXX0=","export const AXPWorkflowManagementMenuKeys = {\n Root: 'workflow-management:menu',\n WorkflowDefinitions: 'workflow-management:workflow-definitions',\n WorkflowInstances: 'workflow-management:workflow-instances',\n WorkflowStudio: 'workflow-management:workflow-studio',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9tZW51LmtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUc7SUFDM0MsSUFBSSxFQUFFLDBCQUEwQjtJQUNoQyxtQkFBbUIsRUFBRSwwQ0FBMEM7SUFDL0QsaUJBQWlCLEVBQUUsd0NBQXdDO0lBQzNELGNBQWMsRUFBRSxxQ0FBcUM7Q0FDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBWFBXb3JrZmxvd01hbmFnZW1lbnRNZW51S2V5cyA9IHtcbiAgUm9vdDogJ3dvcmtmbG93LW1hbmFnZW1lbnQ6bWVudScsXG4gIFdvcmtmbG93RGVmaW5pdGlvbnM6ICd3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zJyxcbiAgV29ya2Zsb3dJbnN0YW5jZXM6ICd3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcycsXG4gIFdvcmtmbG93U3R1ZGlvOiAnd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8nLFxufSBhcyBjb25zdDtcblxuIl19","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXPWorkflowManagementMenuKeys } from './menu.keys';\nexport class AXMMenuProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.sessionService = inject(AXPSessionService);\n }\n async provide(context) {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n const module = RootConfig.module;\n context.addItems([\n {\n name: AXPWorkflowManagementMenuKeys.Root,\n priority: 9500,\n text: '@workflow-management:module.menus.root.title',\n icon: module.icon,\n policy: {\n features: [module.name],\n },\n children: [\n {\n name: AXPWorkflowManagementMenuKeys.WorkflowDefinitions,\n text: '@workflow-management:workflow-definitions.menus.workflow-definitions.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.workflowDefinition.name),\n priority: 10,\n icon: RootConfig.entities.workflowDefinition.icon,\n },\n {\n name: AXPWorkflowManagementMenuKeys.WorkflowInstances,\n text: '@workflow-management:workflow-instances.menus.workflow-instances.title',\n path: this.entityService.createPath(module.name, RootConfig.entities.workflowInstance.name),\n priority: 20,\n icon: RootConfig.entities.workflowInstance.icon,\n },\n {\n name: AXPWorkflowManagementMenuKeys.WorkflowStudio,\n text: '@workflow-management:workflow-studio.menus.workflow-studio.title',\n path: `${this.sessionService.application?.name}/workflow-management/studio`,\n priority: 30,\n icon: 'fa-light fa-wand-magic-sparkles',\n },\n ],\n },\n ]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvbWVudS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNyQyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUQsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDVSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUE2Q3JELENBQUM7SUEzQ0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUErQjtRQUMzQyxNQUFNLFlBQVksR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFakMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNmO2dCQUNFLElBQUksRUFBRSw2QkFBNkIsQ0FBQyxJQUFJO2dCQUN4QyxRQUFRLEVBQUUsSUFBSTtnQkFDZCxJQUFJLEVBQUUsOENBQThDO2dCQUNwRCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7Z0JBQ2pCLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUN4QjtnQkFDRCxRQUFRLEVBQUU7b0JBQ1I7d0JBQ0UsSUFBSSxFQUFFLDZCQUE2QixDQUFDLG1CQUFtQjt3QkFDdkQsSUFBSSxFQUFFLDRFQUE0RTt3QkFDbEYsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7d0JBQzdGLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUk7cUJBQ2xEO29CQUNEO3dCQUNFLElBQUksRUFBRSw2QkFBNkIsQ0FBQyxpQkFBaUI7d0JBQ3JELElBQUksRUFBRSx3RUFBd0U7d0JBQzlFLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO3dCQUMzRixRQUFRLEVBQUUsRUFBRTt3QkFDWixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJO3FCQUNoRDtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsNkJBQTZCLENBQUMsY0FBYzt3QkFDbEQsSUFBSSxFQUFFLGtFQUFrRTt3QkFDeEUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSw2QkFBNkI7d0JBQzNFLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxpQ0FBaUM7cUJBQ3hDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vYXV0aCc7XG5pbXBvcnQgeyBBWFBNZW51UHJvdmlkZXIsIEFYUE1lbnVQcm92aWRlckNvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcbmltcG9ydCB7IEFYUFdvcmtmbG93TWFuYWdlbWVudE1lbnVLZXlzIH0gZnJvbSAnLi9tZW51LmtleXMnO1xuXG5leHBvcnQgY2xhc3MgQVhNTWVudVByb3ZpZGVyIGltcGxlbWVudHMgQVhQTWVudVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVNlcnZpY2UpO1xuICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlID0gaW5qZWN0KEFYUFNlc3Npb25TZXJ2aWNlKTtcblxuICBhc3luYyBwcm92aWRlKGNvbnRleHQ6IEFYUE1lbnVQcm92aWRlckNvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBpc0F1dGhvcml6ZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlc3Npb25TZXJ2aWNlLmlzQXV0aG9yaXplZCQpO1xuICAgIGlmICghaXNBdXRob3JpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlID0gUm9vdENvbmZpZy5tb2R1bGU7XG5cbiAgICBjb250ZXh0LmFkZEl0ZW1zKFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogQVhQV29ya2Zsb3dNYW5hZ2VtZW50TWVudUtleXMuUm9vdCxcbiAgICAgICAgcHJpb3JpdHk6IDk1MDAsXG4gICAgICAgIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDptb2R1bGUubWVudXMucm9vdC50aXRsZScsXG4gICAgICAgIGljb246IG1vZHVsZS5pY29uLFxuICAgICAgICBwb2xpY3k6IHtcbiAgICAgICAgICBmZWF0dXJlczogW21vZHVsZS5uYW1lXSxcbiAgICAgICAgfSxcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBBWFBXb3JrZmxvd01hbmFnZW1lbnRNZW51S2V5cy5Xb3JrZmxvd0RlZmluaXRpb25zLFxuICAgICAgICAgICAgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLm1lbnVzLndvcmtmbG93LWRlZmluaXRpb25zLnRpdGxlJyxcbiAgICAgICAgICAgIHBhdGg6IHRoaXMuZW50aXR5U2VydmljZS5jcmVhdGVQYXRoKG1vZHVsZS5uYW1lLCBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi5uYW1lKSxcbiAgICAgICAgICAgIHByaW9yaXR5OiAxMCxcbiAgICAgICAgICAgIGljb246IFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dEZWZpbml0aW9uLmljb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBBWFBXb3JrZmxvd01hbmFnZW1lbnRNZW51S2V5cy5Xb3JrZmxvd0luc3RhbmNlcyxcbiAgICAgICAgICAgIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMubWVudXMud29ya2Zsb3ctaW5zdGFuY2VzLnRpdGxlJyxcbiAgICAgICAgICAgIHBhdGg6IHRoaXMuZW50aXR5U2VydmljZS5jcmVhdGVQYXRoKG1vZHVsZS5uYW1lLCBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UubmFtZSksXG4gICAgICAgICAgICBwcmlvcml0eTogMjAsXG4gICAgICAgICAgICBpY29uOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UuaWNvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IEFYUFdvcmtmbG93TWFuYWdlbWVudE1lbnVLZXlzLldvcmtmbG93U3R1ZGlvLFxuICAgICAgICAgICAgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5tZW51cy53b3JrZmxvdy1zdHVkaW8udGl0bGUnLFxuICAgICAgICAgICAgcGF0aDogYCR7dGhpcy5zZXNzaW9uU2VydmljZS5hcHBsaWNhdGlvbj8ubmFtZX0vd29ya2Zsb3ctbWFuYWdlbWVudC9zdHVkaW9gLFxuICAgICAgICAgICAgcHJpb3JpdHk6IDMwLFxuICAgICAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXdhbmQtbWFnaWMtc3BhcmtsZXMnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=","//#region ---- Imports ----\nimport { RootConfig } from './const';\n//#endregion\n//#region ---- Manifest Definition ----\n/**\n * Workflow Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const WorkflowManagementManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n // Module dependencies (optional)\n};\n//#endregion\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuaWZlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL21hbmlmZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLFlBQVk7QUFFWiwyQ0FBMkM7QUFFM0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQXNCO0lBQzNELElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7SUFDNUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSztJQUM5QixJQUFJLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lBQzVCLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7SUFFNUIsaUNBQWlDO0NBQ2xDLENBQUM7QUFFRixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBBWFBNb2R1bGVNYW5pZmVzdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi9jb25zdCc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIE1hbmlmZXN0IERlZmluaXRpb24gICAtLS0tXG5cbi8qKlxuICogV29ya2Zsb3cgTWFuYWdlbWVudCBNb2R1bGUgTWFuaWZlc3QuXG4gKiBEZWZpbmVzIG1vZHVsZSBtZXRhZGF0YSwgZmVhdHVyZXMsIGFuZCBwcm92aWRlciByZWZlcmVuY2VzLlxuICovXG5leHBvcnQgY29uc3QgV29ya2Zsb3dNYW5hZ2VtZW50TWFuaWZlc3Q6IEFYUE1vZHVsZU1hbmlmZXN0ID0ge1xuICBuYW1lOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB0aXRsZTogUm9vdENvbmZpZy5tb2R1bGUudGl0bGUsXG4gIGljb246IFJvb3RDb25maWcubW9kdWxlLmljb24sXG4gIGkxOG46IFJvb3RDb25maWcuY29uZmlnLmkxOG4sXG5cbiAgLy8gTW9kdWxlIGRlcGVuZGVuY2llcyAob3B0aW9uYWwpXG59O1xuXG4vLyNlbmRyZWdpb25cblxuIl19","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { actionExists, ensureListActions } from '@acorex/platform/layout/entity';\nexport const signPlugin = {\n name: 'sign',\n order: 47,\n apply: (ctx, options) => {\n const opts = options ?? {};\n const field = opts.field && opts.field.trim().length > 0 ? opts.field : 'signatures';\n const displayTitle = opts.title && opts.title.trim().length > 0 ? opts.title : 'Digital Signatures';\n const moduleName = ctx.entity.module;\n const baseEntityName = ctx.entity.name;\n const distributionEntityName = `${baseEntityName}Distribution`;\n if (typeof options?.command === 'string') {\n options.command = {\n name: options.command,\n options: {\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n schemaEntity: ctx,\n },\n };\n }\n else {\n if (options?.command) {\n options.command = {\n name: options.command.name,\n options: {\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n schemaEntity: ctx,\n ...options.command.options,\n },\n metadata: options.command.metadata,\n };\n }\n }\n const action = {\n title: '@general:actions.sign.title',\n name: 'sign-entity',\n command: {\n name: 'sign',\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n viewType: options?.viewType ?? 'none',\n checkBoxLabel: options?.checkBoxLabel,\n command: options?.command,\n },\n },\n priority: 'secondary',\n type: 'sign',\n scope: AXPEntityCommandScope.Individual,\n disabled: \"{{ (context.eval('signatures') ?? []).filter((x) => x.auditInfo.created.by.id === session.currentUser().id).length > 0 }}\",\n };\n // Ensure group and section ids (unique per field)\n const sectionId = `signatures-${field}`;\n const groupIdForProperty = `signatures-${field}`;\n const existingGroups = ctx.groups.list() ?? [];\n if (!existingGroups.some((g) => g.id === groupIdForProperty)) {\n ctx.groups.add({ id: groupIdForProperty, title: displayTitle });\n }\n // Ensure property exists for displaying signatures\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === field)) {\n ctx.properties.add({\n name: field,\n title: displayTitle,\n groupId: groupIdForProperty,\n schema: {\n dataType: 'string',\n interface: {\n type: 'signature-list',\n },\n },\n });\n }\n // Ensure single view section and property layout exists\n const sectionOrder = 9;\n const colSpan = 12;\n ctx.interfaces.master.single.update((single) => {\n const next = single ?? { title: ctx.entity.title, sections: [], properties: [] };\n next.sections = next.sections ?? [];\n if (!next.sections.some((s) => s.id === sectionId)) {\n next.sections.push({ id: sectionId, title: displayTitle, order: 200 });\n }\n next.properties = next.properties ?? [];\n if (!next.properties.some((p) => p.name === field)) {\n next.properties.push({\n name: field,\n layout: {\n label: { visible: false },\n positions: { lg: { colSpan, order: sectionOrder } },\n },\n });\n }\n return next;\n });\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = i.master.list.actions;\n if (!actionExists(actions, action.name ?? '')) {\n actions.push(action);\n }\n const singleActions = i.master.single.actions;\n if (!actionExists(singleActions, action.name ?? '')) {\n singleActions.push(action);\n }\n return i;\n });\n // Stamp normalized config for middleware\n ctx.entity.extensions ??= {};\n ctx.entity.extensions.signatures ??= {};\n ctx.entity.extensions.signatures[field] = { title: displayTitle };\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NpZ24vc2lnbi5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QyxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxZQUFZLEVBQXlCLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFReEcsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUEwQjtJQUMvQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEtBQUssRUFBRSxFQUFFO0lBQ1QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLE9BQThCLEVBQUUsRUFBRTtRQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFJLElBQVksQ0FBQyxLQUFLLElBQUssSUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDaEgsTUFBTSxZQUFZLEdBQ2YsSUFBWSxDQUFDLEtBQUssSUFBSyxJQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1FBRTVHLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3ZDLE1BQU0sc0JBQXNCLEdBQUcsR0FBRyxjQUFjLGNBQWMsQ0FBQztRQUUvRCxJQUFJLE9BQU8s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LEVBQUUsRUFBRTtxQkFDcEQ7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sT0FBTyxHQUFJLENBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQTRCLENBQUM7WUFDcEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7WUFFRCxNQUFNLGFBQWEsR0FBSSxDQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUE0QixDQUFDO1lBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBRUQsT0FBTyxDQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCx5Q0FBeUM7UUFDeEMsR0FBRyxDQUFDLE1BQWMsQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxNQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxFQUFFLENBQUM7UUFDaEQsR0FBRyxDQUFDLE1BQWMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzdFLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29tbWFuZEFjdGlvbkNhbGxiYWNrLCBBWFBFbnRpdHlBY3Rpb24sIEFYUEVudGl0eUNvbW1hbmRTY29wZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGFjdGlvbkV4aXN0cywgQVhQRW50aXR5QWN0aW9uUGx1Z2luLCBlbnN1cmVMaXN0QWN0aW9ucyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhNU2lnblBsdWdpbk9wdGlvbnMge1xuICB2aWV3VHlwZTogJ2NoZWNrQm94JyB8ICdzaWduJyB8ICdub25lJzsgLy8gbm9uZSBpcyBkZWZhdWx0XG4gIGNoZWNrQm94TGFiZWw/OiBzdHJpbmc7IC8vIGlmIHZpZXdUeXBlIGlzIGNoZWNrQm94LCB0aGlzIGxhYmVsIHdpbGwgYmUgdXNlZFxuICBjb21tYW5kOiBBWFBDb21tYW5kQWN0aW9uQ2FsbGJhY2s7IC8vIGNvbW1hbmQgbmFtZVxufVxuXG5leHBvcnQgY29uc3Qgc2lnblBsdWdpbjogQVhQRW50aXR5QWN0aW9uUGx1Z2luID0ge1xuICBuYW1lOiAnc2lnbicsXG4gIG9yZGVyOiA0NyxcbiAgYXBwbHk6IChjdHgsIG9wdGlvbnM/OiBBWE1TaWduUGx1Z2luT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zID8/IHt9O1xuICAgIGNvbnN0IGZpZWxkID0gKG9wdHMgYXMgYW55KS5maWVsZCAmJiAob3B0cyBhcyBhbnkpLmZpZWxkLnRyaW0oKS5sZW5ndGggPiAwID8gKG9wdHMgYXMgYW55KS5maWVsZCA6ICdzaWduYXR1cmVzJztcbiAgICBjb25zdCBkaXNwbGF5VGl0bGUgPVxuICAgICAgKG9wdHMgYXMgYW55KS50aXRsZSAmJiAob3B0cyBhcyBhbnkpLnRpdGxlLnRyaW0oKS5sZW5ndGggPiAwID8gKG9wdHMgYXMgYW55KS50aXRsZSA6ICdEaWdpdGFsIFNpZ25hdHVyZXMnO1xuXG4gICAgY29uc3QgbW9kdWxlTmFtZSA9IGN0eC5lbnRpdHkubW9kdWxlO1xuICAgIGNvbnN0IGJhc2VFbnRpdHlOYW1lID0gY3R4LmVudGl0eS5uYW1lO1xuICAgIGNvbnN0IGRpc3RyaWJ1dGlvbkVudGl0eU5hbWUgPSBgJHtiYXNlRW50aXR5TmFtZX1EaXN0cmlidXRpb25gO1xuXG4gICAgaWYgKHR5cGVvZiBvcHRpb25zPy5jb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5jb21tYW5kID0ge1xuICAgICAgICBuYW1lOiBvcHRpb25zLmNvbW1hbmQsXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBlbnRpdHk6IGAke2N0eC5lbnRpdHkubW9kdWxlfS4ke2N0eC5lbnRpdHkubmFtZX1gLFxuICAgICAgICAgIHNjaGVtYUVudGl0eTogY3R4LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9wdGlvbnM/LmNvbW1hbmQpIHtcbiAgICAgICAgb3B0aW9ucy5jb21tYW5kID0ge1xuICAgICAgICAgIG5hbWU6IG9wdGlvbnMuY29tbWFuZC5uYW1lLFxuICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVudGl0eTogYCR7Y3R4LmVudGl0eS5tb2R1bGV9LiR7Y3R4LmVudGl0eS5uYW1lfWAsXG4gICAgICAgICAgICBzY2hlbWFFbnRpdHk6IGN0eCxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuY29tbWFuZC5vcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWV0YWRhdGE6IG9wdGlvbnMuY29tbWFuZC5tZXRhZGF0YSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb246IEFYUEVudGl0eUFjdGlvbiA9IHtcbiAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnRpdGxlJyxcbiAgICAgIG5hbWU6ICdzaWduLWVudGl0eScsXG4gICAgICBjb21tYW5kOiB7XG4gICAgICAgIG5hbWU6ICdzaWduJyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHJlZklkOiAne3sgY29udGV4dC5ldmFsKFwiaWRcIikgfX0nLFxuICAgICAgICAgIHJlZlR5cGU6IGAke2N0eC5lbnRpdHkubW9kdWxlfS4ke2N0eC5lbnRpdHkubmFtZX1gLFxuICAgICAgICAgIHZpZXdUeXBlOiBvcHRpb25zPy52aWV3VHlwZSA/PyAnbm9uZScsXG4gICAgICAgICAgY2hlY2tCb3hMYWJlbDogb3B0aW9ucz8uY2hlY2tCb3hMYWJlbCxcbiAgICAgICAgICBjb21tYW5kOiBvcHRpb25zPy5jb21tYW5kLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByaW9yaXR5OiAnc2Vjb25kYXJ5JyxcbiAgICAgIHR5cGU6ICdzaWduJyxcbiAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgIGRpc2FibGVkOlxuICAgICAgICBcInt7IChjb250ZXh0LmV2YWwoJ3NpZ25hdHVyZXMnKSA/PyBbXSkuZmlsdGVyKCh4KSA9PiB4LmF1ZGl0SW5mby5jcmVhdGVkLmJ5LmlkID09PSBzZXNzaW9uLmN1cnJlbnRVc2VyKCkuaWQpLmxlbmd0aCA+IDAgfX1cIixcbiAgICB9O1xuXG4gICAgLy8gRW5zdXJlIGdyb3VwIGFuZCBzZWN0aW9uIGlkcyAodW5pcXVlIHBlciBmaWVsZClcbiAgICBjb25zdCBzZWN0aW9uSWQgPSBgc2lnbmF0dXJlcy0ke2ZpZWxkfWA7XG4gICAgY29uc3QgZ3JvdXBJZEZvclByb3BlcnR5ID0gYHNpZ25hdHVyZXMtJHtmaWVsZH1gO1xuICAgIGNvbnN0IGV4aXN0aW5nR3JvdXBzID0gY3R4Lmdyb3Vwcy5saXN0KCkgPz8gW107XG4gICAgaWYgKCFleGlzdGluZ0dyb3Vwcy5zb21lKChnOiBhbnkpID0+IGcuaWQgPT09IGdyb3VwSWRGb3JQcm9wZXJ0eSkpIHtcbiAgICAgIGN0eC5ncm91cHMuYWRkKHsgaWQ6IGdyb3VwSWRGb3JQcm9wZXJ0eSwgdGl0bGU6IGRpc3BsYXlUaXRsZSB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHByb3BlcnR5IGV4aXN0cyBmb3IgZGlzcGxheWluZyBzaWduYXR1cmVzXG4gICAgY29uc3QgcHJvcHMgPSBjdHgucHJvcGVydGllcy5saXN0KCk7XG4gICAgaWYgKCFwcm9wcy5zb21lKChwOiBhbnkpID0+IHAubmFtZSA9PT0gZmllbGQpKSB7XG4gICAgICBjdHgucHJvcGVydGllcy5hZGQoe1xuICAgICAgICBuYW1lOiBmaWVsZCxcbiAgICAgICAgdGl0bGU6IGRpc3BsYXlUaXRsZSxcbiAgICAgICAgZ3JvdXBJZDogZ3JvdXBJZEZvclByb3BlcnR5LFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiAnc2lnbmF0dXJlLWxpc3QnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSk7XG4gICAgfVxuXG4gICAgLy8gRW5zdXJlIHNpbmdsZSB2aWV3IHNlY3Rpb24gYW5kIHByb3BlcnR5IGxheW91dCBleGlzdHNcbiAgICBjb25zdCBzZWN0aW9uT3JkZXIgPSA5O1xuICAgIGNvbnN0IGNvbFNwYW4gPSAxMjtcbiAgICBjdHguaW50ZXJmYWNlcy5tYXN0ZXIuc2luZ2xlLnVwZGF0ZSgoc2luZ2xlKSA9PiB7XG4gICAgICBjb25zdCBuZXh0OiBhbnkgPSBzaW5nbGUgPz8geyB0aXRsZTogY3R4LmVudGl0eS50aXRsZSwgc2VjdGlvbnM6IFtdLCBwcm9wZXJ0aWVzOiBbXSB9O1xuICAgICAgbmV4dC5zZWN0aW9ucyA9IG5leHQuc2VjdGlvbnMgPz8gW107XG4gICAgICBpZiAoIW5leHQuc2VjdGlvbnMuc29tZSgoczogYW55KSA9PiBzLmlkID09PSBzZWN0aW9uSWQpKSB7XG4gICAgICAgIG5leHQuc2VjdGlvbnMucHVzaCh7IGlkOiBzZWN0aW9uSWQsIHRpdGxlOiBkaXNwbGF5VGl0bGUsIG9yZGVyOiAyMDAgfSk7XG4gICAgICB9XG4gICAgICBuZXh0LnByb3BlcnRpZXMgPSBuZXh0LnByb3BlcnRpZXMgPz8gW107XG4gICAgICBpZiAoIW5leHQucHJvcGVydGllcy5zb21lKChwOiBhbnkpID0+IHAubmFtZSA9PT0gZmllbGQpKSB7XG4gICAgICAgIG5leHQucHJvcGVydGllcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBmaWVsZCxcbiAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgIGxhYmVsOiB7IHZpc2libGU6IGZhbHNlIH0sXG4gICAgICAgICAgICBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3Bhbiwgb3JkZXI6IHNlY3Rpb25PcmRlciB9IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dDtcbiAgICB9KTtcblxuICAgIGVuc3VyZUxpc3RBY3Rpb25zKGN0eCk7XG4gICAgY3R4LmludGVyZmFjZXMudXBkYXRlKChpKSA9PiB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gKGkgYXMgYW55KS5tYXN0ZXIubGlzdC5hY3Rpb25zIGFzIEFYUEVudGl0eUFjdGlvbltdO1xuICAgICAgaWYgKCFhY3Rpb25FeGlzdHMoYWN0aW9ucywgYWN0aW9uLm5hbWUgPz8gJycpKSB7XG4gICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzaW5nbGVBY3Rpb25zID0gKGkgYXMgYW55KS5tYXN0ZXIuc2luZ2xlLmFjdGlvbnMgYXMgQVhQRW50aXR5QWN0aW9uW107XG4gICAgICBpZiAoIWFjdGlvbkV4aXN0cyhzaW5nbGVBY3Rpb25zLCBhY3Rpb24ubmFtZSA/PyAnJykpIHtcbiAgICAgICAgc2luZ2xlQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpIGFzIGFueTtcbiAgICB9KTtcblxuICAgIC8vIFN0YW1wIG5vcm1hbGl6ZWQgY29uZmlnIGZvciBtaWRkbGV3YXJlXG4gICAgKGN0eC5lbnRpdHkgYXMgYW55KS5leHRlbnNpb25zID8/PSB7fTtcbiAgICAoY3R4LmVudGl0eSBhcyBhbnkpLmV4dGVuc2lvbnMuc2lnbmF0dXJlcyA/Pz0ge307XG4gICAgKGN0eC5lbnRpdHkgYXMgYW55KS5leHRlbnNpb25zLnNpZ25hdHVyZXNbZmllbGRdID0geyB0aXRsZTogZGlzcGxheVRpdGxlIH07XG4gIH0sXG59O1xuIl19","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflowAction } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n/**\n * Action to show document distribution popup\n */\nexport class AXMSignPopupAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.translationService = inject(AXTranslationService);\n this.layoutBuilder = inject(AXPLayoutBuilderService);\n this.entityService = inject(AXPEntityService);\n }\n async execute(context) {\n const refId = context.getVariable('options')['refId'];\n const refType = context.getVariable('options')['refType'];\n const viewType = context.getVariable('options')['viewType'];\n const checkBoxLabel = context.getVariable('options')['checkBoxLabel'] ?? await this.translationService.translateAsync('@general:actions.sign.checkBox.label');\n const signatureLabel = context.getVariable('options')['signatureLabel'] ?? await this.translationService.translateAsync('@general:actions.sign.signature.label');\n const command = context.getVariable('options')['command'];\n const dialogTitle = await this.translationService.translateAsync('@general:actions.sign.title');\n const signatureEntityService = this.entityService.withEntity(`${refType}Signature`).data();\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n dialog\n .setTitle(dialogTitle)\n .setSize('md')\n .setContext({})\n .content(flex => {\n flex\n .setDirection('column')\n .formField('@general:actions.sign.title', field => {\n field.path('signed');\n // Determine widget type based on viewType\n if (viewType === 'checkBox') {\n field.toggleSwitch({\n label: checkBoxLabel,\n });\n }\n else if (viewType === 'none') {\n field.customWidget('text-block-layout', {\n content: signatureLabel,\n });\n }\n else {\n field.customWidget('signature', {\n label: checkBoxLabel,\n });\n }\n });\n })\n .setActions(actions => {\n actions.cancel('@general:actions.cancel.title');\n const submitAction = {\n title: '@general:actions.sign.title',\n color: 'primary',\n command: typeof command === 'string' ? {\n name: command,\n } : command,\n };\n actions.custom(submitAction);\n });\n })\n .show();\n const action = dialogRef.action();\n if (action === 'cancel') {\n context.setOutput('confirmed', 'cancelled');\n dialogRef.close();\n return;\n }\n const ctx = dialogRef.context();\n dialogRef.setLoading(true);\n dialogRef.close();\n const signId = await signatureEntityService.create({\n [refType]: refId,\n signed: ctx.signed,\n // user : session.currentUser(),\n meta: {\n type: viewType,\n },\n });\n if (signId) {\n context.setOutput('confirmed', 'success');\n }\n else {\n context.setOutput('confirmed', 'failed');\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPopupAction, decorators: [{\n type: Injectable\n }] });\n/**\n * Workflow for distributing documents to users\n */\nexport const AXMSignWorkflow = {\n startStepId: 'show-sign-popup',\n steps: {\n 'show-sign-popup': {\n id: 'show-sign-popup',\n action: 'AXMSignPopupAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"confirmed\") == \"success\"' }],\n nextStepId: 'show-success',\n },\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"confirmed\") == \"failed\"' }],\n nextStepId: 'show-error',\n },\n ],\n },\n 'show-success': {\n id: 'show-success',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'general:actions.sign.success.title',\n content: 'general:actions.sign.success.message',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'reload-entity',\n },\n ],\n },\n 'show-error': {\n id: 'show-error',\n action: 'AXPToastAction',\n input: {\n color: 'danger',\n title: 'general:actions.sign.error.title',\n content: 'general:actions.sign.error.message',\n },\n },\n 'reload-entity': {\n id: 'reload-entity',\n action: 'reload',\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi53b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2lnbi9zaWduLndvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBZSxpQkFBaUIsRUFBc0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRixPQUFPLEVBQVUsTUFBTSxFQUFFLFVBQVUsRUFBbUMsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUE0QixnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUU1Rjs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFEekQ7O1FBRVUsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekMsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBa0YzRDtJQWhGQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQTJCO1FBRXZDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0sU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBTSxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFNLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0sU0FBUyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDbkssTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBTSxTQUFTLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3RLLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQU0sU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFFaEcsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFZLENBQUM7UUFFckcsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYTthQUN2QyxNQUFNLEVBQUU7YUFDUixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixNQUFNO2lCQUNILFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUM7aUJBQ2IsVUFBVSxDQUFDLEVBQUUsQ0FBQztpQkFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2QsSUFBSTtxQkFDRCxZQUFZLENBQUMsUUFBUSxDQUFDO3FCQUN0QixTQUFTLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ2hELEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBRXJCLDBDQUEwQztvQkFDMUMsSUFBSSxRQUFRLEtBQUssVUFBVSxFQUFFLENBQUM7d0JBQzVCLEtBQUssQ0FBQyxZQUFZLENBQUM7NEJBQ2pCLEtBQUssRUFBRSxhQUFhO3lCQUNyQixDQUFDLENBQUM7b0JBQ0wsQ0FBQzt5QkFBTSxJQUFJLFFBQVEsS0FBSyxNQUFNLEVBQUUsQ0FBQzt3QkFDL0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRTs0QkFDdEMsT0FBTyxFQUFFLGNBQWM7eUJBQ3hCLENBQUMsQ0FBQztvQkFDTCxDQUFDO3lCQUFNLENBQUM7d0JBQ04sS0FBSyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7NEJBQzlCLEtBQUssRUFBRSxhQUFhO3lCQUNyQixDQUFDLENBQUM7b0JBQ0wsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQztpQkFDRCxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sQ0FBQyxNQUFNLENBQUMsK0JBQStCLENBQUMsQ0FBQztnQkFDaEQsTUFBTSxZQUFZLEdBQXNCO29CQUN0QyxLQUFLLEVBQUUsNkJBQTZCO29CQUNwQyxLQUFLLEVBQUUsU0FBUztvQkFDaEIsT0FBTyxFQUFFLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ3JDLElBQUksRUFBRSxPQUFPO3FCQUNkLENBQUMsQ0FBQyxDQUFDLE9BQU87aUJBQ1MsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQzthQUNELElBQUksRUFBRSxDQUFDO1FBRVYsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xDLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzVDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQXNCLENBQUM7UUFDcEQsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7WUFDakQsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLO1lBQ2hCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTtZQUNsQixpQ0FBaUM7WUFDakMsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxRQUFRO2FBQ2Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0gsQ0FBQzsrR0FwRlUsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7O0FBd0ZYOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFnQjtJQUMxQyxXQUFXLEVBQUUsaUJBQWlCO0lBQzlCLEtBQUssRUFBRTtRQUNMLGlCQUFpQixFQUFFO1lBQ2pCLEVBQUUsRUFBRSxpQkFBaUI7WUFDckIsTUFBTSxFQUFFLG9CQUFvQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSw2Q0FBNkMsRUFBRSxDQUFDO29CQUMzRixVQUFVLEVBQUUsY0FBYztpQkFDM0I7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSw0Q0FBNEMsRUFBRSxDQUFDO29CQUMxRixVQUFVLEVBQUUsWUFBWTtpQkFDekI7YUFDRjtTQUNGO1FBRUQsY0FBYyxFQUFFO1lBQ2QsRUFBRSxFQUFFLGNBQWM7WUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLEtBQUssRUFBRSxvQ0FBb0M7Z0JBQzNDLE9BQU8sRUFBRSxzQ0FBc0M7YUFDaEQ7WUFDRCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsVUFBVSxFQUFFLEVBQUU7b0JBQ2QsVUFBVSxFQUFFLGVBQWU7aUJBQzVCO2FBQ0Y7U0FDRjtRQUNELFlBQVksRUFBRTtZQUNaLEVBQUUsRUFBRSxZQUFZO1lBQ2hCLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxrQ0FBa0M7Z0JBQ3pDLE9BQU8sRUFBRSxvQ0FBb0M7YUFDOUM7U0FDRjtRQUNELGVBQWUsRUFBRTtZQUNmLEVBQUUsRUFBRSxlQUFlO1lBQ25CLE1BQU0sRUFBRSxRQUFRO1NBQ2pCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEluamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBMYXlvdXRCdWlsZGVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhNRW50aXR5Q3J1ZFNlcnZpY2VJbXBsLCBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLyoqXG4gKiBBY3Rpb24gdG8gc2hvdyBkb2N1bWVudCBkaXN0cmlidXRpb24gcG9wdXBcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVNpZ25Qb3B1cEFjdGlvbiBleHRlbmRzIEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dEJ1aWxkZXIgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG5cbiAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIGNvbnN0IHJlZklkID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJylbJ3JlZklkJ107XG4gICAgY29uc3QgcmVmVHlwZSA9IGNvbnRleHQuZ2V0VmFyaWFibGU8YW55Pignb3B0aW9ucycpWydyZWZUeXBlJ107XG4gICAgY29uc3Qgdmlld1R5cGUgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsndmlld1R5cGUnXTtcbiAgICBjb25zdCBjaGVja0JveExhYmVsID0gY29udGV4dC5nZXRWYXJpYWJsZTxhbnk+KCdvcHRpb25zJylbJ2NoZWNrQm94TGFiZWwnXSA/PyBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5zaWduLmNoZWNrQm94LmxhYmVsJyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlTGFiZWwgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsnc2lnbmF0dXJlTGFiZWwnXSA/PyBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnNpZ25hdHVyZS5sYWJlbCcpO1xuICAgIGNvbnN0IGNvbW1hbmQgPSBjb250ZXh0LmdldFZhcmlhYmxlPGFueT4oJ29wdGlvbnMnKVsnY29tbWFuZCddO1xuICAgIGNvbnN0IGRpYWxvZ1RpdGxlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0BnZW5lcmFsOmFjdGlvbnMuc2lnbi50aXRsZScpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlRW50aXR5U2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZS53aXRoRW50aXR5KGAke3JlZlR5cGV9U2lnbmF0dXJlYCkuZGF0YTxhbnksIGFueT4oKTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IGF3YWl0IHRoaXMubGF5b3V0QnVpbGRlclxuICAgICAgLmNyZWF0ZSgpXG4gICAgICAuZGlhbG9nKGRpYWxvZyA9PiB7XG4gICAgICAgIGRpYWxvZ1xuICAgICAgICAgIC5zZXRUaXRsZShkaWFsb2dUaXRsZSlcbiAgICAgICAgICAuc2V0U2l6ZSgnbWQnKVxuICAgICAgICAgIC5zZXRDb250ZXh0KHt9KVxuICAgICAgICAgIC5jb250ZW50KGZsZXggPT4ge1xuICAgICAgICAgICAgZmxleFxuICAgICAgICAgICAgICAuc2V0RGlyZWN0aW9uKCdjb2x1bW4nKVxuICAgICAgICAgICAgICAuZm9ybUZpZWxkKCdAZ2VuZXJhbDphY3Rpb25zLnNpZ24udGl0bGUnLCBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGQucGF0aCgnc2lnbmVkJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmUgd2lkZ2V0IHR5cGUgYmFzZWQgb24gdmlld1R5cGVcbiAgICAgICAgICAgICAgICBpZiAodmlld1R5cGUgPT09ICdjaGVja0JveCcpIHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkLnRvZ2dsZVN3aXRjaCh7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjaGVja0JveExhYmVsLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3VHlwZSA9PT0gJ25vbmUnKSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZC5jdXN0b21XaWRnZXQoJ3RleHQtYmxvY2stbGF5b3V0Jywge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBzaWduYXR1cmVMYWJlbCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmaWVsZC5jdXN0b21XaWRnZXQoJ3NpZ25hdHVyZScsIHtcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNoZWNrQm94TGFiZWwsXG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLnNldEFjdGlvbnMoYWN0aW9ucyA9PiB7XG4gICAgICAgICAgICBhY3Rpb25zLmNhbmNlbCgnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnKTtcbiAgICAgICAgICAgIGNvbnN0IHN1Ym1pdEFjdGlvbjogQVhQQWN0aW9uTWVudUl0ZW0gPSB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQGdlbmVyYWw6YWN0aW9ucy5zaWduLnRpdGxlJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgY29tbWFuZDogdHlwZW9mIGNvbW1hbmQgPT09ICdzdHJpbmcnID8ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGNvbW1hbmQsXG4gICAgICAgICAgICAgIH0gOiBjb21tYW5kLFxuICAgICAgICAgICAgfSBhcyBBWFBBY3Rpb25NZW51SXRlbTtcbiAgICAgICAgICAgIGFjdGlvbnMuY3VzdG9tKHN1Ym1pdEFjdGlvbik7XG4gICAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLnNob3coKTtcblxuICAgIGNvbnN0IGFjdGlvbiA9IGRpYWxvZ1JlZi5hY3Rpb24oKTtcbiAgICBpZiAoYWN0aW9uID09PSAnY2FuY2VsJykge1xuICAgICAgY29udGV4dC5zZXRPdXRwdXQoJ2NvbmZpcm1lZCcsICdjYW5jZWxsZWQnKTtcbiAgICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN0eCA9IGRpYWxvZ1JlZi5jb250ZXh0KCkgYXMgeyBzaWduZWQ/OiBhbnkgfTtcbiAgICBkaWFsb2dSZWYuc2V0TG9hZGluZyh0cnVlKTtcblxuICAgIGRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIGNvbnN0IHNpZ25JZCA9IGF3YWl0IHNpZ25hdHVyZUVudGl0eVNlcnZpY2UuY3JlYXRlKHtcbiAgICAgIFtyZWZUeXBlXTogcmVmSWQsXG4gICAgICBzaWduZWQ6IGN0eC5zaWduZWQsXG4gICAgICAvLyAgdXNlciA6IHNlc3Npb24uY3VycmVudFVzZXIoKSxcbiAgICAgIG1ldGE6IHtcbiAgICAgICAgdHlwZTogdmlld1R5cGUsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGlmIChzaWduSWQpIHtcbiAgICAgIGNvbnRleHQuc2V0T3V0cHV0KCdjb25maXJtZWQnLCAnc3VjY2VzcycpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnNldE91dHB1dCgnY29uZmlybWVkJywgJ2ZhaWxlZCcpO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFdvcmtmbG93IGZvciBkaXN0cmlidXRpbmcgZG9jdW1lbnRzIHRvIHVzZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBBWE1TaWduV29ya2Zsb3c6IEFYUFdvcmtmbG93ID0ge1xuICBzdGFydFN0ZXBJZDogJ3Nob3ctc2lnbi1wb3B1cCcsXG4gIHN0ZXBzOiB7XG4gICAgJ3Nob3ctc2lnbi1wb3B1cCc6IHtcbiAgICAgIGlkOiAnc2hvdy1zaWduLXBvcHVwJyxcbiAgICAgIGFjdGlvbjogJ0FYTVNpZ25Qb3B1cEFjdGlvbicsXG4gICAgICBuZXh0U3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiAnY29udGV4dC5nZXRPdXRwdXQoXCJjb25maXJtZWRcIikgPT0gXCJzdWNjZXNzXCInIH1dLFxuICAgICAgICAgIG5leHRTdGVwSWQ6ICdzaG93LXN1Y2Nlc3MnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogJ1NJTkdMRScsIGV4cHJlc3Npb246ICdjb250ZXh0LmdldE91dHB1dChcImNvbmZpcm1lZFwiKSA9PSBcImZhaWxlZFwiJyB9XSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAnc2hvdy1lcnJvcicsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG5cbiAgICAnc2hvdy1zdWNjZXNzJzoge1xuICAgICAgaWQ6ICdzaG93LXN1Y2Nlc3MnLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdzdWNjZXNzJyxcbiAgICAgICAgdGl0bGU6ICdnZW5lcmFsOmFjdGlvbnMuc2lnbi5zdWNjZXNzLnRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLnN1Y2Nlc3MubWVzc2FnZScsXG4gICAgICB9LFxuICAgICAgbmV4dFN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb25kaXRpb25zOiBbXSxcbiAgICAgICAgICBuZXh0U3RlcElkOiAncmVsb2FkLWVudGl0eScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAgJ3Nob3ctZXJyb3InOiB7XG4gICAgICBpZDogJ3Nob3ctZXJyb3InLFxuICAgICAgYWN0aW9uOiAnQVhQVG9hc3RBY3Rpb24nLFxuICAgICAgaW5wdXQ6IHtcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICB0aXRsZTogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLmVycm9yLnRpdGxlJyxcbiAgICAgICAgY29udGVudDogJ2dlbmVyYWw6YWN0aW9ucy5zaWduLmVycm9yLm1lc3NhZ2UnLFxuICAgICAgfSxcbiAgICB9LFxuICAgICdyZWxvYWQtZW50aXR5Jzoge1xuICAgICAgaWQ6ICdyZWxvYWQtZW50aXR5JyxcbiAgICAgIGFjdGlvbjogJ3JlbG9hZCcsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=","import { AXP_WIDGETS_LAYOUT_CATEGORY, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_NAME_PROPERTY } from '@acorex/platform/layout/widgets';\nexport const AXPSignatureListWidget = {\n name: 'signature-list',\n title: 'Signature List',\n description: 'Displays signature list',\n icon: 'fa-light fa-text',\n categories: AXP_WIDGETS_LAYOUT_CATEGORY,\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'view',\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY],\n components: {\n view: {\n component: () => import('./signature-list-widget-view.component').then((c) => c.AXPSignatureListWidgetViewComponent),\n },\n edit: {\n component: () => import('./signature-list-widget-view.component').then((c) => c.AXPSignatureListWidgetViewComponent),\n },\n designer: {\n component: () => import('./signature-list-widget-designer.component').then((c) => c.AXPSignatureListWidgetDesignerComponent),\n },\n },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvc2lnbi93aWRnZXRzL3NpZ25hdHVyZS1saXN0L3NpZ25hdHVyZS1saXN0LXdpZGdldC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFtQixrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUTVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFvQjtJQUNyRCxJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7SUFDdkIsV0FBVyxFQUFFLHlCQUF5QjtJQUN0QyxJQUFJLEVBQUUsa0JBQWtCO0lBQ3hCLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsTUFBTSxFQUFFLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDO0lBQ3pDLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUM7SUFDdkQsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3JIO1FBQ0QsSUFBSSxFQUFFO1lBQ0osU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1DQUFtQyxDQUFDO1NBQ3JIO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUNkLE1BQU0sQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDO1NBQzlHO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQVXNlclJlZmVyZW5jZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBfV0lER0VUU19MQVlPVVRfQ0FURUdPUlksIEFYUFdpZGdldENvbmZpZywgQVhQV2lkZ2V0R3JvdXBFbnVtIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgQVhQX0RBVEFfUEFUSF9QUk9QRVJUWSwgQVhQX05BTUVfUFJPUEVSVFkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBTaWduYXR1cmVMaXN0SXRlbSB7XG4gIHVzZXI6IEFYUFVzZXJSZWZlcmVuY2U7XG4gIHNpZ25hdHVyZTogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xufVxuXG5leHBvcnQgY29uc3QgQVhQU2lnbmF0dXJlTGlzdFdpZGdldDogQVhQV2lkZ2V0Q29uZmlnID0ge1xuICBuYW1lOiAnc2lnbmF0dXJlLWxpc3QnLFxuICB0aXRsZTogJ1NpZ25hdHVyZSBMaXN0JyxcbiAgZGVzY3JpcHRpb246ICdEaXNwbGF5cyBzaWduYXR1cmUgbGlzdCcsXG4gIGljb246ICdmYS1saWdodCBmYS10ZXh0JyxcbiAgY2F0ZWdvcmllczogQVhQX1dJREdFVFNfTEFZT1VUX0NBVEVHT1JZLFxuICBncm91cHM6IFtBWFBXaWRnZXRHcm91cEVudW0uRW50aXR5V2lkZ2V0XSxcbiAgdHlwZTogJ3ZpZXcnLFxuICBwcm9wZXJ0aWVzOiBbQVhQX05BTUVfUFJPUEVSVFksIEFYUF9EQVRBX1BBVEhfUFJPUEVSVFldLFxuICBjb21wb25lbnRzOiB7XG4gICAgdmlldzoge1xuICAgICAgY29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vc2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LXZpZXcuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBTaWduYXR1cmVMaXN0V2lkZ2V0Vmlld0NvbXBvbmVudCksXG4gICAgfSxcbiAgICBlZGl0OiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9zaWduYXR1cmUtbGlzdC13aWRnZXQtdmlldy5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFYUFNpZ25hdHVyZUxpc3RXaWRnZXRWaWV3Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIGRlc2lnbmVyOiB7XG4gICAgICBjb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi9zaWduYXR1cmUtbGlzdC13aWRnZXQtZGVzaWduZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5BWFBTaWduYXR1cmVMaXN0V2lkZ2V0RGVzaWduZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIH0sXG59O1xuXG5kZWNsYXJlIG1vZHVsZSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnIHtcbiAgaW50ZXJmYWNlIEFYUFdpZGdldFR5cGVzTWFwIHtcbiAgICBzaWduYXR1cmVMaXN0OiAnc2lnbmF0dXJlLWxpc3QnO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2lnbmF0dXJlTGlzdFdpZGdldERlc2lnbmVyT3B0aW9ucyB7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU2lnbmF0dXJlTGlzdFdpZGdldFZpZXdPcHRpb25zIHtcbiAgY29udGVudD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBTaWduYXR1cmVMaXN0V2lkZ2V0RWRpdE9wdGlvbnMge1xuICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRQcmludE9wdGlvbnMge1xuICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRPcHRpb25zIHtcbiAgZGVzaWduZXI6IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXREZXNpZ25lck9wdGlvbnM7XG4gIHZpZXc6IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXRWaWV3T3B0aW9ucztcbiAgZWRpdDogQVhQU2lnbmF0dXJlTGlzdFdpZGdldEVkaXRPcHRpb25zO1xuICBwcmludDogQVhQU2lnbmF0dXJlTGlzdFdpZGdldFByaW50T3B0aW9ucztcbn1cbiJdfQ==","import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { NgModule } from '@angular/core';\nimport { signPlugin } from './sign.plugin';\nimport { AXMSignPopupAction, AXMSignWorkflow } from './sign.workflow';\nimport { AXPSignatureListWidget } from './widgets/signature-list/signature-list-widget.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/platform/workflow\";\nimport * as i2 from \"@acorex/platform/layout/widget-core\";\nexport class AXMSignPluginModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, imports: [i1.AXPWorkflowModule, i2.AXPWidgetCoreModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: signPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n ], imports: [AXPWorkflowModule.forChild({\n actions: {\n AXMSignPopupAction,\n },\n workflows: {\n sign: AXMSignWorkflow,\n },\n }),\n AXPWidgetCoreModule.forChild({\n widgets: [AXPSignatureListWidget],\n })] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMSignPluginModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: signPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n ],\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXMSignPopupAction,\n },\n workflows: {\n sign: AXMSignWorkflow,\n },\n }),\n AXPWidgetCoreModule.forChild({\n widgets: [AXPSignatureListWidget],\n }),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL3NpZ24vc2lnbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtDQUFrQyxFQUFtQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7QUFtQy9GLE1BQU0sT0FBTyxtQkFBbUI7K0dBQW5CLG1CQUFtQjtnSEFBbkIsbUJBQW1CO2dIQUFuQixtQkFBbUIsYUFoQ25CO1lBQ1QsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFO1lBQ3hFO2dCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7Z0JBQzNDLEtBQUssRUFBRSxJQUFJO2dCQUNYLFVBQVUsRUFBRSxHQUFHLEVBQUU7b0JBQ2YsTUFBTSxRQUFRLEdBQW9DO3dCQUNoRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFOzRCQUN4Qix1RUFBdUU7NEJBQ3ZFLHFHQUFxRzs0QkFDckcsNERBQTREOzRCQUM1RCxnSEFBZ0g7d0JBQ2xILENBQUM7cUJBQ0YsQ0FBQztvQkFDRixPQUFPLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQzthQUNGO1NBQ0YsWUFFQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUM7Z0JBQ3pCLE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7aUJBQ25CO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxJQUFJLEVBQUUsZUFBZTtpQkFDdEI7YUFDRixDQUFDO1lBQ0YsbUJBQW1CLENBQUMsUUFBUSxDQUFDO2dCQUMzQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNsQyxDQUFDOzs0RkFHTyxtQkFBbUI7a0JBakMvQixRQUFRO21CQUFDO29CQUNSLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUU7d0JBQ3hFOzRCQUNFLE9BQU8sRUFBRSxrQ0FBa0M7NEJBQzNDLEtBQUssRUFBRSxJQUFJOzRCQUNYLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0NBQ2YsTUFBTSxRQUFRLEdBQW9DO29DQUNoRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO3dDQUN4Qix1RUFBdUU7d0NBQ3ZFLHFHQUFxRzt3Q0FDckcsNERBQTREO3dDQUM1RCxnSEFBZ0g7b0NBQ2xILENBQUM7aUNBQ0YsQ0FBQztnQ0FDRixPQUFPLFFBQVEsQ0FBQzs0QkFDbEIsQ0FBQzt5QkFDRjtxQkFDRjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsaUJBQWlCLENBQUMsUUFBUSxDQUFDOzRCQUN6QixPQUFPLEVBQUU7Z0NBQ1Asa0JBQWtCOzZCQUNuQjs0QkFDRCxTQUFTLEVBQUU7Z0NBQ1QsSUFBSSxFQUFFLGVBQWU7NkJBQ3RCO3lCQUNGLENBQUM7d0JBQ0YsbUJBQW1CLENBQUMsUUFBUSxDQUFDOzRCQUMzQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzt5QkFDbEMsQ0FBQztxQkFDSDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUF9QRVJNSVNTSU9OX0RFRklOSVRJT05fUFJPVklERVIsIEFYUFBlcm1pc3Npb25EZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2F1dGgnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9BQ1RJT05fUExVR0lOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldENvcmVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd01vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNpZ25QbHVnaW4gfSBmcm9tICcuL3NpZ24ucGx1Z2luJztcbmltcG9ydCB7IEFYTVNpZ25Qb3B1cEFjdGlvbiwgQVhNU2lnbldvcmtmbG93IH0gZnJvbSAnLi9zaWduLndvcmtmbG93JztcbmltcG9ydCB7IEFYUFNpZ25hdHVyZUxpc3RXaWRnZXQgfSBmcm9tICcuL3dpZGdldHMvc2lnbmF0dXJlLWxpc3Qvc2lnbmF0dXJlLWxpc3Qtd2lkZ2V0LmNvbmZpZyc7XG5cbkBOZ01vZHVsZSh7XG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhQX0VOVElUWV9BQ1RJT05fUExVR0lOLCBtdWx0aTogdHJ1ZSwgdXNlVmFsdWU6IHNpZ25QbHVnaW4gfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfUEVSTUlTU0lPTl9ERUZJTklUSU9OX1BST1ZJREVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3ZpZGVyOiBBWFBQZXJtaXNzaW9uRGVmaW5pdGlvblByb3ZpZGVyID0ge1xuICAgICAgICAgIGRlZmluZTogYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIC8vIEdlbmVyYXRlIHBlcm1pc3Npb25zIGZvciBhbnkgZW50aXR5IHRoYXQgZGVjbGFyZWQgY2F0ZWdvcnkgZXh0ZW5zaW9uXG4gICAgICAgICAgICAvLyBXZSBjYW7igJl0IHNjYW4gcmVnaXN0cnkgaGVyZSByZWxpYWJseSBhdCBib290c3RyYXA7IHJlbHkgb24gZ2VuZXJpYyBwYXR0ZXJuIHBlciBtb2R1bGUgdmlhIHdpbGRjYXJkXG4gICAgICAgICAgICAvLyBDb25zdW1lcnMgY2FuIHN0aWxsIG92ZXJyaWRlIHdpdGggbW9kdWxlLWxldmVsIHByb3ZpZGVycy5cbiAgICAgICAgICAgIC8vIE5vLW9wIGhlcmU7IHBlcm1pc3Npb25zIHdpbGwgYmUgYWRkZWQgd2hlbiBjYXRlZ29yeSBlbnRpdHkgaXMgcmVzb2x2ZWQgdmlhIHByb3ZpZGVFbnRpdHkgZWxzZXdoZXJlIGlmIG5lZWRlZC5cbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgICB9LFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWFBXb3JrZmxvd01vZHVsZS5mb3JDaGlsZCh7XG4gICAgICBhY3Rpb25zOiB7XG4gICAgICAgIEFYTVNpZ25Qb3B1cEFjdGlvbixcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd3M6IHtcbiAgICAgICAgc2lnbjogQVhNU2lnbldvcmtmbG93LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICBBWFBXaWRnZXRDb3JlTW9kdWxlLmZvckNoaWxkKHtcbiAgICAgIHdpZGdldHM6IFtBWFBTaWduYXR1cmVMaXN0V2lkZ2V0XSxcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNU2lnblBsdWdpbk1vZHVsZSB7fVxuIl19","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowDefinitionEntityService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl extends AXMWorkflowManagementWorkflowDefinitionEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.workflowDefinition.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL3dvcmtmbG93LWRlZmluaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBZ0Isb0RBQXFELFNBQVEsd0JBR2xGO0NBQUc7QUFHSixNQUFNLE9BQU8sd0RBQXlELFNBQVEsb0RBQW9EO0lBQ2hJO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7K0dBSFUsd0RBQXdEO21IQUF4RCx3REFBd0Q7OzRGQUF4RCx3REFBd0Q7a0JBRHBFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eU1vZGVsIH0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnR5cGVzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIHN0cmluZyxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5TW9kZWxcbj4ge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2VJbXBsIGV4dGVuZHMgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZX1gKTtcbiAgfVxufVxuXG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXMWorkflowManagementWorkflowDefinitionEntityService, AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl, } from './workflow-definition.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowDefinitionEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, providers: [\n {\n provide: AXMWorkflowManagementWorkflowDefinitionEntityService,\n useClass: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowDefinitionEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMWorkflowManagementWorkflowDefinitionEntityService,\n useClass: AXMWorkflowManagementWorkflowDefinitionEntityServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24vd29ya2Zsb3ctZGVmaW5pdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsb0RBQW9ELEVBQ3BELHdEQUF3RCxHQUN6RCxNQUFNLCtCQUErQixDQUFDOztBQWF2QyxNQUFNLE9BQU8sbURBQW1EOytHQUFuRCxtREFBbUQ7Z0hBQW5ELG1EQUFtRDtnSEFBbkQsbURBQW1ELGFBUG5EO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLG9EQUFvRDtnQkFDN0QsUUFBUSxFQUFFLHdEQUF3RDthQUNuRTtTQUNGOzs0RkFFVSxtREFBbUQ7a0JBWC9ELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsb0RBQW9EOzRCQUM3RCxRQUFRLEVBQUUsd0RBQXdEO3lCQUNuRTtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0RlZmluaXRpb25FbnRpdHlTZXJ2aWNlLFxuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0RlZmluaXRpb25FbnRpdHlTZXJ2aWNlSW1wbCxcbn0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eVNlcnZpY2UsXG4gICAgICB1c2VDbGFzczogQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5U2VydmljZUltcGwsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dEZWZpbml0aW9uRW50aXR5TW9kdWxlIHt9XG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPWorkflowManager } from '@acorex/platform/workflow';\nimport { AXToastService } from '@acorex/components/toast';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * Execute Workflow Command\n *\n * Starts and manages workflow execution from entity list.\n * Handles the complete workflow lifecycle including frontend/backend activities.\n */\nexport class ExecuteWorkflowCommand {\n constructor() {\n //#region ---- Services ----\n this.workflowManager = inject(AXPWorkflowManager);\n this.toastService = inject(AXToastService);\n }\n //#endregion\n //#region ---- Command Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteWorkflowCommand] Starting workflow: ${input.workflowId}`);\n // Start workflow execution\n const result = await this.workflowManager.start(input.workflowId, input.input || {});\n if (!result.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: result.error || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: result.error || 'Unknown error'\n },\n data: {\n instanceId: result.instanceId || '',\n output: null,\n }\n };\n }\n // Handle workflow execution loop\n let currentResult = result;\n while (currentResult.nextTask) {\n const task = currentResult.nextTask;\n console.log(`[ExecuteWorkflowCommand] Executing frontend task: ${task.activityType}`);\n // Execute frontend task\n const { output, outcome } = await this.workflowManager.execute(task);\n // Complete task and get next\n currentResult = await this.workflowManager.complete(currentResult.instanceId, task, outcome, output);\n if (!currentResult.success) {\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Failed',\n content: currentResult.error || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: currentResult.error || 'Unknown error'\n },\n data: {\n instanceId: currentResult.instanceId || '',\n output: null,\n }\n };\n }\n }\n // Workflow completed successfully\n console.log(`[ExecuteWorkflowCommand] Workflow completed:`, currentResult.state?.output);\n this.toastService.show({\n color: 'success',\n title: 'Workflow Completed',\n content: 'Workflow executed successfully',\n closeButton: true,\n timeOut: 3000,\n });\n return {\n success: true,\n data: {\n instanceId: currentResult.instanceId,\n output: currentResult.state?.output,\n }\n };\n }\n catch (error) {\n console.error(`[ExecuteWorkflowCommand] Error:`, error);\n this.toastService.show({\n color: 'danger',\n title: 'Workflow Execution Error',\n content: error.message || 'Unknown error',\n closeButton: true,\n timeOut: 5000,\n });\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error'\n },\n data: {\n instanceId: '',\n output: null,\n }\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteWorkflowCommand, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS13b3JrZmxvdy5jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL2NvbW1hbmRzL2V4ZWN1dGUtd29ya2Zsb3cuY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBa0MxRCxZQUFZO0FBRVo7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRG5DO1FBRUUsZ0NBQWdDO1FBRWYsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXFIeEQ7SUFuSEMsWUFBWTtJQUVaLDhDQUE4QztJQUU5QyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQTJCO1FBQ3ZDLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsK0NBQStDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBRS9FLDJCQUEyQjtZQUMzQixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUVyRixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztvQkFDckIsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsS0FB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TyxFQUFFLElBQUk7YUFDZCxDQUFDLENBQUM7WUFFSCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxlQUFlO2lCQUN2QztnQkFDRCxJQUFJLEVBQUU7b0JBQ0osVUFBVSxFQUFFLEVBQUU7b0JBQ2QsTUFBTSxFQUFFLElBQUk7aUJBQ2I7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBdEhVLHNCQUFzQjttSEFBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUFdvcmtmbG93TWFuYWdlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBFeGVjdXRlV29ya2Zsb3cgY29tbWFuZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVXb3JrZmxvd0lucHV0IHtcbiAgLyoqXG4gICAqIFdvcmtmbG93IG5hbWUgKHVuaXF1ZSBrZXkpXG4gICAqL1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgaW5wdXQgZGF0YVxuICAgKi9cbiAgaW5wdXQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKipcbiAqIE91dHB1dCBmb3IgRXhlY3V0ZVdvcmtmbG93IGNvbW1hbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlV29ya2Zsb3dPdXRwdXQge1xuICAvKipcbiAgICogSW5zdGFuY2UgSURcbiAgICovXG4gIGluc3RhbmNlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgb3V0cHV0XG4gICAqL1xuICBvdXRwdXQ6IGFueTtcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogRXhlY3V0ZSBXb3JrZmxvdyBDb21tYW5kXG4gKiBcbiAqIFN0YXJ0cyBhbmQgbWFuYWdlcyB3b3JrZmxvdyBleGVjdXRpb24gZnJvbSBlbnRpdHkgbGlzdC5cbiAqIEhhbmRsZXMgdGhlIGNvbXBsZXRlIHdvcmtmbG93IGxpZmVjeWNsZSBpbmNsdWRpbmcgZnJvbnRlbmQvYmFja2VuZCBhY3Rpdml0aWVzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXhlY3V0ZVdvcmtmbG93Q29tbWFuZCBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8RXhlY3V0ZVdvcmtmbG93SW5wdXQsIEV4ZWN1dGVXb3JrZmxvd091dHB1dD4ge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya2Zsb3dNYW5hZ2VyID0gaW5qZWN0KEFYUFdvcmtmbG93TWFuYWdlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RTZXJ2aWNlID0gaW5qZWN0KEFYVG9hc3RTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDogRXhlY3V0ZVdvcmtmbG93SW5wdXQpOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PEV4ZWN1dGVXb3JrZmxvd091dHB1dD4+IHtcbiAgICB0cnkge1xuICAgICAgY29uc29sZS5sb2coYFtFeGVjdXRlV29ya2Zsb3dDb21tYW5kXSBTdGFydGluZyB3b3JrZmxvdzogJHtpbnB1dC53b3JrZmxvd0lkfWApO1xuXG4gICAgICAvLyBTdGFydCB3b3JrZmxvdyBleGVjdXRpb25cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLnN0YXJ0KGlucHV0LndvcmtmbG93SWQsIGlucHV0LmlucHV0IHx8IHt9KTtcblxuICAgICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgdGl0bGU6ICdXb3JrZmxvdyBFeGVjdXRpb24gRmFpbGVkJyxcbiAgICAgICAgICBjb250ZW50OiByZXN1bHQuZXJyb3IgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICAgIHRpbWVPdXQ6IDUwMDAsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgICAgdGV4dDogcmVzdWx0LmVycm9yIHx8ICdVbmtub3duIGVycm9yJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgaW5zdGFuY2VJZDogcmVzdWx0Lmluc3RhbmNlSWQgfHwgJycsXG4gICAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgd29ya2Zsb3cgZXhlY3V0aW9uIGxvb3BcbiAgICAgIGxldCBjdXJyZW50UmVzdWx0ID0gcmVzdWx0O1xuICAgICAgd2hpbGUgKGN1cnJlbnRSZXN1bHQubmV4dFRhc2spIHtcbiAgICAgICAgY29uc3QgdGFzayA9IGN1cnJlbnRSZXN1bHQubmV4dFRhc2s7XG5cbiAgICAgICAgY29uc29sZS5sb2coYFtFeGVjdXRlV29ya2Zsb3dDb21tYW5kXSBFeGVjdXRpbmcgZnJvbnRlbmQgdGFzazogJHt0YXNrLmFjdGl2aXR5VHlwZX1gKTtcblxuICAgICAgICAvLyBFeGVjdXRlIGZyb250ZW5kIHRhc2tcbiAgICAgICAgY29uc3QgeyBvdXRwdXQsIG91dGNvbWUgfSA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLmV4ZWN1dGUodGFzayk7XG5cbiAgICAgICAgLy8gQ29tcGxldGUgdGFzayBhbmQgZ2V0IG5leHRcbiAgICAgICAgY3VycmVudFJlc3VsdCA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLmNvbXBsZXRlKFxuICAgICAgICAgIGN1cnJlbnRSZXN1bHQuaW5zdGFuY2VJZCEsXG4gICAgICAgICAgdGFzayxcbiAgICAgICAgICBvdXRjb21lLFxuICAgICAgICAgIG91dHB1dFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghY3VycmVudFJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgICAgICBjb2xvcjogJ2RhbmdlcicsXG4gICAgICAgICAgICB0aXRsZTogJ1dvcmtmbG93IEV4ZWN1dGlvbiBGYWlsZWQnLFxuICAgICAgICAgICAgY29udGVudDogY3VycmVudFJlc3VsdC5lcnJvciB8fCAnVW5rbm93biBlcnJvcicsXG4gICAgICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgICAgIHRpbWVPdXQ6IDUwMDAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgICAgIHRleHQ6IGN1cnJlbnRSZXN1bHQuZXJyb3IgfHwgJ1Vua25vd24gZXJyb3InXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBpbnN0YW5jZUlkOiBjdXJyZW50UmVzdWx0Lmluc3RhbmNlSWQgfHwgJycsXG4gICAgICAgICAgICAgIG91dHB1dDogbnVsbCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFdvcmtmbG93IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHlcbiAgICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZVdvcmtmbG93Q29tbWFuZF0gV29ya2Zsb3cgY29tcGxldGVkOmAsIGN1cnJlbnRSZXN1bHQuc3RhdGU/Lm91dHB1dCk7XG5cbiAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLnNob3coe1xuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICB0aXRsZTogJ1dvcmtmbG93IENvbXBsZXRlZCcsXG4gICAgICAgIGNvbnRlbnQ6ICdXb3JrZmxvdyBleGVjdXRlZCBzdWNjZXNzZnVsbHknLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogMzAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaW5zdGFuY2VJZDogY3VycmVudFJlc3VsdC5pbnN0YW5jZUlkISxcbiAgICAgICAgICBvdXRwdXQ6IGN1cnJlbnRSZXN1bHQuc3RhdGU/Lm91dHB1dCxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbRXhlY3V0ZVdvcmtmbG93Q29tbWFuZF0gRXJyb3I6YCwgZXJyb3IpO1xuXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5zaG93KHtcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICB0aXRsZTogJ1dvcmtmbG93IEV4ZWN1dGlvbiBFcnJvcicsXG4gICAgICAgIGNvbnRlbnQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICBjbG9zZUJ1dHRvbjogdHJ1ZSxcbiAgICAgICAgdGltZU91dDogNTAwMCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpbnN0YW5jZUlkOiAnJyxcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ==","import { AXPWidgetsList } from '@acorex/modules/common';\nimport { AXPEntityCommandScope, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nexport async function factory(injector) {\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workflowDefinition.name,\n title: RootConfig.entities.workflowDefinition.title,\n icon: RootConfig.entities.workflowDefinition.icon,\n formats: {\n individual: RootConfig.entities.workflowDefinition.title,\n plural: RootConfig.entities.workflowDefinition.titlePlural,\n displayName: '{{ title || name }}',\n searchResult: {\n title: '{{ title || name }}',\n description: '{{ description }}',\n },\n },\n plugins: [{ name: 'history' }, { name: 'lock' }, { name: 'archive' }],\n groups: [\n {\n id: 'basicInfo',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.basic-info',\n },\n {\n id: 'configuration',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.configuration',\n },\n {\n id: 'metadata',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.groups.metadata',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'metadata',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }, { rule: 'unique' }],\n },\n {\n name: 'title',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'description',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.description.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 3,\n placeholder: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.description.placeholder',\n },\n },\n },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.version.title',\n groupId: 'metadata',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'isLatest',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-latest.title',\n groupId: 'metadata',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n readonly: true,\n },\n options: {\n filter: { inline: { enabled: true } },\n },\n },\n {\n name: 'isPublished',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-published.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n },\n options: {\n filter: { inline: { enabled: true } },\n },\n },\n {\n name: 'isReadonly',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-readonly.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n },\n },\n {\n name: 'isSystem',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-system.title',\n groupId: 'configuration',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.toggle,\n },\n readonly: true,\n },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.created-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n ],\n columns: [\n {\n name: 'title',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.title.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.name.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.version.title',\n showAs: { type: AXPWidgetsCatalog.number },\n options: { width: '100px' },\n },\n {\n name: 'isLatest',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-latest.title',\n showAs: { type: AXPWidgetsCatalog.toggle, options: { trueText: 'Latest', falseText: '-' } },\n options: { width: '100px' },\n },\n {\n name: 'isPublished',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.is-published.title',\n showAs: { type: AXPWidgetsCatalog.toggle },\n options: { width: '120px' },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-definitions.entities.workflow-definition.fields.created-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basicInfo' }, { id: 'configuration' }],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basicInfo' }, { id: 'configuration' }],\n properties: [\n { name: 'definitionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 4 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 4 } } } },\n ],\n },\n single: {\n title: '{{ name }}',\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'configuration', order: 2, layout: { positions: { lg: { colSpan: 6 } } } },\n { id: 'metadata', order: 3, layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n properties: [\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12 } } } },\n { name: 'version', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isLatest', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isPublished', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isReadonly', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'isSystem', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [\n ...entityMasterCrudActions(),\n {\n title: '@workflow-management:workflow-definitions.actions.execute.title',\n name: 'execute-workflow',\n command: {\n name: 'WorkflowManagement.WorkflowDefinition:Execute',\n options: {\n workflowId: '{{ context.eval(\"name\") }}',\n input: {},\n },\n },\n icon: 'fa-light fa-play',\n color: 'success',\n priority: 'primary',\n type: 'execute',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [createAllQueryView({ sorts: [{ name: 'createdAt', dir: 'desc' }] })],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24vd29ya2Zsb3ctZGVmaW5pdGlvbi5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hELE9BQU8sRUFBYSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBQUMsUUFBa0I7SUFDOUMsTUFBTSxTQUFTLEdBQWM7UUFDM0IsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUM5QixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJO1FBQ2pELEtBQUssRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDbkQsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSTtRQUNqRCxPQUFPLEVBQUU7WUFDUCxVQUFVLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO1lBQ3hELE1BQU0sRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVc7WUFDMUQsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxZQUFZLEVBQUU7Z0JBQ1osS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsV0FBVyxFQUFFLG1CQUFtQjthQUNqQztTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsRUFBRSxFQUFFLFdBQVc7Z0JBQ2YsS0FBSyxFQUFFLDBGQUEwRjthQUNsRztZQUNEO2dCQUNFLEVBQUUsRUFBRSxlQUFlO2dCQUNuQixLQUFLLEVBQUUsNkZBQTZGO2FBQ3JHO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsS0FBSyxFQUFFLHdGQUF3RjthQUNoRztTQUNGO1FBQ0QsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtpQkFDMUI7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSwwRkFBMEY7Z0JBQ2pHLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTt3QkFDNUIsT0FBTyxFQUFFOzRCQUNQLFdBQVcsRUFDVCxnR0FBZ0c7eUJBQ25HO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTtnQkFDRCxXQUFXLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUN4RDtZQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLEtBQUssRUFBRSwyRkFBMkY7Z0JBQ2xHLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTt3QkFDNUIsT0FBTyxFQUFFOzRCQUNQLFdBQVcsRUFDVCxpR0FBaUc7eUJBQ3BHO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSxpR0FBaUc7Z0JBQ3hHLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZO3dCQUN6QyxPQUFPLEVBQUU7NEJBQ1AsSUFBSSxFQUFFLENBQUM7NEJBQ1AsV0FBVyxFQUNULHVHQUF1Rzt5QkFDMUc7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSw2RkFBNkY7Z0JBQ3BHLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtxQkFDL0I7b0JBQ0QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDdkM7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUUsK0ZBQStGO2dCQUN0RyxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxTQUFTO29CQUNuQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07cUJBQy9CO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7aUJBQ3RDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLGtHQUFrRztnQkFDekcsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsU0FBUztvQkFDbkIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO3FCQUMvQjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN0QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSxpR0FBaUc7Z0JBQ3hHLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtxQkFDL0I7aUJBQ0Y7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUUsK0ZBQStGO2dCQUN0RyxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxTQUFTO29CQUNuQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU07cUJBQy9CO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLGdHQUFnRztnQkFDdkcsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO3FCQUNqQztvQkFDRCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN2QzthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUDtnQkFDRSxJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsMkZBQTJGO2dCQUNsRyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLDBGQUEwRjtnQkFDakcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTthQUN6QztZQUNEO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSw2RkFBNkY7Z0JBQ3BHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7YUFDNUI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLCtGQUErRjtnQkFDdEcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0YsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUM1QjtZQUNEO2dCQUNFLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsa0dBQWtHO2dCQUN6RyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxFQUFFO2dCQUMxQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQzVCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7YUFDNUI7U0FDRjtRQUNELFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLENBQUM7b0JBQ3hELFVBQVUsRUFBRTt3QkFDVixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDL0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ2hFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN2RSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDdEUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7cUJBQ3RFO2lCQUNGO2dCQUNELE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQztvQkFDeEQsVUFBVSxFQUFFO3dCQUNWLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN2RSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDL0QsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3ZFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN0RSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDdEU7aUJBQ0Y7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxZQUFZO29CQUNuQixRQUFRLEVBQUU7d0JBQ1IsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDN0UsRUFBRSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDaEYsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDNUU7b0JBQ0QsVUFBVSxFQUFFO3dCQUNWLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUMvRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDaEUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3ZFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNsRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbkUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3RFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNyRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbkUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7cUJBQ3JFO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcseUJBQXlCLEVBQUUsQ0FBQztpQkFDMUM7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE9BQU8sRUFBRTt3QkFDUCxHQUFHLHVCQUF1QixFQUFFO3dCQUM1Qjs0QkFDRSxLQUFLLEVBQUUsaUVBQWlFOzRCQUN4RSxJQUFJLEVBQUUsa0JBQWtCOzRCQUN4QixPQUFPLEVBQUU7Z0NBQ1AsSUFBSSxFQUFFLCtDQUErQztnQ0FDckQsT0FBTyxFQUFFO29DQUNQLFVBQVUsRUFBRSw0QkFBNEI7b0NBQ3hDLEtBQUssRUFBRSxFQUFFO2lDQUNWOzZCQUNGOzRCQUNELElBQUksRUFBRSxrQkFBa0I7NEJBQ3hCLEtBQUssRUFBRSxTQUFTOzRCQUNoQixRQUFRLEVBQUUsU0FBUzs0QkFDbkIsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFVBQVU7eUJBQ3hDO3FCQUNGO29CQUNELEtBQUssRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDN0U7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFBXaWRnZXRzTGlzdCB9IGZyb20gJ0BhY29yZXgvbW9kdWxlcy9jb21tb24nO1xuaW1wb3J0IHsgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIGNyZWF0ZUFsbFF1ZXJ5VmlldyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGVudGl0eU1hc3RlckNydWRBY3Rpb25zLCBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICBjb25zdCBlbnRpdHlEZWY6IEFYUEVudGl0eSA9IHtcbiAgICBtb2R1bGU6IFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgbmFtZTogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZSxcbiAgICB0aXRsZTogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24udGl0bGUsXG4gICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24uaWNvbixcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpbmRpdmlkdWFsOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi50aXRsZSxcbiAgICAgIHBsdXJhbDogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24udGl0bGVQbHVyYWwsXG4gICAgICBkaXNwbGF5TmFtZTogJ3t7IHRpdGxlIHx8IG5hbWUgfX0nLFxuICAgICAgc2VhcmNoUmVzdWx0OiB7XG4gICAgICAgIHRpdGxlOiAne3sgdGl0bGUgfHwgbmFtZSB9fScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAne3sgZGVzY3JpcHRpb24gfX0nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFt7IG5hbWU6ICdoaXN0b3J5JyB9LCB7IG5hbWU6ICdsb2NrJyB9LCB7IG5hbWU6ICdhcmNoaXZlJyB9XSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZ3JvdXBzLmJhc2ljLWluZm8nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmdyb3Vwcy5jb25maWd1cmF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnbWV0YWRhdGEnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZ3JvdXBzLm1ldGFkYXRhJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHRpdGxlOiAnSUQnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3V1aWQnLFxuICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgIG51bGxhYmxlOiBmYWxzZSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgICB1bmlxdWU6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLm5hbWUudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLm5hbWUucGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRpb25zOiBbeyBydWxlOiAncmVxdWlyZWQnIH0sIHsgcnVsZTogJ3VuaXF1ZScgfV0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLnRpdGxlLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ2Jhc2ljSW5mbycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAgICAgICAgICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy50aXRsZS5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZXNjcmlwdGlvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMuZGVzY3JpcHRpb24udGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0xpc3QuRWRpdG9ycy5MYXJnZVRleHRCb3gsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHJvd3M6IDMsXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyOlxuICAgICAgICAgICAgICAgICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMudmVyc2lvbi50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNMYXRlc3QnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLWxhdGVzdC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGZpbHRlcjogeyBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNQdWJsaXNoZWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLXB1Ymxpc2hlZC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgZmlsdGVyOiB7IGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpc1JlYWRvbmx5JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1yZWFkb25seS50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdjb25maWd1cmF0aW9uJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lzU3lzdGVtJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1zeXN0ZW0udGl0bGUnLFxuICAgICAgICBncm91cElkOiAnY29uZmlndXJhdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmNyZWF0ZWQtYXQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZGF0ZVRpbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbHVtbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy50aXRsZS50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMubmFtZS50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMudmVyc2lvbi50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5udW1iZXIgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEwMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lzTGF0ZXN0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1kZWZpbml0aW9ucy5lbnRpdGllcy53b3JrZmxvdy1kZWZpbml0aW9uLmZpZWxkcy5pcy1sYXRlc3QudGl0bGUnLFxuICAgICAgICBzaG93QXM6IHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudG9nZ2xlLCBvcHRpb25zOiB7IHRydWVUZXh0OiAnTGF0ZXN0JywgZmFsc2VUZXh0OiAnLScgfSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTAwcHgnIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNQdWJsaXNoZWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmVudGl0aWVzLndvcmtmbG93LWRlZmluaXRpb24uZmllbGRzLmlzLXB1Ymxpc2hlZC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEyMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctZGVmaW5pdGlvbnMuZW50aXRpZXMud29ya2Zsb3ctZGVmaW5pdGlvbi5maWVsZHMuY3JlYXRlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIGNyZWF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbeyBpZDogJ2Jhc2ljSW5mbycgfSwgeyBpZDogJ2NvbmZpZ3VyYXRpb24nIH1dLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RpdGxlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzUHVibGlzaGVkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1JlYWRvbmx5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFt7IGlkOiAnYmFzaWNJbmZvJyB9LCB7IGlkOiAnY29uZmlndXJhdGlvbicgfV0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAgeyBuYW1lOiAnZGVmaW5pdGlvbklkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICduYW1lJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzUHVibGlzaGVkJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1JlYWRvbmx5JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA0IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgc2luZ2xlOiB7XG4gICAgICAgICAgdGl0bGU6ICd7eyBuYW1lIH19JyxcbiAgICAgICAgICBzZWN0aW9uczogW1xuICAgICAgICAgICAgeyBpZDogJ2Jhc2ljSW5mbycsIG9yZGVyOiAxLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDEyIH0gfSB9IH0sXG4gICAgICAgICAgICB7IGlkOiAnY29uZmlndXJhdGlvbicsIG9yZGVyOiAyLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgaWQ6ICdtZXRhZGF0YScsIG9yZGVyOiAzLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3RpdGxlJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdkZXNjcmlwdGlvbicsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3ZlcnNpb24nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2lzTGF0ZXN0JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpc1B1Ymxpc2hlZCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNSZWFkb25seScsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnaXNTeXN0ZW0nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2NyZWF0ZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlclJlY29yZEFjdGlvbnMoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAuLi5lbnRpdHlNYXN0ZXJDcnVkQWN0aW9ucygpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWRlZmluaXRpb25zLmFjdGlvbnMuZXhlY3V0ZS50aXRsZScsXG4gICAgICAgICAgICAgIG5hbWU6ICdleGVjdXRlLXdvcmtmbG93JyxcbiAgICAgICAgICAgICAgY29tbWFuZDoge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdXb3JrZmxvd01hbmFnZW1lbnQuV29ya2Zsb3dEZWZpbml0aW9uOkV4ZWN1dGUnLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHdvcmtmbG93SWQ6ICd7eyBjb250ZXh0LmV2YWwoXCJuYW1lXCIpIH19JyxcbiAgICAgICAgICAgICAgICAgIGlucHV0OiB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpY29uOiAnZmEtbGlnaHQgZmEtcGxheScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnc3VjY2VzcycsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdleGVjdXRlJyxcbiAgICAgICAgICAgICAgc2NvcGU6IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHZpZXdzOiBbY3JlYXRlQWxsUXVlcnlWaWV3KHsgc29ydHM6IFt7IG5hbWU6ICdjcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XSB9KV0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGVudGl0eURlZjtcbn1cbiJdfQ==","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowInstanceEntityService extends AXMEntityCrudServiceImpl {\n}\nexport class AXMWorkflowManagementWorkflowInstanceEntityServiceImpl extends AXMWorkflowManagementWorkflowInstanceEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.workflowInstance.name}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXRpZXMvd29ya2Zsb3ctaW5zdGFuY2Uvd29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBR3pDLE1BQU0sT0FBZ0Isa0RBQW1ELFNBQVEsd0JBR2hGO0NBQUc7QUFHSixNQUFNLE9BQU8sc0RBQXVELFNBQVEsa0RBQWtEO0lBQzVIO1FBQ0UsS0FBSyxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7K0dBSFUsc0RBQXNEO21IQUF0RCxzREFBc0Q7OzRGQUF0RCxzREFBc0Q7a0JBRGxFLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGwgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlNb2RlbCB9IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2UudHlwZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eVNlcnZpY2UgZXh0ZW5kcyBBWE1FbnRpdHlDcnVkU2VydmljZUltcGw8XG4gIHN0cmluZyxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eU1vZGVsXG4+IHt9XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZUltcGwgZXh0ZW5kcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKGAke1Jvb3RDb25maWcubW9kdWxlLm5hbWV9LiR7Um9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLm5hbWV9YCk7XG4gIH1cbn1cblxuIl19","import { NgModule } from '@angular/core';\nimport { AXMWorkflowManagementWorkflowInstanceEntityService, AXMWorkflowManagementWorkflowInstanceEntityServiceImpl, } from './workflow-instance.service';\nimport * as i0 from \"@angular/core\";\nexport class AXMWorkflowManagementWorkflowInstanceEntityModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, providers: [\n {\n provide: AXMWorkflowManagementWorkflowInstanceEntityService,\n useClass: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl,\n },\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementWorkflowInstanceEntityModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMWorkflowManagementWorkflowInstanceEntityService,\n useClass: AXMWorkflowManagementWorkflowInstanceEntityServiceImpl,\n },\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZS93b3JrZmxvdy1pbnN0YW5jZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsa0RBQWtELEVBQ2xELHNEQUFzRCxHQUN2RCxNQUFNLDZCQUE2QixDQUFDOztBQWFyQyxNQUFNLE9BQU8saURBQWlEOytHQUFqRCxpREFBaUQ7Z0hBQWpELGlEQUFpRDtnSEFBakQsaURBQWlELGFBUGpEO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGtEQUFrRDtnQkFDM0QsUUFBUSxFQUFFLHNEQUFzRDthQUNqRTtTQUNGOzs0RkFFVSxpREFBaUQ7a0JBWDdELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsa0RBQWtEOzRCQUMzRCxRQUFRLEVBQUUsc0RBQXNEO3lCQUNqRTtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSxcbiAgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eVNlcnZpY2VJbXBsLFxufSBmcm9tICcuL3dvcmtmbG93LWluc3RhbmNlLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZXhwb3J0czogW10sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlTZXJ2aWNlLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93SW5zdGFuY2VFbnRpdHlTZXJ2aWNlSW1wbCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5TW9kdWxlIHt9XG5cbiJdfQ==","import { AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { RootConfig } from '../../const';\nimport { AXMWorkflowManagementWorkflowInstanceEntityService } from './workflow-instance.service';\nexport async function factory(injector) {\n const dataService = injector.get(AXMWorkflowManagementWorkflowInstanceEntityService);\n const entityDef = {\n module: RootConfig.module.name,\n name: RootConfig.entities.workflowInstance.name,\n title: RootConfig.entities.workflowInstance.title,\n icon: RootConfig.entities.workflowInstance.icon,\n formats: {\n individual: RootConfig.entities.workflowInstance.title,\n plural: RootConfig.entities.workflowInstance.titlePlural,\n displayName: '{{ name || definitionId }}',\n searchResult: {\n title: '{{ name || definitionId }}',\n description: '{{ status }} - {{ subStatus }}',\n },\n },\n plugins: [{ name: 'history' }],\n groups: [\n {\n id: 'basicInfo',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.basic-info',\n },\n {\n id: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.status',\n },\n {\n id: 'metadata',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.groups.metadata',\n },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'metadata',\n schema: {\n dataType: 'uuid',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'definitionId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.status.title',\n groupId: 'status',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'Running', text: '@workflow-management:workflow-instances.states.running' },\n { value: 'Finished', text: '@workflow-management:workflow-instances.states.finished' },\n ],\n },\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'subStatus',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.sub-status.title',\n groupId: 'status',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'Pending', text: '@workflow-management:workflow-instances.states.pending' },\n { value: 'Executing', text: '@workflow-management:workflow-instances.states.executing' },\n { value: 'Suspended', text: '@workflow-management:workflow-instances.states.suspended' },\n { value: 'Finished', text: '@workflow-management:workflow-instances.states.finished' },\n { value: 'Cancelled', text: '@workflow-management:workflow-instances.states.cancelled' },\n { value: 'Faulted', text: '@workflow-management:workflow-instances.states.faulted' },\n ],\n },\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'correlationId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.correlation-id.title',\n groupId: 'basicInfo',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@workflow-management:workflow-instances.entities.workflow-instance.fields.correlation-id.placeholder',\n },\n },\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n },\n {\n name: 'version',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.version.title',\n groupId: 'metadata',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'incidentCount',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.incident-count.title',\n groupId: 'status',\n schema: {\n dataType: 'number',\n interface: {\n type: AXPWidgetsCatalog.number,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.created-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'updatedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.updated-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n {\n name: 'finishedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.finished-at.title',\n groupId: 'metadata',\n schema: {\n dataType: 'date',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n },\n readonly: true,\n },\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true } },\n },\n },\n ],\n columns: [\n {\n name: 'definitionId',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.definition-id.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'name',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.name.title',\n showAs: { type: AXPWidgetsCatalog.text },\n },\n {\n name: 'status',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.status.title',\n showAs: { type: AXPWidgetsCatalog.text },\n options: { width: '120px' },\n },\n {\n name: 'subStatus',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.sub-status.title',\n showAs: { type: AXPWidgetsCatalog.text },\n options: { width: '140px' },\n },\n {\n name: 'incidentCount',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.incident-count.title',\n showAs: { type: AXPWidgetsCatalog.number },\n options: { width: '100px' },\n },\n {\n name: 'createdAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.created-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n {\n name: 'finishedAt',\n title: '@workflow-management:workflow-instances.entities.workflow-instance.fields.finished-at.title',\n showAs: { type: AXPWidgetsCatalog.dateTime },\n options: { width: '180px' },\n },\n ],\n commands: {\n delete: {\n execute: async (id) => await dataService.deleteOne(id),\n },\n },\n queries: {\n byKey: {\n execute: async (id) => {\n const item = await dataService.getOne(id);\n return item;\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{ name || definitionId }}',\n sections: [\n { id: 'basicInfo', order: 1, layout: { positions: { lg: { colSpan: 12 } } } },\n { id: 'status', order: 2, layout: { positions: { lg: { colSpan: 6 } } } },\n { id: 'metadata', order: 3, layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n properties: [\n { name: 'definitionId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'correlationId', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'version', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'status', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'subStatus', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'incidentCount', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'createdAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'updatedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n { name: 'finishedAt', layout: { positions: { lg: { colSpan: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'createdAt', dir: 'desc' }] })],\n },\n },\n },\n };\n return entityDef;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UuZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9lbnRpdGllcy93b3JrZmxvdy1pbnN0YW5jZS93b3JrZmxvdy1pbnN0YW5jZS5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFakcsTUFBTSxDQUFDLEtBQUssVUFBVSxPQUFPLENBQUMsUUFBa0I7SUFDOUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBRXJGLE1BQU0sU0FBUyxHQUFjO1FBQzNCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDOUIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSTtRQUMvQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ2pELElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUk7UUFDL0MsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSztZQUN0RCxNQUFNLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQ3hELFdBQVcsRUFBRSw0QkFBNEI7WUFDekMsWUFBWSxFQUFFO2dCQUNaLEtBQUssRUFBRSw0QkFBNEI7Z0JBQ25DLFdBQVcsRUFBRSxnQ0FBZ0M7YUFDOUM7U0FDRjtRQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLEVBQUUsRUFBRSxXQUFXO2dCQUNmLEtBQUssRUFBRSxzRkFBc0Y7YUFDOUY7WUFDRDtnQkFDRSxFQUFFLEVBQUUsUUFBUTtnQkFDWixLQUFLLEVBQUUsa0ZBQWtGO2FBQzFGO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLFVBQVU7Z0JBQ2QsS0FBSyxFQUFFLG9GQUFvRjthQUM1RjtTQUNGO1FBQ0QsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLElBQUk7b0JBQ2QsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtpQkFDMUI7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsK0ZBQStGO2dCQUN0RyxPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7d0JBQzVCLE9BQU8sRUFBRTs0QkFDUCxXQUFXLEVBQ1QscUdBQXFHO3lCQUN4RztxQkFDRjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDbEU7Z0JBQ0QsV0FBVyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDcEM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsc0ZBQXNGO2dCQUM3RixPQUFPLEVBQUUsV0FBVztnQkFDcEIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxRQUFRO29CQUNsQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUk7d0JBQzVCLE9BQU8sRUFBRTs0QkFDUCxXQUFXLEVBQ1QsNEZBQTRGO3lCQUMvRjtxQkFDRjtpQkFDRjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDbEU7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSx3RkFBd0Y7Z0JBQy9GLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTt3QkFDOUIsT0FBTyxFQUFFOzRCQUNQLFVBQVUsRUFBRSxPQUFPOzRCQUNuQixTQUFTLEVBQUUsTUFBTTs0QkFDakIsVUFBVSxFQUFFO2dDQUNWLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7Z0NBQ3BGLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUseURBQXlELEVBQUU7NkJBQ3ZGO3lCQUNGO3FCQUNGO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLEtBQUssRUFBRSw0RkFBNEY7Z0JBQ25HLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTt3QkFDOUIsT0FBTyxFQUFFOzRCQUNQLFVBQVUsRUFBRSxPQUFPOzRCQUNuQixTQUFTLEVBQUUsTUFBTTs0QkFDakIsVUFBVSxFQUFFO2dDQUNWLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7Z0NBQ3BGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUseURBQXlELEVBQUU7Z0NBQ3RGLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsMERBQTBELEVBQUU7Z0NBQ3hGLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsd0RBQXdELEVBQUU7NkJBQ3JGO3lCQUNGO3FCQUNGO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSTt3QkFDNUIsT0FBTyxFQUFFOzRCQUNQLFdBQVcsRUFDVCxzR0FBc0c7eUJBQ3pHO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUNsRTthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsS0FBSyxFQUFFLHlGQUF5RjtnQkFDaEcsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO3FCQUMvQjtvQkFDRCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtxQkFDL0I7b0JBQ0QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDdkM7YUFDRjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsNEZBQTRGO2dCQUNuRyxPQUFPLEVBQUUsVUFBVTtnQkFDbkIsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxNQUFNO29CQUNoQixTQUFTLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVE7cUJBQ2pDO29CQUNELFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO29CQUN2QixNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQUU7aUJBQ3ZDO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLDRGQUE0RjtnQkFDbkcsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsTUFBTTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNULElBQUksRUFBRSxpQkFBaUIsQ0FBQyxRQUFRO3FCQUNqQztvQkFDRCxRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtvQkFDdkIsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFO2lCQUN2QzthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLEtBQUssRUFBRSw2RkFBNkY7Z0JBQ3BHLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLE1BQU07b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVCxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUTtxQkFDakM7b0JBQ0QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3ZCLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtpQkFDdkM7YUFDRjtTQUNGO1FBQ0QsT0FBTyxFQUFFO1lBQ1A7Z0JBQ0UsSUFBSSxFQUFFLGNBQWM7Z0JBQ3BCLEtBQUssRUFBRSwrRkFBK0Y7Z0JBQ3RHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUU7YUFDekM7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsc0ZBQXNGO2dCQUM3RixNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2FBQ3pDO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLHdGQUF3RjtnQkFDL0YsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLElBQUksRUFBRTtnQkFDeEMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUM1QjtZQUNEO2dCQUNFLElBQUksRUFBRSxXQUFXO2dCQUNqQixLQUFLLEVBQUUsNEZBQTRGO2dCQUNuRyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxFQUFFO2dCQUN4QyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQzVCO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLEtBQUssRUFBRSxnR0FBZ0c7Z0JBQ3ZHLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFDLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7YUFDNUI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLDRGQUE0RjtnQkFDbkcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtnQkFDNUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUM1QjtZQUNEO2dCQUNFLElBQUksRUFBRSxZQUFZO2dCQUNsQixLQUFLLEVBQUUsNkZBQTZGO2dCQUNwRyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dCQUM1QyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2FBQzVCO1NBQ0Y7UUFDRCxRQUFRLEVBQUU7WUFDUixNQUFNLEVBQUU7Z0JBQ04sT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFPLEVBQUUsRUFBRSxDQUFDLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7YUFDNUQ7U0FDRjtRQUNELE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRTtnQkFDTCxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQVUsRUFBRSxFQUFFO29CQUM1QixNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFDLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07YUFDaEM7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFNLEVBQUUsRUFBRTtvQkFDeEIsT0FBTyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUk7YUFDOUI7U0FDRjtRQUNELFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRTtnQkFDTixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLDRCQUE0QjtvQkFDbkMsUUFBUSxFQUFFO3dCQUNSLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQzdFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3pFLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7cUJBQzVFO29CQUNELFVBQVUsRUFBRTt3QkFDVixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDdkUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQy9ELEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUN4RSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDbEUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ2pFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNwRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTt3QkFDeEUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7d0JBQ3BFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO3dCQUNwRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtxQkFDdEU7b0JBQ0QsT0FBTyxFQUFFLENBQUMsR0FBRyx5QkFBeUIsRUFBRSxDQUFDO2lCQUMxQztnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsRUFBRSxDQUFDO29CQUN2QyxLQUFLLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzdFO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQV2lkZ2V0c0xpc3QgfSBmcm9tICdAYWNvcmV4L21vZHVsZXMvY29tbW9uJztcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQRW50aXR5Q29tbWFuZFNjb3BlLCBBWFBFbnRpdHlRdWVyeVR5cGUsIGNyZWF0ZUFsbFF1ZXJ5VmlldyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IGVudGl0eU1hc3RlckNydWRBY3Rpb25zLCBlbnRpdHlNYXN0ZXJSZWNvcmRBY3Rpb25zIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvd2lkZ2V0LWNvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2Uuc2VydmljZSc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICBjb25zdCBkYXRhU2VydmljZSA9IGluamVjdG9yLmdldChBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5U2VydmljZSk7XG5cbiAgY29uc3QgZW50aXR5RGVmOiBBWFBFbnRpdHkgPSB7XG4gICAgbW9kdWxlOiBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIG5hbWU6IFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dJbnN0YW5jZS5uYW1lLFxuICAgIHRpdGxlOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UudGl0bGUsXG4gICAgaWNvbjogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLmljb24sXG4gICAgZm9ybWF0czoge1xuICAgICAgaW5kaXZpZHVhbDogUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0luc3RhbmNlLnRpdGxlLFxuICAgICAgcGx1cmFsOiBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93SW5zdGFuY2UudGl0bGVQbHVyYWwsXG4gICAgICBkaXNwbGF5TmFtZTogJ3t7IG5hbWUgfHwgZGVmaW5pdGlvbklkIH19JyxcbiAgICAgIHNlYXJjaFJlc3VsdDoge1xuICAgICAgICB0aXRsZTogJ3t7IG5hbWUgfHwgZGVmaW5pdGlvbklkIH19JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICd7eyBzdGF0dXMgfX0gLSB7eyBzdWJTdGF0dXMgfX0nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFt7IG5hbWU6ICdoaXN0b3J5JyB9XSxcbiAgICBncm91cHM6IFtcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5ncm91cHMuYmFzaWMtaW5mbycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ3N0YXR1cycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmdyb3Vwcy5zdGF0dXMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICdtZXRhZGF0YScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmdyb3Vwcy5tZXRhZGF0YScsXG4gICAgICB9LFxuICAgIF0sXG4gICAgcHJvcGVydGllczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICB0aXRsZTogJ0lEJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICd1dWlkJyxcbiAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICBudWxsYWJsZTogZmFsc2UsXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgICAgdW5pcXVlOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZWZpbml0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuZGVmaW5pdGlvbi1pZC50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdiYXNpY0luZm8nLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICBwbGFjZWhvbGRlcjpcbiAgICAgICAgICAgICAgICAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5kZWZpbml0aW9uLWlkLnBsYWNlaG9sZGVyJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0aW9uczogW3sgcnVsZTogJ3JlcXVpcmVkJyB9XSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLm5hbWUudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMubmFtZS5wbGFjZWhvbGRlcicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ3N0YXR1cycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnNlbGVjdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgdmFsdWVGaWVsZDogJ3ZhbHVlJyxcbiAgICAgICAgICAgICAgdGV4dEZpZWxkOiAndGV4dCcsXG4gICAgICAgICAgICAgIGRhdGFTb3VyY2U6IFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnUnVubmluZycsIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuc3RhdGVzLnJ1bm5pbmcnIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ0ZpbmlzaGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuZmluaXNoZWQnIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0sIGlubGluZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdWJTdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3ViLXN0YXR1cy50aXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdzdGF0dXMnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5zZWxlY3QsXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgIHZhbHVlRmllbGQ6ICd2YWx1ZScsXG4gICAgICAgICAgICAgIHRleHRGaWVsZDogJ3RleHQnLFxuICAgICAgICAgICAgICBkYXRhU291cmNlOiBbXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1BlbmRpbmcnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5wZW5kaW5nJyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdFeGVjdXRpbmcnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5leGVjdXRpbmcnIH0sXG4gICAgICAgICAgICAgICAgeyB2YWx1ZTogJ1N1c3BlbmRlZCcsIHRleHQ6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuc3RhdGVzLnN1c3BlbmRlZCcgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnRmluaXNoZWQnLCB0ZXh0OiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLnN0YXRlcy5maW5pc2hlZCcgfSxcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnQ2FuY2VsbGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuY2FuY2VsbGVkJyB9LFxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdGYXVsdGVkJywgdGV4dDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5zdGF0ZXMuZmF1bHRlZCcgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSwgaW5saW5lOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NvcnJlbGF0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY29ycmVsYXRpb24taWQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnYmFzaWNJbmZvJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6XG4gICAgICAgICAgICAgICAgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY29ycmVsYXRpb24taWQucGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9LCBpbmxpbmU6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndmVyc2lvbicsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy52ZXJzaW9uLnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdudW1iZXInLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpbmNpZGVudENvdW50JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmluY2lkZW50LWNvdW50LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ3N0YXR1cycsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLm51bWJlcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgc29ydDogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgZmlsdGVyOiB7IGFkdmFuY2U6IHsgZW5hYmxlZDogdHJ1ZSB9IH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmNyZWF0ZWQtYXQudGl0bGUnLFxuICAgICAgICBncm91cElkOiAnbWV0YWRhdGEnLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cuZGF0ZVRpbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIHNvcnQ6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGZpbHRlcjogeyBhZHZhbmNlOiB7IGVuYWJsZWQ6IHRydWUgfSB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy51cGRhdGVkLWF0LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdmaW5pc2hlZEF0JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1pbnN0YW5jZXMuZW50aXRpZXMud29ya2Zsb3ctaW5zdGFuY2UuZmllbGRzLmZpbmlzaGVkLWF0LnRpdGxlJyxcbiAgICAgICAgZ3JvdXBJZDogJ21ldGFkYXRhJyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdkYXRlJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLmRhdGVUaW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBzb3J0OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICBmaWx0ZXI6IHsgYWR2YW5jZTogeyBlbmFibGVkOiB0cnVlIH0gfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdkZWZpbml0aW9uSWQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuZGVmaW5pdGlvbi1pZC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0IH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5uYW1lLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzEyMHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3N1YlN0YXR1cycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5zdWItc3RhdHVzLnRpdGxlJyxcbiAgICAgICAgc2hvd0FzOiB7IHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQgfSxcbiAgICAgICAgb3B0aW9uczogeyB3aWR0aDogJzE0MHB4JyB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2luY2lkZW50Q291bnQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuaW5jaWRlbnQtY291bnQudGl0bGUnLFxuICAgICAgICBzaG93QXM6IHsgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cubnVtYmVyIH0sXG4gICAgICAgIG9wdGlvbnM6IHsgd2lkdGg6ICcxMDBweCcgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LWluc3RhbmNlcy5lbnRpdGllcy53b3JrZmxvdy1pbnN0YW5jZS5maWVsZHMuY3JlYXRlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnZmluaXNoZWRBdCcsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctaW5zdGFuY2VzLmVudGl0aWVzLndvcmtmbG93LWluc3RhbmNlLmZpZWxkcy5maW5pc2hlZC1hdC50aXRsZScsXG4gICAgICAgIHNob3dBczogeyB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy5kYXRlVGltZSB9LFxuICAgICAgICBvcHRpb25zOiB7IHdpZHRoOiAnMTgwcHgnIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgY29tbWFuZHM6IHtcbiAgICAgIGRlbGV0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IGFueSkgPT4gYXdhaXQgZGF0YVNlcnZpY2UuZGVsZXRlT25lKGlkKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBxdWVyaWVzOiB7XG4gICAgICBieUtleToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBkYXRhU2VydmljZS5nZXRPbmUoaWQpO1xuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuU2luZ2xlLFxuICAgICAgfSxcbiAgICAgIGxpc3Q6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGU6IGFueSkgPT4ge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBkYXRhU2VydmljZS5xdWVyeShlKTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLkxpc3QsXG4gICAgICB9LFxuICAgIH0sXG4gICAgaW50ZXJmYWNlczoge1xuICAgICAgbWFzdGVyOiB7XG4gICAgICAgIHNpbmdsZToge1xuICAgICAgICAgIHRpdGxlOiAne3sgbmFtZSB8fCBkZWZpbml0aW9uSWQgfX0nLFxuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7IGlkOiAnYmFzaWNJbmZvJywgb3JkZXI6IDEsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogMTIgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgaWQ6ICdzdGF0dXMnLCBvcmRlcjogMiwgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IGlkOiAnbWV0YWRhdGEnLCBvcmRlcjogMywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdkZWZpbml0aW9uSWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ25hbWUnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2NvcnJlbGF0aW9uSWQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3ZlcnNpb24nLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3N0YXR1cycsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnc3ViU3RhdHVzJywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdpbmNpZGVudENvdW50JywgbGF5b3V0OiB7IHBvc2l0aW9uczogeyBsZzogeyBjb2xTcGFuOiA2IH0gfSB9IH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdjcmVhdGVkQXQnLCBsYXlvdXQ6IHsgcG9zaXRpb25zOiB7IGxnOiB7IGNvbFNwYW46IDYgfSB9IH0gfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ3VwZGF0ZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnZmluaXNoZWRBdCcsIGxheW91dDogeyBwb3NpdGlvbnM6IHsgbGc6IHsgY29sU3BhbjogNiB9IH0gfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogWy4uLmVudGl0eU1hc3RlclJlY29yZEFjdGlvbnMoKV0sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbLi4uZW50aXR5TWFzdGVyQ3J1ZEFjdGlvbnMoKV0sXG4gICAgICAgICAgdmlld3M6IFtjcmVhdGVBbGxRdWVyeVZpZXcoeyBzb3J0czogW3sgbmFtZTogJ2NyZWF0ZWRBdCcsIGRpcjogJ2Rlc2MnIH1dIH0pXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICByZXR1cm4gZW50aXR5RGVmO1xufVxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow definition provider that loads definitions from JSON files.\n *\n * JSON files should be placed in:\n * - `libs/modules/workflow-management/src/lib/workflow-definitions/definitions/*.json`\n *\n * Each JSON file should contain a simplified workflow definition (AXPWorkflowDefinitionJson).\n * System fields are automatically added when loading.\n * The filename (without .json extension) should match the 'name' field in JSON.\n *\n * Definitions are loaded lazily - only when requested via `get(name)`.\n *\n * @example\n * File: `welcome-workflow.json`\n * ```json\n * {\n * \"name\": \"welcome-workflow\",\n * \"title\": \"Welcome Workflow\",\n * \"root\": { ... }\n * }\n * ```\n */\nexport class AXMWorkflowDefinitionProvider {\n /**\n * Get workflow definition by name (unique key).\n * Loads the corresponding JSON file dynamically.\n * @param name - The workflow name (filename without .json, or name from JSON)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n throw new Error('Not implemented');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvd29ya2Zsb3ctZGVmaW5pdGlvbnMvd29ya2Zsb3ctZGVmaW5pdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUN4Qzs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQzsrR0FUVSw2QkFBNkI7bUhBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYUFdvcmtmbG93RGVmaW5pdGlvbixcbiAgQVhQV29ya2Zsb3dEZWZpbml0aW9uTG9hZGVyLFxufSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcblxuLyoqXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIHByb3ZpZGVyIHRoYXQgbG9hZHMgZGVmaW5pdGlvbnMgZnJvbSBKU09OIGZpbGVzLlxuICogXG4gKiBKU09OIGZpbGVzIHNob3VsZCBiZSBwbGFjZWQgaW46XG4gKiAtIGBsaWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93LWRlZmluaXRpb25zL2RlZmluaXRpb25zLyouanNvbmBcbiAqIFxuICogRWFjaCBKU09OIGZpbGUgc2hvdWxkIGNvbnRhaW4gYSBzaW1wbGlmaWVkIHdvcmtmbG93IGRlZmluaXRpb24gKEFYUFdvcmtmbG93RGVmaW5pdGlvbkpzb24pLlxuICogU3lzdGVtIGZpZWxkcyBhcmUgYXV0b21hdGljYWxseSBhZGRlZCB3aGVuIGxvYWRpbmcuXG4gKiBUaGUgZmlsZW5hbWUgKHdpdGhvdXQgLmpzb24gZXh0ZW5zaW9uKSBzaG91bGQgbWF0Y2ggdGhlICduYW1lJyBmaWVsZCBpbiBKU09OLlxuICogXG4gKiBEZWZpbml0aW9ucyBhcmUgbG9hZGVkIGxhemlseSAtIG9ubHkgd2hlbiByZXF1ZXN0ZWQgdmlhIGBnZXQobmFtZSlgLlxuICogXG4gKiBAZXhhbXBsZVxuICogRmlsZTogYHdlbGNvbWUtd29ya2Zsb3cuanNvbmBcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJuYW1lXCI6IFwid2VsY29tZS13b3JrZmxvd1wiLFxuICogICBcInRpdGxlXCI6IFwiV2VsY29tZSBXb3JrZmxvd1wiLFxuICogICBcInJvb3RcIjogeyAuLi4gfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWE1Xb3JrZmxvd0RlZmluaXRpb25Qcm92aWRlciBpbXBsZW1lbnRzIEFYUFdvcmtmbG93RGVmaW5pdGlvbkxvYWRlciB7XG4gIC8qKlxuICAgKiBHZXQgd29ya2Zsb3cgZGVmaW5pdGlvbiBieSBuYW1lICh1bmlxdWUga2V5KS5cbiAgICogTG9hZHMgdGhlIGNvcnJlc3BvbmRpbmcgSlNPTiBmaWxlIGR5bmFtaWNhbGx5LlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lIChmaWxlbmFtZSB3aXRob3V0IC5qc29uLCBvciBuYW1lIGZyb20gSlNPTilcbiAgICogQHJldHVybnMgV29ya2Zsb3cgZGVmaW5pdGlvbiBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgYXN5bmMgZ2V0KG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn1cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Activities Definition Provider\n *\n * Provides activity definitions (metadata only).\n * Activity definitions contain metadata for UI and tooling.\n * The `name` property is used as the command key for execution.\n * Reads from entity service (mock data).\n */\nexport class AXMWorkflowActivitiesDefinitionProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.activityDefinitionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.activityDefinition.name).data();\n }\n //#endregion\n //#region ---- AXPActivityProvider Implementation ----\n async getList(categoryId) {\n // Use 'equal' operator to filter by category field\n const result = await this.activityDefinitionService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'category',\n operator: {\n type: 'equal',\n },\n value: categoryId,\n }]\n }\n });\n return result.items;\n }\n async getById(name) {\n // Try to find by name field first, then by type field\n const byName = await this.activityDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'name',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byName.items && byName.items.length > 0) {\n return byName.items[0];\n }\n // Try by type field\n const byType = await this.activityDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'type',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byType.items && byType.items.length > 0) {\n return byType.items[0];\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowActivitiesDefinitionProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYWN0aXZpdGllcy1kZWZpbml0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy93b3JrZmxvdy1hY3Rpdml0aWVzLWRlZmluaXRpb24ucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU1Qzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLHVDQUF1QztJQURwRDtRQUVJLCtDQUErQztRQUU5QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELDhCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUM3RCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzlDLENBQUMsSUFBSSxFQUFZLENBQUM7S0FzRXRCO0lBcEVHLFlBQVk7SUFFWiwwREFBMEQ7SUFFMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFrQjtRQUM1QixtREFBbUQ7UUFDbkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1lBQ3RELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUM7d0JBQ04sS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLFVBQVU7cUJBQ3BCLENBQUM7YUFDTDtTQUNKLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDLEtBQWdDLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBWTtRQUN0QixzREFBc0Q7UUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDO1lBQ3RELElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLENBQUM7WUFDUCxNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTyxFQUFFLENBQUM7d0JBQ04sS0FBSyxFQUFFLE1BQU07d0JBQ2IsUUFBUSxFQUFFOzRCQUNOLElBQUksRUFBRSxPQUFPO3lCQUNoQjt3QkFDRCxLQUFLLEVBQUUsSUFBSTtxQkFDZCxDQUFDO2FBQ0w7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBMEIsQ0FBQztRQUNwRCxDQUFDO1FBRUQsb0JBQW9CO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxNQUFNO3dCQUNiLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLElBQUk7cUJBQ2QsQ0FBQzthQUNMO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQTBCLENBQUM7UUFDcEQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBMUVRLHVDQUF1QzttSEFBdkMsdUNBQXVDOzs0RkFBdkMsdUNBQXVDO2tCQURuRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBBY3Rpdml0eVByb3ZpZGVyLCBBWFBBY3Rpdml0eURlZmluaXRpb24gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0JztcblxuLyoqXG4gKiBXb3JrZmxvdyBBY3Rpdml0aWVzIERlZmluaXRpb24gUHJvdmlkZXJcbiAqIFxuICogUHJvdmlkZXMgYWN0aXZpdHkgZGVmaW5pdGlvbnMgKG1ldGFkYXRhIG9ubHkpLlxuICogQWN0aXZpdHkgZGVmaW5pdGlvbnMgY29udGFpbiBtZXRhZGF0YSBmb3IgVUkgYW5kIHRvb2xpbmcuXG4gKiBUaGUgYG5hbWVgIHByb3BlcnR5IGlzIHVzZWQgYXMgdGhlIGNvbW1hbmQga2V5IGZvciBleGVjdXRpb24uXG4gKiBSZWFkcyBmcm9tIGVudGl0eSBzZXJ2aWNlIChtb2NrIGRhdGEpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dBY3Rpdml0aWVzRGVmaW5pdGlvblByb3ZpZGVyIGltcGxlbWVudHMgQVhQQWN0aXZpdHlQcm92aWRlciB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UgPSB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICAgICAgUm9vdENvbmZpZy5tb2R1bGUubmFtZSxcbiAgICAgICAgUm9vdENvbmZpZy5lbnRpdGllcy5hY3Rpdml0eURlZmluaXRpb24ubmFtZVxuICAgICkuZGF0YTxhbnksIGFueT4oKTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBBWFBBY3Rpdml0eVByb3ZpZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gICAgYXN5bmMgZ2V0TGlzdChjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdPiB7XG4gICAgICAgIC8vIFVzZSAnZXF1YWwnIG9wZXJhdG9yIHRvIGZpbHRlciBieSBjYXRlZ29yeSBmaWVsZFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEwMDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnlJZCxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVtcyBhcyBBWFBBY3Rpdml0eURlZmluaXRpb25bXTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRCeUlkKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlEZWZpbml0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGJ5IG5hbWUgZmllbGQgZmlyc3QsIHRoZW4gYnkgdHlwZSBmaWVsZFxuICAgICAgICBjb25zdCBieU5hbWUgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBcbiAgICAgICAgaWYgKGJ5TmFtZS5pdGVtcyAmJiBieU5hbWUuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGJ5TmFtZS5pdGVtc1swXSBhcyBBWFBBY3Rpdml0eURlZmluaXRpb247XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgYnkgdHlwZSBmaWVsZFxuICAgICAgICBjb25zdCBieVR5cGUgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICd0eXBlJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChieVR5cGUuaXRlbXMgJiYgYnlUeXBlLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiBieVR5cGUuaXRlbXNbMF0gYXMgQVhQQWN0aXZpdHlEZWZpbml0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cbn1cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Provider for activity categories.\n * Reads categories from entity service (mock data).\n */\nexport class AXCCategoryProvider {\n constructor() {\n this.entityService = inject(AXPEntityService);\n this.categoryService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.activityCategory.name).data();\n }\n async getList(parentId) {\n const list = [];\n if (parentId) {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'parentId',\n operator: {\n type: 'equal',\n },\n value: parentId,\n }]\n }\n });\n list.push(...result.items);\n }\n else {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n });\n list.push(...result.items);\n }\n return list;\n }\n async getById(id) {\n return await this.categoryService.byKey(id);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXCCategoryProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS9jYXRlZ29yeS5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUV6Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBR21CLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDckQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUMxQyxDQUFDLElBQUksRUFBWSxDQUFDO0tBbUNwQjtJQWpDQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQWlCO1FBQzdCLE1BQU0sSUFBSSxHQUEwQixFQUFFLENBQUM7UUFFdkMsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJO2dCQUNWLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQUUsS0FBSztvQkFDWixPQUFPLEVBQUUsQ0FBQzs0QkFDUixLQUFLLEVBQUUsVUFBVTs0QkFDakIsUUFBUSxFQUFFO2dDQUNSLElBQUksRUFBRSxPQUFPOzZCQUNkOzRCQUNELEtBQUssRUFBRSxRQUFRO3lCQUNoQixDQUFDO2lCQUNIO2FBQ0YsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7Z0JBQzlDLElBQUksRUFBRSxDQUFDO2dCQUNQLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFVO1FBQ3RCLE9BQU8sTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQXhDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlciwgQVhQQWN0aXZpdHlDYXRlZ29yeSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdCc7XG5cbi8qKlxuICogUHJvdmlkZXIgZm9yIGFjdGl2aXR5IGNhdGVnb3JpZXMuXG4gKiBSZWFkcyBjYXRlZ29yaWVzIGZyb20gZW50aXR5IHNlcnZpY2UgKG1vY2sgZGF0YSkuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWENDYXRlZ29yeVByb3ZpZGVyIGltcGxlbWVudHMgQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyIHtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjYXRlZ29yeVNlcnZpY2UgPSB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgIFJvb3RDb25maWcuZW50aXRpZXMuYWN0aXZpdHlDYXRlZ29yeS5uYW1lXG4gICkuZGF0YTxhbnksIGFueT4oKTtcblxuICBhc3luYyBnZXRMaXN0KHBhcmVudElkPzogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5W10+IHtcbiAgICBjb25zdCBsaXN0OiBBWFBBY3Rpdml0eUNhdGVnb3J5W10gPSBbXTtcbiAgICBcbiAgICBpZiAocGFyZW50SWQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgc2tpcDogMCxcbiAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsdWU6IHBhcmVudElkLFxuICAgICAgICAgIH1dXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGlzdC5wdXNoKC4uLnJlc3VsdC5pdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgc2tpcDogMCxcbiAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgIH0pO1xuICAgICAgbGlzdC5wdXNoKC4uLnJlc3VsdC5pdGVtcyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBsaXN0O1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlJZChpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2F0ZWdvcnlTZXJ2aWNlLmJ5S2V5KGlkKTtcbiAgfVxufVxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Category Provider\n *\n * Provides workflow categories from entity service.\n * Reads from entity service (mock data or API).\n */\nexport class AXMWorkflowCategoryProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.categoryService = this.entityService.withEntity(RootConfig.module.name, 'WorkflowCategory').data();\n }\n //#endregion\n //#region ---- AXPWorkflowCategoryProvider Implementation ----\n async getList(parentId) {\n const filters = [];\n if (parentId === undefined) {\n // Root categories: parentId is null or undefined\n filters.push({\n field: 'parentId',\n operator: {\n type: 'isNull',\n },\n });\n }\n else {\n // Child categories: parentId matches\n filters.push({\n field: 'parentId',\n operator: {\n type: 'equal',\n },\n value: parentId,\n });\n }\n const result = await this.categoryService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters,\n },\n });\n return (result.items || []);\n }\n async getById(id) {\n const result = await this.categoryService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'id',\n operator: {\n type: 'equal',\n },\n value: id,\n }],\n },\n });\n if (result.items && result.items.length > 0) {\n return result.items[0];\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowCategoryProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY2F0ZWdvcnkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS93b3JrZmxvd3Mvd29ya2Zsb3ctY2F0ZWdvcnkucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU1Qzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTywyQkFBMkI7SUFEeEM7UUFFSSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUNuRCxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFDdEIsa0JBQWtCLENBQ3JCLENBQUMsSUFBSSxFQUFZLENBQUM7S0FnRXRCO0lBOURHLFlBQVk7SUFFWixrRUFBa0U7SUFFbEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFpQjtRQUMzQixNQUFNLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFFMUIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsaURBQWlEO1lBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFFBQVEsRUFBRTtvQkFDTixJQUFJLEVBQUUsUUFBUTtpQkFDakI7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLHFDQUFxQztZQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNULEtBQUssRUFBRSxVQUFVO2dCQUNqQixRQUFRLEVBQUU7b0JBQ04sSUFBSSxFQUFFLE9BQU87aUJBQ2hCO2dCQUNELEtBQUssRUFBRSxRQUFRO2FBQ2xCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLEtBQUs7Z0JBQ1osT0FBTzthQUNWO1NBQ0osQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUEwQixDQUFDO0lBQ3pELENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQVU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxJQUFJO3dCQUNYLFFBQVEsRUFBRTs0QkFDTixJQUFJLEVBQUUsT0FBTzt5QkFDaEI7d0JBQ0QsS0FBSyxFQUFFLEVBQUU7cUJBQ1osQ0FBQzthQUNMO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7UUFDbEQsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBcEVRLDJCQUEyQjttSEFBM0IsMkJBQTJCOzs0RkFBM0IsMkJBQTJCO2tCQUR2QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0NhdGVnb3J5UHJvdmlkZXIsIEFYUFdvcmtmbG93Q2F0ZWdvcnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IEFYUEVudGl0eVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0JztcblxuLyoqXG4gKiBXb3JrZmxvdyBDYXRlZ29yeSBQcm92aWRlclxuICogXG4gKiBQcm92aWRlcyB3b3JrZmxvdyBjYXRlZ29yaWVzIGZyb20gZW50aXR5IHNlcnZpY2UuXG4gKiBSZWFkcyBmcm9tIGVudGl0eSBzZXJ2aWNlIChtb2NrIGRhdGEgb3IgQVBJKS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciBpbXBsZW1lbnRzIEFYUFdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZW50aXR5U2VydmljZSA9IGluamVjdChBWFBFbnRpdHlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIGNhdGVnb3J5U2VydmljZSA9IHRoaXMuZW50aXR5U2VydmljZS53aXRoRW50aXR5KFxuICAgICAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICAnV29ya2Zsb3dDYXRlZ29yeSdcbiAgICApLmRhdGE8YW55LCBhbnk+KCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQVhQV29ya2Zsb3dDYXRlZ29yeVByb3ZpZGVyIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gICAgYXN5bmMgZ2V0TGlzdChwYXJlbnRJZD86IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dDYXRlZ29yeVtdPiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcnM6IGFueVtdID0gW107XG5cbiAgICAgICAgaWYgKHBhcmVudElkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIFJvb3QgY2F0ZWdvcmllczogcGFyZW50SWQgaXMgbnVsbCBvciB1bmRlZmluZWRcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdwYXJlbnRJZCcsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lzTnVsbCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2hpbGQgY2F0ZWdvcmllczogcGFyZW50SWQgbWF0Y2hlc1xuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ3BhcmVudElkJyxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjoge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IHBhcmVudElkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNhdGVnb3J5U2VydmljZS5xdWVyeSh7XG4gICAgICAgICAgICBza2lwOiAwLFxuICAgICAgICAgICAgdGFrZTogMTAwMCxcbiAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIChyZXN1bHQuaXRlbXMgfHwgW10pIGFzIEFYUFdvcmtmbG93Q2F0ZWdvcnlbXTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRCeUlkKGlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUFdvcmtmbG93Q2F0ZWdvcnkgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdpZCcsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaWQsXG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzdWx0Lml0ZW1zICYmIHJlc3VsdC5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zWzBdIGFzIEFYUFdvcmtmbG93Q2F0ZWdvcnk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { RootConfig } from '../../../const';\nimport * as i0 from \"@angular/core\";\n/**\n * Workflow Definition Metadata Provider\n *\n * Provides workflow definition metadata (metadata only).\n * Workflow definition metadata contains metadata for UI and tooling.\n * The `name` property is used as the workflow identifier.\n * Reads from entity service (mock data or API).\n */\nexport class AXMWorkflowDefinitionMetadataProvider {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.entityService = inject(AXPEntityService);\n this.workflowDefinitionService = this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowDefinition.name).data();\n }\n //#endregion\n //#region ---- AXPWorkflowProvider Implementation ----\n async getList(categoryId) {\n // Use 'equal' operator to filter by category field\n const result = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [{\n field: 'category',\n operator: {\n type: 'equal',\n },\n value: categoryId,\n }]\n }\n });\n // Convert entity data to metadata format\n return (result.items || []).map((item) => ({\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || categoryId,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n }));\n }\n async getById(name) {\n // Try to find by name field first, then by id field\n const byName = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'name',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byName.items && byName.items.length > 0) {\n const item = byName.items[0];\n return {\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || undefined,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n };\n }\n // Try by id field\n const byId = await this.workflowDefinitionService.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{\n field: 'id',\n operator: {\n type: 'equal',\n },\n value: name,\n }]\n }\n });\n if (byId.items && byId.items.length > 0) {\n const item = byId.items[0];\n return {\n name: item.name || item.id || '',\n title: item.title || item.name || item.id || '',\n description: item.description || undefined,\n category: item.category || undefined,\n icon: item.icon || 'fa-light fa-diagram-project',\n version: item.version || 1,\n isPublished: item.isPublished ?? true,\n isBrowsable: item.isBrowsable ?? true,\n };\n }\n return undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowDefinitionMetadataProvider, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi1tZXRhZGF0YS5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL3dvcmtmbG93cy93b3JrZmxvdy1kZWZpbml0aW9uLW1ldGFkYXRhLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFNUM7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyxxQ0FBcUM7SUFEbEQ7UUFFSSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCw4QkFBeUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FDN0QsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUM5QyxDQUFDLElBQUksRUFBWSxDQUFDO0tBcUd0QjtJQW5HRyxZQUFZO0lBRVosMERBQTBEO0lBRTFELEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBa0I7UUFDNUIsbURBQW1EO1FBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQztZQUN0RCxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxJQUFJO1lBQ1YsTUFBTSxFQUFFO2dCQUNKLEtBQUssRUFBRSxLQUFLO2dCQUNaLE9BQU8sRUFBRSxDQUFDO3dCQUNOLEtBQUssRUFBRSxVQUFVO3dCQUNqQixRQUFRLEVB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SUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPO2dCQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRTtnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7Z0JBQy9DLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLFNBQVM7Z0JBQzFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVM7Z0JBQ3BDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLDZCQUE2QjtnQkFDaEQsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQztnQkFDMUIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTtnQkFDckMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSTthQUN4QyxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7K0dBekdRLHFDQUFxQzttSEFBckMscUNBQXFDOzs0RkFBckMscUNBQXFDO2tCQURqRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1Byb3ZpZGVyLCBBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vd29ya2Zsb3cnO1xuaW1wb3J0IHsgQVhQRW50aXR5U2VydmljZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBSb290Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29uc3QnO1xuXG4vKipcbiAqIFdvcmtmbG93IERlZmluaXRpb24gTWV0YWRhdGEgUHJvdmlkZXJcbiAqIFxuICogUHJvdmlkZXMgd29ya2Zsb3cgZGVmaW5pdGlvbiBtZXRhZGF0YSAobWV0YWRhdGEgb25seSkuXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIG1ldGFkYXRhIGNvbnRhaW5zIG1ldGFkYXRhIGZvciBVSSBhbmQgdG9vbGluZy5cbiAqIFRoZSBgbmFtZWAgcHJvcGVydHkgaXMgdXNlZCBhcyB0aGUgd29ya2Zsb3cgaWRlbnRpZmllci5cbiAqIFJlYWRzIGZyb20gZW50aXR5IHNlcnZpY2UgKG1vY2sgZGF0YSBvciBBUEkpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhNV29ya2Zsb3dEZWZpbml0aW9uTWV0YWRhdGFQcm92aWRlciBpbXBsZW1lbnRzIEFYUFdvcmtmbG93UHJvdmlkZXIge1xuICAgIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG4gICAgcHJpdmF0ZSB3b3JrZmxvd0RlZmluaXRpb25TZXJ2aWNlID0gdGhpcy5lbnRpdHlTZXJ2aWNlLndpdGhFbnRpdHkoXG4gICAgICAgIFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgICAgIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dEZWZpbml0aW9uLm5hbWVcbiAgICApLmRhdGE8YW55LCBhbnk+KCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgQVhQV29ya2Zsb3dQcm92aWRlciBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuICAgIGFzeW5jIGdldExpc3QoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YVtdPiB7XG4gICAgICAgIC8vIFVzZSAnZXF1YWwnIG9wZXJhdG9yIHRvIGZpbHRlciBieSBjYXRlZ29yeSBmaWVsZFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLndvcmtmbG93RGVmaW5pdGlvblNlcnZpY2UucXVlcnkoe1xuICAgICAgICAgICAgc2tpcDogMCxcbiAgICAgICAgICAgIHRha2U6IDEwMDAsXG4gICAgICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICAgICAgICBsb2dpYzogJ2FuZCcsXG4gICAgICAgICAgICAgICAgZmlsdGVyczogW3tcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6ICdjYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY2F0ZWdvcnlJZCxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBDb252ZXJ0IGVudGl0eSBkYXRhIHRvIG1ldGFkYXRhIGZvcm1hdFxuICAgICAgICByZXR1cm4gKHJlc3VsdC5pdGVtcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpOiBBWFBXb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YSA9PiAoe1xuICAgICAgICAgICAgbmFtZTogaXRlbS5uYW1lIHx8IGl0ZW0uaWQgfHwgJycsXG4gICAgICAgICAgICB0aXRsZTogaXRlbS50aXRsZSB8fCBpdGVtLm5hbWUgfHwgaXRlbS5pZCB8fCAnJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNhdGVnb3J5OiBpdGVtLmNhdGVnb3J5IHx8IGNhdGVnb3J5SWQsXG4gICAgICAgICAgICBpY29uOiBpdGVtLmljb24gfHwgJ2ZhLWxpZ2h0IGZhLWRpYWdyYW0tcHJvamVjdCcsXG4gICAgICAgICAgICB2ZXJzaW9uOiBpdGVtLnZlcnNpb24gfHwgMSxcbiAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICBpc0Jyb3dzYWJsZTogaXRlbS5pc0Jyb3dzYWJsZSA/PyB0cnVlLFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXN5bmMgZ2V0QnlJZChuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFYUFdvcmtmbG93RGVmaW5pdGlvbk1ldGFkYXRhIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIC8vIFRyeSB0byBmaW5kIGJ5IG5hbWUgZmllbGQgZmlyc3QsIHRoZW4gYnkgaWQgZmllbGRcbiAgICAgICAgY29uc3QgYnlOYW1lID0gYXdhaXQgdGhpcy53b3JrZmxvd0RlZmluaXRpb25TZXJ2aWNlLnF1ZXJ5KHtcbiAgICAgICAgICAgIHNraXA6IDAsXG4gICAgICAgICAgICB0YWtlOiAxLFxuICAgICAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgICAgICAgbG9naWM6ICdhbmQnLFxuICAgICAgICAgICAgICAgIGZpbHRlcnM6IFt7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiAnbmFtZScsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXF1YWwnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmFtZSxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIGlmIChieU5hbWUuaXRlbXMgJiYgYnlOYW1lLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBieU5hbWUuaXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uIHx8ICdmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3QnLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IGl0ZW0udmVyc2lvbiB8fCAxLFxuICAgICAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICAgICAgaXNCcm93c2FibGU6IGl0ZW0uaXNCcm93c2FibGUgPz8gdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUcnkgYnkgaWQgZmllbGRcbiAgICAgICAgY29uc3QgYnlJZCA9IGF3YWl0IHRoaXMud29ya2Zsb3dEZWZpbml0aW9uU2VydmljZS5xdWVyeSh7XG4gICAgICAgICAgICBza2lwOiAwLFxuICAgICAgICAgICAgdGFrZTogMSxcbiAgICAgICAgICAgIGZpbHRlcjoge1xuICAgICAgICAgICAgICAgIGxvZ2ljOiAnYW5kJyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJzOiBbe1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcXVhbCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBuYW1lLFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChieUlkLml0ZW1zICYmIGJ5SWQuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IGJ5SWQuaXRlbXNbMF07XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlIHx8IGl0ZW0ubmFtZSB8fCBpdGVtLmlkIHx8ICcnLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogaXRlbS5jYXRlZ29yeSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgaWNvbjogaXRlbS5pY29uIHx8ICdmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3QnLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IGl0ZW0udmVyc2lvbiB8fCAxLFxuICAgICAgICAgICAgICAgIGlzUHVibGlzaGVkOiBpdGVtLmlzUHVibGlzaGVkID8/IHRydWUsXG4gICAgICAgICAgICAgICAgaXNCcm93c2FibGU6IGl0ZW0uaXNCcm93c2FibGUgPz8gdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxufVxuXG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * CheckPermission Activity (Backend)\n *\n * Checks if a user has specific permission.\n * This is a mock implementation that always grants permission for demo purposes.\n *\n * In production, this would check against real permission system.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:check-permission\n *\n * Outcomes:\n * - HasPermission: User has the permission\n * - NoPermission: User does not have the permission\n */\nexport class CheckPermissionActivity {\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n // Mock implementation: always grant permission for demo\n // In production, check against permission service\n const hasPermission = true; // TODO: Integrate with real permission system\n const output = {\n hasPermission,\n userId: input.userId || 'current-user',\n permission: input.permission,\n };\n // Determine outcome based on permission check\n const outcomes = hasPermission\n ? { HasPermission: true }\n : { NoPermission: true };\n console.log(`[CheckPermissionActivity] Checked permission '${input.permission}' for user '${output.userId}': ${hasPermission ? 'GRANTED' : 'DENIED'}`);\n return {\n success: true,\n data: {\n output,\n outcomes,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: CheckPermissionActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stcGVybWlzc2lvbi5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL2FjdGl2aXRpZXMvY2hlY2stcGVybWlzc2lvbi5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXlDM0MsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxpREFBaUQ7SUFFakQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUEyQjtRQUUzQix3REFBd0Q7UUFDeEQsa0RBQWtEO1FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLDhDQUE4QztRQUUxRSxNQUFNLE1BQU0sR0FBMEI7WUFDcEMsYUFBYTtZQUNiLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLGNBQWM7WUFDdEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUM7UUFFRiw4Q0FBOEM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsYUFBYTtZQUM1QixDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUzQixPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxLQUFLLENBQUMsVUFBVSxlQUFlLE1BQU0sQ0FBQyxNQUFNLE1BQU0sYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFdkosT0FBTztZQUNMLE9BQU8sRUFBRSxJQUFJO1lBQ2IsSUFBSSxFQUFFO2dCQUNKLE1BQU07Z0JBQ04sUUFBUTthQUNUO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBL0JVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbi8qKlxuICogSW5wdXQgZm9yIENoZWNrUGVybWlzc2lvbiBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1Blcm1pc3Npb25JbnB1dCB7XG4gIC8qKlxuICAgKiBQZXJtaXNzaW9uIGtleSB0byBjaGVjayAoZS5nLiwgXCJVc2Vycy5DcmVhdGVcIilcbiAgICovXG4gIHBlcm1pc3Npb246IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBJRCB0byBjaGVjayAob3B0aW9uYWwsIGRlZmF1bHRzIHRvIGN1cnJlbnQgdXNlcilcbiAgICovXG4gIHVzZXJJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPdXRwdXQgZm9yIENoZWNrUGVybWlzc2lvbiBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGVja1Blcm1pc3Npb25PdXRwdXQge1xuICAvKipcbiAgICogV2hldGhlciB1c2VyIGhhcyB0aGUgcGVybWlzc2lvblxuICAgKi9cbiAgaGFzUGVybWlzc2lvbjogYm9vbGVhbjtcblxuICAvKipcbiAgICogVXNlciBJRCB0aGF0IHdhcyBjaGVja2VkXG4gICAqL1xuICB1c2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGVybWlzc2lvbiB0aGF0IHdhcyBjaGVja2VkXG4gICAqL1xuICBwZXJtaXNzaW9uOiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIENoZWNrUGVybWlzc2lvbiBBY3Rpdml0eSAoQmFja2VuZClcbiAqIFxuICogQ2hlY2tzIGlmIGEgdXNlciBoYXMgc3BlY2lmaWMgcGVybWlzc2lvbi5cbiAqIFRoaXMgaXMgYSBtb2NrIGltcGxlbWVudGF0aW9uIHRoYXQgYWx3YXlzIGdyYW50cyBwZXJtaXNzaW9uIGZvciBkZW1vIHB1cnBvc2VzLlxuICogXG4gKiBJbiBwcm9kdWN0aW9uLCB0aGlzIHdvdWxkIGNoZWNrIGFnYWluc3QgcmVhbCBwZXJtaXNzaW9uIHN5c3RlbS5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGJhY2tlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OmNoZWNrLXBlcm1pc3Npb25cbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIEhhc1Blcm1pc3Npb246IFVzZXIgaGFzIHRoZSBwZXJtaXNzaW9uXG4gKiAtIE5vUGVybWlzc2lvbjogVXNlciBkb2VzIG5vdCBoYXZlIHRoZSBwZXJtaXNzaW9uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGVja1Blcm1pc3Npb25BY3Rpdml0eVxuICBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8Q2hlY2tQZXJtaXNzaW9uSW5wdXQsIHsgb3V0cHV0OiBDaGVja1Blcm1pc3Npb25PdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBBWFBDb21tYW5kIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgaW5wdXQ6IENoZWNrUGVybWlzc2lvbklucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBDaGVja1Blcm1pc3Npb25PdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgLy8gTW9jayBpbXBsZW1lbnRhdGlvbjogYWx3YXlzIGdyYW50IHBlcm1pc3Npb24gZm9yIGRlbW9cbiAgICAvLyBJbiBwcm9kdWN0aW9uLCBjaGVjayBhZ2FpbnN0IHBlcm1pc3Npb24gc2VydmljZVxuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPSB0cnVlOyAvLyBUT0RPOiBJbnRlZ3JhdGUgd2l0aCByZWFsIHBlcm1pc3Npb24gc3lzdGVtXG5cbiAgICBjb25zdCBvdXRwdXQ6IENoZWNrUGVybWlzc2lvbk91dHB1dCA9IHtcbiAgICAgIGhhc1Blcm1pc3Npb24sXG4gICAgICB1c2VySWQ6IGlucHV0LnVzZXJJZCB8fCAnY3VycmVudC11c2VyJyxcbiAgICAgIHBlcm1pc3Npb246IGlucHV0LnBlcm1pc3Npb24sXG4gICAgfTtcblxuICAgIC8vIERldGVybWluZSBvdXRjb21lIGJhc2VkIG9uIHBlcm1pc3Npb24gY2hlY2tcbiAgICBjb25zdCBvdXRjb21lcyA9IGhhc1Blcm1pc3Npb25cbiAgICAgID8geyBIYXNQZXJtaXNzaW9uOiB0cnVlIH1cbiAgICAgIDogeyBOb1Blcm1pc3Npb246IHRydWUgfTtcblxuICAgIGNvbnNvbGUubG9nKGBbQ2hlY2tQZXJtaXNzaW9uQWN0aXZpdHldIENoZWNrZWQgcGVybWlzc2lvbiAnJHtpbnB1dC5wZXJtaXNzaW9ufScgZm9yIHVzZXIgJyR7b3V0cHV0LnVzZXJJZH0nOiAke2hhc1Blcm1pc3Npb24gPyAnR1JBTlRFRCcgOiAnREVOSUVEJ31gKTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICBvdXRwdXQsXG4gICAgICAgIG91dGNvbWVzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ExecuteQuery Activity (Backend)\n *\n * Executes a query operation.\n * This is a mock implementation that simulates common queries.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:execute-query\n *\n * Outcomes:\n * - Done: Query executed successfully\n * - Valid: Data is valid (for validation queries)\n * - Exists: Data exists (for existence checks)\n * - NotFound: Data not found\n * - Failed: Query execution failed\n */\nexport class ExecuteQueryActivity {\n constructor() {\n //#region ---- Services ----\n this.storageService = inject(AXPEntityStorageService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteQueryActivity] Executing query '${input.queryKey}' with parameters:`, input.parameters);\n // Route to appropriate query handler based on queryKey\n const result = await this.routeQuery(input.queryKey, input.parameters || {});\n return {\n success: true,\n data: result,\n };\n }\n catch (error) {\n console.error(`[ExecuteQueryActivity] Query '${input.queryKey}' failed:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error',\n },\n data: {\n output: {\n data: null,\n success: false,\n error: error.message || 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n //#endregion\n //#region ---- Query Routing ----\n /**\n * Routes query to appropriate handler based on queryKey.\n */\n async routeQuery(queryKey, parameters) {\n switch (queryKey) {\n case 'User:CheckEmailExists':\n return await this.checkEmailExists(parameters);\n case 'Data:Validate':\n return await this.validateData(parameters);\n default:\n // Mock: return empty result for unknown queries\n console.warn(`[ExecuteQueryActivity] Unknown query key: ${queryKey}`);\n return {\n output: {\n data: null,\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n }\n //#endregion\n //#region ---- Query Handlers ----\n /**\n * Checks if email already exists in database.\n */\n async checkEmailExists(parameters) {\n const email = parameters['email'] || parameters['userEmail'];\n // Mock implementation: randomly decide if email exists\n // In production, check against real database\n const exists = Math.random() > 0.8; // 20% chance email exists\n console.log(`[ExecuteQueryActivity] Checking email '${email}': ${exists ? 'EXISTS' : 'AVAILABLE'}`);\n const outcome = exists ? 'Exists' : 'Valid';\n return {\n output: {\n data: {\n email,\n exists,\n available: !exists,\n },\n success: true,\n },\n outcomes: {\n [outcome]: true,\n Done: true,\n },\n };\n }\n /**\n * Validates data structure and content.\n */\n async validateData(parameters) {\n const data = parameters['data'];\n // Mock validation: check if data exists and has content\n const isValid = data && Object.keys(data).length > 0;\n console.log(`[ExecuteQueryActivity] Validating data: ${isValid ? 'VALID' : 'INVALID'}`);\n const outcome = isValid ? 'Valid' : 'Invalid';\n return {\n output: {\n data: {\n valid: isValid,\n errors: isValid ? [] : ['Data is empty or invalid'],\n },\n success: true,\n },\n outcomes: {\n [outcome]: true,\n Done: true,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteQueryActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL2FjdGl2aXRpZXMvZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUF1Q3pFLFlBQVk7QUFFWjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBR0UsZ0NBQWdDO1FBRWYsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztLQTZJbkU7SUEzSUMsWUFBWTtJQUVaLGlEQUFpRDtJQUVqRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQXdCO1FBRXhCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsMkNBQTJDLEtBQUssQ0FBQyxRQUFRLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU3Ryx1REFBdUQ7WUFDdkQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUU3RSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEtBQUssQ0FBQyxRQUFRLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVqRixPQUFPO2dCQUNM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LE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDO2lCQUNwRDtnQkFDRCxPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSTtnQkFDZixJQUFJLEVBQUUsSUFBSTthQUNYO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBOUlVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29yZSc7XG5pbXBvcnQgeyBBWFBDb21tYW5kIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuLy8jcmVnaW9uIC0tLS0gICBUeXBlcyAgIC0tLS1cblxuLyoqXG4gKiBJbnB1dCBmb3IgRXhlY3V0ZVF1ZXJ5IGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVRdWVyeUlucHV0IHtcbiAgLyoqXG4gICAqIFF1ZXJ5IGtleSB0byBleGVjdXRlIChlLmcuLCBcIlVzZXI6Q2hlY2tFbWFpbEV4aXN0c1wiKVxuICAgKi9cbiAgcXVlcnlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogUXVlcnkgcGFyYW1ldGVyc1xuICAgKi9cbiAgcGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3V0cHV0IGZvciBFeGVjdXRlUXVlcnkgYWN0aXZpdHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZVF1ZXJ5T3V0cHV0IHtcbiAgLyoqXG4gICAqIFF1ZXJ5IHJlc3VsdCBkYXRhXG4gICAqL1xuICBkYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgcXVlcnkgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAqL1xuICBzdWNjZXNzOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFcnJvciBtZXNzYWdlIGlmIHF1ZXJ5IGZhaWxlZFxuICAgKi9cbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIEV4ZWN1dGVRdWVyeSBBY3Rpdml0eSAoQmFja2VuZClcbiAqIFxuICogRXhlY3V0ZXMgYSBxdWVyeSBvcGVyYXRpb24uXG4gKiBUaGlzIGlzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiB0aGF0IHNpbXVsYXRlcyBjb21tb24gcXVlcmllcy5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGJhY2tlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OmV4ZWN1dGUtcXVlcnlcbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIERvbmU6IFF1ZXJ5IGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICogLSBWYWxpZDogRGF0YSBpcyB2YWxpZCAoZm9yIHZhbGlkYXRpb24gcXVlcmllcylcbiAqIC0gRXhpc3RzOiBEYXRhIGV4aXN0cyAoZm9yIGV4aXN0ZW5jZSBjaGVja3MpXG4gKiAtIE5vdEZvdW5kOiBEYXRhIG5vdCBmb3VuZFxuICogLSBGYWlsZWQ6IFF1ZXJ5IGV4ZWN1dGlvbiBmYWlsZWRcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV4ZWN1dGVRdWVyeUFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxFeGVjdXRlUXVlcnlJbnB1dCwgeyBvdXRwdXQ6IEV4ZWN1dGVRdWVyeU91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQVhQQ29tbWFuZCBJbXBsZW1lbnRhdGlvbiAgIC0tLS1cblxuICBhc3luYyBleGVjdXRlKFxuICAgIGlucHV0OiBFeGVjdXRlUXVlcnlJbnB1dCxcbiAgKTogUHJvbWlzZTxBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogRXhlY3V0ZVF1ZXJ5T3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9Pj4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBFeGVjdXRpbmcgcXVlcnkgJyR7aW5wdXQucXVlcnlLZXl9JyB3aXRoIHBhcmFtZXRlcnM6YCwgaW5wdXQucGFyYW1ldGVycyk7XG5cbiAgICAgIC8vIFJvdXRlIHRvIGFwcHJvcHJpYXRlIHF1ZXJ5IGhhbmRsZXIgYmFzZWQgb24gcXVlcnlLZXlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucm91dGVRdWVyeShpbnB1dC5xdWVyeUtleSwgaW5wdXQucGFyYW1ldGVycyB8fCB7fSk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBRdWVyeSAnJHtpbnB1dC5xdWVyeUtleX0nIGZhaWxlZDpgLCBlcnJvcik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyb3IubWVzc2FnZSB8fCAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBRdWVyeSBSb3V0aW5nICAgLS0tLVxuXG4gIC8qKlxuICAgKiBSb3V0ZXMgcXVlcnkgdG8gYXBwcm9wcmlhdGUgaGFuZGxlciBiYXNlZCBvbiBxdWVyeUtleS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVRdWVyeShcbiAgICBxdWVyeUtleTogc3RyaW5nLFxuICAgIHBhcmFtZXRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTx7IG91dHB1dDogRXhlY3V0ZVF1ZXJ5T3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9PiB7XG4gICAgc3dpdGNoIChxdWVyeUtleSkge1xuICAgICAgY2FzZSAnVXNlcjpDaGVja0VtYWlsRXhpc3RzJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuY2hlY2tFbWFpbEV4aXN0cyhwYXJhbWV0ZXJzKTtcblxuICAgICAgY2FzZSAnRGF0YTpWYWxpZGF0ZSc6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnZhbGlkYXRlRGF0YShwYXJhbWV0ZXJzKTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gTW9jazogcmV0dXJuIGVtcHR5IHJlc3VsdCBmb3IgdW5rbm93biBxdWVyaWVzXG4gICAgICAgIGNvbnNvbGUud2FybihgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBVbmtub3duIHF1ZXJ5IGtleTogJHtxdWVyeUtleX1gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIERvbmU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFF1ZXJ5IEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgZW1haWwgYWxyZWFkeSBleGlzdHMgaW4gZGF0YWJhc2UuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNoZWNrRW1haWxFeGlzdHMoXG4gICAgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlUXVlcnlPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgICBjb25zdCBlbWFpbCA9IHBhcmFtZXRlcnNbJ2VtYWlsJ10gfHwgcGFyYW1ldGVyc1sndXNlckVtYWlsJ107XG5cbiAgICAvLyBNb2NrIGltcGxlbWVudGF0aW9uOiByYW5kb21seSBkZWNpZGUgaWYgZW1haWwgZXhpc3RzXG4gICAgLy8gSW4gcHJvZHVjdGlvbiwgY2hlY2sgYWdhaW5zdCByZWFsIGRhdGFiYXNlXG4gICAgY29uc3QgZXhpc3RzID0gTWF0aC5yYW5kb20oKSA+IDAuODsgLy8gMjAlIGNoYW5jZSBlbWFpbCBleGlzdHNcblxuICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZVF1ZXJ5QWN0aXZpdHldIENoZWNraW5nIGVtYWlsICcke2VtYWlsfSc6ICR7ZXhpc3RzID8gJ0VYSVNUUycgOiAnQVZBSUxBQkxFJ31gKTtcblxuICAgIGNvbnN0IG91dGNvbWUgPSBleGlzdHMgPyAnRXhpc3RzJyA6ICdWYWxpZCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBlbWFpbCxcbiAgICAgICAgICBleGlzdHMsXG4gICAgICAgICAgYXZhaWxhYmxlOiAhZXhpc3RzLFxuICAgICAgICB9LFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgIFtvdXRjb21lXTogdHJ1ZSxcbiAgICAgICAgRG9uZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgZGF0YSBzdHJ1Y3R1cmUgYW5kIGNvbnRlbnQuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlRGF0YShcbiAgICBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IFByb21pc2U8eyBvdXRwdXQ6IEV4ZWN1dGVRdWVyeU91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIGNvbnN0IGRhdGEgPSBwYXJhbWV0ZXJzWydkYXRhJ107XG5cbiAgICAvLyBNb2NrIHZhbGlkYXRpb246IGNoZWNrIGlmIGRhdGEgZXhpc3RzIGFuZCBoYXMgY29udGVudFxuICAgIGNvbnN0IGlzVmFsaWQgPSBkYXRhICYmIE9iamVjdC5rZXlzKGRhdGEpLmxlbmd0aCA+IDA7XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVRdWVyeUFjdGl2aXR5XSBWYWxpZGF0aW5nIGRhdGE6ICR7aXNWYWxpZCA/ICdWQUxJRCcgOiAnSU5WQUxJRCd9YCk7XG5cbiAgICBjb25zdCBvdXRjb21lID0gaXNWYWxpZCA/ICdWYWxpZCcgOiAnSW52YWxpZCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb3V0cHV0OiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB2YWxpZDogaXNWYWxpZCxcbiAgICAgICAgICBlcnJvcnM6IGlzVmFsaWQgPyBbXSA6IFsnRGF0YSBpcyBlbXB0eSBvciBpbnZhbGlkJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgW291dGNvbWVdOiB0cnVlLFxuICAgICAgICBEb25lOiB0cnVlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cblxuIl19","import { Injectable, inject } from '@angular/core';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ExecuteCommand Activity (Backend)\n *\n * Executes a command operation.\n * This is a mock implementation that simulates common commands.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:execute-command\n *\n * Outcomes:\n * - Done: Command executed successfully\n * - Failed: Command execution failed\n */\nexport class ExecuteCommandActivity {\n constructor() {\n //#region ---- Services ----\n this.storageService = inject(AXPEntityStorageService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n console.log(`[ExecuteCommandActivity] Executing command '${input.commandKey}' with input:`, input.input);\n // Route to appropriate command handler based on commandKey\n const result = await this.routeCommand(input.commandKey, input.input || {});\n return {\n success: true,\n data: result,\n };\n }\n catch (error) {\n console.error(`[ExecuteCommandActivity] Command '${input.commandKey}' failed:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Unknown error',\n },\n data: {\n output: {\n result: null,\n success: false,\n error: error.message || 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n //#endregion\n //#region ---- Command Routing ----\n /**\n * Routes command to appropriate handler based on commandKey.\n */\n async routeCommand(commandKey, input) {\n switch (commandKey) {\n case 'User:Create':\n return await this.createUser(input);\n case 'Data:Process':\n return await this.processData(input);\n default:\n // Mock: return success for unknown commands\n console.warn(`[ExecuteCommandActivity] Unknown command key: ${commandKey}`);\n return {\n output: {\n result: { success: true },\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n }\n //#endregion\n //#region ---- Command Handlers ----\n /**\n * Creates a new user in the system.\n */\n async createUser(input) {\n // Extract user data from input\n const email = input['email'] || input['userEmail'];\n const name = input['name'] || input['userName'] || 'New User';\n const role = input['role'] || input['userRole'] || 'User';\n // Create new user object\n const userId = AXPDataGenerator.uuid();\n const newUser = {\n id: userId,\n email,\n name,\n role,\n createdAt: new Date().toISOString(),\n isActive: true,\n };\n console.log(`[ExecuteCommandActivity] Creating user:`, newUser);\n // In production, save to database via EntityStorageService or API\n // For mock, we'll just simulate success\n // await this.storageService.create('User', newUser);\n return {\n output: {\n result: newUser,\n success: true,\n entityId: userId,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n /**\n * Processes data according to business rules.\n */\n async processData(input) {\n const data = input['data'];\n // Mock processing: just add timestamp and processed flag\n const processedData = {\n ...data,\n processed: true,\n processedAt: new Date().toISOString(),\n };\n console.log(`[ExecuteCommandActivity] Processed data:`, processedData);\n return {\n output: {\n result: processedData,\n success: true,\n },\n outcomes: {\n Done: true,\n },\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ExecuteCommandActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1jb21tYW5kLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy9leGVjdXRlLWNvbW1hbmQuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUEyQixnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQTRDekUsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFHRSxnQ0FBZ0M7UUFFZixtQkFBYyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBbUpuRTtJQWpKQyxZQUFZO0lBRVosaURBQWlEO0lBRWpELEtBQUssQ0FBQyxPQUFPLENBQ1gsS0FBMEI7UUFFMUIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQ0FBK0MsS0FBSyxDQUFDLFVBQVUsZUFBZSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV6RywyREFBMkQ7WUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUU1RSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEtBQUssQ0FBQyxV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TyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUV2RSxPQUFPO1lBQ0wsTUFBTSxFQUFFO2dCQUNOLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixPQUFPLEVBQUUsSUFBSTthQUNkO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxJQUFJO2FBQ1g7U0FDRixDQUFDO0lBQ0osQ0FBQzsrR0FwSlUsc0JBQXNCO21IQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0LCBBWFBEYXRhR2VuZXJhdG9yIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQRW50aXR5U3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9lbnRpdHknO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBFeGVjdXRlQ29tbWFuZCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZElucHV0IHtcbiAgLyoqXG4gICAqIENvbW1hbmQga2V5IHRvIGV4ZWN1dGUgKGUuZy4sIFwiVXNlcjpDcmVhdGVcIilcbiAgICovXG4gIGNvbW1hbmRLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tbWFuZCBpbnB1dCBkYXRhXG4gICAqL1xuICBpbnB1dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogT3V0cHV0IGZvciBFeGVjdXRlQ29tbWFuZCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlQ29tbWFuZE91dHB1dCB7XG4gIC8qKlxuICAgKiBDb21tYW5kIHJlc3VsdCBkYXRhXG4gICAqL1xuICByZXN1bHQ6IGFueTtcblxuICAvKipcbiAgICogV2hldGhlciBjb21tYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseVxuICAgKi9cbiAgc3VjY2VzczogYm9vbGVhbjtcblxuICAvKipcbiAgICogRXJyb3IgbWVzc2FnZSBpZiBjb21tYW5kIGZhaWxlZFxuICAgKi9cbiAgZXJyb3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQvVXBkYXRlZCBlbnRpdHkgSUQgKGlmIGFwcGxpY2FibGUpXG4gICAqL1xuICBlbnRpdHlJZD86IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogRXhlY3V0ZUNvbW1hbmQgQWN0aXZpdHkgKEJhY2tlbmQpXG4gKiBcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCBvcGVyYXRpb24uXG4gKiBUaGlzIGlzIGEgbW9jayBpbXBsZW1lbnRhdGlvbiB0aGF0IHNpbXVsYXRlcyBjb21tb24gY29tbWFuZHMuXG4gKiBcbiAqIEV4ZWN1dGlvbiBNb2RlOiBiYWNrZW5kXG4gKiBBY3Rpdml0eSBUeXBlOiB3b3JrZmxvdy1hY3Rpdml0eTpleGVjdXRlLWNvbW1hbmRcbiAqIFxuICogT3V0Y29tZXM6XG4gKiAtIERvbmU6IENvbW1hbmQgZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gKiAtIEZhaWxlZDogQ29tbWFuZCBleGVjdXRpb24gZmFpbGVkXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxFeGVjdXRlQ29tbWFuZElucHV0LCB7IG91dHB1dDogRXhlY3V0ZUNvbW1hbmRPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eVN0b3JhZ2VTZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEFYUENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogRXhlY3V0ZUNvbW1hbmRJbnB1dCxcbiAgKTogUHJvbWlzZTxBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogRXhlY3V0ZUNvbW1hbmRPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnNvbGUubG9nKGBbRXhlY3V0ZUNvbW1hbmRBY3Rpdml0eV0gRXhlY3V0aW5nIGNvbW1hbmQgJyR7aW5wdXQuY29tbWFuZEtleX0nIHdpdGggaW5wdXQ6YCwgaW5wdXQuaW5wdXQpO1xuXG4gICAgICAvLyBSb3V0ZSB0byBhcHByb3ByaWF0ZSBjb21tYW5kIGhhbmRsZXIgYmFzZWQgb24gY29tbWFuZEtleVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yb3V0ZUNvbW1hbmQoaW5wdXQuY29tbWFuZEtleSwgaW5wdXQuaW5wdXQgfHwge30pO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiByZXN1bHQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XSBDb21tYW5kICcke2lucHV0LmNvbW1hbmRLZXl9JyBmYWlsZWQ6YCwgZXJyb3IpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQ6IG51bGwsXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21tYW5kIFJvdXRpbmcgICAtLS0tXG5cbiAgLyoqXG4gICAqIFJvdXRlcyBjb21tYW5kIHRvIGFwcHJvcHJpYXRlIGhhbmRsZXIgYmFzZWQgb24gY29tbWFuZEtleS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcm91dGVDb21tYW5kKFxuICAgIGNvbW1hbmRLZXk6IHN0cmluZyxcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIHN3aXRjaCAoY29tbWFuZEtleSkge1xuICAgICAgY2FzZSAnVXNlcjpDcmVhdGUnOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5jcmVhdGVVc2VyKGlucHV0KTtcblxuICAgICAgY2FzZSAnRGF0YTpQcm9jZXNzJzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvY2Vzc0RhdGEoaW5wdXQpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBNb2NrOiByZXR1cm4gc3VjY2VzcyBmb3IgdW5rbm93biBjb21tYW5kc1xuICAgICAgICBjb25zb2xlLndhcm4oYFtFeGVjdXRlQ29tbWFuZEFjdGl2aXR5XSBVbmtub3duIGNvbW1hbmQga2V5OiAke2NvbW1hbmRLZXl9YCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQ6IHsgc3VjY2VzczogdHJ1ZSB9LFxuICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBEb25lOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDb21tYW5kIEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IHVzZXIgaW4gdGhlIHN5c3RlbS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlVXNlcihcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIC8vIEV4dHJhY3QgdXNlciBkYXRhIGZyb20gaW5wdXRcbiAgICBjb25zdCBlbWFpbCA9IGlucHV0WydlbWFpbCddIHx8IGlucHV0Wyd1c2VyRW1haWwnXTtcbiAgICBjb25zdCBuYW1lID0gaW5wdXRbJ25hbWUnXSB8fCBpbnB1dFsndXNlck5hbWUnXSB8fCAnTmV3IFVzZXInO1xuICAgIGNvbnN0IHJvbGUgPSBpbnB1dFsncm9sZSddIHx8IGlucHV0Wyd1c2VyUm9sZSddIHx8ICdVc2VyJztcblxuICAgIC8vIENyZWF0ZSBuZXcgdXNlciBvYmplY3RcbiAgICBjb25zdCB1c2VySWQgPSBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKTtcbiAgICBjb25zdCBuZXdVc2VyID0ge1xuICAgICAgaWQ6IHVzZXJJZCxcbiAgICAgIGVtYWlsLFxuICAgICAgbmFtZSxcbiAgICAgIHJvbGUsXG4gICAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGlzQWN0aXZlOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVDb21tYW5kQWN0aXZpdHldIENyZWF0aW5nIHVzZXI6YCwgbmV3VXNlcik7XG5cbiAgICAvLyBJbiBwcm9kdWN0aW9uLCBzYXZlIHRvIGRhdGFiYXNlIHZpYSBFbnRpdHlTdG9yYWdlU2VydmljZSBvciBBUElcbiAgICAvLyBGb3IgbW9jaywgd2UnbGwganVzdCBzaW11bGF0ZSBzdWNjZXNzXG4gICAgLy8gYXdhaXQgdGhpcy5zdG9yYWdlU2VydmljZS5jcmVhdGUoJ1VzZXInLCBuZXdVc2VyKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgcmVzdWx0OiBuZXdVc2VyLFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBlbnRpdHlJZDogdXNlcklkLFxuICAgICAgfSxcbiAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgIERvbmU6IHRydWUsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUHJvY2Vzc2VzIGRhdGEgYWNjb3JkaW5nIHRvIGJ1c2luZXNzIHJ1bGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRGF0YShcbiAgICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBQcm9taXNlPHsgb3V0cHV0OiBFeGVjdXRlQ29tbWFuZE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIGNvbnN0IGRhdGEgPSBpbnB1dFsnZGF0YSddO1xuXG4gICAgLy8gTW9jayBwcm9jZXNzaW5nOiBqdXN0IGFkZCB0aW1lc3RhbXAgYW5kIHByb2Nlc3NlZCBmbGFnXG4gICAgY29uc3QgcHJvY2Vzc2VkRGF0YSA9IHtcbiAgICAgIC4uLmRhdGEsXG4gICAgICBwcm9jZXNzZWQ6IHRydWUsXG4gICAgICBwcm9jZXNzZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG5cbiAgICBjb25zb2xlLmxvZyhgW0V4ZWN1dGVDb21tYW5kQWN0aXZpdHldIFByb2Nlc3NlZCBkYXRhOmAsIHByb2Nlc3NlZERhdGEpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG91dHB1dDoge1xuICAgICAgICByZXN1bHQ6IHByb2Nlc3NlZERhdGEsXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICB9LFxuICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgRG9uZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuXG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ShowConfirmPopup Activity (Frontend)\n *\n * Shows a confirmation popup dialog with OK and Cancel buttons.\n * This activity runs on the frontend and requires user interaction.\n *\n * Execution Mode: frontend\n * Activity Type: workflow-activity:show-confirm-popup\n *\n * Outcomes:\n * - ok: User clicked OK button\n * - cancel: User clicked Cancel button or closed the dialog\n */\nexport class ShowConfirmPopupActivity {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n // Translate title and message if they are translation keys\n const title = await this.translationService.translateAsync(input.title);\n const message = await this.translationService.translateAsync(input.message);\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(title, message, input.type || 'warning', input.direction || 'horizontal', input.closable ?? false, input.defaultAction || 'cancel');\n const confirmed = dialogResult.result === true;\n // Determine outcome based on user action\n const outcomes = confirmed\n ? { ok: true }\n : { cancel: true };\n console.log(`[ShowConfirmPopupActivity] User ${confirmed ? 'confirmed' : 'cancelled'} the dialog`);\n return {\n success: true,\n data: {\n output: {},\n outcomes,\n },\n };\n }\n catch (error) {\n console.error(`[ShowConfirmPopupActivity] Failed to show confirm popup:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Failed to show confirmation dialog',\n },\n data: {\n output: {},\n outcomes: {\n cancel: true,\n },\n },\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowConfirmPopupActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1jb25maXJtLXBvcHVwLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy9zaG93LWNvbmZpcm0tcG9wdXAuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWdEaEUsWUFBWTtBQUVaOzs7Ozs7Ozs7Ozs7R0FZRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFHRSwrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0EyRHBFO0lBekRDLFlBQVk7SUFFWixpREFBaUQ7SUFFakQsS0FBSyxDQUFDLE9BQU8sQ0FDWCxLQUE0QjtRQUU1QixJQUFJLENBQUM7WUFDSCwyREFBMkQ7WUFDM0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTVFLDJCQUEyQjtZQUMzQixNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUNuRCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEtBQUssQ0FBQyxJQUFJLElBQUksU0FBUyxFQUN2QixLQUFLLENBQUMsU0FBUyxJQUFJLFlBQVksRUFDL0IsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQ3ZCLEtBQUssQ0FBQyxhQUFhLElBQUksUUFBUSxDQUNoQyxDQUFDO1lBRUYsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7WUFFL0MseUNBQXlDO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLFNBQVM7Z0JBQ3hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7Z0JBQ2QsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO1lBRXJCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUNBQW1DLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLGFBQWEsQ0FBQyxDQUFDO1lBRW5HLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUE0QjtvQkFDcEMsUUFBUTtpQkFDVDthQUNGLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBRWpGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJLG9DQUFvQztpQkFDNUQ7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUE0QjtvQkFDcEMsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQTdEVSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vcnVudGltZSc7XG5pbXBvcnQgeyBBWERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuXG4vLyNyZWdpb24gLS0tLSAgIFR5cGVzICAgLS0tLVxuXG4vKipcbiAqIElucHV0IGZvciBTaG93Q29uZmlybVBvcHVwIGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dDb25maXJtUG9wdXBJbnB1dCB7XG4gIC8qKlxuICAgKiBUaXRsZSBvZiB0aGUgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgKi9cbiAgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogTWVzc2FnZS9jb250ZW50IG9mIHRoZSBjb25maXJtYXRpb24gZGlhbG9nXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpYWxvZyB0eXBlL2NvbG9yIChlLmcuLCAnd2FybmluZycsICdkYW5nZXInLCAnaW5mbycsICdzdWNjZXNzJylcbiAgICovXG4gIHR5cGU/OiBBWFN0eWxlQ29sb3JUeXBlO1xuXG4gIC8qKlxuICAgKiBCdXR0b24gbGF5b3V0IGRpcmVjdGlvbiAoJ2hvcml6b250YWwnIG9yICd2ZXJ0aWNhbCcpXG4gICAqL1xuICBkaXJlY3Rpb24/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGRpYWxvZyBpcyBjbG9zYWJsZVxuICAgKi9cbiAgY2xvc2FibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGlvbiBidXR0b24gKCdjb25maXJtJyBvciAnY2FuY2VsJylcbiAgICovXG4gIGRlZmF1bHRBY3Rpb24/OiAnY29uZmlybScgfCAnY2FuY2VsJztcbn1cblxuLyoqXG4gKiBPdXRwdXQgZm9yIFNob3dDb25maXJtUG9wdXAgYWN0aXZpdHkuXG4gKiBPdXRjb21lIGlzIGRldGVybWluZWQgYnkgdGhlIG91dGNvbWVzIG9iamVjdCAob2sgb3IgY2FuY2VsKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG93Q29uZmlybVBvcHVwT3V0cHV0IHtcbiAgLy8gTm8gb3V0cHV0IGRhdGEgbmVlZGVkIC0gb3V0Y29tZSBpcyBkZXRlcm1pbmVkIGJ5IG91dGNvbWVzXG59XG5cbi8vI2VuZHJlZ2lvblxuXG4vKipcbiAqIFNob3dDb25maXJtUG9wdXAgQWN0aXZpdHkgKEZyb250ZW5kKVxuICogXG4gKiBTaG93cyBhIGNvbmZpcm1hdGlvbiBwb3B1cCBkaWFsb2cgd2l0aCBPSyBhbmQgQ2FuY2VsIGJ1dHRvbnMuXG4gKiBUaGlzIGFjdGl2aXR5IHJ1bnMgb24gdGhlIGZyb250ZW5kIGFuZCByZXF1aXJlcyB1c2VyIGludGVyYWN0aW9uLlxuICogXG4gKiBFeGVjdXRpb24gTW9kZTogZnJvbnRlbmRcbiAqIEFjdGl2aXR5IFR5cGU6IHdvcmtmbG93LWFjdGl2aXR5OnNob3ctY29uZmlybS1wb3B1cFxuICogXG4gKiBPdXRjb21lczpcbiAqIC0gb2s6IFVzZXIgY2xpY2tlZCBPSyBidXR0b25cbiAqIC0gY2FuY2VsOiBVc2VyIGNsaWNrZWQgQ2FuY2VsIGJ1dHRvbiBvciBjbG9zZWQgdGhlIGRpYWxvZ1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2hvd0NvbmZpcm1Qb3B1cEFjdGl2aXR5XG4gIGltcGxlbWVudHMgQVhQQ29tbWFuZDxTaG93Q29uZmlybVBvcHVwSW5wdXQsIHsgb3V0cHV0OiBTaG93Q29uZmlybVBvcHVwT3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9PiB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KEFYRGlhbG9nU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEFYUENvbW1hbmQgSW1wbGVtZW50YXRpb24gICAtLS0tXG5cbiAgYXN5bmMgZXhlY3V0ZShcbiAgICBpbnB1dDogU2hvd0NvbmZpcm1Qb3B1cElucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBTaG93Q29uZmlybVBvcHVwT3V0cHV0OyBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PiB9Pj4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBUcmFuc2xhdGUgdGl0bGUgYW5kIG1lc3NhZ2UgaWYgdGhleSBhcmUgdHJhbnNsYXRpb24ga2V5c1xuICAgICAgY29uc3QgdGl0bGUgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyhpbnB1dC50aXRsZSk7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoaW5wdXQubWVzc2FnZSk7XG5cbiAgICAgIC8vIFNob3cgY29uZmlybWF0aW9uIGRpYWxvZ1xuICAgICAgY29uc3QgZGlhbG9nUmVzdWx0ID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm0oXG4gICAgICAgIHRpdGxlLFxuICAgICAgICBtZXNzYWdlLFxuICAgICAgICBpbnB1dC50eXBlIHx8ICd3YXJuaW5nJyxcbiAgICAgICAgaW5wdXQuZGlyZWN0aW9uIHx8ICdob3Jpem9udGFsJyxcbiAgICAgICAgaW5wdXQuY2xvc2FibGUgPz8gZmFsc2UsXG4gICAgICAgIGlucHV0LmRlZmF1bHRBY3Rpb24gfHwgJ2NhbmNlbCcsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb25maXJtZWQgPSBkaWFsb2dSZXN1bHQucmVzdWx0ID09PSB0cnVlO1xuXG4gICAgICAvLyBEZXRlcm1pbmUgb3V0Y29tZSBiYXNlZCBvbiB1c2VyIGFjdGlvblxuICAgICAgY29uc3Qgb3V0Y29tZXMgPSBjb25maXJtZWRcbiAgICAgICAgPyB7IG9rOiB0cnVlIH1cbiAgICAgICAgOiB7IGNhbmNlbDogdHJ1ZSB9O1xuXG4gICAgICBjb25zb2xlLmxvZyhgW1Nob3dDb25maXJtUG9wdXBBY3Rpdml0eV0gVXNlciAke2NvbmZpcm1lZCA/ICdjb25maXJtZWQnIDogJ2NhbmNlbGxlZCd9IHRoZSBkaWFsb2dgKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG91dHB1dDoge30gYXMgU2hvd0NvbmZpcm1Qb3B1cE91dHB1dCxcbiAgICAgICAgICBvdXRjb21lcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW1Nob3dDb25maXJtUG9wdXBBY3Rpdml0eV0gRmFpbGVkIHRvIHNob3cgY29uZmlybSBwb3B1cDpgLCBlcnJvcik7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyb3IubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHNob3cgY29uZmlybWF0aW9uIGRpYWxvZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHt9IGFzIFNob3dDb25maXJtUG9wdXBPdXRwdXQsXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIGNhbmNlbDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19","//#region ---- Imports ----\nimport { Injectable, inject } from '@angular/core';\nimport { AXPWidgetSerializationHelper } from '@acorex/platform/layout/widget-core';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXPDialogRendererComponent } from '@acorex/platform/layout/builder';\nimport { cloneDeep } from 'lodash-es';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * ShowLayoutPopup Activity (Frontend)\n *\n * Shows a popup dialog with a custom layout built using layout builder.\n * The layout can be provided as JSON string or AXPWidgetNode object.\n *\n * Execution Mode: frontend\n * Activity Type: workflow-activity:show-layout-popup\n *\n * Outcomes:\n * Outcomes are dynamically generated based on the actions provided in the input.\n * Each action creates a corresponding outcome with the action name (from command.name or action.name).\n * If no actions are provided, default actions (cancel, submit) are used.\n *\n * Examples:\n * - If action has command.name = 'save', outcome will be { save: true }\n * - If action has name = 'delete', outcome will be { delete: true }\n * - Default outcomes: { cancel: true } or { submit: true }\n */\nexport class ShowLayoutPopupActivity {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.popupService = inject(AXPopupService);\n }\n //#endregion\n //#region ---- AXPCommand Implementation ----\n async execute(input) {\n try {\n // Parse layout definition\n let layoutNode;\n if (typeof input.layout === 'string') {\n // If it's a JSON string, parse it\n try {\n layoutNode = AXPWidgetSerializationHelper.fromJson(input.layout);\n }\n catch (error) {\n throw new Error(`Invalid layout JSON: ${error.message}`);\n }\n }\n else {\n // If it's already an object, use it directly (clone to avoid mutations)\n layoutNode = cloneDeep(input.layout);\n }\n // Validate layout node\n if (!layoutNode || !layoutNode.type) {\n throw new Error('Invalid layout: missing type property');\n }\n // Build actions from input or use defaults\n const actions = input.actions || {\n suffix: [\n {\n title: '@general:actions.cancel.title',\n icon: 'fa-times',\n color: 'default',\n command: { name: 'cancel' },\n },\n {\n title: '@general:actions.submit.title',\n icon: 'fa-check',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n },\n ],\n };\n // Create dialog configuration\n const dialogConfig = {\n title: input.title || 'Dialog',\n context: input.context || {},\n definition: layoutNode,\n actions: {\n footer: {\n prefix: actions.prefix || [],\n suffix: actions.suffix || [],\n },\n },\n };\n // Extract action names for outcomes (from command.name or action.name)\n const actionNames = new Set();\n if (actions.prefix) {\n actions.prefix.forEach((action) => {\n const actionName = action.command?.name || action.name || 'unknown';\n actionNames.add(actionName);\n });\n }\n if (actions.suffix) {\n actions.suffix.forEach((action) => {\n const actionName = action.command?.name || action.name || 'unknown';\n actionNames.add(actionName);\n });\n }\n // Show dialog using AXPDialogRendererComponent\n const dialogResult = await new Promise((resolve) => {\n this.popupService.open(AXPDialogRendererComponent, {\n title: dialogConfig.title,\n size: input.size || 'md',\n closeButton: input.closeButton !== undefined ? input.closeButton : true,\n closeOnBackdropClick: false,\n draggable: false,\n data: {\n config: dialogConfig,\n callBack: (result) => {\n resolve({\n context: result.context?.() || dialogConfig.context,\n action: result.action?.() || 'cancel',\n });\n },\n },\n });\n });\n // Extract result data and action\n const result = dialogResult?.context || {};\n const action = dialogResult?.action || 'cancel';\n // Build outcomes dynamically based on action names\n // Each action creates a corresponding outcome\n const outcomes = {};\n // Set the outcome for the clicked action to true\n if (action && actionNames.has(action)) {\n outcomes[action] = true;\n }\n else if (action) {\n // If action is not in the list, still add it as outcome\n outcomes[action] = true;\n }\n console.log(`[ShowLayoutPopupActivity] Dialog closed with action: ${action}`, result);\n return {\n success: true,\n data: {\n output: {\n result,\n action,\n },\n outcomes,\n },\n };\n }\n catch (error) {\n console.error(`[ShowLayoutPopupActivity] Failed to show layout popup:`, error);\n return {\n success: false,\n message: {\n text: error.message || 'Failed to show layout popup',\n },\n data: {\n output: {\n result: {},\n action: 'cancel',\n },\n outcomes: {\n cancel: true,\n },\n },\n };\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: ShowLayoutPopupActivity, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1sYXlvdXQtcG9wdXAuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL2ZlYXR1cmVzL2VuZ2luZS9hY3Rpdml0aWVzL3Nob3ctbGF5b3V0LXBvcHVwLmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtCQUErQjtBQUUvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQWlCLDRCQUE0QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGNBQWMsRUFBbUIsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQThDLE1BQU0saUNBQWlDLENBQUM7QUFFekgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUE0RHRDLFlBQVk7QUFFWjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQUdFLCtDQUErQztRQUU5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWtKeEQ7SUFoSkMsWUFBWTtJQUVaLGlEQUFpRDtJQUVqRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQTJCO1FBRTNCLElBQUksQ0FBQztZQUNILDBCQUEwQjtZQUMxQixJQUFJLFVBQXlCLENBQUM7WUFFOUIsSUFBSSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLGtDQUFrQztnQkFDbEMsSUFBSSxDQUFDO29CQUNILFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO2dCQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0s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O1lBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFL0UsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksNkJBQTZCO2lCQUNyRDtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFO3dCQUNOLE1BQU0sRUFBRSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxRQUFRO3FCQUNqQjtvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7K0dBbkpVLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSwgQVhQV2lkZ2V0U2VyaWFsaXphdGlvbkhlbHBlciB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFYUG9wdXBTZXJ2aWNlLCBBWFBvcHVwU2l6ZVR5cGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhQRGlhbG9nUmVuZGVyZXJDb21wb25lbnQsIERpYWxvZ1JlbmRlcmVyQ29uZmlnLCBEaWFsb2dSZW5kZXJlclJlc3VsdCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXInO1xuaW1wb3J0IHsgQVhQQWN0aW9uTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgICAtLS0tXG5cbi8qKlxuICogSW5wdXQgZm9yIFNob3dMYXlvdXRQb3B1cCBhY3Rpdml0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaG93TGF5b3V0UG9wdXBJbnB1dCB7XG4gIC8qKlxuICAgKiBMYXlvdXQgZGVmaW5pdGlvbiBhcyBKU09OIHN0cmluZyBvciBBWFBXaWRnZXROb2RlIG9iamVjdFxuICAgKi9cbiAgbGF5b3V0OiBzdHJpbmcgfCBBWFBXaWRnZXROb2RlO1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgdGl0bGVcbiAgICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgc2l6ZVxuICAgKi9cbiAgc2l6ZT86IEFYUG9wdXBTaXplVHlwZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBzaG93IGNsb3NlIGJ1dHRvblxuICAgKi9cbiAgY2xvc2VCdXR0b24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGNvbnRleHQgZGF0YSBmb3IgdGhlIGZvcm1cbiAgICovXG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBEaWFsb2cgYWN0aW9ucyAoYnV0dG9ucykgdG8gZGlzcGxheSBpbiBmb290ZXJcbiAgICogRWFjaCBhY3Rpb24gd2lsbCBjcmVhdGUgYSBjb3JyZXNwb25kaW5nIG91dGNvbWVcbiAgICovXG4gIGFjdGlvbnM/OiB7XG4gICAgcHJlZml4PzogQVhQQWN0aW9uTWVudUl0ZW1bXTtcbiAgICBzdWZmaXg/OiBBWFBBY3Rpb25NZW51SXRlbVtdO1xuICB9O1xufVxuXG4vKipcbiAqIE91dHB1dCBmb3IgU2hvd0xheW91dFBvcHVwIGFjdGl2aXR5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNob3dMYXlvdXRQb3B1cE91dHB1dCB7XG4gIC8qKlxuICAgKiBSZXN1bHQgZGF0YSBmcm9tIHRoZSBkaWFsb2cgKGZvcm0gdmFsdWVzKVxuICAgKi9cbiAgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBBY3Rpb24gdGhhdCB3YXMgY2xpY2tlZCAoZS5nLiwgJ3N1Ym1pdCcsICdjYW5jZWwnLCBvciBjdXN0b20gYWN0aW9uIG5hbWUpXG4gICAqL1xuICBhY3Rpb246IHN0cmluZztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogU2hvd0xheW91dFBvcHVwIEFjdGl2aXR5IChGcm9udGVuZClcbiAqIFxuICogU2hvd3MgYSBwb3B1cCBkaWFsb2cgd2l0aCBhIGN1c3RvbSBsYXlvdXQgYnVpbHQgdXNpbmcgbGF5b3V0IGJ1aWxkZXIuXG4gKiBUaGUgbGF5b3V0IGNhbiBiZSBwcm92aWRlZCBhcyBKU09OIHN0cmluZyBvciBBWFBXaWRnZXROb2RlIG9iamVjdC5cbiAqIFxuICogRXhlY3V0aW9uIE1vZGU6IGZyb250ZW5kXG4gKiBBY3Rpdml0eSBUeXBlOiB3b3JrZmxvdy1hY3Rpdml0eTpzaG93LWxheW91dC1wb3B1cFxuICogXG4gKiBPdXRjb21lczpcbiAqIE91dGNvbWVzIGFyZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgYmFzZWQgb24gdGhlIGFjdGlvbnMgcHJvdmlkZWQgaW4gdGhlIGlucHV0LlxuICogRWFjaCBhY3Rpb24gY3JlYXRlcyBhIGNvcnJlc3BvbmRpbmcgb3V0Y29tZSB3aXRoIHRoZSBhY3Rpb24gbmFtZSAoZnJvbSBjb21tYW5kLm5hbWUgb3IgYWN0aW9uLm5hbWUpLlxuICogSWYgbm8gYWN0aW9ucyBhcmUgcHJvdmlkZWQsIGRlZmF1bHQgYWN0aW9ucyAoY2FuY2VsLCBzdWJtaXQpIGFyZSB1c2VkLlxuICogXG4gKiBFeGFtcGxlczpcbiAqIC0gSWYgYWN0aW9uIGhhcyBjb21tYW5kLm5hbWUgPSAnc2F2ZScsIG91dGNvbWUgd2lsbCBiZSB7IHNhdmU6IHRydWUgfVxuICogLSBJZiBhY3Rpb24gaGFzIG5hbWUgPSAnZGVsZXRlJywgb3V0Y29tZSB3aWxsIGJlIHsgZGVsZXRlOiB0cnVlIH1cbiAqIC0gRGVmYXVsdCBvdXRjb21lczogeyBjYW5jZWw6IHRydWUgfSBvciB7IHN1Ym1pdDogdHJ1ZSB9XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaG93TGF5b3V0UG9wdXBBY3Rpdml0eVxuICBpbXBsZW1lbnRzIEFYUENvbW1hbmQ8U2hvd0xheW91dFBvcHVwSW5wdXQsIHsgb3V0cHV0OiBTaG93TGF5b3V0UG9wdXBPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBBWFBDb21tYW5kIEltcGxlbWVudGF0aW9uICAgLS0tLVxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgaW5wdXQ6IFNob3dMYXlvdXRQb3B1cElucHV0LFxuICApOiBQcm9taXNlPEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0PHsgb3V0cHV0OiBTaG93TGF5b3V0UG9wdXBPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFBhcnNlIGxheW91dCBkZWZpbml0aW9uXG4gICAgICBsZXQgbGF5b3V0Tm9kZTogQVhQV2lkZ2V0Tm9kZTtcblxuICAgICAgaWYgKHR5cGVvZiBpbnB1dC5sYXlvdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYSBKU09OIHN0cmluZywgcGFyc2UgaXRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsYXlvdXROb2RlID0gQVhQV2lkZ2V0U2VyaWFsaXphdGlvbkhlbHBlci5mcm9tSnNvbihpbnB1dC5sYXlvdXQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGxheW91dCBKU09OOiAke2Vycm9yLm1lc3NhZ2V9YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIGl0J3MgYWxyZWFkeSBhbiBvYmplY3QsIHVzZSBpdCBkaXJlY3RseSAoY2xvbmUgdG8gYXZvaWQgbXV0YXRpb25zKVxuICAgICAgICBsYXlvdXROb2RlID0gY2xvbmVEZWVwKGlucHV0LmxheW91dCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFZhbGlkYXRlIGxheW91dCBub2RlXG4gICAgICBpZiAoIWxheW91dE5vZGUgfHwgIWxheW91dE5vZGUudHlwZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbGF5b3V0OiBtaXNzaW5nIHR5cGUgcHJvcGVydHknKTtcbiAgICAgIH1cblxuICAgICAgLy8gQnVpbGQgYWN0aW9ucyBmcm9tIGlucHV0IG9yIHVzZSBkZWZhdWx0c1xuICAgICAgY29uc3QgYWN0aW9ucyA9IGlucHV0LmFjdGlvbnMgfHwge1xuICAgICAgICBzdWZmaXg6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aXRsZTogJ0BnZW5lcmFsOmFjdGlvbnMuY2FuY2VsLnRpdGxlJyxcbiAgICAgICAgICAgIGljb246ICdmYS10aW1lcycsXG4gICAgICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgY29tbWFuZDogeyBuYW1lOiAnY2FuY2VsJyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICdAZ2VuZXJhbDphY3Rpb25zLnN1Ym1pdC50aXRsZScsXG4gICAgICAgICAgICBpY29uOiAnZmEtY2hlY2snLFxuICAgICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgIGNvbW1hbmQ6IHsgbmFtZTogJ3N1Ym1pdCcsIG9wdGlvbnM6IHsgdmFsaWRhdGU6IHRydWUgfSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICAvLyBDcmVhdGUgZGlhbG9nIGNvbmZpZ3VyYXRpb25cbiAgICAgIGNvbnN0IGRpYWxvZ0NvbmZpZzogRGlhbG9nUmVuZGVyZXJDb25maWcgPSB7XG4gICAgICAgIHRpdGxlOiBpbnB1dC50aXRsZSB8fCAnRGlhbG9nJyxcbiAgICAgICAgY29udGV4dDogaW5wdXQuY29udGV4dCB8fCB7fSxcbiAgICAgICAgZGVmaW5pdGlvbjogbGF5b3V0Tm9kZSxcbiAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgICAgcHJlZml4OiBhY3Rpb25zLnByZWZpeCB8fCBbXSxcbiAgICAgICAgICAgIHN1ZmZpeDogYWN0aW9ucy5zdWZmaXggfHwgW10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIC8vIEV4dHJhY3QgYWN0aW9uIG5hbWVzIGZvciBvdXRjb21lcyAoZnJvbSBjb21tYW5kLm5hbWUgb3IgYWN0aW9uLm5hbWUpXG4gICAgICBjb25zdCBhY3Rpb25OYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgaWYgKGFjdGlvbnMucHJlZml4KSB7XG4gICAgICAgIGFjdGlvbnMucHJlZml4LmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbk5hbWUgPSBhY3Rpb24uY29tbWFuZD8ubmFtZSB8fCBhY3Rpb24ubmFtZSB8fCAndW5rbm93bic7XG4gICAgICAgICAgYWN0aW9uTmFtZXMuYWRkKGFjdGlvbk5hbWUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25zLnN1ZmZpeCkge1xuICAgICAgICBhY3Rpb25zLnN1ZmZpeC5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb25OYW1lID0gYWN0aW9uLmNvbW1hbmQ/Lm5hbWUgfHwgYWN0aW9uLm5hbWUgfHwgJ3Vua25vd24nO1xuICAgICAgICAgIGFjdGlvbk5hbWVzLmFkZChhY3Rpb25OYW1lKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNob3cgZGlhbG9nIHVzaW5nIEFYUERpYWxvZ1JlbmRlcmVyQ29tcG9uZW50XG4gICAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSBhd2FpdCBuZXcgUHJvbWlzZTxEaWFsb2dSZW5kZXJlclJlc3VsdD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWFBEaWFsb2dSZW5kZXJlckNvbXBvbmVudCwge1xuICAgICAgICAgIHRpdGxlOiBkaWFsb2dDb25maWcudGl0bGUsXG4gICAgICAgICAgc2l6ZTogaW5wdXQuc2l6ZSB8fCAnbWQnLFxuICAgICAgICAgIGNsb3NlQnV0dG9uOiBpbnB1dC5jbG9zZUJ1dHRvbiAhPT0gdW5kZWZpbmVkID8gaW5wdXQuY2xvc2VCdXR0b24gOiB0cnVlLFxuICAgICAgICAgIGNsb3NlT25CYWNrZHJvcENsaWNrOiBmYWxzZSxcbiAgICAgICAgICBkcmFnZ2FibGU6IGZhbHNlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNvbmZpZzogZGlhbG9nQ29uZmlnLFxuICAgICAgICAgICAgY2FsbEJhY2s6IChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiByZXN1bHQuY29udGV4dD8uKCkgfHwgZGlhbG9nQ29uZmlnLmNvbnRleHQsXG4gICAgICAgICAgICAgICAgYWN0aW9uOiByZXN1bHQuYWN0aW9uPy4oKSB8fCAnY2FuY2VsJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIEV4dHJhY3QgcmVzdWx0IGRhdGEgYW5kIGFjdGlvblxuICAgICAgY29uc3QgcmVzdWx0ID0gZGlhbG9nUmVzdWx0Py5jb250ZXh0IHx8IHt9O1xuICAgICAgY29uc3QgYWN0aW9uID0gZGlhbG9nUmVzdWx0Py5hY3Rpb24gfHwgJ2NhbmNlbCc7XG5cbiAgICAgIC8vIEJ1aWxkIG91dGNvbWVzIGR5bmFtaWNhbGx5IGJhc2VkIG9uIGFjdGlvbiBuYW1lc1xuICAgICAgLy8gRWFjaCBhY3Rpb24gY3JlYXRlcyBhIGNvcnJlc3BvbmRpbmcgb3V0Y29tZVxuICAgICAgY29uc3Qgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAgIFxuICAgICAgLy8gU2V0IHRoZSBvdXRjb21lIGZvciB0aGUgY2xpY2tlZCBhY3Rpb24gdG8gdHJ1ZVxuICAgICAgaWYgKGFjdGlvbiAmJiBhY3Rpb25OYW1lcy5oYXMoYWN0aW9uKSkge1xuICAgICAgICBvdXRjb21lc1thY3Rpb25dID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uKSB7XG4gICAgICAgIC8vIElmIGFjdGlvbiBpcyBub3QgaW4gdGhlIGxpc3QsIHN0aWxsIGFkZCBpdCBhcyBvdXRjb21lXG4gICAgICAgIG91dGNvbWVzW2FjdGlvbl0gPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmxvZyhgW1Nob3dMYXlvdXRQb3B1cEFjdGl2aXR5XSBEaWFsb2cgY2xvc2VkIHdpdGggYWN0aW9uOiAke2FjdGlvbn1gLCByZXN1bHQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICBhY3Rpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdXRjb21lcyxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgY29uc29sZS5lcnJvcihgW1Nob3dMYXlvdXRQb3B1cEFjdGl2aXR5XSBGYWlsZWQgdG8gc2hvdyBsYXlvdXQgcG9wdXA6YCwgZXJyb3IpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzaG93IGxheW91dCBwb3B1cCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIHJlc3VsdDoge30sXG4gICAgICAgICAgICBhY3Rpb246ICdjYW5jZWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIGNhbmNlbDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cbn1cblxuIl19","import { AXMCalendarManagementModule } from '@acorex/modules/calendar-management';\nimport { AXP_WORKFLOW_DEFINITION_LOADER, AXP_ACTIVITY_PROVIDER, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_PROVIDER } from '@acorex/platform/workflow';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex/platform/core';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXP_MENU_PROVIDER } from '@acorex/platform/common';\nimport { WorkflowManagementManifest } from './manifest';\nimport { NgModule } from '@angular/core';\nimport { AXMSignPluginModule } from './features/sign/sign.module';\nimport { AXMWorkflowManagementWorkflowDefinitionEntityModule } from './entities/workflow-definition';\nimport { AXMWorkflowManagementWorkflowInstanceEntityModule } from './entities/workflow-instance';\nimport { AXMWorkflowDefinitionProvider } from './workflow-definitions/workflow-definition.provider';\nimport { AXMWorkflowActivitiesDefinitionProvider } from './features/engine/activities/workflow-activities-definition.provider';\nimport { AXCCategoryProvider } from './features/engine/category.provider';\nimport { AXMWorkflowCategoryProvider } from './features/engine/workflows/workflow-category.provider';\nimport { AXMWorkflowDefinitionMetadataProvider } from './features/engine/workflows/workflow-definition-metadata.provider';\nimport { CheckPermissionActivity, ExecuteQueryActivity, ExecuteCommandActivity, ShowConfirmPopupActivity, ShowLayoutPopupActivity, } from './features/engine/activities';\nimport { AXPDomainModule } from '@acorex/platform/domain';\nimport { AXMWorkflowManagementModuleEntityProvider } from './entity.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { ROUTES } from '@angular/router';\nimport { inject } from '@angular/core';\nimport { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_ENTITY_CONFIG_TOKEN } from '@acorex/platform/layout/entity';\nimport * as i0 from \"@angular/core\";\nfunction routesFactory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes = [\n {\n path: ':app/workflow-management/studio',\n loadComponent: () => {\n return config.viewers.root();\n },\n canActivate: [AXPAuthGuard],\n data: { reuse: true },\n children: [\n {\n path: '',\n loadComponent: () => import('./features/engine/studio/workflow-studio.component').then((c) => c.WorkflowStudioComponent),\n },\n ],\n },\n ];\n return routes;\n}\nexport class AXMWorkflowManagementModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, imports: [AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n provideCommandSetups([\n {\n key: 'WorkflowManagement.WorkflowDefinition:Execute',\n command: () => import('./entities/workflow-definition/commands').then((c) => c.ExecuteWorkflowCommand),\n },\n ]),\n // provideEntity([RootConfig.entities.activityDefinition.fullName]),\n // Entity Definition Loader\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMWorkflowManagementModuleEntityProvider,\n multi: true,\n },\n // Menu Provider\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: WorkflowManagementManifest,\n multi: true,\n },\n {\n provide: AXP_WORKFLOW_DEFINITION_LOADER,\n useClass: AXMWorkflowDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_CATEGORY_PROVIDER,\n useClass: AXCCategoryProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_PROVIDER,\n useClass: AXMWorkflowActivitiesDefinitionProvider,\n multi: true,\n },\n // Workflow Category Provider\n {\n provide: AXP_WORKFLOW_CATEGORY_PROVIDER,\n useClass: AXMWorkflowCategoryProvider,\n multi: true,\n },\n // Workflow Definition Metadata Provider\n {\n provide: AXP_WORKFLOW_PROVIDER,\n useClass: AXMWorkflowDefinitionMetadataProvider,\n multi: true,\n },\n // Provide activity classes for dependency injection\n CheckPermissionActivity,\n ExecuteQueryActivity,\n ExecuteCommandActivity,\n ShowConfirmPopupActivity,\n ShowLayoutPopupActivity,\n ], imports: [AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMWorkflowManagementModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n AXMCalendarManagementModule,\n AXMSignPluginModule,\n AXPDomainModule,\n AXMWorkflowManagementWorkflowDefinitionEntityModule,\n AXMWorkflowManagementWorkflowInstanceEntityModule,\n ],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n provideCommandSetups([\n {\n key: 'WorkflowManagement.WorkflowDefinition:Execute',\n command: () => import('./entities/workflow-definition/commands').then((c) => c.ExecuteWorkflowCommand),\n },\n ]),\n // provideEntity([RootConfig.entities.activityDefinition.fullName]),\n // Entity Definition Loader\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMWorkflowManagementModuleEntityProvider,\n multi: true,\n },\n // Menu Provider\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: WorkflowManagementManifest,\n multi: true,\n },\n {\n provide: AXP_WORKFLOW_DEFINITION_LOADER,\n useClass: AXMWorkflowDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_CATEGORY_PROVIDER,\n useClass: AXCCategoryProvider,\n multi: true,\n },\n {\n provide: AXP_ACTIVITY_PROVIDER,\n useClass: AXMWorkflowActivitiesDefinitionProvider,\n multi: true,\n },\n // Workflow Category Provider\n {\n provide: AXP_WORKFLOW_CATEGORY_PROVIDER,\n useClass: AXMWorkflowCategoryProvider,\n multi: true,\n },\n // Workflow Definition Metadata Provider\n {\n provide: AXP_WORKFLOW_PROVIDER,\n useClass: AXMWorkflowDefinitionMetadataProvider,\n multi: true,\n },\n // Provide activity classes for dependency injection\n CheckPermissionActivity,\n ExecuteQueryActivity,\n ExecuteCommandActivity,\n ShowConfirmPopupActivity,\n ShowLayoutPopupActivity,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvd29ya2Zsb3ctbWFuYWdlbWVudC9zcmMvbGliL3dvcmtmbG93LW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSw4QkFBOEIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pMLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtREFBbUQsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpREFBaUQsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQy9ILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdE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QUFnQjt3QkFDaEI7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsUUFBUSxFQUFFLGVBQWU7NEJBQ3pCLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELDJCQUEyQjt3QkFDM0I7NEJBQ0UsT0FBTyxFQUFFLDRCQUE0Qjs0QkFDckMsUUFBUSxFQUFFLDBCQUEwQjs0QkFDcEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLDZCQUE2Qjs0QkFDdkMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLDhCQUE4Qjs0QkFDdkMsUUFBUSxFQUFFLG1CQUFtQjs0QkFDN0IsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLHVDQUF1Qzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsNkJBQTZCO3dCQUM3Qjs0QkFDRSxPQUFPLEVBQUUsOEJBQThCOzRCQUN2QyxRQUFRLEVBQUUsMkJBQTJCOzRCQUNyQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCx3Q0FBd0M7d0JBQ3hDOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFFBQVEsRUFBRSxxQ0FBcUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3dCQUNELG9EQUFvRDt3QkFDcEQsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7cUJBQ3hCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhNQ2FsZW5kYXJNYW5hZ2VtZW50TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2NhbGVuZGFyLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgQVhQX1dPUktGTE9XX0RFRklOSVRJT05fTE9BREVSLCBBWFBfQUNUSVZJVFlfUFJPVklERVIsIEFYUF9BQ1RJVklUWV9DQVRFR09SWV9QUk9WSURFUiwgQVhQX1dPUktGTE9XX0NBVEVHT1JZX1BST1ZJREVSLCBBWFBfV09SS0ZMT1dfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcbmltcG9ydCB7IHByb3ZpZGVDb21tYW5kU2V0dXBzIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUF9NT0RVTEVfTUFOSUZFU1RfUFJPVklERVIgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQX0VOVElUWV9ERUZJTklUSU9OX0xPQURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2VudGl0eSc7XG5pbXBvcnQgeyBBWFBfTUVOVV9QUk9WSURFUiB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IFdvcmtmbG93TWFuYWdlbWVudE1hbmlmZXN0IH0gZnJvbSAnLi9tYW5pZmVzdCc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNU2lnblBsdWdpbk1vZHVsZSB9IGZyb20gJy4vZmVhdHVyZXMvc2lnbi9zaWduLm1vZHVsZSc7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0RlZmluaXRpb25FbnRpdHlNb2R1bGUgfSBmcm9tICcuL2VudGl0aWVzL3dvcmtmbG93LWRlZmluaXRpb24nO1xuaW1wb3J0IHsgQVhNV29ya2Zsb3dNYW5hZ2VtZW50V29ya2Zsb3dJbnN0YW5jZUVudGl0eU1vZHVsZSB9IGZyb20gJy4vZW50aXRpZXMvd29ya2Zsb3ctaW5zdGFuY2UnO1xuaW1wb3J0IHsgQVhNV29ya2Zsb3dEZWZpbml0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb25zL3dvcmtmbG93LWRlZmluaXRpb24ucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhNV29ya2Zsb3dBY3Rpdml0aWVzRGVmaW5pdGlvblByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9lbmdpbmUvYWN0aXZpdGllcy93b3JrZmxvdy1hY3Rpdml0aWVzLWRlZmluaXRpb24ucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhDQ2F0ZWdvcnlQcm92aWRlciB9IGZyb20gJy4vZmVhdHVyZXMvZW5naW5lL2NhdGVnb3J5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFYTVdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlciB9IGZyb20gJy4vZmVhdHVyZXMvZW5naW5lL3dvcmtmbG93cy93b3JrZmxvdy1jYXRlZ29yeS5wcm92aWRlcic7XG5pbXBvcnQgeyBBWE1Xb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YVByb3ZpZGVyIH0gZnJvbSAnLi9mZWF0dXJlcy9lbmdpbmUvd29ya2Zsb3dzL3dvcmtmbG93LWRlZmluaXRpb24tbWV0YWRhdGEucHJvdmlkZXInO1xuaW1wb3J0IHtcbiAgQ2hlY2tQZXJtaXNzaW9uQWN0aXZpdHksXG4gIEV4ZWN1dGVRdWVyeUFjdGl2aXR5LFxuICBFeGVjdXRlQ29tbWFuZEFjdGl2aXR5LFxuICBTaG93Q29uZmlybVBvcHVwQWN0aXZpdHksXG4gIFNob3dMYXlvdXRQb3B1cEFjdGl2aXR5LFxufSBmcm9tICcuL2ZlYXR1cmVzL2VuZ2luZS9hY3Rpdml0aWVzJztcbmltcG9ydCB7IEFYUERvbWFpbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vZG9tYWluJztcbmltcG9ydCB7IEFYTVdvcmtmbG93TWFuYWdlbWVudE1vZHVsZUVudGl0eVByb3ZpZGVyIH0gZnJvbSAnLi9lbnRpdHkucHJvdmlkZXInO1xuaW1wb3J0IHsgQVhNTWVudVByb3ZpZGVyIH0gZnJvbSAnLi9tZW51LnByb3ZpZGVyJztcbmltcG9ydCB7IFJvdXRlcywgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvb3RDb25maWcgfSBmcm9tICcuL2NvbnN0JztcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQXV0aEd1YXJkIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9hdXRoJztcbmltcG9ydCB7IEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcblxuZnVuY3Rpb24gcm91dGVzRmFjdG9yeSgpIHtcbiAgY29uc3QgY29uZmlnID0gaW5qZWN0KEFYUF9FTlRJVFlfQ09ORklHX1RPS0VOKTtcbiAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAge1xuICAgICAgcGF0aDogJzphcHAvd29ya2Zsb3ctbWFuYWdlbWVudC9zdHVkaW8nLFxuICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gY29uZmlnLnZpZXdlcnMucm9vdCgpO1xuICAgICAgfSxcbiAgICAgIGNhbkFjdGl2YXRlOiBbQVhQQXV0aEd1YXJkXSxcbiAgICAgIGRhdGE6IHsgcmV1c2U6IHRydWUgfSxcbiAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICBsb2FkQ29tcG9uZW50OiAoKSA9PlxuICAgICAgICAgICAgaW1wb3J0KCcuL2ZlYXR1cmVzL2VuZ2luZS9zdHVkaW8vd29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuV29ya2Zsb3dTdHVkaW9Db21wb25lbnQpLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdO1xuICByZXR1cm4gcm91dGVzO1xufVxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQVhNQ2FsZW5kYXJNYW5hZ2VtZW50TW9kdWxlLFxuICAgIEFYTVNpZ25QbHVnaW5Nb2R1bGUsXG4gICAgQVhQRG9tYWluTW9kdWxlLFxuICAgIEFYTVdvcmtmbG93TWFuYWdlbWVudFdvcmtmbG93RGVmaW5pdGlvbkVudGl0eU1vZHVsZSxcbiAgICBBWE1Xb3JrZmxvd01hbmFnZW1lbnRXb3JrZmxvd0luc3RhbmNlRW50aXR5TW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUZhY3Rvcnk6IHJvdXRlc0ZhY3RvcnksXG4gICAgfSxcbiAgICBwcm92aWRlQ29tbWFuZFNldHVwcyhbXG4gICAgICB7XG4gICAgICAgIGtleTogJ1dvcmtmbG93TWFuYWdlbWVudC5Xb3JrZmxvd0RlZmluaXRpb246RXhlY3V0ZScsXG4gICAgICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9lbnRpdGllcy93b3JrZmxvdy1kZWZpbml0aW9uL2NvbW1hbmRzJykudGhlbigoYykgPT4gYy5FeGVjdXRlV29ya2Zsb3dDb21tYW5kKSxcbiAgICAgIH0sXG4gICAgXSksXG4gICAvLyBwcm92aWRlRW50aXR5KFtSb290Q29uZmlnLmVudGl0aWVzLmFjdGl2aXR5RGVmaW5pdGlvbi5mdWxsTmFtZV0pLFxuICAgIC8vIEVudGl0eSBEZWZpbml0aW9uIExvYWRlclxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIsXG4gICAgICB1c2VDbGFzczogQVhNV29ya2Zsb3dNYW5hZ2VtZW50TW9kdWxlRW50aXR5UHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vIE1lbnUgUHJvdmlkZXJcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBfTUVOVV9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1NZW51UHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vIE1vZHVsZSBNYW5pZmVzdCBQcm92aWRlclxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9NT0RVTEVfTUFOSUZFU1RfUFJPVklERVIsXG4gICAgICB1c2VWYWx1ZTogV29ya2Zsb3dNYW5hZ2VtZW50TWFuaWZlc3QsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9XT1JLRkxPV19ERUZJTklUSU9OX0xPQURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1Xb3JrZmxvd0RlZmluaXRpb25Qcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYQ0NhdGVnb3J5UHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9BQ1RJVklUWV9QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1Xb3JrZmxvd0FjdGl2aXRpZXNEZWZpbml0aW9uUHJvdmlkZXIsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIC8vIFdvcmtmbG93IENhdGVnb3J5IFByb3ZpZGVyXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhQX1dPUktGTE9XX0NBVEVHT1JZX1BST1ZJREVSLFxuICAgICAgdXNlQ2xhc3M6IEFYTVdvcmtmbG93Q2F0ZWdvcnlQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAgLy8gV29ya2Zsb3cgRGVmaW5pdGlvbiBNZXRhZGF0YSBQcm92aWRlclxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUF9XT1JLRkxPV19QUk9WSURFUixcbiAgICAgIHVzZUNsYXNzOiBBWE1Xb3JrZmxvd0RlZmluaXRpb25NZXRhZGF0YVByb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICAvLyBQcm92aWRlIGFjdGl2aXR5IGNsYXNzZXMgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uXG4gICAgQ2hlY2tQZXJtaXNzaW9uQWN0aXZpdHksXG4gICAgRXhlY3V0ZVF1ZXJ5QWN0aXZpdHksXG4gICAgRXhlY3V0ZUNvbW1hbmRBY3Rpdml0eSxcbiAgICBTaG93Q29uZmlybVBvcHVwQWN0aXZpdHksXG4gICAgU2hvd0xheW91dFBvcHVwQWN0aXZpdHksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTVdvcmtmbG93TWFuYWdlbWVudE1vZHVsZSB7IH1cblxuIl19","//#region ---- Imports ----\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, output, ViewEncapsulation } from '@angular/core';\nimport { AXPCategoryTreeComponent, } from '@acorex/platform/layout/components';\nimport { AXPActivityDefinitionService } from '@acorex/platform/workflow';\nimport * as i0 from \"@angular/core\";\n//#endregion\nexport class AXMActivityCategoriesTreeComponent {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.activityDefinitionService = inject(AXPActivityDefinitionService);\n //#endregion\n //#region ---- Output Events ----\n /**\n * Emitted when a category node is clicked\n */\n this.categoryClick = output();\n /**\n * Emitted when an activity node is clicked\n */\n this.activityClick = output();\n //#endregion\n //#region ---- Category Tree Configuration ----\n /**\n * Category tree data source\n */\n this.categoryTreeDataSource = {\n loadRootNodes: async () => {\n const categories = await this.activityDefinitionService.getCategories();\n return this.mapCategoriesToEntities(categories);\n },\n loadChildNodes: async (parentId) => {\n // Check if parentId is an activity (prefixed with 'activity_')\n if (parentId.startsWith('activity_')) {\n return []; // Activities are leaf nodes\n }\n // Load child categories\n const categories = await this.activityDefinitionService.getCategories(parentId);\n const categoryEntities = this.mapCategoriesToEntities(categories);\n // Load activities for this category\n const activities = await this.activityDefinitionService.getActivitiesByCategoryId(parentId);\n const activityEntities = this.mapActivitiesToEntities(activities, parentId);\n // Return categories first, then activities\n return [...categoryEntities, ...activityEntities];\n },\n searchNodes: async (searchValue) => {\n // TODO: Implement search if needed\n return [];\n },\n };\n /**\n * Category tree configuration\n */\n this.categoryTreeConfig = computed(() => ({\n textField: 'title',\n valueField: 'id',\n expandedField: 'expand',\n showCheckbox: false,\n searchable: false,\n emptyStateTitle: '@workflow-management:activities.components.activity-categories-tree.empty-state.title',\n emptyStateDescription: '@workflow-management:activities.components.activity-categories-tree.empty-state.description',\n emptyStateIcon: 'fa-light fa-folder-open',\n }), ...(ngDevMode ? [{ debugName: \"categoryTreeConfig\" }] : []));\n /**\n * Category tree actions (disabled CRUD operations)\n */\n this.categoryTreeActions = computed(() => ({\n canCreate: false,\n canUpdate: false,\n canDelete: false,\n canCreateChild: false,\n }), ...(ngDevMode ? [{ debugName: \"categoryTreeActions\" }] : []));\n /**\n * Category tree events\n */\n this.categoryTreeEvents = computed(() => ({\n onNodeClick: (entity) => {\n this.handleNodeClick(entity);\n },\n }), ...(ngDevMode ? [{ debugName: \"categoryTreeEvents\" }] : []));\n }\n //#endregion\n //#region ---- Event Handlers ----\n /**\n * Handle category tree node click events\n */\n handleNodeClick(entity) {\n const activityEntity = entity;\n if (activityEntity.itemType === 'category' && activityEntity.originalItem) {\n this.categoryClick.emit(activityEntity.originalItem);\n }\n else if (activityEntity.itemType === 'activity' && activityEntity.originalItem) {\n this.activityClick.emit(activityEntity.originalItem);\n }\n }\n //#endregion\n //#region ---- Utility Methods ----\n /**\n * Map activity categories to category entities\n */\n mapCategoriesToEntities(categories) {\n return categories.map((category) => ({\n id: category.id,\n title: category.title || category.id,\n description: category.description,\n parentId: category.parentId,\n childrenCount: (category.childrenCount ?? 0) + (category.itemsCount ?? 0), // Include activities in children count\n itemsCount: category.itemsCount,\n originalItem: category,\n itemType: 'category',\n }));\n }\n /**\n * Map activity definitions to category entities\n */\n mapActivitiesToEntities(activities, parentId) {\n return activities.map((activity) => ({\n id: `activity_${activity.type || activity.name}`,\n title: activity.title || activity.name || activity.type,\n description: activity.description,\n parentId: parentId,\n childrenCount: 0, // Activities are leaf nodes\n itemsCount: 0,\n originalItem: activity,\n itemType: 'activity',\n }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMActivityCategoriesTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.12\", type: AXMActivityCategoriesTreeComponent, isStandalone: true, selector: \"axp-activity-categories-tree\", outputs: { categoryClick: \"categoryClick\", activityClick: \"activityClick\" }, host: { classAttribute: \"axp-activity-categories-tree\" }, ngImport: i0, template: \"<axp-category-tree\\n [dataSource]=\\\"categoryTreeDataSource\\\"\\n [config]=\\\"categoryTreeConfig()\\\"\\n [actions]=\\\"categoryTreeActions()\\\"\\n [events]=\\\"categoryTreeEvents()\\\"\\n (nodeClick)=\\\"handleNodeClick($event)\\\"\\n>\\n</axp-category-tree>\\n\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXPCategoryTreeComponent, selector: \"axp-category-tree\", inputs: [\"dataSource\", \"config\", \"actions\", \"events\"], outputs: [\"nodeClick\", \"nodeSelect\", \"nodeCreate\", \"nodeUpdate\", \"nodeDelete\", \"searchChange\", \"collapseChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXMActivityCategoriesTreeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'axp-activity-categories-tree', standalone: true, imports: [CommonModule, AXPCategoryTreeComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'axp-activity-categories-tree' }, template: \"<axp-category-tree\\n [dataSource]=\\\"categoryTreeDataSource\\\"\\n [config]=\\\"categoryTreeConfig()\\\"\\n [actions]=\\\"categoryTreeActions()\\\"\\n [events]=\\\"categoryTreeEvents()\\\"\\n (nodeClick)=\\\"handleNodeClick($event)\\\"\\n>\\n</axp-category-tree>\\n\\n\" }]\n }], propDecorators: { categoryClick: [{ type: i0.Output, args: [\"categoryClick\"] }], activityClick: [{ type: i0.Output, args: [\"activityClick\"] }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL3N0dWRpby9jb21wb25lbnRzL2FjdGl2aXR5LWNhdGVnb3JpZXMtdHJlZS9hY3Rpdml0eS1jYXRlZ29yaWVzLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvc3R1ZGlvL2NvbXBvbmVudHMvYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlL2FjdGl2aXR5LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFFL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEgsT0FBTyxFQUNMLHdCQUF3QixHQUt6QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBOEMsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFnQnJILFlBQVk7QUFZWixNQUFNLE9BQU8sa0NBQWtDO0lBVi9DO1FBV0UsK0NBQStDO1FBRTlCLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRWxGLFlBQVk7UUFFWixxQ0FBcUM7UUFFckM7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBdUIsQ0FBQztRQUU5Qzs7V0FFRztRQUNILGtCQUFhLEdBQUcsTUFBTSxF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LENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQzsrR0E3SVUsa0NBQWtDO21HQUFsQyxrQ0FBa0MsK05DeEMvQyx3UEFTQSx5RER3QlksWUFBWSwrQkFBRSx3QkFBd0I7OzRGQU9yQyxrQ0FBa0M7a0JBVjlDLFNBQVM7K0JBQ0UsOEJBQThCLGNBQzVCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSx3QkFBd0IsQ0FBQyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSw4QkFBOEIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiAtLS0tICAgSW1wb3J0cyAgIC0tLS1cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIG91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENhdGVnb3J5RW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcbmltcG9ydCB7XG4gIEFYUENhdGVnb3J5VHJlZUNvbXBvbmVudCxcbiAgQVhQQ2F0ZWdvcnlUcmVlRGF0YVNvdXJjZSxcbiAgQVhQQ2F0ZWdvcnlUcmVlQ29uZmlnLFxuICBBWFBDYXRlZ29yeVRyZWVBY3Rpb25zLFxuICBBWFBDYXRlZ29yeVRyZWVFdmVudHMsXG59IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQVhQQWN0aXZpdHlDYXRlZ29yeSwgQVhQQWN0aXZpdHlEZWZpbml0aW9uLCBBWFBBY3Rpdml0eURlZmluaXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5cbi8vI2VuZHJlZ2lvblxuXG4vLyNyZWdpb24gLS0tLSAgIEV4dGVuZGVkIENhdGVnb3J5IEVudGl0eSBJbnRlcmZhY2UgICAtLS0tXG5cbi8qKlxuICogRXh0ZW5kZWQgY2F0ZWdvcnkgZW50aXR5IHRoYXQgaW5jbHVkZXMgYWN0aXZpdHkgaW5mb3JtYXRpb25cbiAqL1xuaW50ZXJmYWNlIEFjdGl2aXR5Q2F0ZWdvcnlFbnRpdHkgZXh0ZW5kcyBBWFBDYXRlZ29yeUVudGl0eSB7XG4gIC8qKiBPcmlnaW5hbCBjYXRlZ29yeSBvciBhY3Rpdml0eSBpdGVtICovXG4gIG9yaWdpbmFsSXRlbT86IEFYUEFjdGl2aXR5Q2F0ZWdvcnkgfCBBWFBBY3Rpdml0eURlZmluaXRpb247XG4gIC8qKiBUeXBlIG9mIHRoZSBpdGVtOiAnY2F0ZWdvcnknIG9yICdhY3Rpdml0eScgKi9cbiAgaXRlbVR5cGU/OiAnY2F0ZWdvcnknIHwgJ2FjdGl2aXR5Jztcbn1cblxuLy8jZW5kcmVnaW9uXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4cC1hY3Rpdml0eS1jYXRlZ29yaWVzLXRyZWUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBWFBDYXRlZ29yeVRyZWVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FjdGl2aXR5LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7IGNsYXNzOiAnYXhwLWFjdGl2aXR5LWNhdGVnb3JpZXMtdHJlZScgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNQWN0aXZpdHlDYXRlZ29yaWVzVHJlZUNvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eURlZmluaXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYUEFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgT3V0cHV0IEV2ZW50cyAgIC0tLS1cblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgY2F0ZWdvcnkgbm9kZSBpcyBjbGlja2VkXG4gICAqL1xuICBjYXRlZ29yeUNsaWNrID0gb3V0cHV0PEFYUEFjdGl2aXR5Q2F0ZWdvcnk+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhbiBhY3Rpdml0eSBub2RlIGlzIGNsaWNrZWRcbiAgICovXG4gIGFjdGl2aXR5Q2xpY2sgPSBvdXRwdXQ8QVhQQWN0aXZpdHlEZWZpbml0aW9uPigpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgQ2F0ZWdvcnkgVHJlZSBDb25maWd1cmF0aW9uICAgLS0tLVxuXG4gIC8qKlxuICAgKiBDYXRlZ29yeSB0cmVlIGRhdGEgc291cmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2F0ZWdvcnlUcmVlRGF0YVNvdXJjZTogQVhQQ2F0ZWdvcnlUcmVlRGF0YVNvdXJjZSA9IHtcbiAgICBsb2FkUm9vdE5vZGVzOiBhc3luYyAoKTogUHJvbWlzZTxBY3Rpdml0eUNhdGVnb3J5RW50aXR5W10+ID0+IHtcbiAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UuZ2V0Q2F0ZWdvcmllcygpO1xuICAgICAgcmV0dXJuIHRoaXMubWFwQ2F0ZWdvcmllc1RvRW50aXRpZXMoY2F0ZWdvcmllcyk7XG4gICAgfSxcbiAgICBsb2FkQ2hpbGROb2RlczogYXN5bmMgKHBhcmVudElkOiBzdHJpbmcpOiBQcm9taXNlPEFjdGl2aXR5Q2F0ZWdvcnlFbnRpdHlbXT4gPT4ge1xuICAgICAgLy8gQ2hlY2sgaWYgcGFyZW50SWQgaXMgYW4gYWN0aXZpdHkgKHByZWZpeGVkIHdpdGggJ2FjdGl2aXR5XycpXG4gICAgICBpZiAocGFyZW50SWQuc3RhcnRzV2l0aCgnYWN0aXZpdHlfJykpIHtcbiAgICAgICAgcmV0dXJuIFtdOyAvLyBBY3Rpdml0aWVzIGFyZSBsZWFmIG5vZGVzXG4gICAgICB9XG5cbiAgICAgIC8vIExvYWQgY2hpbGQgY2F0ZWdvcmllc1xuICAgICAgY29uc3QgY2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuYWN0aXZpdHlEZWZpbml0aW9uU2VydmljZS5nZXRDYXRlZ29yaWVzKHBhcmVudElkKTtcbiAgICAgIGNvbnN0IGNhdGVnb3J5RW50aXRpZXMgPSB0aGlzLm1hcENhdGVnb3JpZXNUb0VudGl0aWVzKGNhdGVnb3JpZXMpO1xuXG4gICAgICAvLyBMb2FkIGFjdGl2aXRpZXMgZm9yIHRoaXMgY2F0ZWdvcnlcbiAgICAgIGNvbnN0IGFjdGl2aXRpZXMgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UuZ2V0QWN0aXZpdGllc0J5Q2F0ZWdvcnlJZChwYXJlbnRJZCk7XG4gICAgICBjb25zdCBhY3Rpdml0eUVudGl0aWVzID0gdGhpcy5tYXBBY3Rpdml0aWVzVG9FbnRpdGllcyhhY3Rpdml0aWVzLCBwYXJlbnRJZCk7XG5cbiAgICAgIC8vIFJldHVybiBjYXRlZ29yaWVzIGZpcnN0LCB0aGVuIGFjdGl2aXRpZXNcbiAgICAgIHJldHVybiBbLi4uY2F0ZWdvcnlFbnRpdGllcywgLi4uYWN0aXZpdHlFbnRpdGllc107XG4gICAgfSxcbiAgICBzZWFyY2hOb2RlczogYXN5bmMgKHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPEFjdGl2aXR5Q2F0ZWdvcnlFbnRpdHlbXT4gPT4ge1xuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHNlYXJjaCBpZiBuZWVkZWRcbiAgICAgIHJldHVybiBbXTtcbiAgICB9LFxuICB9O1xuXG4gIC8qKlxuICAgKiBDYXRlZ29yeSB0cmVlIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeVRyZWVDb25maWcgPSBjb21wdXRlZDxBWFBDYXRlZ29yeVRyZWVDb25maWc+KCgpID0+ICh7XG4gICAgdGV4dEZpZWxkOiAndGl0bGUnLFxuICAgIHZhbHVlRmllbGQ6ICdpZCcsXG4gICAgZXhwYW5kZWRGaWVsZDogJ2V4cGFuZCcsXG4gICAgc2hvd0NoZWNrYm94OiBmYWxzZSxcbiAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICBlbXB0eVN0YXRlVGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDphY3Rpdml0aWVzLmNvbXBvbmVudHMuYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlLmVtcHR5LXN0YXRlLnRpdGxlJyxcbiAgICBlbXB0eVN0YXRlRGVzY3JpcHRpb246ICdAd29ya2Zsb3ctbWFuYWdlbWVudDphY3Rpdml0aWVzLmNvbXBvbmVudHMuYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlLmVtcHR5LXN0YXRlLmRlc2NyaXB0aW9uJyxcbiAgICBlbXB0eVN0YXRlSWNvbjogJ2ZhLWxpZ2h0IGZhLWZvbGRlci1vcGVuJyxcbiAgfSkpO1xuXG4gIC8qKlxuICAgKiBDYXRlZ29yeSB0cmVlIGFjdGlvbnMgKGRpc2FibGVkIENSVUQgb3BlcmF0aW9ucylcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeVRyZWVBY3Rpb25zID0gY29tcHV0ZWQ8QVhQQ2F0ZWdvcnlUcmVlQWN0aW9ucz4oKCkgPT4gKHtcbiAgICBjYW5DcmVhdGU6IGZhbHNlLFxuICAgIGNhblVwZGF0ZTogZmFsc2UsXG4gICAgY2FuRGVsZXRlOiBmYWxzZSxcbiAgICBjYW5DcmVhdGVDaGlsZDogZmFsc2UsXG4gIH0pKTtcblxuICAvKipcbiAgICogQ2F0ZWdvcnkgdHJlZSBldmVudHNcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeVRyZWVFdmVudHMgPSBjb21wdXRlZDxBWFBDYXRlZ29yeVRyZWVFdmVudHM+KCgpID0+ICh7XG4gICAgb25Ob2RlQ2xpY2s6IChlbnRpdHk6IEFYUENhdGVnb3J5RW50aXR5KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZU5vZGVDbGljayhlbnRpdHkpO1xuICAgIH0sXG4gIH0pKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIEV2ZW50IEhhbmRsZXJzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgY2F0ZWdvcnkgdHJlZSBub2RlIGNsaWNrIGV2ZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIGhhbmRsZU5vZGVDbGljayhlbnRpdHk6IEFYUENhdGVnb3J5RW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZpdHlFbnRpdHkgPSBlbnRpdHkgYXMgQWN0aXZpdHlDYXRlZ29yeUVudGl0eTtcblxuICAgIGlmIChhY3Rpdml0eUVudGl0eS5pdGVtVHlwZSA9PT0gJ2NhdGVnb3J5JyAmJiBhY3Rpdml0eUVudGl0eS5vcmlnaW5hbEl0ZW0pIHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlDbGljay5lbWl0KGFjdGl2aXR5RW50aXR5Lm9yaWdpbmFsSXRlbSBhcyBBWFBBY3Rpdml0eUNhdGVnb3J5KTtcbiAgICB9IGVsc2UgaWYgKGFjdGl2aXR5RW50aXR5Lml0ZW1UeXBlID09PSAnYWN0aXZpdHknICYmIGFjdGl2aXR5RW50aXR5Lm9yaWdpbmFsSXRlbSkge1xuICAgICAgdGhpcy5hY3Rpdml0eUNsaWNrLmVtaXQoYWN0aXZpdHlFbnRpdHkub3JpZ2luYWxJdGVtIGFzIEFYUEFjdGl2aXR5RGVmaW5pdGlvbik7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBVdGlsaXR5IE1ldGhvZHMgICAtLS0tXG5cbiAgLyoqXG4gICAqIE1hcCBhY3Rpdml0eSBjYXRlZ29yaWVzIHRvIGNhdGVnb3J5IGVudGl0aWVzXG4gICAqL1xuICBwcml2YXRlIG1hcENhdGVnb3JpZXNUb0VudGl0aWVzKGNhdGVnb3JpZXM6IEFYUEFjdGl2aXR5Q2F0ZWdvcnlbXSk6IEFjdGl2aXR5Q2F0ZWdvcnlFbnRpdHlbXSB7XG4gICAgcmV0dXJuIGNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gKHtcbiAgICAgIGlkOiBjYXRlZ29yeS5pZCxcbiAgICAgIHRpdGxlOiBjYXRlZ29yeS50aXRsZSB8fCBjYXRlZ29yeS5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBjYXRlZ29yeS5kZXNjcmlwdGlvbixcbiAgICAgIHBhcmVudElkOiBjYXRlZ29yeS5wYXJlbnRJZCxcbiAgICAgIGNoaWxkcmVuQ291bnQ6IChjYXRlZ29yeS5jaGlsZHJlbkNvdW50ID8/IDApICsgKGNhdGVnb3J5Lml0ZW1zQ291bnQgPz8gMCksIC8vIEluY2x1ZGUgYWN0aXZpdGllcyBpbiBjaGlsZHJlbiBjb3VudFxuICAgICAgaXRlbXNDb3VudDogY2F0ZWdvcnkuaXRlbXNDb3VudCxcbiAgICAgIG9yaWdpbmFsSXRlbTogY2F0ZWdvcnksXG4gICAgICBpdGVtVHlwZTogJ2NhdGVnb3J5JyBhcyBjb25zdCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwIGFjdGl2aXR5IGRlZmluaXRpb25zIHRvIGNhdGVnb3J5IGVudGl0aWVzXG4gICAqL1xuICBwcml2YXRlIG1hcEFjdGl2aXRpZXNUb0VudGl0aWVzKFxuICAgIGFjdGl2aXRpZXM6IEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdLFxuICAgIHBhcmVudElkOiBzdHJpbmcsXG4gICk6IEFjdGl2aXR5Q2F0ZWdvcnlFbnRpdHlbXSB7XG4gICAgcmV0dXJuIGFjdGl2aXRpZXMubWFwKChhY3Rpdml0eSkgPT4gKHtcbiAgICAgIGlkOiBgYWN0aXZpdHlfJHthY3Rpdml0eS50eXBlIHx8IGFjdGl2aXR5Lm5hbWV9YCxcbiAgICAgIHRpdGxlOiBhY3Rpdml0eS50aXRsZSB8fCBhY3Rpdml0eS5uYW1lIHx8IGFjdGl2aXR5LnR5cGUsXG4gICAgICBkZXNjcmlwdGlvbjogYWN0aXZpdHkuZGVzY3JpcHRpb24sXG4gICAgICBwYXJlbnRJZDogcGFyZW50SWQsXG4gICAgICBjaGlsZHJlbkNvdW50OiAwLCAvLyBBY3Rpdml0aWVzIGFyZSBsZWFmIG5vZGVzXG4gICAgICBpdGVtc0NvdW50OiAwLFxuICAgICAgb3JpZ2luYWxJdGVtOiBhY3Rpdml0eSxcbiAgICAgIGl0ZW1UeXBlOiAnYWN0aXZpdHknIGFzIGNvbnN0LFxuICAgIH0pKTtcbiAgfVxuXG4gIC8vI2VuZHJlZ2lvblxufVxuXG4iLCI8YXhwLWNhdGVnb3J5LXRyZWVcbiAgW2RhdGFTb3VyY2VdPVwiY2F0ZWdvcnlUcmVlRGF0YVNvdXJjZVwiXG4gIFtjb25maWddPVwiY2F0ZWdvcnlUcmVlQ29uZmlnKClcIlxuICBbYWN0aW9uc109XCJjYXRlZ29yeVRyZWVBY3Rpb25zKClcIlxuICBbZXZlbnRzXT1cImNhdGVnb3J5VHJlZUV2ZW50cygpXCJcbiAgKG5vZGVDbGljayk9XCJoYW5kbGVOb2RlQ2xpY2soJGV2ZW50KVwiXG4+XG48L2F4cC1jYXRlZ29yeS10cmVlPlxuXG4iXX0=","import { Component, inject, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXPWorkflowManager, AXPActivityDefinitionService } from '@acorex/platform/workflow';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { AXPThemeLayoutBlockComponent, AXPThemeLayoutStartSideComponent } from '@acorex/platform/layout/components';\nimport { RootConfig } from '../../../const';\nimport { AXMActivityCategoriesTreeComponent } from './components/activity-categories-tree/activity-categories-tree.component';\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/core/translation\";\nexport class WorkflowStudioComponent extends AXPPageLayoutBaseComponent {\n constructor() {\n super(...arguments);\n //#region ---- Services & Dependencies ----\n this.workflowManager = inject(AXPWorkflowManager);\n this.activityDefinitionService = inject(AXPActivityDefinitionService);\n this.entityService = inject(AXPEntityService);\n this.translationService = inject(AXTranslationService);\n //#endregion\n //#region ---- State ----\n this.activeTab = signal('json', ...(ngDevMode ? [{ debugName: \"activeTab\" }] : []));\n this.selectedCategory = signal(null, ...(ngDevMode ? [{ debugName: \"selectedCategory\" }] : []));\n this.selectedActivity = signal(null, ...(ngDevMode ? [{ debugName: \"selectedActivity\" }] : []));\n this.workflowJson = signal(this.getEmptyWorkflow(), ...(ngDevMode ? [{ debugName: \"workflowJson\" }] : []));\n this.visualNodes = signal([], ...(ngDevMode ? [{ debugName: \"visualNodes\" }] : []));\n this.selectedNode = signal(null, ...(ngDevMode ? [{ debugName: \"selectedNode\" }] : []));\n this.isExecuting = signal(false, ...(ngDevMode ? [{ debugName: \"isExecuting\" }] : []));\n this.executionLogs = signal([], ...(ngDevMode ? [{ debugName: \"executionLogs\" }] : []));\n this.executionResult = signal(null, ...(ngDevMode ? [{ debugName: \"executionResult\" }] : []));\n // Execution Dialog State\n this.showExecutionDialog = signal(false, ...(ngDevMode ? [{ debugName: \"showExecutionDialog\" }] : []));\n this.workflowInstanceState = signal(null, ...(ngDevMode ? [{ debugName: \"workflowInstanceState\" }] : []));\n // UI State\n this.showPropertiesPanel = signal(true, ...(ngDevMode ? [{ debugName: \"showPropertiesPanel\" }] : []));\n this.showWorkflowSettings = signal(false, ...(ngDevMode ? [{ debugName: \"showWorkflowSettings\" }] : []));\n this.activeSettingsTab = signal('general', ...(ngDevMode ? [{ debugName: \"activeSettingsTab\" }] : []));\n this.showExecutionResult = signal(false, ...(ngDevMode ? [{ debugName: \"showExecutionResult\" }] : []));\n // Workflow Settings\n this.workflowSettings = signal({\n definitionId: '',\n name: '',\n description: '',\n inputs: [],\n outputs: [],\n variables: [],\n outcomes: ['Done'],\n usableAsActivity: false,\n autoUpdateConsumingWorkflows: false,\n version: 1,\n isLatest: true,\n isPublished: false,\n toolVersion: '1.0.0',\n providerName: 'WorkflowStudio'\n }, ...(ngDevMode ? [{ debugName: \"workflowSettings\" }] : []));\n // Canvas state\n this.canvasOffset = { x: 0, y: 0 };\n this.isDraggingCanvas = false;\n this.dragStartPos = { x: 0, y: 0 };\n this.draggedActivity = null;\n this.draggedNode = null;\n this.nodeDragOffset = { x: 0, y: 0 };\n this.connectionSource = null;\n /**\n * دسترسی به Object برای استفاده در template\n */\n this.Object = Object;\n /**\n * دسترسی به typeof برای استفاده در template\n */\n this.typeof = (value) => typeof value;\n /**\n * دسترسی به JSON برای استفاده در template\n */\n this.JSON = JSON;\n }\n async ngOnInit() {\n // Page layout initialization\n await super.ngOnInit();\n }\n //#endregion\n //#region ---- Page Layout Overrides ----\n async getPageTitle() {\n return await this.translationService.translateAsync('@workflow-management:workflow-studio.menus.workflow-studio.title');\n }\n async getPageDescription() {\n return await this.translationService.translateAsync('@workflow-management:workflow-studio.menus.workflow-studio.description');\n }\n async getPrimaryMenuItems() {\n return [\n {\n name: 'execute-workflow',\n title: '@workflow-management:workflow-studio.actions.execute-workflow.title',\n icon: 'fa-light fa-play',\n color: 'success',\n disabled: this.isExecuting(),\n },\n {\n name: 'workflow-settings',\n title: '@workflow-management:workflow-studio.actions.settings.title',\n icon: 'fa-light fa-cog',\n color: 'default',\n },\n {\n name: 'export-workflow',\n title: '@workflow-management:workflow-studio.actions.export.title',\n icon: 'fa-light fa-download',\n color: 'default',\n },\n ];\n }\n async getSecondaryMenuItems() {\n return [\n {\n name: 'format-json',\n title: '@workflow-management:workflow-studio.actions.format-json.title',\n icon: 'fa-light fa-code',\n color: 'default',\n },\n {\n name: 'clear-canvas',\n title: '@workflow-management:workflow-studio.actions.clear-canvas.title',\n icon: 'fa-light fa-trash',\n color: 'danger',\n visible: this.activeTab() === 'visual',\n },\n ];\n }\n async execute(command) {\n switch (command.name) {\n case 'execute-workflow':\n this.openExecutionDialog();\n break;\n case 'workflow-settings':\n this.openWorkflowSettings();\n break;\n case 'export-workflow':\n this.downloadWorkflowDefinition();\n break;\n case 'format-json':\n this.formatJson();\n break;\n case 'clear-canvas':\n this.clearCanvas();\n break;\n }\n }\n //#endregion\n //#region ---- Category & Activity Loading ----\n /**\n * Handle category selection from tree\n */\n onCategoryClick(category) {\n this.selectedCategory.set(category);\n this.selectedActivity.set(null);\n }\n /**\n * Handle activity selection from tree\n */\n onActivityClick(activity) {\n this.selectedActivity.set(activity);\n this.addLog('info', `Activity selected: ${activity.name}`);\n }\n /**\n * Convert AXPActivityDefinition to ActivityInfo\n */\n convertActivityDefinitionToInfo(activity) {\n const properties = (activity.inputs || []).map(input => ({\n name: input.name,\n type: this.getPropertyTypeFromSchema(input.schema),\n required: !input.schema.nullable,\n description: input.description,\n defaultValue: input.schema.defaultValue\n }));\n const defaultProperties = {};\n properties.forEach(prop => {\n if (prop.defaultValue !== undefined) {\n defaultProperties[prop.name] = prop.defaultValue;\n }\n });\n return {\n type: activity.type,\n name: activity.name,\n description: activity.description || '',\n icon: activity.icon || 'fa-light fa-circle',\n properties,\n defaultProperties\n };\n }\n /**\n * Get property type from schema\n */\n getPropertyTypeFromSchema(schema) {\n const dataType = schema?.dataType || 'string';\n if (dataType === 'array')\n return 'array';\n if (dataType === 'object')\n return 'object';\n if (dataType === 'boolean')\n return 'boolean';\n if (dataType === 'number' || dataType === 'integer')\n return 'number';\n return 'string';\n }\n /**\n * Get category color\n */\n getCategoryColor(categoryId) {\n const colorMap = {\n 'workflow-markers': '#10B981',\n 'control-flow': '#3B82F6',\n 'user-interaction': '#8B5CF6',\n 'data': '#10B981',\n 'navigation': '#F59E0B',\n 'events': '#EF4444',\n 'http': '#06B6D4'\n };\n return colorMap[categoryId] || '#64748B';\n }\n /**\n * Get empty workflow JSON\n */\n getEmptyWorkflow() {\n return JSON.stringify({\n id: 'new-workflow',\n name: '',\n description: '',\n version: 1,\n root: {\n id: 'root',\n type: 'workflow-activity:sequence',\n name: 'Root',\n children: []\n }\n }, null, 2);\n }\n //#endregion\n /**\n * Sync visualizer with JSON changes\n */\n syncVisualizerWithJson() {\n try {\n if (this.activeTab() === 'visual') {\n this.jsonToVisual();\n }\n }\n catch (err) {\n console.error('[WorkflowStudio] Error syncing visualizer:', err);\n }\n }\n //#region ---- Workflow Execution ----\n /**\n * Open execution dialog\n */\n openExecutionDialog() {\n this.showExecutionDialog.set(true);\n this.workflowInstanceState.set(null);\n }\n /**\n * Close execution dialog\n */\n closeExecutionDialog() {\n this.showExecutionDialog.set(false);\n this.workflowInstanceState.set(null);\n }\n /**\n * Start workflow execution\n */\n async startWorkflowExecution() {\n await this.runWorkflow();\n }\n /**\n * اجرای workflow\n */\n async runWorkflow() {\n this.isExecuting.set(true);\n this.executionLogs.set([]);\n this.executionResult.set(null);\n this.showExecutionResult.set(false); // بستن نتیجه قبلی\n this.workflowInstanceState.set({\n status: 'running',\n startTime: new Date(),\n currentState: null\n });\n this.addLog('info', 'شروع اجرای Workflow...');\n try {\n // Parse JSON\n const workflowDef = JSON.parse(this.workflowJson());\n const logMessage = await this.translationService.translateAsync('@workflow-management:test-pages.messages.info.json-parsed');\n this.addLog('success', logMessage, workflowDef);\n // Save workflow definition to entity service first\n const workflowId = workflowDef.id || `workflow-${Date.now()}`;\n const definitionToSave = this.exportWorkflowDefinition();\n if (!definitionToSave) {\n throw new Error('Failed to export workflow definition');\n }\n // Save or update workflow definition\n try {\n const existing = await this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowDefinition.name).data().byKey(workflowId);\n if (existing) {\n await this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowDefinition.name).data().update(workflowId, definitionToSave);\n }\n else {\n await this.entityService.withEntity(RootConfig.module.name, RootConfig.entities.workflowDefinition.name).data().create({ ...definitionToSave, id: workflowId });\n }\n const saveMessage = await this.translationService.translateAsync('@workflow-management:test-pages.messages.success.workflow-saved');\n this.addLog('success', saveMessage);\n }\n catch (saveError) {\n // Continue execution even if save fails\n const saveErrorMessage = await this.translationService.translateAsync('@workflow-management:test-pages.messages.warning.save-failed');\n this.addLog('warning', `${saveErrorMessage}: ${saveError.message}`);\n }\n // اجرای workflow\n const executingMessage = await this.translationService.translateAsync('@workflow-management:test-pages.messages.info.executing');\n this.addLog('info', executingMessage);\n // Start workflow execution using the workflow name\n const workflowName = definitionToSave.name || workflowId;\n let result = await this.workflowManager.start(workflowName, {});\n this.addLog('info', `Workflow started. Instance ID: ${result.instanceId}`, result);\n if (!result.instanceId) {\n this.addLog('error', '❌ Workflow با خطا مواجه شد', result);\n this.executionResult.set(result);\n this.showExecutionResult.set(true);\n return;\n }\n // Handle workflow execution loop - execute all frontend tasks\n let currentResult = result;\n let taskCount = 0;\n while (currentResult.nextTask) {\n taskCount++;\n const task = currentResult.nextTask;\n this.addLog('info', `📋 Task ${taskCount}: ${task.activityType} (${task.activityName || task.activityId})`, task);\n try {\n // Execute frontend task\n this.addLog('info', `⚡ Executing task: ${task.activityType}...`);\n const { output, outcome } = await this.workflowManager.execute(task);\n this.addLog('success', `✅ Task executed. Outcome: ${outcome}`, { output, outcome });\n // Complete task and get next\n this.addLog('info', `🔄 Completing task and getting next...`);\n currentResult = await this.workflowManager.complete(currentResult.instanceId, task, outcome, output);\n if (!currentResult.instanceId) {\n this.addLog('error', '❌ Task completion failed', currentResult);\n break;\n }\n if (currentResult.nextTask) {\n this.addLog('info', `➡️ Next task available: ${currentResult.nextTask.activityType}`);\n }\n else {\n this.addLog('success', '✅ No more tasks. Workflow completed!');\n }\n }\n catch (error) {\n this.addLog('error', `❌ Error executing task: ${error.message}`, error);\n currentResult = {\n ...currentResult,\n success: false,\n error: error.message || 'Task execution failed'\n };\n break;\n }\n }\n // نتیجه\n this.executionResult.set(currentResult);\n this.showExecutionResult.set(true); // باز کردن خودکار نتیجه\n this.workflowInstanceState.set({\n status: 'finished',\n startTime: this.workflowInstanceState()?.startTime || new Date(),\n endTime: new Date(),\n result: currentResult,\n currentState: currentResult.state?.output?.['taskStatus'] || currentResult.state?.output?.['currentState']\n });\n if (currentResult.success) {\n this.addLog('success', `✅ Workflow با موفقیت اجرا شد! (${taskCount} task(s) executed)`, currentResult);\n }\n else {\n this.addLog('error', '❌ Workflow با خطا مواجه شد: ' + (currentResult.error || 'Unknown error'), currentResult);\n }\n }\n catch (error) {\n this.addLog('error', '❌ خطا در اجرا: ' + error.message, error);\n this.workflowInstanceState.set({\n ...this.workflowInstanceState(),\n status: 'error',\n error: error.message\n });\n }\n finally {\n this.isExecuting.set(false);\n }\n }\n /**\n * اضافه کردن لاگ\n */\n addLog(level, message, data) {\n const logs = this.executionLogs();\n logs.push({\n timestamp: new Date(),\n level,\n message,\n data\n });\n this.executionLogs.set([...logs]);\n }\n /**\n * کپی کردن نمونه activity\n */\n copyActivityTemplate(activity) {\n const template = {\n id: `${activity.type.toLowerCase()}-${Date.now()}`,\n type: activity.type,\n name: activity.name,\n properties: {}\n };\n // کپی در کلیپبورد\n navigator.clipboard.writeText(JSON.stringify(template, null, 2));\n this.addLog('success', `✂️ Template برای ${activity.name} کپی شد!`);\n }\n /**\n * فرمت کردن JSON\n */\n formatJson() {\n try {\n const parsed = JSON.parse(this.workflowJson());\n this.workflowJson.set(JSON.stringify(parsed, null, 2));\n this.addLog('success', '✨ JSON فرمت شد');\n }\n catch (error) {\n this.addLog('error', '❌ خطا در فرمت: ' + error.message);\n }\n }\n /**\n * باز کردن تنظیمات workflow\n */\n openWorkflowSettings() {\n // Extract settings from current workflow JSON\n try {\n const workflow = JSON.parse(this.workflowJson());\n // Convert old format inputs/outputs to new format\n const convertInput = (input) => {\n if (input.schema) {\n // Already in new format\n return {\n name: input.name,\n title: input.title || input.name,\n description: input.description,\n schema: input.schema,\n validations: input.validations\n };\n }\n else {\n // Old format - convert\n return {\n name: input.name,\n title: input.name,\n description: input.description,\n schema: {\n dataType: input.typeName || 'string',\n defaultValue: input.defaultValue\n },\n validations: input.isRequired ? [{ rule: 'required' }] : undefined\n };\n }\n };\n const convertOutput = (output) => {\n if (output.schema) {\n // Already in new format\n return {\n name: output.name,\n title: output.title || output.name,\n description: output.description,\n schema: output.schema\n };\n }\n else {\n // Old format - convert\n return {\n name: output.name,\n title: output.name,\n description: output.description,\n schema: {\n dataType: output.typeName || 'string'\n }\n };\n }\n };\n this.workflowSettings.set({\n definitionId: workflow.definitionId || workflow.id || '',\n name: workflow.name || '',\n description: workflow.description || '',\n inputs: (workflow.inputs || []).map(convertInput),\n outputs: (workflow.outputs || []).map(convertOutput),\n variables: workflow.variables || [],\n outcomes: workflow.outcomes || ['Done'],\n usableAsActivity: workflow.options?.usableAsActivity || false,\n autoUpdateConsumingWorkflows: workflow.options?.autoUpdateConsumingWorkflows || false,\n version: workflow.version || 1,\n isLatest: workflow.isLatest !== undefined ? workflow.isLatest : true,\n isPublished: workflow.isPublished || false,\n toolVersion: workflow.toolVersion || '1.0.0',\n providerName: workflow.providerName || 'WorkflowStudio'\n });\n }\n catch (error) {\n // If parsing fails, use default settings\n this.workflowSettings.set({\n definitionId: '',\n name: '',\n description: '',\n inputs: [],\n outputs: [],\n variables: [],\n outcomes: ['Done'],\n usableAsActivity: false,\n autoUpdateConsumingWorkflows: false,\n version: 1,\n isLatest: true,\n isPublished: false,\n toolVersion: '1.0.0',\n providerName: 'WorkflowStudio'\n });\n }\n this.showWorkflowSettings.set(true);\n }\n /**\n * بستن تنظیمات workflow\n */\n closeWorkflowSettings() {\n this.showWorkflowSettings.set(false);\n }\n /**\n * ذخیره تنظیمات workflow\n */\n saveWorkflowSettings() {\n try {\n const workflow = JSON.parse(this.workflowJson());\n const settings = this.workflowSettings();\n // Update workflow with settings according to WorkflowDefinition structure\n workflow.definitionId = settings.definitionId;\n workflow.name = settings.name;\n workflow.description = settings.description;\n workflow.version = settings.version;\n workflow.isLatest = settings.isLatest;\n workflow.isPublished = settings.isPublished;\n workflow.toolVersion = settings.toolVersion;\n workflow.providerName = settings.providerName;\n // WorkflowCommon properties\n workflow.options = {\n usableAsActivity: settings.usableAsActivity,\n autoUpdateConsumingWorkflows: settings.autoUpdateConsumingWorkflows\n };\n workflow.variables = settings.variables.map(v => ({\n id: v.name, // Use name as id for now\n name: v.name,\n typeName: v.typeName,\n value: v.value,\n storageDriverType: 'Memory' // Default storage driver\n }));\n workflow.inputs = settings.inputs.map(i => ({\n name: i.name,\n title: i.title,\n description: i.description,\n schema: {\n dataType: i.schema.dataType,\n nullable: i.schema.nullable,\n readonly: i.schema.readonly,\n hidden: i.schema.hidden,\n defaultValue: i.schema.defaultValue\n },\n validations: i.validations\n }));\n workflow.outputs = settings.outputs.map(o => ({\n name: o.name,\n title: o.title,\n description: o.description,\n schema: {\n dataType: o.schema.dataType\n }\n }));\n workflow.outcomes = settings.outcomes;\n workflow.customProperties = workflow.customProperties || {};\n workflow.isReadonly = false;\n workflow.isSystem = false;\n this.workflowJson.set(JSON.stringify(workflow, null, 2));\n this.addLog('success', '✅ تنظیمات ورک فلو ذخیره شد');\n this.closeWorkflowSettings();\n }\n catch (error) {\n this.addLog('error', '❌ خطا در ذخیره تنظیمات: ' + error.message);\n }\n }\n /**\n * Export workflow به فرمت Elsa Workflow Definition v3.0.0\n * https://elsaworkflows.io/schemas/workflow-definition/v3.0.0/schema.json\n */\n exportWorkflowDefinition() {\n try {\n const workflow = JSON.parse(this.workflowJson());\n const settings = this.workflowSettings();\n // Create Elsa Workflow Definition v3.0.0 structure\n const definition = {\n // VersionedEntity fields\n id: workflow.id || this.generateId(),\n version: settings.version,\n isLatest: settings.isLatest,\n isPublished: settings.isPublished,\n // Identification fields\n definitionId: settings.definitionId || workflow.id || this.generateId(),\n name: settings.name || workflow.name || 'Untitled Workflow',\n description: settings.description || workflow.description || '',\n toolVersion: settings.toolVersion || '3.0.0',\n // Materialization fields\n providerName: settings.providerName || 'ACoreX',\n materializerContext: {\n materializerName: 'Json',\n // Store the root activity as JSON string\n stringData: JSON.stringify(workflow.root)\n },\n // WorkflowCommon fields\n options: {\n usableAsActivity: settings.usableAsActivity || false,\n autoUpdateConsumingWorkflows: settings.autoUpdateConsumingWorkflows || false\n },\n // Variables array\n variables: settings.variables.map(v => ({\n id: v.name,\n name: v.name,\n typeName: v.typeName,\n value: v.value,\n storageDriverType: 'Memory'\n })),\n // Inputs array\n inputs: settings.inputs.map(i => ({\n name: i.name,\n title: i.title,\n description: i.description,\n schema: {\n dataType: i.schema.dataType,\n nullable: i.schema.nullable,\n readonly: i.schema.readonly,\n hidden: i.schema.hidden,\n defaultValue: i.schema.defaultValue\n },\n validations: i.validations || []\n })),\n // Outputs array\n outputs: settings.outputs.map(o => ({\n name: o.name,\n title: o.title,\n description: o.description,\n schema: {\n dataType: o.schema.dataType\n }\n })),\n // Outcomes array\n outcomes: settings.outcomes || ['Done'],\n // Custom properties\n customProperties: workflow.customProperties || {},\n // Flags\n isReadonly: false,\n isSystem: false,\n // Root activity (direct reference for Elsa compatibility)\n root: workflow.root\n };\n return definition;\n }\n catch (error) {\n this.addLog('error', '❌ خطا در export: ' + error.message);\n return null;\n }\n }\n /**\n * دانلود WorkflowDefinition به صورت JSON file\n */\n downloadWorkflowDefinition() {\n const definition = this.exportWorkflowDefinition();\n if (!definition)\n return;\n const blob = new Blob([JSON.stringify(definition, null, 2)], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `${definition.definitionId || 'workflow'}-v${definition.version}.json`;\n link.click();\n URL.revokeObjectURL(url);\n this.addLog('success', `📥 Workflow Definition دانلود شد: ${link.download}`);\n }\n generateId() {\n return `wf-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n }\n /**\n * تغییر تب settings\n */\n switchSettingsTab(tab) {\n this.activeSettingsTab.set(tab);\n }\n // ============ Workflow Inputs Management ============\n addWorkflowInput() {\n const settings = this.workflowSettings();\n settings.inputs.push({\n name: `input${settings.inputs.length + 1}`,\n title: `Input ${settings.inputs.length + 1}`,\n description: '',\n schema: {\n dataType: 'string',\n defaultValue: undefined\n },\n validations: undefined\n });\n this.workflowSettings.set({ ...settings });\n }\n removeWorkflowInput(index) {\n const settings = this.workflowSettings();\n settings.inputs.splice(index, 1);\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowInput(index, field, value) {\n const settings = this.workflowSettings();\n const input = settings.inputs[index];\n if (field === 'schema') {\n // For nested schema updates\n input[field] = value;\n }\n else if (field.startsWith('schema.')) {\n // For nested schema properties like 'schema.dataType'\n const schemaField = field.replace('schema.', '');\n if (!input.schema) {\n input.schema = { dataType: 'string' };\n }\n input.schema[schemaField] = value;\n }\n else {\n input[field] = value;\n }\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowInputSchema(index, schemaField, value) {\n const settings = this.workflowSettings();\n const input = settings.inputs[index];\n if (!input.schema) {\n input.schema = { dataType: 'string' };\n }\n input.schema[schemaField] = value;\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowInputValidation(index, isRequired) {\n const settings = this.workflowSettings();\n const input = settings.inputs[index];\n if (isRequired) {\n if (!input.validations) {\n input.validations = [];\n }\n if (!input.validations.some(v => v.rule === 'required')) {\n input.validations.push({ rule: 'required' });\n }\n }\n else {\n input.validations = input.validations?.filter(v => v.rule !== 'required');\n if (input.validations?.length === 0) {\n input.validations = undefined;\n }\n }\n this.workflowSettings.set({ ...settings });\n }\n getInputIsRequired(input) {\n return input.validations?.some(v => v.rule === 'required') ?? false;\n }\n // ============ Workflow Outputs Management ============\n addWorkflowOutput() {\n const settings = this.workflowSettings();\n settings.outputs.push({\n name: `output${settings.outputs.length + 1}`,\n title: `Output ${settings.outputs.length + 1}`,\n description: '',\n schema: {\n dataType: 'string'\n }\n });\n this.workflowSettings.set({ ...settings });\n }\n removeWorkflowOutput(index) {\n const settings = this.workflowSettings();\n settings.outputs.splice(index, 1);\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowOutput(index, field, value) {\n const settings = this.workflowSettings();\n const output = settings.outputs[index];\n if (field.startsWith('schema.')) {\n // For nested schema properties like 'schema.dataType'\n const schemaField = field.replace('schema.', '');\n if (!output.schema) {\n output.schema = { dataType: 'string' };\n }\n output.schema[schemaField] = value;\n }\n else {\n output[field] = value;\n }\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowOutputSchema(index, schemaField, value) {\n const settings = this.workflowSettings();\n const output = settings.outputs[index];\n if (!output.schema) {\n output.schema = { dataType: 'string' };\n }\n output.schema[schemaField] = value;\n this.workflowSettings.set({ ...settings });\n }\n // ============ Workflow Variables Management ============\n addWorkflowVariable() {\n const settings = this.workflowSettings();\n settings.variables.push({\n name: `variable${settings.variables.length + 1}`,\n typeName: 'string',\n value: '',\n description: ''\n });\n this.workflowSettings.set({ ...settings });\n }\n removeWorkflowVariable(index) {\n const settings = this.workflowSettings();\n settings.variables.splice(index, 1);\n this.workflowSettings.set({ ...settings });\n }\n updateWorkflowVariable(index, field, value) {\n const settings = this.workflowSettings();\n settings.variables[index][field] = value;\n this.workflowSettings.set({ ...settings });\n }\n /**\n * بهروزرسانی outcomes از string\n */\n updateOutcomes(outcomesString) {\n const settings = this.workflowSettings();\n settings.outcomes = outcomesString\n .split(',')\n .map(o => o.trim())\n .filter(o => o.length > 0);\n this.workflowSettings.set({ ...settings });\n }\n /**\n * پاک کردن لاگها\n */\n clearLogs() {\n this.executionLogs.set([]);\n }\n // ============ Visual Designer Methods ============\n /**\n * تغییر تب\n */\n switchTab(tab) {\n if (tab === 'visual' && this.activeTab() === 'json') {\n // تبدیل JSON به Visual\n this.jsonToVisual();\n }\n else if (tab === 'json' && this.activeTab() === 'visual') {\n // تبدیل Visual به JSON\n this.visualToJson();\n }\n this.activeTab.set(tab);\n }\n /**\n * انتخاب Node\n */\n selectNodeById(node) {\n this.selectedNode.set(node);\n }\n /**\n * حذف Node\n */\n deleteNode(nodeId) {\n const nodes = this.visualNodes().filter(n => n.id !== nodeId);\n // حذف اتصالات به این نود\n nodes.forEach(n => {\n n.connections = n.connections.filter(c => c !== nodeId);\n });\n this.visualNodes.set(nodes);\n if (this.selectedNode()?.id === nodeId) {\n this.selectedNode.set(null);\n }\n this.addLog('info', `🗑️ Node حذف شد`);\n }\n /**\n * اتصال دو Node با outcome مشخص\n */\n connectNodes(fromId, toId, outcome) {\n const nodes = this.visualNodes();\n const fromNodeIndex = nodes.findIndex(n => n.id === fromId);\n const toNode = nodes.find(n => n.id === toId);\n if (fromNodeIndex !== -1 && toNode) {\n const fromNode = nodes[fromNodeIndex];\n // Use outcome-based connections if available\n if (outcome && fromNode.outcomes && fromNode.outcomes.length > 1) {\n const outcomeConnections = fromNode.outcomeConnections || [];\n // Check if this outcome already has a connection\n const existingConnection = outcomeConnections.find(c => c.outcome === outcome);\n if (existingConnection) {\n this.addLog('warning', `⚠️ Outcome \"${outcome}\" قبلاً متصل شده است`);\n return;\n }\n // Add new outcome connection\n const updatedNodes = [...nodes];\n updatedNodes[fromNodeIndex] = {\n ...fromNode,\n outcomeConnections: [...outcomeConnections, { outcome, targetNodeId: toId }],\n connections: [...fromNode.connections, toId] // Keep for backward compat\n };\n this.visualNodes.set(updatedNodes);\n this.addLog('success', `🔗 ${fromNode.name} [${outcome}] → ${toNode.name}`);\n }\n else {\n // Simple connection (no outcomes)\n if (!fromNode.connections.includes(toId)) {\n const updatedNodes = [...nodes];\n updatedNodes[fromNodeIndex] = {\n ...fromNode,\n connections: [...fromNode.connections, toId]\n };\n this.visualNodes.set(updatedNodes);\n this.addLog('success', `🔗 ${fromNode.name} متصل شد به ${toNode.name}`);\n }\n else {\n this.addLog('warning', '⚠️ این اتصال از قبل وجود دارد');\n }\n }\n }\n else {\n this.addLog('error', '❌ خطا در ایجاد اتصال');\n }\n }\n /**\n * قطع اتصال (با یا بدون outcome)\n */\n disconnectNodes(fromId, toId, outcome) {\n const nodes = this.visualNodes();\n const fromNodeIndex = nodes.findIndex(n => n.id === fromId);\n if (fromNodeIndex !== -1) {\n const fromNode = nodes[fromNodeIndex];\n const updatedNodes = [...nodes];\n // Remove from outcome connections if specified\n if (outcome && fromNode.outcomeConnections) {\n updatedNodes[fromNodeIndex] = {\n ...fromNode,\n outcomeConnections: fromNode.outcomeConnections.filter(c => !(c.outcome === outcome && c.targetNodeId === toId)),\n connections: fromNode.connections.filter(c => c !== toId)\n };\n }\n else {\n // Simple disconnect\n updatedNodes[fromNodeIndex] = {\n ...fromNode,\n connections: fromNode.connections.filter(c => c !== toId),\n outcomeConnections: fromNode.outcomeConnections?.filter(c => c.targetNodeId !== toId)\n };\n }\n this.visualNodes.set(updatedNodes);\n this.addLog('info', `✂️ اتصال قطع شد${outcome ? ` [${outcome}]` : ''}`);\n }\n }\n /**\n * تبدیل JSON به Visual\n */\n jsonToVisual() {\n try {\n const workflow = JSON.parse(this.workflowJson());\n const nodes = [];\n let yPos = 100;\n // پردازش root activity\n if (workflow.root) {\n this.processActivityToNode(workflow.root, nodes, 100, yPos);\n }\n this.visualNodes.set(nodes);\n this.addLog('success', '✅ JSON به Visual تبدیل شد');\n }\n catch (error) {\n this.addLog('error', '❌ خطا در تبدیل: ' + error.message);\n }\n }\n /**\n * پردازش Activity به Node (recursive)\n */\n processActivityToNode(activity, nodes, x, y, parentId) {\n const nodeId = activity.id || `${activity.type}-${Date.now()}-${Math.random()}`;\n // Get outcomes for this activity type (use default for now, will be updated async if needed)\n const outcomes = ['Done']; // Default outcome, will be updated when activity info is loaded\n // Get outcomeConnections from activity definition\n const outcomeConnections = activity.outcomeConnections || [];\n // Build simple connections list from outcomeConnections for backward compatibility\n const connections = outcomeConnections.map((conn) => conn.targetNodeId);\n const node = {\n id: nodeId,\n type: activity.type,\n name: activity.name || activity.type,\n icon: this.getIconForActivityType(activity.type),\n properties: activity.properties || {},\n position: { x, y },\n connections: connections,\n outcomeConnections: outcomeConnections,\n outcomes: outcomes\n };\n nodes.push(node);\n // اگر parent دارد، اتصال برقرار کن (برای Sequence)\n if (parentId && !outcomeConnections.length) {\n const parentNode = nodes.find(n => n.id === parentId);\n if (parentNode && !parentNode.connections.includes(nodeId)) {\n parentNode.connections.push(nodeId);\n }\n }\n // پردازش children (برای Sequence) - اما فقط اگر outcomeConnections نباشد\n if (activity.children && Array.isArray(activity.children) && !outcomeConnections.length) {\n let childY = y;\n activity.children.forEach((child, index) => {\n childY = y + (index * 100);\n this.processActivityToNode(child, nodes, x + 250, childY, nodeId);\n });\n }\n return nodeId;\n }\n /**\n * تبدیل Visual به JSON\n */\n visualToJson() {\n try {\n const nodes = this.visualNodes();\n if (nodes.length === 0) {\n this.addLog('warning', '⚠️ هیچ Node ای وجود ندارد');\n return;\n }\n // پیدا کردن root node (node بدون parent)\n const rootNode = this.findRootNode(nodes);\n if (!rootNode) {\n this.addLog('error', '❌ Root Node پیدا نشد');\n return;\n }\n const workflow = {\n id: 'visual-workflow-' + Date.now(),\n name: 'Visual Workflow',\n version: 1,\n root: this.nodeToActivity(rootNode, nodes)\n };\n this.workflowJson.set(JSON.stringify(workflow, null, 2));\n this.addLog('success', '✅ Visual به JSON تبدیل شد');\n }\n catch (error) {\n this.addLog('error', '❌ خطا در تبدیل: ' + error.message);\n }\n }\n /**\n * پیدا کردن Root Node\n */\n findRootNode(nodes) {\n // Node ای که به آن اشاره نشده\n const connectedIds = new Set();\n nodes.forEach(n => n.connections.forEach(c => connectedIds.add(c)));\n const rootNodes = nodes.filter(n => !connectedIds.has(n.id));\n return rootNodes[0] || nodes[0];\n }\n /**\n * تبدیل Node به Activity (recursive)\n */\n nodeToActivity(node, allNodes) {\n const activity = {\n id: node.id,\n type: node.type,\n name: node.name,\n properties: node.properties\n };\n // اگر children دارد (connections)\n if (node.connections.length > 0) {\n const children = node.connections\n .map(connId => allNodes.find(n => n.id === connId))\n .filter(n => n !== undefined)\n .map(childNode => this.nodeToActivity(childNode, allNodes));\n if (children.length > 0) {\n activity.children = children;\n }\n }\n return activity;\n }\n /**\n * دریافت آیکون برای نوع Activity\n */\n getIconForActivityType(type) {\n const iconMap = {\n 'workflow-activity:sequence': 'fa-light fa-list-ol',\n 'workflow-activity:show-confirm-dialog': 'fa-light fa-question-circle',\n 'workflow-activity:show-alert-dialog': 'fa-light fa-circle-info',\n 'workflow-activity:show-toast': 'fa-light fa-bell',\n 'workflow-activity:set-variable': 'fa-light fa-variable',\n 'workflow-activity:execute-query': 'fa-light fa-search',\n 'workflow-activity:execute-command': 'fa-light fa-bolt',\n 'workflow-activity:navigate': 'fa-light fa-route',\n 'workflow-activity:dispatch-event': 'fa-light fa-paper-plane'\n };\n return iconMap[type] || 'fa-light fa-circle';\n }\n /**\n * بهروزرسانی property نود\n */\n updateNodeProperty(nodeId, propertyName, value) {\n const nodes = this.visualNodes();\n const nodeIndex = nodes.findIndex(n => n.id === nodeId);\n if (nodeIndex !== -1) {\n const node = nodes[nodeIndex];\n const updatedNodes = [...nodes];\n // اگر property مستقیم نود است (مثل name)\n if (propertyName === 'name') {\n updatedNodes[nodeIndex] = {\n ...node,\n name: value\n };\n }\n else {\n // اگر property داخل properties object است\n const newProperties = {\n ...node.properties,\n [propertyName]: value\n };\n // Recompute outcomes if property affects them (e.g., expectedStatusCodes)\n let newOutcomes = node.outcomes;\n if (propertyName === 'expectedStatusCodes' && node.type === 'workflow-activity:http-request') {\n // Load activity info asynchronously and update outcomes\n this.findActivityInfo(node.type).then(activityInfo => {\n if (activityInfo) {\n const computedOutcomes = this.computeOutcomes(activityInfo, newProperties);\n const updatedNodes = this.visualNodes();\n const nodeIdx = updatedNodes.findIndex(n => n.id === nodeId);\n if (nodeIdx !== -1) {\n updatedNodes[nodeIdx] = {\n ...updatedNodes[nodeIdx],\n outcomes: computedOutcomes\n };\n this.visualNodes.set([...updatedNodes]);\n this.addLog('info', `🔄 Outcomes updated: [${computedOutcomes.join(', ')}]`);\n }\n }\n }).catch(() => {\n // Silently fail if activity info not found\n });\n }\n updatedNodes[nodeIndex] = {\n ...node,\n properties: newProperties,\n outcomes: newOutcomes\n };\n }\n this.visualNodes.set(updatedNodes);\n // اگر این نود selected است، آن را هم update کن\n if (this.selectedNode()?.id === nodeId) {\n this.selectedNode.set(updatedNodes[nodeIndex]);\n }\n }\n }\n /**\n * پیدا کردن activity info بر اساس type\n */\n async findActivityInfo(type) {\n try {\n // Try to get activity by name (type is used as name in some cases)\n const activity = await this.activityDefinitionService.getActivityByName(type);\n if (activity) {\n return this.convertActivityDefinitionToInfo(activity);\n }\n }\n catch (error) {\n console.warn(`Failed to find activity info for type: ${type}`, error);\n }\n return null;\n }\n /**\n * پاک کردن همه نودها\n */\n clearCanvas() {\n this.visualNodes.set([]);\n this.selectedNode.set(null);\n this.addLog('info', '🗑️ Canvas پاک شد');\n }\n // ============ Drag & Drop Methods ============\n /**\n * شروع drag از activity list\n */\n onActivityDragStart(event, activity) {\n this.draggedActivity = activity;\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'copy';\n event.dataTransfer.setData('text/plain', activity.type);\n }\n this.addLog('info', `🎯 در حال Drag: ${activity.name}`);\n }\n /**\n * پایان drag از activity list\n */\n onActivityDragEnd(event) {\n this.draggedActivity = null;\n }\n /**\n * drag over روی Canvas\n */\n onCanvasDragOver(event) {\n event.preventDefault();\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n }\n /**\n * drag leave از Canvas\n */\n onCanvasDragLeave(event) {\n // میتوان از این برای visual feedback استفاده کرد\n }\n /**\n * محاسبه outcomes برای یک activity\n */\n computeOutcomes(activityInfo, properties) {\n // For HTTP Request with expected status codes\n if (activityInfo.type === 'workflow-activity:http-request' && properties['expectedStatusCodes']) {\n const codes = Array.isArray(properties['expectedStatusCodes'])\n ? properties['expectedStatusCodes']\n : [properties['expectedStatusCodes']];\n const statusOutcomes = codes.map((code) => code.toString());\n return [...statusOutcomes, 'Done', 'Failed', 'Timeout'];\n }\n // TODO: Add more activity types with dynamic outcomes\n // Default: check activity info for outcomes\n // For now, we define outcomes manually for known activities\n const outcomeMap = {\n 'workflow-activity:if': ['Then', 'Else'],\n 'workflow-activity:show-confirm-dialog': ['Confirmed', 'Cancelled'],\n 'workflow-activity:show-alert-dialog': ['Done'],\n 'workflow-activity:show-form': ['Submitted', 'Cancelled'],\n 'workflow-activity:http-request': ['Done', 'Failed', 'Timeout'], // Will be overridden if expectedStatusCodes exist\n 'workflow-activity:sequence': ['Done'],\n 'workflow-activity:for-each': ['Done'],\n 'workflow-activity:while': ['Done'],\n 'workflow-activity:set-variable': ['Done'],\n 'workflow-activity:execute-query': ['Done'],\n 'workflow-activity:execute-command': ['Done'],\n 'workflow-activity:navigate': ['Done'],\n 'workflow-activity:show-toast': ['Done'],\n 'workflow-activity:dispatch-event': ['Done']\n };\n return outcomeMap[activityInfo.type] || ['Done'];\n }\n /**\n * drop روی Canvas - اضافه کردن activity جدید\n */\n onCanvasDrop(event) {\n event.preventDefault();\n if (!this.draggedActivity) {\n return;\n }\n const canvas = event.currentTarget;\n const rect = canvas.getBoundingClientRect();\n const x = event.clientX - rect.left - 75; // center node\n const y = event.clientY - rect.top - 40;\n const nodes = this.visualNodes();\n const defaultProps = { ...(this.draggedActivity.defaultProperties || {}) };\n const newNode = {\n id: `${this.draggedActivity.type}-${Date.now()}`,\n type: this.draggedActivity.type,\n name: this.draggedActivity.name,\n icon: this.draggedActivity.icon,\n properties: defaultProps,\n position: { x: Math.max(0, x), y: Math.max(0, y) },\n connections: [],\n outcomeConnections: [],\n outcomes: this.computeOutcomes(this.draggedActivity, defaultProps)\n };\n this.visualNodes.set([...nodes, newNode]);\n const outcomesInfo = newNode.outcomes && newNode.outcomes.length > 1\n ? ` with ${newNode.outcomes.length} outcomes [${newNode.outcomes.join(', ')}]`\n : '';\n this.addLog('success', `✅ Activity ${this.draggedActivity.name} اضافه شد${outcomesInfo}`);\n this.draggedActivity = null;\n }\n /**\n * شروع drag نود\n */\n onNodeDragStart(event, node) {\n this.draggedNode = node;\n const target = event.target;\n const rect = target.getBoundingClientRect();\n this.nodeDragOffset = {\n x: event.clientX - rect.left,\n y: event.clientY - rect.top\n };\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n // Make drag image transparent\n const img = new Image();\n img.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n event.dataTransfer.setDragImage(img, 0, 0);\n }\n }\n /**\n * در حال drag نود\n */\n onNodeDrag(event, node) {\n if (!this.draggedNode || event.clientX === 0 || event.clientY === 0) {\n return;\n }\n const canvas = document.querySelector('.canvas-area');\n if (!canvas)\n return;\n const rect = canvas.getBoundingClientRect();\n const x = event.clientX - rect.left - this.nodeDragOffset.x;\n const y = event.clientY - rect.top - this.nodeDragOffset.y;\n const nodes = this.visualNodes();\n const nodeIndex = nodes.findIndex(n => n.id === node.id);\n if (nodeIndex !== -1) {\n nodes[nodeIndex].position = {\n x: Math.max(0, x),\n y: Math.max(0, y)\n };\n this.visualNodes.set([...nodes]);\n }\n }\n /**\n * پایان drag نود\n */\n onNodeDragEnd(event, node) {\n this.draggedNode = null;\n }\n /**\n * کلیک روی کانکتور - برای ایجاد اتصال (برای activities با یک outcome)\n */\n onConnectorClick(event, node, type) {\n event.stopPropagation();\n if (!this.connectionSource) {\n // اولین کلیک - ذخیره source\n if (type === 'out') {\n this.connectionSource = { node, type };\n this.addLog('info', `🔗 منبع اتصال انتخاب شد: ${node.name}`);\n }\n }\n else {\n // دومین کلیک - ایجاد اتصال\n if (type === 'in' && this.connectionSource.node.id !== node.id) {\n this.connectNodes(this.connectionSource.node.id, node.id, this.connectionSource.outcome);\n this.connectionSource = null;\n }\n else {\n this.addLog('warning', '⚠️ اتصال نامعتبر - ابتدا روی connector خروجی و سپس ورودی کلیک کنید');\n this.connectionSource = null;\n }\n }\n }\n /**\n * کلیک روی outcome connector - برای activities با چند outcome\n */\n onOutcomeConnectorClick(event, node, outcome) {\n event.stopPropagation();\n if (!this.connectionSource) {\n // اولین کلیک - ذخیره source با outcome\n this.connectionSource = { node, type: 'out', outcome };\n this.addLog('info', `🔗 منبع اتصال انتخاب شد: ${node.name} [${outcome}]`);\n }\n else {\n this.addLog('warning', '⚠️ لطفاً روی input connector یک نود دیگر کلیک کنید');\n this.connectionSource = null;\n }\n }\n // ============ UI Methods ============\n /**\n * تغییر وضعیت نمایش Properties Panel\n */\n togglePropertiesPanel() {\n this.showPropertiesPanel.set(!this.showPropertiesPanel());\n }\n // ============ Template Helper Methods ============\n /**\n * پیدا کردن Node با ID\n */\n findNodeById(nodeId) {\n return this.visualNodes().find(n => n.id === nodeId);\n }\n /**\n * بررسی اینکه آیا properties خالی است یا نه\n */\n hasProperties(properties) {\n return properties && Object.keys(properties).length > 0;\n }\n /**\n * دریافت رنگ بر اساس outcome\n */\n getOutcomeColor(outcome) {\n const colorMap = {\n '200': '#10b981', // Green - Success\n 'Done': '#10b981', // Green - Success\n 'Success': '#10b981', // Green - Success\n '404': '#ef4444', // Red - Error\n '500': '#ef4444', // Red - Error\n 'Failed': '#ef4444', // Red - Error\n 'Error': '#ef4444', // Red - Error\n 'Timeout': '#f59e0b', // Orange - Warning\n 'Cancelled': '#f59e0b', // Orange - Warning\n 'Then': '#3b82f6', // Blue - Info\n 'Else': '#64748b', // Gray\n };\n return colorMap[outcome] || '#8b5cf6'; // Purple - Default\n }\n /**\n * دریافت نام رنگ برای marker ID\n */\n getOutcomeColorName(outcome) {\n if (['200', 'Done', 'Success'].includes(outcome)) {\n return 'success';\n }\n if (['404', '500', 'Failed', 'Error'].includes(outcome)) {\n return 'error';\n }\n if (['Timeout', 'Cancelled'].includes(outcome)) {\n return 'warning';\n }\n if (['Then'].includes(outcome)) {\n return 'info';\n }\n return 'default';\n }\n /**\n * بهروزرسانی property با parse کردن JSON\n */\n updateNodePropertyJSON(nodeId, propertyName, jsonString) {\n try {\n const value = JSON.parse(jsonString);\n this.updateNodeProperty(nodeId, propertyName, value);\n }\n catch (error) {\n // اگر JSON نامعتبر بود، چیزی نکن\n console.warn('Invalid JSON:', jsonString);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowStudioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.12\", type: WorkflowStudioComponent, isStandalone: true, selector: \"app-workflow-studio\", providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: WorkflowStudioComponent,\n },\n ], usesInheritance: true, ngImport: i0, template: \"<axp-page-layout>\\n <axp-layout-start-side>\\n <axp-activity-categories-tree (categoryClick)=\\\"onCategoryClick($event)\\\"\\n (activityClick)=\\\"onActivityClick($event)\\\"></axp-activity-categories-tree>\\n </axp-layout-start-side>\\n\\n <axp-page-toolbar>\\n <axp-layout-prefix>\\n <!-- Editor Tabs -->\\n <div class=\\\"editor-tabs\\\">\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeTab() === 'json'\\\" (click)=\\\"switchTab('json')\\\">\\n <i class=\\\"fa-light fa-code\\\"></i>\\n {{ '@workflow-management:workflow-studio.terms.json-editor' | translate | async }}\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeTab() === 'visual'\\\" (click)=\\\"switchTab('visual')\\\">\\n <i class=\\\"fa-light fa-diagram-project\\\"></i>\\n {{ '@workflow-management:workflow-studio.terms.visual-designer' | translate | async }}\\n </button>\\n </div>\\n </axp-layout-prefix>\\n </axp-page-toolbar>\\n\\n <axp-page-content>\\n <div class=\\\"workflow-studio\\\">\\n <!-- Main Layout -->\\n <div class=\\\"studio-body\\\" [class.properties-hidden]=\\\"!showPropertiesPanel()\\\">\\n\\n <!-- Editor -->\\n <div class=\\\"studio-editor\\\">\\n <!-- Tab Content -->\\n <div class=\\\"editor-content\\\">\\n <!-- JSON Tab -->\\n @if (activeTab() === 'json') {\\n <div class=\\\"json-tab\\\">\\n <textarea class=\\\"json-editor\\\" [(ngModel)]=\\\"workflowJson\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.components.json-editor.placeholder' | translate | async\\\"\\n spellcheck=\\\"false\\\">\\n </textarea>\\n </div>\\n }\\n\\n <!-- Visual Tab -->\\n @if (activeTab() === 'visual') {\\n <div class=\\\"visual-tab\\\">\\n <!-- Canvas -->\\n <div class=\\\"visual-canvas\\\">\\n <div class=\\\"canvas-toolbar\\\">\\n <button class=\\\"tool-btn\\\" (click)=\\\"clearCanvas()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.canvas-toolbar.clear-canvas.title' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n <button class=\\\"tool-btn\\\" (click)=\\\"visualToJson()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.canvas-toolbar.convert-to-json.title' | translate | async\\\">\\n <i class=\\\"fa-light fa-code\\\"></i>\\n </button>\\n <span class=\\\"tool-info\\\">\\n <i class=\\\"fa-light fa-lightbulb\\\"></i>\\n <strong>{{ '@workflow-management:workflow-studio.components.canvas-toolbar.hint' | translate | async }}</strong>\\n </span>\\n </div>\\n\\n <div class=\\\"canvas-area\\\" (drop)=\\\"onCanvasDrop($event)\\\" (dragover)=\\\"onCanvasDragOver($event)\\\"\\n (dragleave)=\\\"onCanvasDragLeave($event)\\\">\\n <!-- SVG for Connections -->\\n <svg class=\\\"connections-layer\\\">\\n <!-- Outcome-based Connections -->\\n @for (node of visualNodes(); track node.id) {\\n @if (node.outcomeConnections && node.outcomeConnections.length > 0) {\\n @for (conn of node.outcomeConnections; track conn.targetNodeId + conn.outcome) {\\n @let targetNode = findNodeById(conn.targetNodeId);\\n @if (targetNode) {\\n <g class=\\\"outcome-connection-group\\\">\\n <line [attr.x1]=\\\"node.position.x + 75\\\" [attr.y1]=\\\"node.position.y + 80\\\"\\n [attr.x2]=\\\"targetNode.position.x + 75\\\" [attr.y2]=\\\"targetNode.position.y - 50\\\"\\n class=\\\"connection-line outcome-line\\\" [attr.stroke]=\\\"getOutcomeColor(conn.outcome)\\\"\\n stroke-width=\\\"2.5\\\"\\n [attr.marker-end]=\\\"'url(#arrowhead-' + getOutcomeColorName(conn.outcome) + ')'\\\"\\n style=\\\"cursor: pointer\\\" (dblclick)=\\\"disconnectNodes(node.id, conn.targetNodeId, conn.outcome)\\\"\\n [attr.title]=\\\"'Outcome: ' + conn.outcome + ' (Double-click to remove)'\\\">\\n <title>{{ conn.outcome }} \\u2192 {{ targetNode.name }}</title>\\n </line>\\n <text [attr.x]=\\\"(node.position.x + targetNode.position.x) / 2 + 75\\\"\\n [attr.y]=\\\"(node.position.y + targetNode.position.y) / 2 + 15\\\" class=\\\"connection-label\\\"\\n text-anchor=\\\"middle\\\" [attr.fill]=\\\"getOutcomeColor(conn.outcome)\\\" font-size=\\\"11\\\"\\n font-weight=\\\"600\\\" pointer-events=\\\"none\\\">\\n {{ conn.outcome }}\\n </text>\\n </g>\\n }\\n }\\n } @else {\\n <!-- Simple Connections (backward compatibility) -->\\n @for (targetId of node.connections; track targetId) {\\n @let targetNode = findNodeById(targetId);\\n @if (targetNode) {\\n <line [attr.x1]=\\\"node.position.x + 75\\\" [attr.y1]=\\\"node.position.y + 40\\\"\\n [attr.x2]=\\\"targetNode.position.x + 75\\\" [attr.y2]=\\\"targetNode.position.y - 50\\\"\\n class=\\\"connection-line\\\" stroke=\\\"#64748b\\\" stroke-width=\\\"2\\\" marker-end=\\\"url(#arrowhead-default)\\\"\\n style=\\\"cursor: pointer\\\" (dblclick)=\\\"disconnectNodes(node.id, targetId)\\\"\\n title=\\\"Double-click \\u0628\\u0631\\u0627\\u06CC \\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <title>Double-click \\u0628\\u0631\\u0627\\u06CC \\u062D\\u0630\\u0641</title>\\n </line>\\n }\\n }\\n }\\n }\\n\\n <defs>\\n <!-- Default Arrow -->\\n <marker id=\\\"arrowhead-default\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#64748b\\\" />\\n </marker>\\n <!-- Success Arrow (Green) -->\\n <marker id=\\\"arrowhead-success\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#10b981\\\" />\\n </marker>\\n <!-- Error Arrow (Red) -->\\n <marker id=\\\"arrowhead-error\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#ef4444\\\" />\\n </marker>\\n <!-- Warning Arrow (Orange) -->\\n <marker id=\\\"arrowhead-warning\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#f59e0b\\\" />\\n </marker>\\n <!-- Info Arrow (Blue) -->\\n <marker id=\\\"arrowhead-info\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#3b82f6\\\" />\\n </marker>\\n </defs>\\n </svg>\\n\\n <!-- Nodes -->\\n @for (node of visualNodes(); track node.id) {\\n <div class=\\\"visual-node\\\" [class.selected]=\\\"selectedNode()?.id === node.id\\\"\\n [style.left.px]=\\\"node.position.x\\\" [style.top.px]=\\\"node.position.y\\\" [attr.data-node-id]=\\\"node.id\\\"\\n draggable=\\\"true\\\" (dragstart)=\\\"onNodeDragStart($event, node)\\\" (drag)=\\\"onNodeDrag($event, node)\\\"\\n (dragend)=\\\"onNodeDragEnd($event, node)\\\" (click)=\\\"selectNodeById(node)\\\">\\n <div class=\\\"node-header\\\">\\n <i [class]=\\\"node.icon\\\"></i>\\n <span>{{ node.name }}</span>\\n <button class=\\\"node-delete\\\" (click)=\\\"deleteNode(node.id); $event.stopPropagation()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <div class=\\\"node-body\\\">\\n <small>{{ node.type }}</small>\\n </div>\\n\\n <div class=\\\"node-connectors\\\">\\n <!-- Input Connector -->\\n <div class=\\\"connector connector-in\\\" title=\\\"Input\\\" (click)=\\\"onConnectorClick($event, node, 'in')\\\">\\n </div>\\n\\n <!-- Output Connectors - Multiple outcomes support -->\\n @if (node.outcomes && node.outcomes.length > 1) {\\n <!-- Multiple outcomes: show separate port for each -->\\n <div class=\\\"outcomes-container\\\">\\n @for (outcome of node.outcomes; track outcome; let idx = $index) {\\n <div class=\\\"outcome-connector\\\" [class.active]=\\\"\\n connectionSource?.node?.id === node.id && connectionSource?.outcome === outcome\\n \\\" [attr.data-outcome]=\\\"outcome\\\" [title]=\\\"'Output: ' + outcome\\\"\\n (click)=\\\"onOutcomeConnectorClick($event, node, outcome)\\\">\\n <span class=\\\"outcome-label\\\">{{ outcome }}</span>\\n <div class=\\\"outcome-dot\\\"></div>\\n </div>\\n }\\n </div>\\n } @else {\\n <!-- Single outcome: show simple output connector -->\\n <div class=\\\"connector connector-out\\\" [class.active]=\\\"connectionSource?.node?.id === node.id\\\"\\n title=\\\"Output\\\" (click)=\\\"onConnectorClick($event, node, 'out')\\\"></div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (visualNodes().length === 0) {\\n <div class=\\\"canvas-empty-state\\\">\\n <i class=\\\"fa-light fa-diagram-project\\\"></i>\\n <p>Activity \\u0647\\u0627 \\u0631\\u0627 \\u0627\\u0632 \\u0633\\u0627\\u06CC\\u062F\\u0628\\u0627\\u0631 \\u0628\\u0647 \\u0627\\u06CC\\u0646\\u062C\\u0627 \\u0628\\u06A9\\u0634\\u06CC\\u062F</p>\\n <small>\\u06CC\\u0627 \\u0627\\u0632 \\u062A\\u0628 JSON\\u060C workflow \\u0631\\u0627 import \\u06A9\\u0646\\u06CC\\u062F</small>\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Properties Panel -->\\n @if (selectedNode() && showPropertiesPanel()) {\\n <div class=\\\"properties-panel\\\">\\n <div class=\\\"properties-header\\\">\\n <i class=\\\"fa-light fa-sliders\\\"></i>\\n <h4>{{ '@workflow-management:workflow-studio.components.properties-panel.title' | translate | async }}</h4>\\n <div class=\\\"header-actions\\\">\\n <button class=\\\"header-btn\\\" (click)=\\\"togglePropertiesPanel()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.close-panel' | translate | async\\\">\\n <i class=\\\"fa-light fa-angle-right\\\"></i>\\n </button>\\n <button class=\\\"header-btn\\\" (click)=\\\"selectedNode.set(null)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.close' | translate | async\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"properties-body\\\">\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.id' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.id\\\" disabled />\\n </div>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.type' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.type\\\" disabled />\\n </div>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.name' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.name\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, 'name', $any($event.target).value)\\\" />\\n </div>\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCE5 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.input-properties' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">{{ '@workflow-management:workflow-studio.components.properties-panel.sections.input-properties' | translate | async }} - \\u0645\\u0642\\u0627\\u062F\\u06CC\\u0631 \\u0631\\u0627 \\u062A\\u0646\\u0638\\u06CC\\u0645 \\u06A9\\u0646\\u06CC\\u062F</small>\\n\\n @if (hasProperties(selectedNode()!.properties)) {\\n <div class=\\\"property-editor\\\">\\n @for (key of Object.keys(selectedNode()!.properties); track key) {\\n <div class=\\\"property-row\\\">\\n <label>\\n {{ key }}\\n <span class=\\\"property-type-badge\\\">{{ typeof selectedNode()!.properties[key] }}</span>\\n </label>\\n\\n @if (typeof selectedNode()!.properties[key] === 'boolean') {\\n <select [value]=\\\"selectedNode()!.properties[key]\\\" (change)=\\\"\\n updateNodeProperty(selectedNode()!.id, key, $any($event.target).value === 'true')\\n \\\">\\n <option [value]=\\\"true\\\">True</option>\\n <option [value]=\\\"false\\\">False</option>\\n </select>\\n } @else if (typeof selectedNode()!.properties[key] === 'number') {\\n <input type=\\\"number\\\" [value]=\\\"selectedNode()!.properties[key]\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, key, +$any($event.target).value)\\\" />\\n } @else if (typeof selectedNode()!.properties[key] === 'object') {\\n <textarea rows=\\\"3\\\" [value]=\\\"JSON.stringify(selectedNode()!.properties[key], null, 2)\\\"\\n (input)=\\\"updateNodePropertyJSON(selectedNode()!.id, key, $any($event.target).value)\\\"></textarea>\\n } @else {\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.properties[key]\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, key, $any($event.target).value)\\\" />\\n }\\n </div>\\n }\\n </div>\\n } @else {\\n <p class=\\\"no-properties\\\">\\n {{ '@workflow-management:workflow-studio.components.properties-panel.empty-states.no-properties' | translate | async }}\\n </p>\\n }\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCE4 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.output-variables' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u062E\\u0631\\u0648\\u062C\\u06CC \\u0648 \\u0645\\u062A\\u063A\\u06CC\\u0631\\u0647\\u0627</small>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.output-variable' | translate | async }}:</label>\\n <input type=\\\"text\\\" placeholder=\\\"\\u0645\\u062B\\u0644\\u0627\\u064B result\\\"\\n [value]=\\\"selectedNode()!.properties['outputVariable'] || ''\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, 'outputVariable', $any($event.target).value)\\\" />\\n </div>\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDD17 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.connections' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A \\u0627\\u06CC\\u0646 \\u0646\\u0648\\u062F</small>\\n\\n <!-- Outcome-based Connections -->\\n @if (selectedNode()!.outcomeConnections && selectedNode()!.outcomeConnections!.length > 0) {\\n <div class=\\\"connections-list\\\">\\n @for (conn of selectedNode()!.outcomeConnections!; track conn.targetNodeId + conn.outcome) {\\n @let targetNode = findNodeById(conn.targetNodeId);\\n @if (targetNode) {\\n <div class=\\\"connection-item outcome-connection\\\">\\n <span class=\\\"outcome-badge\\\" [style.background]=\\\"getOutcomeColor(conn.outcome)\\\">\\n {{ conn.outcome }}\\n </span>\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n <span>{{ targetNode.name }}</span>\\n <button class=\\\"remove-btn\\\"\\n (click)=\\\"disconnectNodes(selectedNode()!.id, conn.targetNodeId, conn.outcome)\\\"\\n title=\\\"\\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n }\\n }\\n </div>\\n } @else if (selectedNode()!.connections.length > 0) {\\n <!-- Simple Connections (fallback) -->\\n <div class=\\\"connections-list\\\">\\n @for (targetId of selectedNode()!.connections; track targetId) {\\n @let targetNode = findNodeById(targetId);\\n @if (targetNode) {\\n <div class=\\\"connection-item\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n <span>{{ targetNode.name }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"disconnectNodes(selectedNode()!.id, targetId)\\\"\\n title=\\\"\\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n }\\n }\\n </div>\\n } @else {\\n <p class=\\\"no-properties\\\">{{ '@workflow-management:workflow-studio.components.properties-panel.empty-states.no-connections' | translate | async }}</p>\\n }\\n\\n <!-- Available Outcomes Info -->\\n @if (selectedNode()!.outcomes && selectedNode()!.outcomes!.length > 1) {\\n <div class=\\\"properties-divider\\\"></div>\\n <h5>\\uD83D\\uDCE4 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.available-outcomes' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u062E\\u0631\\u0648\\u062C\\u06CC\\u200C\\u0647\\u0627\\u06CC \\u0645\\u0648\\u062C\\u0648\\u062F \\u0628\\u0631\\u0627\\u06CC \\u0627\\u062A\\u0635\\u0627\\u0644</small>\\n <div class=\\\"outcomes-info\\\">\\n @for (outcome of selectedNode()!.outcomes!; track outcome) {\\n <span class=\\\"outcome-tag\\\" [style.borderColor]=\\\"getOutcomeColor(outcome)\\\">\\n <span class=\\\"outcome-dot\\\" [style.background]=\\\"getOutcomeColor(outcome)\\\"></span>\\n {{ outcome }}\\n </span>\\n }\\n </div>\\n }\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCDD {{ '@workflow-management:workflow-studio.components.properties-panel.sections.raw-json' | translate | async }}</h5>\\n <pre class=\\\"properties-json\\\">{{ selectedNode() | json }}</pre>\\n </div>\\n </div>\\n }\\n\\n <!-- Toggle Button for Properties (when closed) -->\\n @if (selectedNode() && !showPropertiesPanel()) {\\n <button class=\\\"sidebar-toggle-btn right\\\" (click)=\\\"togglePropertiesPanel()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.show-panel' | translate | async\\\">\\n <i class=\\\"fa-light fa-sliders\\\"></i>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Result Panel -->\\n <div class=\\\"studio-result\\\">\\n <div class=\\\"result-header\\\">\\n <i class=\\\"fa-light fa-terminal\\\"></i>\\n <h3>{{ '@workflow-management:workflow-studio.components.execution-result.title' | translate | async }}</h3>\\n <button class=\\\"clear-btn\\\" (click)=\\\"clearLogs()\\\" *ngIf=\\\"executionLogs().length > 0\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i> {{ '@workflow-management:test-pages.actions.clear-logs.title' | translate | async }}\\n </button>\\n </div>\\n\\n <div class=\\\"result-body\\\">\\n <!-- Execution Logs -->\\n @if (executionLogs().length > 0) {\\n <div class=\\\"logs-container\\\">\\n @for (log of executionLogs(); track $index) {\\n <div class=\\\"log-item\\\" [class]=\\\"'log-' + log.level\\\">\\n <span class=\\\"log-time\\\">{{ log.timestamp | date: 'HH:mm:ss.SSS' }}</span>\\n <span class=\\\"log-icon\\\">\\n @switch (log.level) {\\n @case ('info') {\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n }\\n @case ('success') {\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n }\\n @case ('warning') {\\n <i class=\\\"fa-light fa-exclamation-triangle\\\"></i>\\n }\\n @case ('error') {\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n }\\n }\\n </span>\\n <span class=\\\"log-message\\\">{{ log.message }}</span>\\n @if (log.data) {\\n <button class=\\\"log-data-toggle\\\" (click)=\\\"log.expanded = !log.expanded\\\">\\n <i class=\\\"fa-light\\\" [class.fa-chevron-down]=\\\"!log.expanded\\\" [class.fa-chevron-up]=\\\"log.expanded\\\"></i>\\n </button>\\n }\\n </div>\\n\\n @if (log.data && log.expanded) {\\n <pre class=\\\"log-data\\\">{{ log.data | json }}</pre>\\n }\\n }\\n </div>\\n } @else {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-play-circle\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.components.execution-result.empty-states.no-results.description' | translate | async }}</p>\\n </div>\\n }\\n\\n <!-- Final Result -->\\n @if (executionResult()) {\\n <div class=\\\"final-result\\\">\\n <div class=\\\"result-header\\\" (click)=\\\"showExecutionResult.set(!showExecutionResult())\\\">\\n <h4>\\n <i class=\\\"fa-light\\\" [class.fa-chevron-down]=\\\"showExecutionResult()\\\"\\n [class.fa-chevron-left]=\\\"!showExecutionResult()\\\"></i>\\n {{ '@workflow-management:workflow-studio.components.execution-result.final-result.title' | translate | async }}\\n </h4>\\n <span class=\\\"toggle-hint\\\">{{ (showExecutionResult() ? '@workflow-management:workflow-studio.components.execution-result.final-result.toggle.close' : '@workflow-management:workflow-studio.components.execution-result.final-result.toggle.open') | translate | async }}</span>\\n </div>\\n @if (showExecutionResult()) {\\n <div class=\\\"result-card\\\">\\n @if (executionResult().status) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.status' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().status?.toLowerCase() || 'unknown')\\\">\\n {{ executionResult().status }}\\n </span>\\n </div>\\n }\\n @if (executionResult().subStatus) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.sub-status' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().subStatus?.toLowerCase() || 'unknown')\\\">\\n {{ executionResult().subStatus }}\\n </span>\\n </div>\\n }\\n @if (executionResult().success !== undefined) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.success' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().success ? 'success' : 'danger')\\\">\\n {{ (executionResult().success ? '@workflow-management:workflow-studio.components.execution-result.final-result.values.success' : '@workflow-management:workflow-studio.components.execution-result.final-result.values.failed') | translate | async }}\\n </span>\\n </div>\\n }\\n @if (executionResult().error) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.error' | translate | async }}:</strong>\\n <span class=\\\"error-text\\\">{{ executionResult().error }}</span>\\n </div>\\n }\\n @if (executionResult().output) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.output' | translate | async }}:</strong>\\n <pre>{{ executionResult().output | json }}</pre>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n\\n <!-- Workflow Settings Modal -->\\n @if (showWorkflowSettings()) {\\n <div class=\\\"settings-modal-overlay\\\" (click)=\\\"closeWorkflowSettings()\\\">\\n <div class=\\\"settings-modal\\\" (click)=\\\"$event.stopPropagation()\\\">\\n <!-- Modal Header -->\\n <div class=\\\"settings-modal-header\\\">\\n <div class=\\\"header-title\\\">\\n <i class=\\\"fa-light fa-cog\\\"></i>\\n <h2>{{ '@workflow-management:workflow-studio.settings.title' | translate | async }}</h2>\\n </div>\\n <button class=\\\"close-btn\\\" (click)=\\\"closeWorkflowSettings()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <!-- Modal Body -->\\n <div class=\\\"settings-modal-body\\\">\\n <!-- Tabs Navigation -->\\n <div class=\\\"settings-tabs\\\">\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'general'\\\"\\n (click)=\\\"switchSettingsTab('general')\\\">\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.general' | translate | async }}\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'inputs'\\\"\\n (click)=\\\"switchSettingsTab('inputs')\\\">\\n <i class=\\\"fa-light fa-sign-in\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.inputs' | translate | async }}\\n @if (workflowSettings().inputs.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().inputs.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'outputs'\\\"\\n (click)=\\\"switchSettingsTab('outputs')\\\">\\n <i class=\\\"fa-light fa-sign-out\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.outputs' | translate | async }}\\n @if (workflowSettings().outputs.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().outputs.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'variables'\\\"\\n (click)=\\\"switchSettingsTab('variables')\\\">\\n <i class=\\\"fa-light fa-box\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.variables' | translate | async }}\\n @if (workflowSettings().variables.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().variables.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'advanced'\\\"\\n (click)=\\\"switchSettingsTab('advanced')\\\">\\n <i class=\\\"fa-light fa-cog\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.advanced' | translate | async }}\\n </button>\\n </div>\\n\\n <!-- Tab Content -->\\n <div class=\\\"settings-content\\\">\\n <!-- General Tab -->\\n @if (activeSettingsTab() === 'general') {\\n <div class=\\\"settings-section\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.general.title' | translate | async }}</h3>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.name.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.name.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().name\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().definitionId\\\" />\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.description' | translate | async }}</small>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.description.title' | translate | async }}</label>\\n <textarea class=\\\"form-textarea\\\" rows=\\\"4\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.description.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().description\\\"></textarea>\\n </div>\\n </div>\\n }\\n\\n <!-- Inputs Tab -->\\n @if (activeSettingsTab() === 'inputs') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.inputs.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowInput()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.inputs.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().inputs.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.inputs.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.inputs.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (input of workflowSettings().inputs; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowInput($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"userName\\\" [value]=\\\"input.name\\\"\\n (input)=\\\"updateWorkflowInput($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"User Name\\\" [value]=\\\"input.title\\\"\\n (input)=\\\"updateWorkflowInput($index, 'title', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"input.description || ''\\\"\\n (input)=\\\"updateWorkflowInput($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.data-type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"input.schema.dataType || 'string'\\\"\\n (change)=\\\"updateWorkflowInputSchema($index, 'dataType', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.default-value' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.fields.default-value-placeholder' | translate | async\\\"\\n [value]=\\\"input.schema.defaultValue || ''\\\"\\n (input)=\\\"updateWorkflowInputSchema($index, 'defaultValue', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [checked]=\\\"getInputIsRequired(input)\\\"\\n (change)=\\\"updateWorkflowInputValidation($index, $any($event.target).checked)\\\" />\\n <span>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.required' | translate | async }}</span>\\n </label>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Outputs Tab -->\\n @if (activeSettingsTab() === 'outputs') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.outputs.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowOutput()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.outputs.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().outputs.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.outputs.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.outputs.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (output of workflowSettings().outputs; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowOutput($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.outputs.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"result\\\" [value]=\\\"output.name\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"Result\\\" [value]=\\\"output.title\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'title', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.outputs.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"output.description || ''\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.data-type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"output.schema.dataType || 'string'\\\"\\n (change)=\\\"updateWorkflowOutputSchema($index, 'dataType', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Variables Tab -->\\n @if (activeSettingsTab() === 'variables') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.variables.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowVariable()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.variables.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().variables.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.variables.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.variables.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (variable of workflowSettings().variables; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowVariable($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"tempData\\\" [value]=\\\"variable.name\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"variable.typeName\\\"\\n (change)=\\\"updateWorkflowVariable($index, 'typeName', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"variable.description || ''\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.initial-value' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.fields.initial-value-placeholder' | translate | async\\\"\\n [value]=\\\"variable.value || ''\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'value', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Advanced Tab -->\\n @if (activeSettingsTab() === 'advanced') {\\n <div class=\\\"settings-section\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.advanced.title' | translate | async }}</h3>\\n\\n <!-- Versioning -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u0646\\u0633\\u062E\\u0647\\u200C\\u0628\\u0646\\u062F\\u06CC (Versioning)</h4>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>Version</label>\\n <input type=\\\"number\\\" class=\\\"form-input\\\" min=\\\"1\\\" [(ngModel)]=\\\"workflowSettings().version\\\" />\\n <small>\\u0634\\u0645\\u0627\\u0631\\u0647 \\u0646\\u0633\\u062E\\u0647 workflow (1, 2, 3, ...)</small>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\" style=\\\"margin-top: 1.8rem\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().isLatest\\\" />\\n <span>\\u0622\\u062E\\u0631\\u06CC\\u0646 \\u0646\\u0633\\u062E\\u0647 (Is Latest)</span>\\n </label>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\" style=\\\"margin-top: 1.8rem\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().isPublished\\\" />\\n <span>\\u0645\\u0646\\u062A\\u0634\\u0631 \\u0634\\u062F\\u0647 (Published)</span>\\n </label>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Options -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u062A\\u0646\\u0638\\u06CC\\u0645\\u0627\\u062A (Options)</h4>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().usableAsActivity\\\" />\\n <span>\\u0642\\u0627\\u0628\\u0644 \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0628\\u0647 \\u0639\\u0646\\u0648\\u0627\\u0646 Activity</span>\\n </label>\\n <small>\\u0627\\u06CC\\u0646 workflow \\u0645\\u06CC\\u200C\\u062A\\u0648\\u0627\\u0646\\u062F \\u0628\\u0647 \\u0639\\u0646\\u0648\\u0627\\u0646 \\u06CC\\u06A9 activity \\u062F\\u0631 workflow \\u0647\\u0627\\u06CC \\u062F\\u06CC\\u06AF\\u0631 \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0634\\u0648\\u062F</small>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().autoUpdateConsumingWorkflows\\\" />\\n <span>\\u0628\\u0647\\u200C\\u0631\\u0648\\u0632\\u0631\\u0633\\u0627\\u0646\\u06CC \\u062E\\u0648\\u062F\\u06A9\\u0627\\u0631 workflows \\u0645\\u0635\\u0631\\u0641\\u200C\\u06A9\\u0646\\u0646\\u062F\\u0647</span>\\n </label>\\n <small>workflow \\u0647\\u0627\\u06CC\\u06CC \\u06A9\\u0647 \\u0627\\u0632 \\u0627\\u06CC\\u0646 workflow \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0645\\u06CC\\u200C\\u06A9\\u0646\\u0646\\u062F \\u0628\\u0647 \\u0635\\u0648\\u0631\\u062A \\u062E\\u0648\\u062F\\u06A9\\u0627\\u0631 \\u0628\\u0647\\u200C\\u0631\\u0648\\u0632 \\u0645\\u06CC\\u200C\\u0634\\u0648\\u0646\\u062F</small>\\n </div>\\n </div>\\n\\n <!-- Metadata -->\\n <div class=\\\"advanced-group\\\">\\n <h4>Metadata</h4>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>Tool Version</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"1.0.0\\\"\\n [(ngModel)]=\\\"workflowSettings().toolVersion\\\" />\\n <small>\\u0646\\u0633\\u062E\\u0647 \\u0627\\u0628\\u0632\\u0627\\u0631 \\u0633\\u0627\\u0632\\u0646\\u062F\\u0647</small>\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>Provider Name</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"WorkflowStudio\\\"\\n [(ngModel)]=\\\"workflowSettings().providerName\\\" />\\n <small>\\u0646\\u0627\\u0645 \\u0627\\u0628\\u0632\\u0627\\u0631 \\u0633\\u0627\\u0632\\u0646\\u062F\\u0647</small>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Outcomes -->\\n <div class=\\\"advanced-group\\\">\\n <h4>Workflow Outcomes</h4>\\n <div class=\\\"form-group\\\">\\n <label>Possible Outcomes</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"Done, Success, Failed (\\u062C\\u062F\\u0627 \\u0634\\u062F\\u0647 \\u0628\\u0627 \\u06A9\\u0627\\u0645\\u0627)\\\"\\n [value]=\\\"workflowSettings().outcomes.join(', ')\\\"\\n (input)=\\\"updateOutcomes($any($event.target).value)\\\" />\\n <small>\\u0646\\u062A\\u0627\\u06CC\\u062C \\u0645\\u0645\\u06A9\\u0646 \\u06A9\\u0647 \\u0627\\u06CC\\u0646 workflow \\u0645\\u06CC\\u200C\\u062A\\u0648\\u0627\\u0646\\u062F \\u0628\\u0631\\u06AF\\u0631\\u062F\\u0627\\u0646\\u062F (\\u0645\\u062B\\u0644\\u0627\\u064B: Done, Success, Failed)</small>\\n </div>\\n <div class=\\\"outcomes-preview\\\">\\n @for (outcome of workflowSettings().outcomes; track outcome) {\\n <span class=\\\"outcome-chip\\\">{{ outcome }}</span>\\n }\\n </div>\\n </div>\\n\\n <!-- Export Preview -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u062E\\u0631\\u0648\\u062C\\u06CC \\u0646\\u0647\\u0627\\u06CC\\u06CC (WorkflowDefinition)</h4>\\n <small>\\u0627\\u06CC\\u0646 \\u0633\\u0627\\u062E\\u062A\\u0627\\u0631 \\u062F\\u0642\\u06CC\\u0642\\u0627\\u064B \\u0645\\u0637\\u0627\\u0628\\u0642 \\u0628\\u0627 WorkflowDefinition \\u0627\\u0633\\u062A \\u0648 \\u062F\\u0631 \\u062F\\u06CC\\u062A\\u0627\\u0628\\u06CC\\u0633 \\u0630\\u062E\\u06CC\\u0631\\u0647 \\u0645\\u06CC\\u200C\\u0634\\u0648\\u062F</small>\\n <div class=\\\"export-info\\\">\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Definition ID:</span>\\n <code>{{ workflowSettings().definitionId || '(\\u062E\\u0627\\u0644\\u06CC)' }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Name:</span>\\n <code>{{ workflowSettings().name || '(\\u062E\\u0627\\u0644\\u06CC)' }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Version:</span>\\n <code>v{{ workflowSettings().version }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Inputs:</span>\\n <code>{{ workflowSettings().inputs.length }} items</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Outputs:</span>\\n <code>{{ workflowSettings().outputs.length }} items</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Variables:</span>\\n <code>{{ workflowSettings().variables.length }} items</code>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Modal Footer -->\\n <div class=\\\"settings-modal-footer\\\">\\n <ax-button [text]=\\\"'@workflow-management:workflow-studio.settings.actions.cancel' | translate | async\\\" color=\\\"secondary\\\" size=\\\"md\\\" (onClick)=\\\"closeWorkflowSettings()\\\"> </ax-button>\\n <ax-button [text]=\\\"'@workflow-management:workflow-studio.settings.actions.save' | translate | async\\\" color=\\\"primary\\\" size=\\\"md\\\" (onClick)=\\\"saveWorkflowSettings()\\\"> </ax-button>\\n </div>\\n </div>\\n </div>\\n }\\n\\n <!-- Workflow Execution Dialog -->\\n @if (showExecutionDialog()) {\\n <div class=\\\"execution-dialog-overlay\\\" (click)=\\\"closeExecutionDialog()\\\">\\n <div class=\\\"execution-dialog\\\" (click)=\\\"$event.stopPropagation()\\\">\\n <!-- Dialog Header -->\\n <div class=\\\"execution-dialog-header\\\">\\n <div class=\\\"header-content\\\">\\n <i class=\\\"fa-light fa-play-circle\\\"></i>\\n <div class=\\\"header-info\\\">\\n <h2>{{ '@workflow-management:test-pages.workflow-studio.actions.execute-workflow.title' | translate |\\n async }}</h2>\\n <p>{{ '@workflow-management:test-pages.workflow-studio.actions.execute-workflow.description' | translate\\n | async }}</p>\\n </div>\\n </div>\\n <button class=\\\"close-btn\\\" (click)=\\\"closeExecutionDialog()\\\" [disabled]=\\\"isExecuting()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <!-- Dialog Body -->\\n <div class=\\\"execution-dialog-body\\\">\\n <!-- Workflow Info Panel (Before Execution) -->\\n @if (!workflowInstanceState()) {\\n <div class=\\\"workflow-info-panel\\\">\\n <div class=\\\"start-section\\\">\\n <div class=\\\"start-illustration\\\">\\n <i class=\\\"fa-light fa-rocket\\\"></i>\\n </div>\\n <h3>{{ '@workflow-management:test-pages.workflow-studio.messages.info.ready-to-execute' | translate |\\n async }}</h3>\\n <p>{{ '@workflow-management:test-pages.workflow-studio.messages.info.click-to-start' | translate | async\\n }}</p>\\n <ax-button\\n [text]=\\\"'@workflow-management:test-pages.workflow-studio.actions.start-execution.title' | translate | async\\\"\\n color=\\\"success\\\" size=\\\"lg\\\" (onClick)=\\\"startWorkflowExecution()\\\">\\n </ax-button>\\n </div>\\n </div>\\n }\\n\\n\\n <!-- Custom UI for Registration -->\\n @if (false) {\\n <div class=\\\"registration-ui\\\">\\n <div class=\\\"registration-card\\\">\\n <div class=\\\"registration-icon\\\">\\n <i class=\\\"fa-light fa-user-circle\\\"></i>\\n </div>\\n <h3>\\u0641\\u0631\\u0622\\u06CC\\u0646\\u062F \\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645</h3>\\n <p class=\\\"registration-desc\\\">\\n \\u0627\\u06CC\\u0646 \\u0641\\u0644\\u0648 \\u0634\\u0627\\u0645\\u0644 \\u0686\\u0646\\u062F \\u0645\\u0631\\u062D\\u0644\\u0647 \\u0627\\u0633\\u062A \\u06A9\\u0647 \\u062F\\u0627\\u062F\\u0647\\u200C\\u0647\\u0627\\u06CC \\u06A9\\u0627\\u0631\\u0628\\u0631 \\u0631\\u0627 \\u062C\\u0645\\u0639\\u200C\\u0622\\u0648\\u0631\\u06CC \\u06A9\\u0631\\u062F\\u0647 \\u0648 \\u062F\\u0631 \\u0646\\u0647\\u0627\\u06CC\\u062A \\u062D\\u0633\\u0627\\u0628 \\u06A9\\u0627\\u0631\\u0628\\u0631\\u06CC \\u0627\\u06CC\\u062C\\u0627\\u062F \\u0645\\u06CC\\u200C\\u06A9\\u0646\\u062F.\\n </p>\\n\\n @if (workflowInstanceState()?.status === 'running') {\\n <div class=\\\"registration-progress\\\">\\n <div class=\\\"progress-spinner\\\">\\n <i class=\\\"fa-light fa-spinner-third fa-spin\\\"></i>\\n </div>\\n <p>\\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627\\u06CC \\u0645\\u0631\\u0627\\u062D\\u0644 \\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645...</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'finished') {\\n <div class=\\\"registration-success\\\">\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n <h4>\\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645 \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u0627\\u0646\\u062C\\u0627\\u0645 \\u0634\\u062F!</h4>\\n <p>\\u062D\\u0633\\u0627\\u0628 \\u06A9\\u0627\\u0631\\u0628\\u0631\\u06CC \\u0634\\u0645\\u0627 \\u0627\\u06CC\\u062C\\u0627\\u062F \\u0634\\u062F \\u0648 \\u0628\\u0647 \\u0632\\u0648\\u062F\\u06CC \\u0628\\u0647 \\u062F\\u0627\\u0634\\u0628\\u0648\\u0631\\u062F \\u0645\\u0646\\u062A\\u0642\\u0644 \\u062E\\u0648\\u0627\\u0647\\u06CC\\u062F \\u0634\\u062F.</p>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Default Execution View -->\\n @if (workflowInstanceState()) {\\n <div class=\\\"default-execution-view\\\">\\n <div class=\\\"execution-status\\\">\\n @if (workflowInstanceState()?.status === 'running') {\\n <div class=\\\"status-running\\\">\\n <i class=\\\"fa-light fa-spinner-third fa-spin\\\"></i>\\n <h3>\\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627...</h3>\\n <p>Workflow \\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627 \\u0627\\u0633\\u062A. \\u0644\\u0637\\u0641\\u0627\\u064B \\u0635\\u0628\\u0631 \\u06A9\\u0646\\u06CC\\u062F.</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'finished') {\\n <div class=\\\"status-finished\\\">\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n <h3>\\u0627\\u062C\\u0631\\u0627 \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u062A\\u06A9\\u0645\\u06CC\\u0644 \\u0634\\u062F</h3>\\n <p>Workflow \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u0627\\u062C\\u0631\\u0627 \\u0634\\u062F \\u0648 \\u062A\\u0645\\u0627\\u0645 Activities \\u0627\\u0646\\u062C\\u0627\\u0645 \\u0634\\u062F\\u0646\\u062F.</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'error') {\\n <div class=\\\"status-error\\\">\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n <h3>\\u062E\\u0637\\u0627 \\u062F\\u0631 \\u0627\\u062C\\u0631\\u0627</h3>\\n <p>{{ workflowInstanceState()?.error }}</p>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Execution Logs Panel -->\\n @if (workflowInstanceState() && executionLogs().length > 0) {\\n <div class=\\\"execution-logs-panel\\\">\\n <h3><i class=\\\"fa-light fa-terminal\\\"></i> \\u0644\\u0627\\u06AF\\u200C\\u0647\\u0627\\u06CC \\u0627\\u062C\\u0631\\u0627</h3>\\n <div class=\\\"logs-container-compact\\\">\\n @for (log of executionLogs(); track $index) {\\n <div class=\\\"log-item-compact\\\" [class]=\\\"'log-' + log.level\\\">\\n <span class=\\\"log-time\\\">{{ log.timestamp | date: 'HH:mm:ss' }}</span>\\n <span class=\\\"log-icon\\\">\\n @switch (log.level) {\\n @case ('info') {\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n }\\n @case ('success') {\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n }\\n @case ('warning') {\\n <i class=\\\"fa-light fa-exclamation-triangle\\\"></i>\\n }\\n @case ('error') {\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n }\\n }\\n </span>\\n <span class=\\\"log-message\\\">{{ log.message }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n\\n <!-- Dialog Footer -->\\n <div class=\\\"execution-dialog-footer\\\">\\n <div class=\\\"footer-info\\\">\\n @if (workflowInstanceState()?.startTime) {\\n <span class=\\\"time-info\\\">\\n <i class=\\\"fa-light fa-clock\\\"></i>\\n \\u0634\\u0631\\u0648\\u0639: {{ workflowInstanceState()!.startTime | date: 'HH:mm:ss' }}\\n </span>\\n }\\n @if (workflowInstanceState()?.endTime) {\\n <span class=\\\"time-info\\\">\\n <i class=\\\"fa-light fa-flag-checkered\\\"></i>\\n \\u067E\\u0627\\u06CC\\u0627\\u0646: {{ workflowInstanceState()!.endTime | date: 'HH:mm:ss' }}\\n </span>\\n }\\n </div>\\n <div class=\\\"footer-actions\\\">\\n <ax-button\\n [text]=\\\"(workflowInstanceState() ? '@general:actions.close.title' : '@general:actions.cancel.title') | translate | async\\\"\\n color=\\\"secondary\\\" size=\\\"md\\\" [disabled]=\\\"isExecuting()\\\" (onClick)=\\\"closeExecutionDialog()\\\">\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </axp-page-content>\\n</axp-page-layout>\", styles: [\".sidebar-header .toggle-btn{padding:.5rem;margin-left:auto;background:transparent;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s}.sidebar-header .toggle-btn:hover{background:#f8fafc;border-color:#8b5cf6;color:#8b5cf6}.sidebar-header .toggle-btn i{font-size:.875rem}.sidebar-toggle-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:100;padding:1rem .5rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#8b5cf6;cursor:pointer;box-shadow:0 4px 12px #0000001a;transition:all .3s}.sidebar-toggle-btn:hover{background:#8b5cf6;color:#fff;box-shadow:0 8px 24px #8b5cf64d;transform:translateY(-50%) scale(1.1)}.sidebar-toggle-btn.left{left:0;border-left:none;border-radius:0 8px 8px 0}.sidebar-toggle-btn.right{right:0;border-right:none;border-radius:8px 0 0 8px}.sidebar-toggle-btn i{font-size:1.25rem;display:block}.properties-header .header-actions{display:flex;gap:.5rem;margin-left:auto}.properties-header .header-btn{padding:.375rem .5rem;background:transparent;border:1px solid #e2e8f0;border-radius:4px;color:#64748b;cursor:pointer;transition:all .2s}.properties-header .header-btn:hover{background:#f8fafc;border-color:#8b5cf6;color:#8b5cf6}.properties-header .header-btn i{font-size:.75rem}.connections-list{margin-top:.75rem}.connection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:.5rem;font-size:.875rem}.connection-item i{color:#8b5cf6}.connection-item span{flex:1;color:#1e293b}.connection-item .remove-btn{padding:.25rem .375rem;background:transparent;border:1px solid #e2e8f0;border-radius:4px;color:#ef4444;cursor:pointer;transition:all .2s}.connection-item .remove-btn:hover{background:#fef2f2;border-color:#ef4444}.connection-item .remove-btn i{font-size:.75rem;color:inherit}.property-editor{margin-top:.75rem}.property-editor .property-row label{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.property-editor .property-row label .property-type-badge{padding:.125rem .375rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:.625rem;font-weight:400;color:#64748b;text-transform:lowercase;font-family:JetBrains Mono,monospace}.property-editor .property-row select{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;background:#fff;cursor:pointer;transition:all .2s}.property-editor .property-row select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.property-editor .property-row textarea{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.75rem;font-family:JetBrains Mono,monospace;color:#1e293b;resize:vertical;transition:all .2s}.property-editor .property-row textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.workflow-studio{display:flex;flex-direction:column;height:100vh;background:#f8fafc;overflow:hidden}.workflow-popup .popup-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.workflow-popup .popup-header h3{margin:0 0 .5rem;color:#1e293b;font-size:1.5rem;font-weight:700}.workflow-popup .popup-header p{margin:0;color:#64748b;font-size:.95rem}.workflow-popup .popup-body{max-height:60vh;overflow-y:auto;padding:0 .5rem}.workflow-popup .popup-body h4{margin:1.5rem 0 .75rem;color:#374151;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.workflow-popup .popup-body ul{margin:0;padding-left:1.5rem}.workflow-popup .popup-body ul li{margin-bottom:.5rem;color:#4b5563}.workflow-popup .popup-body ul li strong{color:#1f2937}.workflow-popup .workflow-info{background:#f8fafc;padding:1rem;border-radius:8px;border:1px solid #e2e8f0}.workflow-popup .workflow-variables{background:#fef3c7;padding:1rem;border-radius:8px;border:1px solid #f59e0b}.workflow-popup .workflow-flow{background:#ecfdf5;padding:1rem;border-radius:8px;border:1px solid #10b981}.workflow-popup .workflow-flow .flow-steps{display:flex;flex-direction:column;gap:.75rem}.workflow-popup .workflow-flow .flow-steps .flow-step{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#fff;border-radius:6px;border:1px solid #d1d5db}.workflow-popup .workflow-flow .flow-steps .flow-step .step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#3b82f6;color:#fff;border-radius:50%;font-size:.8rem;font-weight:600}.workflow-popup .workflow-flow .flow-steps .flow-step .step-text{color:#374151;font-weight:500}.workflow-popup .workflow-json{background:#1f2937;padding:1rem;border-radius:8px;border:1px solid #374151}.workflow-popup .workflow-json .json-preview{background:transparent;color:#e5e7eb;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.4;margin:0;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.workflow-popup .popup-footer{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.workflow-popup .popup-footer .btn{padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background-color .2s}.workflow-popup .popup-footer .btn:hover{background:#2563eb}.workflow-popup .popup-footer .btn i{font-size:.9rem}.view-workflow-link{color:#3b82f6;text-decoration:none;font-size:.85rem;margin-left:.5rem;transition:color .2s}.view-workflow-link:hover{color:#1d4ed8;text-decoration:underline}.studio-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.studio-header .header-title{display:flex;align-items:center;gap:.75rem}.studio-header .header-title i{font-size:1.75rem;color:#8b5cf6}.studio-header .header-title h1{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.studio-header .header-title .badge{padding:.25rem .75rem;background:#8b5cf6;color:#fff;border-radius:12px;font-size:.75rem;font-weight:600}.studio-header .header-actions{display:flex;gap:.75rem;align-items:center}.samples-dropdown{position:relative}.samples-dropdown .samples-menu{position:absolute;top:calc(100% + .5rem);left:0;min-width:320px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #0000001a;z-index:1000;max-height:400px;overflow-y:auto}.samples-dropdown .samples-menu .sample-item{padding:.875rem 1rem;display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:all .2s}.samples-dropdown .samples-menu .sample-item:last-child{border-bottom:none}.samples-dropdown .samples-menu .sample-item:hover{background:#f8fafc;transform:translate(4px)}.samples-dropdown .samples-menu .sample-item i{font-size:1.25rem;margin-top:.125rem;color:#8b5cf6}.samples-dropdown .samples-menu .sample-item .sample-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.samples-dropdown .samples-menu .sample-item .sample-info strong{color:#1e293b;font-size:.875rem;font-weight:600}.samples-dropdown .samples-menu .sample-item .sample-info span{color:#64748b;font-size:.75rem;line-height:1.4}.studio-body{display:grid;grid-template-columns:320px 1fr 420px;gap:0;flex:1;overflow:hidden;transition:grid-template-columns .3s ease}.studio-body.sidebar-hidden{grid-template-columns:0 1fr 420px}.studio-body.properties-hidden{grid-template-columns:320px 1fr 0}.studio-body.sidebar-hidden.properties-hidden{grid-template-columns:0 1fr 0}.studio-sidebar{background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.studio-sidebar .sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.5rem}.studio-sidebar .sidebar-header i{font-size:1.25rem;color:#8b5cf6}.studio-sidebar .sidebar-header h3{flex:1;margin:0;font-size:1.125rem;font-weight:600;color:#1e293b}.activities-tree{flex:1;overflow-y:auto;padding:.5rem}.category-section{margin-bottom:.5rem}.category-section .category-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:8px;cursor:pointer;transition:all .2s;background:#f8fafc}.category-section .category-header:hover{background:#f1f5f9}.category-section .category-header.active{background:#ede9fe}.category-section .category-header.active>i:first-child{color:#8b5cf6}.category-section .category-header>i:first-child{font-size:.875rem;color:#94a3b8;transition:transform .2s,color .2s}.category-section .category-header>i:nth-child(2){font-size:1.125rem}.category-section .category-header span{flex:1;font-weight:600;font-size:.875rem;color:#334155}.category-section .category-header .count{flex:none;padding:.125rem .5rem;background:#fff;border-radius:10px;font-size:.75rem;font-weight:600;color:#64748b;border:1px solid #e2e8f0}.activities-list{padding:.5rem 0 .5rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;animation:slideDown .3s ease}.activities-list .activities-header{padding:.5rem .75rem;margin-bottom:.5rem}.activities-list .activities-header h4{margin:0;font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.activity-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.875rem;margin-bottom:.75rem;transition:all .2s}.activity-card:hover{border-color:#8b5cf6;box-shadow:0 4px 12px #8b5cf61a;transform:translateY(-1px)}.activity-card .activity-info{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.activity-card .activity-info>i{font-size:1.5rem;color:#8b5cf6;margin-top:.125rem}.activity-card .activity-info .activity-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.activity-card .activity-info .activity-details strong{font-size:.875rem;color:#1e293b}.activity-card .activity-info .activity-details small{font-size:.75rem;color:#64748b;line-height:1.4}.activity-card .activity-info .activity-details code{font-size:.75rem;color:#8b5cf6;background:#f3f0ff;padding:.125rem .375rem;border-radius:4px;width:fit-content}.activity-card .copy-btn{float:right;padding:.375rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s;color:#64748b}.activity-card .copy-btn:hover{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.activity-card .copy-btn i{font-size:.875rem}.activity-card .activity-properties{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9}.activity-card .activity-properties .properties-title{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.5rem}.activity-card .activity-properties .property-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.75rem}.activity-card .activity-properties .property-item code{color:#1e293b;background:#f8fafc;padding:.125rem .375rem;border-radius:3px}.activity-card .activity-properties .property-item .property-type{color:#64748b;font-style:italic}.activity-card .activity-properties .property-item .required{color:#ef4444;font-weight:700}.studio-editor{display:flex;flex-direction:column;background:#1e293b;overflow:hidden}.studio-editor .editor-header{padding:1rem 1.25rem;background:#0f172a;display:flex;align-items:center;gap:.5rem}.studio-editor .editor-header i{font-size:1.125rem;color:#8b5cf6}.studio-editor .editor-header h3{margin:0;font-size:1rem;font-weight:600;color:#e2e8f0}.studio-editor axp-page-toolbar .editor-tabs{display:flex;gap:.5rem;background:transparent}.studio-editor axp-page-toolbar .editor-tabs .tab-btn{padding:.5rem 1rem;background:transparent;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.studio-editor axp-page-toolbar .editor-tabs .tab-btn i{font-size:.875rem}.studio-editor axp-page-toolbar .editor-tabs .tab-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569}.studio-editor axp-page-toolbar .editor-tabs .tab-btn.active{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.studio-editor .editor-content{flex:1;display:flex;overflow:hidden}.studio-editor .json-tab{flex:1;display:flex;flex-direction:column}.studio-editor .json-editor{flex:1;padding:1.5rem;background:#1e293b;color:#e2e8f0;border:none;outline:none;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;resize:none;overflow:auto}.studio-editor .json-editor::placeholder{color:#475569}.studio-editor .json-editor::-webkit-scrollbar{width:10px;height:10px}.studio-editor .json-editor::-webkit-scrollbar-track{background:#0f172a}.studio-editor .json-editor::-webkit-scrollbar-thumb{background:#475569;border-radius:5px}.studio-editor .json-editor::-webkit-scrollbar-thumb:hover{background:#64748b}.studio-editor .visual-tab{flex:1;display:flex;background:#f8fafc;position:relative}.studio-editor .visual-canvas{flex:1;display:flex;flex-direction:column;overflow:hidden}.studio-editor .visual-canvas .canvas-toolbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e2e8f0}.studio-editor .visual-canvas .canvas-toolbar .tool-btn{padding:.5rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s}.studio-editor .visual-canvas .canvas-toolbar .tool-btn:hover{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.studio-editor .visual-canvas .canvas-toolbar .tool-btn i{font-size:.875rem}.studio-editor .visual-canvas .canvas-toolbar .tool-info{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#64748b}.studio-editor .visual-canvas .canvas-toolbar .tool-info i{font-size:1rem;color:#8b5cf6}.studio-editor .visual-canvas .canvas-area{flex:1;position:relative;background:linear-gradient(90deg,#e5e7eb 1px,transparent 1px),linear-gradient(#e5e7eb 1px,transparent 1px);background-size:20px 20px;overflow:auto;min-height:600px}.studio-editor .visual-canvas .connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.studio-editor .visual-canvas .connection-line{stroke:#64748b;stroke-width:2;fill:none;opacity:.6;cursor:pointer;pointer-events:stroke;transition:all .2s}.studio-editor .visual-canvas .connection-line:hover{stroke:#ef4444;stroke-width:3;opacity:1}.studio-editor .visual-canvas .visual-node{position:absolute;width:150px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:move;transition:all .2s;z-index:2}.studio-editor .visual-canvas .visual-node:hover{border-color:#8b5cf6;box-shadow:0 4px 16px #8b5cf633;transform:translateY(-2px)}.studio-editor .visual-canvas .visual-node.selected{border-color:#8b5cf6;border-width:3px;box-shadow:0 0 0 3px #8b5cf633}.studio-editor .visual-canvas .visual-node .node-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border-radius:6px 6px 0 0;font-size:.875rem;font-weight:600}.studio-editor .visual-canvas .visual-node .node-header i{font-size:1rem}.studio-editor .visual-canvas .visual-node .node-header span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-editor .visual-canvas .visual-node .node-header .node-delete{padding:.25rem;background:#fff3;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:all .2s}.studio-editor .visual-canvas .visual-node .node-header .node-delete:hover{background:#ef4444cc}.studio-editor .visual-canvas .visual-node .node-header .node-delete i{font-size:.75rem}.studio-editor .visual-canvas .visual-node .node-body{padding:.75rem}.studio-editor .visual-canvas .visual-node .node-body small{display:block;font-size:.75rem;color:#64748b;text-align:center}.studio-editor .visual-canvas .visual-node .node-connectors{position:relative}.studio-editor .visual-canvas .visual-node .node-connectors .connector{position:absolute;width:12px;height:12px;background:#8b5cf6;border:2px solid white;border-radius:50%;cursor:pointer;transition:all .2s;z-index:10}.studio-editor .visual-canvas .visual-node .node-connectors .connector:hover{transform:scale(1.3);box-shadow:0 0 0 3px #8b5cf64d}.studio-editor .visual-canvas .visual-node .node-connectors .connector-in{top:-50px;left:50%;transform:translate(-50%);background:#3b82f6}.studio-editor .visual-canvas .visual-node .node-connectors .connector-out{bottom:-6px;left:50%;transform:translate(-50%);background:#8b5cf6}.studio-editor .visual-canvas .visual-node .node-connectors .connector-out.active{background:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcomes-container{position:absolute;bottom:-60px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;background:#fff;padding:8px;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:120px;z-index:100}.studio-editor .visual-canvas .visual-node .node-connectors .outcomes-container:before{content:\\\"\\\";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid white;filter:drop-shadow(0 -2px 2px rgba(0,0,0,.05))}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s;position:relative}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector:hover{background:#f1f5f9;border-color:#8b5cf6;transform:translate(2px)}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector.active{background:#fef2f2;border-color:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector.active .outcome-dot{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector .outcome-label{font-size:.75rem;font-weight:600;color:#475569;-webkit-user-select:none;user-select:none;flex:1}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector .outcome-dot{width:10px;height:10px;background:#8b5cf6;border:2px solid white;border-radius:50%;transition:all .2s;flex-shrink:0}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=\\\"200\\\"] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Done] .outcome-dot{background:#10b981}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=\\\"404\\\"] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Failed] .outcome-dot{background:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Timeout] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Cancelled] .outcome-dot{background:#f59e0b}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Then] .outcome-dot{background:#3b82f6}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Else] .outcome-dot{background:#64748b}.studio-editor .visual-canvas .canvas-empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#94a3b8;pointer-events:none}.studio-editor .visual-canvas .canvas-empty-state i{font-size:4rem;margin-bottom:1rem;opacity:.5}.studio-editor .visual-canvas .canvas-empty-state p{margin:0 0 .5rem;font-size:1rem;font-weight:500}.studio-editor .visual-canvas .canvas-empty-state small{font-size:.875rem;opacity:.8}.studio-editor .properties-panel{width:280px;background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column}.studio-editor .properties-panel .properties-header{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid #e2e8f0}.studio-editor .properties-panel .properties-header i{font-size:1.125rem;color:#8b5cf6}.studio-editor .properties-panel .properties-header h4{flex:1;margin:0;font-size:.875rem;font-weight:600;color:#1e293b}.studio-editor .properties-panel .properties-header button{padding:.25rem .5rem;background:transparent;border:none;color:#64748b;cursor:pointer;transition:color .2s}.studio-editor .properties-panel .properties-header button:hover{color:#ef4444}.studio-editor .properties-panel .properties-body{flex:1;padding:1rem;overflow-y:auto}.studio-editor .properties-panel .properties-body .property-row{margin-bottom:1rem}.studio-editor .properties-panel .properties-body .property-row label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .property-row input{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;transition:all .2s}.studio-editor .properties-panel .properties-body .property-row input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.studio-editor .properties-panel .properties-body .property-row input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.studio-editor .properties-panel .properties-body .properties-divider{height:1px;background:#e2e8f0;margin:1.5rem 0}.studio-editor .properties-panel .properties-body h5{margin:0 0 .5rem;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .properties-hint{display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.75rem}.studio-editor .properties-panel .properties-body .properties-json{margin:.75rem 0 0;padding:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;color:#1e293b;overflow-x:auto}.studio-editor .properties-panel .properties-body .no-properties{margin:.75rem 0 0;padding:1rem;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;text-align:center;font-size:.75rem;color:#94a3b8}.studio-editor .properties-panel .properties-body .connections-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:.75rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item.outcome-connection{border-left-width:3px}.studio-editor .properties-panel .properties-body .connections-list .connection-item i{color:#64748b;font-size:.875rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item span{flex:1;color:#1e293b;font-weight:500}.studio-editor .properties-panel .properties-body .connections-list .connection-item .outcome-badge{padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn{padding:.25rem;background:transparent;border:none;color:#ef4444;cursor:pointer;border-radius:4px;transition:all .2s}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn:hover{background:#fee2e2}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn i{font-size:.75rem;color:inherit}.studio-editor .properties-panel .properties-body .outcomes-info{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:#fff;border:2px solid;border-radius:6px;font-size:.75rem;font-weight:600;color:#1e293b;transition:all .2s}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag .outcome-dot{width:8px;height:8px;border-radius:50%}.studio-result{display:flex;flex-direction:column;background:#fff;border-left:1px solid #e2e8f0;overflow:hidden}.studio-result .result-header{padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.5rem}.studio-result .result-header i{font-size:1.125rem;color:#10b981}.studio-result .result-header h3{flex:1;margin:0;font-size:1rem;font-weight:600;color:#1e293b}.studio-result .result-header .clear-btn{padding:.375rem .75rem;background:#fee2e2;color:#dc2626;border:none;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s}.studio-result .result-header .clear-btn:hover{background:#fecaca}.studio-result .result-header .clear-btn i{font-size:.75rem;color:inherit}.studio-result .result-body{flex:1;overflow-y:auto;padding:1rem}.logs-container{display:flex;flex-direction:column;gap:.5rem}.log-item{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#f8fafc;border-left:3px solid #cbd5e1;border-radius:6px;font-size:.875rem}.log-item.log-info{border-left-color:#3b82f6;background:#eff6ff}.log-item.log-info .log-icon{color:#3b82f6}.log-item.log-success{border-left-color:#10b981;background:#f0fdf4}.log-item.log-success .log-icon{color:#10b981}.log-item.log-warning{border-left-color:#f59e0b;background:#fffbeb}.log-item.log-warning .log-icon{color:#f59e0b}.log-item.log-error{border-left-color:#ef4444;background:#fef2f2}.log-item.log-error .log-icon{color:#ef4444}.log-item .log-time{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#64748b;min-width:80px}.log-item .log-icon{font-size:1rem}.log-item .log-message{flex:1;color:#1e293b}.log-item .log-data-toggle{padding:.25rem .5rem;background:transparent;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;transition:all .2s}.log-item .log-data-toggle:hover{background:#fff}.log-item .log-data-toggle i{font-size:.75rem;color:#64748b}.log-data{margin:.5rem 0 0;padding:1rem;background:#0f172a;color:#e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}.settings-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem;animation:fadeIn .2s ease}.settings-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0}.settings-modal-header .header-title{display:flex;align-items:center;gap:.75rem}.settings-modal-header .header-title i{font-size:1.5rem;color:#8b5cf6}.settings-modal-header .header-title h2{margin:0;font-size:1.25rem;font-weight:700;color:#1e293b}.settings-modal-header .close-btn{padding:.5rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:6px;transition:all .2s}.settings-modal-header .close-btn:hover{background:#f1f5f9;color:#ef4444}.settings-modal-header .close-btn i{font-size:1.25rem}.settings-modal-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.settings-tabs{display:flex;gap:.5rem;padding:1rem 2rem 0;border-bottom:1px solid #e2e8f0}.settings-tabs .tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;position:relative}.settings-tabs .tab-btn:hover{color:#8b5cf6;background:#f8fafc}.settings-tabs .tab-btn.active{color:#8b5cf6;border-bottom-color:#8b5cf6}.settings-tabs .tab-btn i{font-size:1rem}.settings-tabs .tab-btn .badge{padding:.125rem .5rem;background:#8b5cf6;color:#fff;border-radius:10px;font-size:.7rem;font-weight:600}.settings-content{flex:1;overflow-y:auto;padding:2rem}.settings-section h3{margin:0 0 1.5rem;font-size:1rem;font-weight:600;color:#1e293b}.settings-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.settings-section .section-header h3{margin:0}.settings-section .section-header .add-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.settings-section .section-header .add-btn:hover{background:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.settings-section .section-header .add-btn i{font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#475569;margin-bottom:.5rem}.form-group small{display:block;font-size:.75rem;color:#94a3b8;margin-top:.375rem}.form-group.checkbox-group{margin-bottom:0}.form-group.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-bottom:0}.form-group.checkbox-group label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-group.checkbox-group label span{font-size:.875rem;font-weight:500}.form-group.flex-1{flex:1}.form-row{display:flex;gap:1rem;align-items:flex-start}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:#cbd5e1}.form-textarea{resize:vertical;font-family:inherit}.items-list{display:flex;flex-direction:column;gap:1rem}.item-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:all .2s}.item-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000d}.item-card .item-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.item-card .item-header .item-number{font-size:.75rem;font-weight:700;color:#8b5cf6;padding:.25rem .5rem;background:#fff;border-radius:4px}.item-card .item-header .remove-btn{padding:.375rem .625rem;background:transparent;border:none;color:#ef4444;cursor:pointer;border-radius:4px;transition:all .2s}.item-card .item-header .remove-btn:hover{background:#fee2e2}.item-card .item-header .remove-btn i{font-size:.875rem}.item-card .item-body{padding:1rem}.advanced-group{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.advanced-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.advanced-group h4{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.outcomes-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.outcomes-preview .outcome-chip{display:inline-flex;align-items:center;padding:.375rem .75rem;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;font-size:.75rem;font-weight:600;color:#475569}.export-info{margin-top:1rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.export-info .info-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid #e2e8f0}.export-info .info-row:last-child{border-bottom:none;padding-bottom:0}.export-info .info-row .label{font-size:.75rem;font-weight:600;color:#64748b;min-width:120px}.export-info .info-row code{flex:1;padding:.25rem .5rem;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem;color:#1e293b;font-family:JetBrains Mono,monospace}.settings-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #e2e8f0;background:#f8fafc}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#94a3b8}.empty-state i{font-size:3rem;margin-bottom:1rem}.empty-state p{margin:0;font-size:.875rem}.final-result{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e2e8f0}.final-result .result-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f8fafc;border-radius:8px;margin-bottom:1rem;cursor:pointer;transition:all .2s}.final-result .result-header:hover{background:#f1f5f9;transform:translate(-2px)}.final-result .result-header h4{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase}.final-result .result-header h4 i{font-size:.875rem;transition:transform .2s}.final-result .result-header .toggle-hint{font-size:.75rem;color:#94a3b8}.final-result .result-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.final-result .result-card .result-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.final-result .result-card .result-row:not(:last-child){border-bottom:1px solid #e2e8f0}.final-result .result-card .result-row strong{font-size:.875rem;color:#475569;min-width:100px}.final-result .result-card .result-row .badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.final-result .result-card .result-row .badge.badge-running{background:#dbeafe;color:#1e40af}.final-result .result-card .result-row .badge.badge-finished{background:#d1fae5;color:#065f46}.final-result .result-card .result-row .badge.badge-cancelled{background:#fed7aa;color:#92400e}.final-result .result-card .result-row .badge.badge-faulted{background:#fee2e2;color:#991b1b}.final-result .result-card .result-row pre{margin:.5rem 0 0;padding:.75rem;background:#0f172a;color:#e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto;width:100%}.activities-list::-webkit-scrollbar,.result-body::-webkit-scrollbar{width:8px}.activities-list::-webkit-scrollbar-track,.result-body::-webkit-scrollbar-track{background:#f1f5f9}.activities-list::-webkit-scrollbar-thumb,.result-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.activities-list::-webkit-scrollbar-thumb:hover,.result-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.activity-card{cursor:grab}.activity-card:active{cursor:grabbing}.activity-card[draggable=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visual-node[draggable=true]{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visual-node:active{cursor:grabbing}.canvas-area[data-drag-over=true]{background-color:#8b5cf60d}.connector:hover{transform:scale(1.3);box-shadow:0 0 0 3px #8b5cf64d}.connector-out.active{animation:pulse 1s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #ef44444d}50%{box-shadow:0 0 0 6px #ef44441a}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.execution-dialog-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.execution-dialog{width:90vw;max-width:1200px;height:90vh;background:#fff;border-radius:16px;box-shadow:0 25px 50px #0000004d;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s ease}.execution-dialog-header{padding:1.5rem 2rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.execution-dialog-header .header-content{display:flex;align-items:center;gap:1rem;flex:1}.execution-dialog-header .header-content>i{font-size:2.5rem;opacity:.9}.execution-dialog-header .header-content .header-info h2{margin:0;font-size:1.75rem;font-weight:700}.execution-dialog-header .header-content .header-info p{margin:.25rem 0 0;opacity:.9;font-size:.95rem}.execution-dialog-header .close-btn{background:#fff3;border:none;width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#fff;font-size:1.25rem}.execution-dialog-header .close-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.05)}.execution-dialog-header .close-btn:disabled{opacity:.5;cursor:not-allowed}.execution-dialog-body{flex:1;overflow-y:auto;padding:2rem;background:#f8fafc}.execution-dialog-footer{padding:1rem 2rem;background:#fff;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.execution-dialog-footer .footer-info{display:flex;gap:1.5rem}.execution-dialog-footer .footer-info .time-info{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.875rem}.execution-dialog-footer .footer-info .time-info i{color:#8b5cf6}.execution-dialog-footer .footer-actions{display:flex;gap:.75rem}.workflow-info-panel{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000000d}.workflow-info-panel .info-section{margin-bottom:2rem}.workflow-info-panel .info-section h3{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:#1e293b;font-size:1.25rem}.workflow-info-panel .info-section h3 i{color:#8b5cf6}.workflow-info-panel .info-section .description{color:#475569;line-height:1.7;margin:0}.workflow-info-panel .info-section .features-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.workflow-info-panel .info-section .features-list li{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8fafc;border-radius:8px;color:#334155}.workflow-info-panel .info-section .features-list li i{color:#10b981;font-size:1.125rem}.workflow-info-panel .start-section{text-align:center;padding:2rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:12px;border:2px dashed #10b981}.workflow-info-panel .start-section .start-illustration{margin-bottom:1rem}.workflow-info-panel .start-section .start-illustration i{font-size:4rem;color:#10b981;animation:float 3s ease-in-out infinite}.workflow-info-panel .start-section h3{margin:0 0 .5rem;color:#1e293b;font-size:1.5rem}.workflow-info-panel .start-section p{margin:0 0 1.5rem;color:#64748b}.state-machine-ui .issue-tracker{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.state-machine-ui .issue-tracker .issue-header-main{padding:1.5rem 2rem 1rem;border-bottom:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#64748b;margin-bottom:.75rem}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .project-name{color:#3b82f6;font-weight:600}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .separator{color:#94a3b8}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .issue-key{color:#64748b}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title{display:flex;align-items:center;gap:.75rem}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .type-badge{padding:.375rem .75rem;border-radius:4px;font-size:.8125rem;font-weight:600;display:flex;align-items:center;gap:.375rem;background:#eff6ff;color:#3b82f6}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .type-badge i{font-size:1rem}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .issue-main-title{margin:0;font-size:1.5rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-action-bar{padding:.75rem 2rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left{display:flex;gap:.5rem}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn{padding:.5rem 1rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;color:#334155}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn:disabled{opacity:.5;cursor:not-allowed}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-primary:hover:not(:disabled){background:#2563eb}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-success{background:#10b981;color:#fff;border-color:#10b981}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-success:hover:not(:disabled){background:#059669}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-warning{background:#f59e0b;color:#fff;border-color:#f59e0b}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-warning:hover:not(:disabled){background:#d97706}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-right .more-actions-btn{padding:.5rem 1rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-weight:500;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:#334155;transition:all .2s}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-right .more-actions-btn:hover{background:#f1f5f9}.state-machine-ui .issue-tracker .issue-main-content{display:grid;grid-template-columns:320px 1fr;gap:2rem;padding:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section{margin-bottom:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row{display:flex;padding:.625rem 0;border-bottom:1px solid #f1f5f9}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row:last-child{border-bottom:none}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row label{min-width:100px;font-size:.8125rem;color:#64748b;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value i{font-size:1rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .status-badge{padding:.25rem .625rem;border-radius:4px;color:#fff;font-weight:600;font-size:.75rem;text-transform:uppercase}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .view-workflow-link{color:#3b82f6;font-size:.8125rem;text-decoration:none;margin-left:.5rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .view-workflow-link:hover{text-decoration:underline}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .user-avatar{width:24px;height:24px;border-radius:50%;background:#8b5cf6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz{background:#f8fafc;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz h3{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state{display:flex;flex-direction:column;align-items:center;gap:.375rem;opacity:.4;transition:opacity .2s}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.active,.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.completed{opacity:1}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state .state-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;box-shadow:0 2px 4px #0000001a}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state .state-name{font-size:.6875rem;color:#64748b;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.active .state-name{color:#1e293b;font-weight:600}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-arrow{color:#cbd5e1;font-size:.75rem;margin:0 .25rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section{margin-bottom:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section h3,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section .description-content,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .description-content{padding:1rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section .description-content p,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .description-content p{margin:0;color:#475569;line-height:1.7;font-size:.875rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline{display:flex;flex-direction:column;gap:1rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item{display:flex;gap:.75rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-avatar{width:32px;height:32px;border-radius:50%;background:#8b5cf6;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content{flex:1;padding-bottom:1rem;border-bottom:1px solid #f1f5f9}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header{font-size:.875rem;color:#334155;line-height:1.6;margin-bottom:.375rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header strong{color:#1e293b;font-weight:600}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header .activity-action{color:#64748b}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-meta{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#94a3b8}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-meta .activity-label{color:#8b5cf6;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item:last-child .activity-content{border-bottom:none;padding-bottom:0}.registration-ui{display:flex;justify-content:center;align-items:center;min-height:400px}.registration-ui .registration-card{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 4px 6px #0000000d;text-align:center;max-width:500px}.registration-ui .registration-card .registration-icon{margin-bottom:1.5rem}.registration-ui .registration-card .registration-icon i{font-size:5rem;color:#8b5cf6}.registration-ui .registration-card h3{margin:0 0 .75rem;color:#1e293b;font-size:1.75rem;font-weight:700}.registration-ui .registration-card .registration-desc{margin:0 0 2rem;color:#64748b;line-height:1.7}.registration-ui .registration-card .registration-progress{padding:2rem;background:#fef3c7;border-radius:8px}.registration-ui .registration-card .registration-progress .progress-spinner{margin-bottom:1rem}.registration-ui .registration-card .registration-progress .progress-spinner i{font-size:3rem;color:#f59e0b}.registration-ui .registration-card .registration-progress p{margin:0;color:#92400e;font-weight:500}.registration-ui .registration-card .registration-success{padding:2rem;background:#f0fdf4;border-radius:8px}.registration-ui .registration-card .registration-success i{font-size:4rem;color:#10b981;margin-bottom:1rem}.registration-ui .registration-card .registration-success h4{margin:0 0 .5rem;color:#064e3b;font-size:1.5rem;font-weight:700}.registration-ui .registration-card .registration-success p{margin:0;color:#065f46}.default-execution-view{display:flex;justify-content:center;align-items:center;min-height:400px}.default-execution-view .execution-status{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;min-width:400px}.default-execution-view .execution-status i{font-size:5rem;margin-bottom:1.5rem}.default-execution-view .execution-status h3{margin:0 0 .75rem;font-size:1.75rem;font-weight:700}.default-execution-view .execution-status p{margin:0;color:#64748b;line-height:1.7}.default-execution-view .execution-status .status-running i{color:#f59e0b}.default-execution-view .execution-status .status-finished i{color:#10b981}.default-execution-view .execution-status .status-error i{color:#ef4444}.execution-logs-panel{margin-top:2rem;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d}.execution-logs-panel h3{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:#1e293b;font-size:1.125rem}.execution-logs-panel h3 i{color:#8b5cf6}.execution-logs-panel .logs-container-compact{max-height:300px;overflow-y:auto;background:#f8fafc;border-radius:8px;padding:.75rem}.execution-logs-panel .logs-container-compact .log-item-compact{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:6px;margin-bottom:.5rem;font-size:.875rem}.execution-logs-panel .logs-container-compact .log-item-compact:last-child{margin-bottom:0}.execution-logs-panel .logs-container-compact .log-item-compact .log-time{font-family:Courier New,monospace;color:#64748b;font-size:.8125rem;min-width:70px}.execution-logs-panel .logs-container-compact .log-item-compact .log-icon{display:flex;align-items:center;justify-content:center;width:20px}.execution-logs-panel .logs-container-compact .log-item-compact .log-icon i{font-size:1rem}.execution-logs-panel .logs-container-compact .log-item-compact .log-message{flex:1;color:#334155}.execution-logs-panel .logs-container-compact .log-item-compact.log-info{background:#eff6ff}.execution-logs-panel .logs-container-compact .log-item-compact.log-info .log-icon i{color:#3b82f6}.execution-logs-panel .logs-container-compact .log-item-compact.log-success{background:#f0fdf4}.execution-logs-panel .logs-container-compact .log-item-compact.log-success .log-icon i{color:#10b981}.execution-logs-panel .logs-container-compact .log-item-compact.log-warning{background:#fffbeb}.execution-logs-panel .logs-container-compact .log-item-compact.log-warning .log-icon i{color:#f59e0b}.execution-logs-panel .logs-container-compact .log-item-compact.log-error{background:#fef2f2}.execution-logs-panel .logs-container-compact .log-item-compact.log-error .log-icon i{color:#ef4444}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i2.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.MinValidator, selector: \"input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]\", inputs: [\"min\"] }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { 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: AXTextBoxModule }, { kind: \"ngmodule\", type: AXSelectBoxModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXPPageLayoutComponent, selector: \"axp-page-layout\" }, { kind: \"component\", type: AXPThemeLayoutBlockComponent, selector: \" axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, \" }, { kind: \"component\", type: AXPThemeLayoutStartSideComponent, selector: \"axp-layout-page-start-side, axp-layout-start-side\" }, { kind: \"component\", type: AXMActivityCategoriesTreeComponent, selector: \"axp-activity-categories-tree\", outputs: [\"categoryClick\", \"activityClick\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i1.JsonPipe, name: \"json\" }, { kind: \"pipe\", type: i1.DatePipe, name: \"date\" }, { kind: \"pipe\", type: i4.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowStudioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-workflow-studio', standalone: true, imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXTextBoxModule,\n AXSelectBoxModule,\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPThemeLayoutStartSideComponent,\n AXMActivityCategoriesTreeComponent\n ], providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: WorkflowStudioComponent,\n },\n ], template: \"<axp-page-layout>\\n <axp-layout-start-side>\\n <axp-activity-categories-tree (categoryClick)=\\\"onCategoryClick($event)\\\"\\n (activityClick)=\\\"onActivityClick($event)\\\"></axp-activity-categories-tree>\\n </axp-layout-start-side>\\n\\n <axp-page-toolbar>\\n <axp-layout-prefix>\\n <!-- Editor Tabs -->\\n <div class=\\\"editor-tabs\\\">\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeTab() === 'json'\\\" (click)=\\\"switchTab('json')\\\">\\n <i class=\\\"fa-light fa-code\\\"></i>\\n {{ '@workflow-management:workflow-studio.terms.json-editor' | translate | async }}\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeTab() === 'visual'\\\" (click)=\\\"switchTab('visual')\\\">\\n <i class=\\\"fa-light fa-diagram-project\\\"></i>\\n {{ '@workflow-management:workflow-studio.terms.visual-designer' | translate | async }}\\n </button>\\n </div>\\n </axp-layout-prefix>\\n </axp-page-toolbar>\\n\\n <axp-page-content>\\n <div class=\\\"workflow-studio\\\">\\n <!-- Main Layout -->\\n <div class=\\\"studio-body\\\" [class.properties-hidden]=\\\"!showPropertiesPanel()\\\">\\n\\n <!-- Editor -->\\n <div class=\\\"studio-editor\\\">\\n <!-- Tab Content -->\\n <div class=\\\"editor-content\\\">\\n <!-- JSON Tab -->\\n @if (activeTab() === 'json') {\\n <div class=\\\"json-tab\\\">\\n <textarea class=\\\"json-editor\\\" [(ngModel)]=\\\"workflowJson\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.components.json-editor.placeholder' | translate | async\\\"\\n spellcheck=\\\"false\\\">\\n </textarea>\\n </div>\\n }\\n\\n <!-- Visual Tab -->\\n @if (activeTab() === 'visual') {\\n <div class=\\\"visual-tab\\\">\\n <!-- Canvas -->\\n <div class=\\\"visual-canvas\\\">\\n <div class=\\\"canvas-toolbar\\\">\\n <button class=\\\"tool-btn\\\" (click)=\\\"clearCanvas()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.canvas-toolbar.clear-canvas.title' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n <button class=\\\"tool-btn\\\" (click)=\\\"visualToJson()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.canvas-toolbar.convert-to-json.title' | translate | async\\\">\\n <i class=\\\"fa-light fa-code\\\"></i>\\n </button>\\n <span class=\\\"tool-info\\\">\\n <i class=\\\"fa-light fa-lightbulb\\\"></i>\\n <strong>{{ '@workflow-management:workflow-studio.components.canvas-toolbar.hint' | translate | async }}</strong>\\n </span>\\n </div>\\n\\n <div class=\\\"canvas-area\\\" (drop)=\\\"onCanvasDrop($event)\\\" (dragover)=\\\"onCanvasDragOver($event)\\\"\\n (dragleave)=\\\"onCanvasDragLeave($event)\\\">\\n <!-- SVG for Connections -->\\n <svg class=\\\"connections-layer\\\">\\n <!-- Outcome-based Connections -->\\n @for (node of visualNodes(); track node.id) {\\n @if (node.outcomeConnections && node.outcomeConnections.length > 0) {\\n @for (conn of node.outcomeConnections; track conn.targetNodeId + conn.outcome) {\\n @let targetNode = findNodeById(conn.targetNodeId);\\n @if (targetNode) {\\n <g class=\\\"outcome-connection-group\\\">\\n <line [attr.x1]=\\\"node.position.x + 75\\\" [attr.y1]=\\\"node.position.y + 80\\\"\\n [attr.x2]=\\\"targetNode.position.x + 75\\\" [attr.y2]=\\\"targetNode.position.y - 50\\\"\\n class=\\\"connection-line outcome-line\\\" [attr.stroke]=\\\"getOutcomeColor(conn.outcome)\\\"\\n stroke-width=\\\"2.5\\\"\\n [attr.marker-end]=\\\"'url(#arrowhead-' + getOutcomeColorName(conn.outcome) + ')'\\\"\\n style=\\\"cursor: pointer\\\" (dblclick)=\\\"disconnectNodes(node.id, conn.targetNodeId, conn.outcome)\\\"\\n [attr.title]=\\\"'Outcome: ' + conn.outcome + ' (Double-click to remove)'\\\">\\n <title>{{ conn.outcome }} \\u2192 {{ targetNode.name }}</title>\\n </line>\\n <text [attr.x]=\\\"(node.position.x + targetNode.position.x) / 2 + 75\\\"\\n [attr.y]=\\\"(node.position.y + targetNode.position.y) / 2 + 15\\\" class=\\\"connection-label\\\"\\n text-anchor=\\\"middle\\\" [attr.fill]=\\\"getOutcomeColor(conn.outcome)\\\" font-size=\\\"11\\\"\\n font-weight=\\\"600\\\" pointer-events=\\\"none\\\">\\n {{ conn.outcome }}\\n </text>\\n </g>\\n }\\n }\\n } @else {\\n <!-- Simple Connections (backward compatibility) -->\\n @for (targetId of node.connections; track targetId) {\\n @let targetNode = findNodeById(targetId);\\n @if (targetNode) {\\n <line [attr.x1]=\\\"node.position.x + 75\\\" [attr.y1]=\\\"node.position.y + 40\\\"\\n [attr.x2]=\\\"targetNode.position.x + 75\\\" [attr.y2]=\\\"targetNode.position.y - 50\\\"\\n class=\\\"connection-line\\\" stroke=\\\"#64748b\\\" stroke-width=\\\"2\\\" marker-end=\\\"url(#arrowhead-default)\\\"\\n style=\\\"cursor: pointer\\\" (dblclick)=\\\"disconnectNodes(node.id, targetId)\\\"\\n title=\\\"Double-click \\u0628\\u0631\\u0627\\u06CC \\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <title>Double-click \\u0628\\u0631\\u0627\\u06CC \\u062D\\u0630\\u0641</title>\\n </line>\\n }\\n }\\n }\\n }\\n\\n <defs>\\n <!-- Default Arrow -->\\n <marker id=\\\"arrowhead-default\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#64748b\\\" />\\n </marker>\\n <!-- Success Arrow (Green) -->\\n <marker id=\\\"arrowhead-success\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#10b981\\\" />\\n </marker>\\n <!-- Error Arrow (Red) -->\\n <marker id=\\\"arrowhead-error\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#ef4444\\\" />\\n </marker>\\n <!-- Warning Arrow (Orange) -->\\n <marker id=\\\"arrowhead-warning\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#f59e0b\\\" />\\n </marker>\\n <!-- Info Arrow (Blue) -->\\n <marker id=\\\"arrowhead-info\\\" markerWidth=\\\"10\\\" markerHeight=\\\"10\\\" refX=\\\"9\\\" refY=\\\"3\\\" orient=\\\"auto\\\">\\n <polygon points=\\\"0 0, 10 3, 0 6\\\" fill=\\\"#3b82f6\\\" />\\n </marker>\\n </defs>\\n </svg>\\n\\n <!-- Nodes -->\\n @for (node of visualNodes(); track node.id) {\\n <div class=\\\"visual-node\\\" [class.selected]=\\\"selectedNode()?.id === node.id\\\"\\n [style.left.px]=\\\"node.position.x\\\" [style.top.px]=\\\"node.position.y\\\" [attr.data-node-id]=\\\"node.id\\\"\\n draggable=\\\"true\\\" (dragstart)=\\\"onNodeDragStart($event, node)\\\" (drag)=\\\"onNodeDrag($event, node)\\\"\\n (dragend)=\\\"onNodeDragEnd($event, node)\\\" (click)=\\\"selectNodeById(node)\\\">\\n <div class=\\\"node-header\\\">\\n <i [class]=\\\"node.icon\\\"></i>\\n <span>{{ node.name }}</span>\\n <button class=\\\"node-delete\\\" (click)=\\\"deleteNode(node.id); $event.stopPropagation()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <div class=\\\"node-body\\\">\\n <small>{{ node.type }}</small>\\n </div>\\n\\n <div class=\\\"node-connectors\\\">\\n <!-- Input Connector -->\\n <div class=\\\"connector connector-in\\\" title=\\\"Input\\\" (click)=\\\"onConnectorClick($event, node, 'in')\\\">\\n </div>\\n\\n <!-- Output Connectors - Multiple outcomes support -->\\n @if (node.outcomes && node.outcomes.length > 1) {\\n <!-- Multiple outcomes: show separate port for each -->\\n <div class=\\\"outcomes-container\\\">\\n @for (outcome of node.outcomes; track outcome; let idx = $index) {\\n <div class=\\\"outcome-connector\\\" [class.active]=\\\"\\n connectionSource?.node?.id === node.id && connectionSource?.outcome === outcome\\n \\\" [attr.data-outcome]=\\\"outcome\\\" [title]=\\\"'Output: ' + outcome\\\"\\n (click)=\\\"onOutcomeConnectorClick($event, node, outcome)\\\">\\n <span class=\\\"outcome-label\\\">{{ outcome }}</span>\\n <div class=\\\"outcome-dot\\\"></div>\\n </div>\\n }\\n </div>\\n } @else {\\n <!-- Single outcome: show simple output connector -->\\n <div class=\\\"connector connector-out\\\" [class.active]=\\\"connectionSource?.node?.id === node.id\\\"\\n title=\\\"Output\\\" (click)=\\\"onConnectorClick($event, node, 'out')\\\"></div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (visualNodes().length === 0) {\\n <div class=\\\"canvas-empty-state\\\">\\n <i class=\\\"fa-light fa-diagram-project\\\"></i>\\n <p>Activity \\u0647\\u0627 \\u0631\\u0627 \\u0627\\u0632 \\u0633\\u0627\\u06CC\\u062F\\u0628\\u0627\\u0631 \\u0628\\u0647 \\u0627\\u06CC\\u0646\\u062C\\u0627 \\u0628\\u06A9\\u0634\\u06CC\\u062F</p>\\n <small>\\u06CC\\u0627 \\u0627\\u0632 \\u062A\\u0628 JSON\\u060C workflow \\u0631\\u0627 import \\u06A9\\u0646\\u06CC\\u062F</small>\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Properties Panel -->\\n @if (selectedNode() && showPropertiesPanel()) {\\n <div class=\\\"properties-panel\\\">\\n <div class=\\\"properties-header\\\">\\n <i class=\\\"fa-light fa-sliders\\\"></i>\\n <h4>{{ '@workflow-management:workflow-studio.components.properties-panel.title' | translate | async }}</h4>\\n <div class=\\\"header-actions\\\">\\n <button class=\\\"header-btn\\\" (click)=\\\"togglePropertiesPanel()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.close-panel' | translate | async\\\">\\n <i class=\\\"fa-light fa-angle-right\\\"></i>\\n </button>\\n <button class=\\\"header-btn\\\" (click)=\\\"selectedNode.set(null)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.close' | translate | async\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n </div>\\n <div class=\\\"properties-body\\\">\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.id' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.id\\\" disabled />\\n </div>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.type' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.type\\\" disabled />\\n </div>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.name' | translate | async }}:</label>\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.name\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, 'name', $any($event.target).value)\\\" />\\n </div>\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCE5 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.input-properties' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">{{ '@workflow-management:workflow-studio.components.properties-panel.sections.input-properties' | translate | async }} - \\u0645\\u0642\\u0627\\u062F\\u06CC\\u0631 \\u0631\\u0627 \\u062A\\u0646\\u0638\\u06CC\\u0645 \\u06A9\\u0646\\u06CC\\u062F</small>\\n\\n @if (hasProperties(selectedNode()!.properties)) {\\n <div class=\\\"property-editor\\\">\\n @for (key of Object.keys(selectedNode()!.properties); track key) {\\n <div class=\\\"property-row\\\">\\n <label>\\n {{ key }}\\n <span class=\\\"property-type-badge\\\">{{ typeof selectedNode()!.properties[key] }}</span>\\n </label>\\n\\n @if (typeof selectedNode()!.properties[key] === 'boolean') {\\n <select [value]=\\\"selectedNode()!.properties[key]\\\" (change)=\\\"\\n updateNodeProperty(selectedNode()!.id, key, $any($event.target).value === 'true')\\n \\\">\\n <option [value]=\\\"true\\\">True</option>\\n <option [value]=\\\"false\\\">False</option>\\n </select>\\n } @else if (typeof selectedNode()!.properties[key] === 'number') {\\n <input type=\\\"number\\\" [value]=\\\"selectedNode()!.properties[key]\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, key, +$any($event.target).value)\\\" />\\n } @else if (typeof selectedNode()!.properties[key] === 'object') {\\n <textarea rows=\\\"3\\\" [value]=\\\"JSON.stringify(selectedNode()!.properties[key], null, 2)\\\"\\n (input)=\\\"updateNodePropertyJSON(selectedNode()!.id, key, $any($event.target).value)\\\"></textarea>\\n } @else {\\n <input type=\\\"text\\\" [value]=\\\"selectedNode()!.properties[key]\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, key, $any($event.target).value)\\\" />\\n }\\n </div>\\n }\\n </div>\\n } @else {\\n <p class=\\\"no-properties\\\">\\n {{ '@workflow-management:workflow-studio.components.properties-panel.empty-states.no-properties' | translate | async }}\\n </p>\\n }\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCE4 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.output-variables' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u062E\\u0631\\u0648\\u062C\\u06CC \\u0648 \\u0645\\u062A\\u063A\\u06CC\\u0631\\u0647\\u0627</small>\\n <div class=\\\"property-row\\\">\\n <label>{{ '@workflow-management:workflow-studio.components.properties-panel.fields.output-variable' | translate | async }}:</label>\\n <input type=\\\"text\\\" placeholder=\\\"\\u0645\\u062B\\u0644\\u0627\\u064B result\\\"\\n [value]=\\\"selectedNode()!.properties['outputVariable'] || ''\\\"\\n (input)=\\\"updateNodeProperty(selectedNode()!.id, 'outputVariable', $any($event.target).value)\\\" />\\n </div>\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDD17 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.connections' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u0627\\u062A\\u0635\\u0627\\u0644\\u0627\\u062A \\u0627\\u06CC\\u0646 \\u0646\\u0648\\u062F</small>\\n\\n <!-- Outcome-based Connections -->\\n @if (selectedNode()!.outcomeConnections && selectedNode()!.outcomeConnections!.length > 0) {\\n <div class=\\\"connections-list\\\">\\n @for (conn of selectedNode()!.outcomeConnections!; track conn.targetNodeId + conn.outcome) {\\n @let targetNode = findNodeById(conn.targetNodeId);\\n @if (targetNode) {\\n <div class=\\\"connection-item outcome-connection\\\">\\n <span class=\\\"outcome-badge\\\" [style.background]=\\\"getOutcomeColor(conn.outcome)\\\">\\n {{ conn.outcome }}\\n </span>\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n <span>{{ targetNode.name }}</span>\\n <button class=\\\"remove-btn\\\"\\n (click)=\\\"disconnectNodes(selectedNode()!.id, conn.targetNodeId, conn.outcome)\\\"\\n title=\\\"\\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n }\\n }\\n </div>\\n } @else if (selectedNode()!.connections.length > 0) {\\n <!-- Simple Connections (fallback) -->\\n <div class=\\\"connections-list\\\">\\n @for (targetId of selectedNode()!.connections; track targetId) {\\n @let targetNode = findNodeById(targetId);\\n @if (targetNode) {\\n <div class=\\\"connection-item\\\">\\n <i class=\\\"fa-light fa-arrow-right\\\"></i>\\n <span>{{ targetNode.name }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"disconnectNodes(selectedNode()!.id, targetId)\\\"\\n title=\\\"\\u062D\\u0630\\u0641 \\u0627\\u062A\\u0635\\u0627\\u0644\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n }\\n }\\n </div>\\n } @else {\\n <p class=\\\"no-properties\\\">{{ '@workflow-management:workflow-studio.components.properties-panel.empty-states.no-connections' | translate | async }}</p>\\n }\\n\\n <!-- Available Outcomes Info -->\\n @if (selectedNode()!.outcomes && selectedNode()!.outcomes!.length > 1) {\\n <div class=\\\"properties-divider\\\"></div>\\n <h5>\\uD83D\\uDCE4 {{ '@workflow-management:workflow-studio.components.properties-panel.sections.available-outcomes' | translate | async }}</h5>\\n <small class=\\\"properties-hint\\\">\\u062E\\u0631\\u0648\\u062C\\u06CC\\u200C\\u0647\\u0627\\u06CC \\u0645\\u0648\\u062C\\u0648\\u062F \\u0628\\u0631\\u0627\\u06CC \\u0627\\u062A\\u0635\\u0627\\u0644</small>\\n <div class=\\\"outcomes-info\\\">\\n @for (outcome of selectedNode()!.outcomes!; track outcome) {\\n <span class=\\\"outcome-tag\\\" [style.borderColor]=\\\"getOutcomeColor(outcome)\\\">\\n <span class=\\\"outcome-dot\\\" [style.background]=\\\"getOutcomeColor(outcome)\\\"></span>\\n {{ outcome }}\\n </span>\\n }\\n </div>\\n }\\n\\n <div class=\\\"properties-divider\\\"></div>\\n\\n <h5>\\uD83D\\uDCDD {{ '@workflow-management:workflow-studio.components.properties-panel.sections.raw-json' | translate | async }}</h5>\\n <pre class=\\\"properties-json\\\">{{ selectedNode() | json }}</pre>\\n </div>\\n </div>\\n }\\n\\n <!-- Toggle Button for Properties (when closed) -->\\n @if (selectedNode() && !showPropertiesPanel()) {\\n <button class=\\\"sidebar-toggle-btn right\\\" (click)=\\\"togglePropertiesPanel()\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.components.properties-panel.actions.show-panel' | translate | async\\\">\\n <i class=\\\"fa-light fa-sliders\\\"></i>\\n </button>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Result Panel -->\\n <div class=\\\"studio-result\\\">\\n <div class=\\\"result-header\\\">\\n <i class=\\\"fa-light fa-terminal\\\"></i>\\n <h3>{{ '@workflow-management:workflow-studio.components.execution-result.title' | translate | async }}</h3>\\n <button class=\\\"clear-btn\\\" (click)=\\\"clearLogs()\\\" *ngIf=\\\"executionLogs().length > 0\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i> {{ '@workflow-management:test-pages.actions.clear-logs.title' | translate | async }}\\n </button>\\n </div>\\n\\n <div class=\\\"result-body\\\">\\n <!-- Execution Logs -->\\n @if (executionLogs().length > 0) {\\n <div class=\\\"logs-container\\\">\\n @for (log of executionLogs(); track $index) {\\n <div class=\\\"log-item\\\" [class]=\\\"'log-' + log.level\\\">\\n <span class=\\\"log-time\\\">{{ log.timestamp | date: 'HH:mm:ss.SSS' }}</span>\\n <span class=\\\"log-icon\\\">\\n @switch (log.level) {\\n @case ('info') {\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n }\\n @case ('success') {\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n }\\n @case ('warning') {\\n <i class=\\\"fa-light fa-exclamation-triangle\\\"></i>\\n }\\n @case ('error') {\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n }\\n }\\n </span>\\n <span class=\\\"log-message\\\">{{ log.message }}</span>\\n @if (log.data) {\\n <button class=\\\"log-data-toggle\\\" (click)=\\\"log.expanded = !log.expanded\\\">\\n <i class=\\\"fa-light\\\" [class.fa-chevron-down]=\\\"!log.expanded\\\" [class.fa-chevron-up]=\\\"log.expanded\\\"></i>\\n </button>\\n }\\n </div>\\n\\n @if (log.data && log.expanded) {\\n <pre class=\\\"log-data\\\">{{ log.data | json }}</pre>\\n }\\n }\\n </div>\\n } @else {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-play-circle\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.components.execution-result.empty-states.no-results.description' | translate | async }}</p>\\n </div>\\n }\\n\\n <!-- Final Result -->\\n @if (executionResult()) {\\n <div class=\\\"final-result\\\">\\n <div class=\\\"result-header\\\" (click)=\\\"showExecutionResult.set(!showExecutionResult())\\\">\\n <h4>\\n <i class=\\\"fa-light\\\" [class.fa-chevron-down]=\\\"showExecutionResult()\\\"\\n [class.fa-chevron-left]=\\\"!showExecutionResult()\\\"></i>\\n {{ '@workflow-management:workflow-studio.components.execution-result.final-result.title' | translate | async }}\\n </h4>\\n <span class=\\\"toggle-hint\\\">{{ (showExecutionResult() ? '@workflow-management:workflow-studio.components.execution-result.final-result.toggle.close' : '@workflow-management:workflow-studio.components.execution-result.final-result.toggle.open') | translate | async }}</span>\\n </div>\\n @if (showExecutionResult()) {\\n <div class=\\\"result-card\\\">\\n @if (executionResult().status) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.status' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().status?.toLowerCase() || 'unknown')\\\">\\n {{ executionResult().status }}\\n </span>\\n </div>\\n }\\n @if (executionResult().subStatus) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.sub-status' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().subStatus?.toLowerCase() || 'unknown')\\\">\\n {{ executionResult().subStatus }}\\n </span>\\n </div>\\n }\\n @if (executionResult().success !== undefined) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.success' | translate | async }}:</strong>\\n <span class=\\\"badge\\\" [class]=\\\"'badge-' + (executionResult().success ? 'success' : 'danger')\\\">\\n {{ (executionResult().success ? '@workflow-management:workflow-studio.components.execution-result.final-result.values.success' : '@workflow-management:workflow-studio.components.execution-result.final-result.values.failed') | translate | async }}\\n </span>\\n </div>\\n }\\n @if (executionResult().error) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.error' | translate | async }}:</strong>\\n <span class=\\\"error-text\\\">{{ executionResult().error }}</span>\\n </div>\\n }\\n @if (executionResult().output) {\\n <div class=\\\"result-row\\\">\\n <strong>{{ '@workflow-management:workflow-studio.components.execution-result.final-result.fields.output' | translate | async }}:</strong>\\n <pre>{{ executionResult().output | json }}</pre>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n\\n <!-- Workflow Settings Modal -->\\n @if (showWorkflowSettings()) {\\n <div class=\\\"settings-modal-overlay\\\" (click)=\\\"closeWorkflowSettings()\\\">\\n <div class=\\\"settings-modal\\\" (click)=\\\"$event.stopPropagation()\\\">\\n <!-- Modal Header -->\\n <div class=\\\"settings-modal-header\\\">\\n <div class=\\\"header-title\\\">\\n <i class=\\\"fa-light fa-cog\\\"></i>\\n <h2>{{ '@workflow-management:workflow-studio.settings.title' | translate | async }}</h2>\\n </div>\\n <button class=\\\"close-btn\\\" (click)=\\\"closeWorkflowSettings()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <!-- Modal Body -->\\n <div class=\\\"settings-modal-body\\\">\\n <!-- Tabs Navigation -->\\n <div class=\\\"settings-tabs\\\">\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'general'\\\"\\n (click)=\\\"switchSettingsTab('general')\\\">\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.general' | translate | async }}\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'inputs'\\\"\\n (click)=\\\"switchSettingsTab('inputs')\\\">\\n <i class=\\\"fa-light fa-sign-in\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.inputs' | translate | async }}\\n @if (workflowSettings().inputs.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().inputs.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'outputs'\\\"\\n (click)=\\\"switchSettingsTab('outputs')\\\">\\n <i class=\\\"fa-light fa-sign-out\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.outputs' | translate | async }}\\n @if (workflowSettings().outputs.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().outputs.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'variables'\\\"\\n (click)=\\\"switchSettingsTab('variables')\\\">\\n <i class=\\\"fa-light fa-box\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.variables' | translate | async }}\\n @if (workflowSettings().variables.length > 0) {\\n <span class=\\\"badge\\\">{{ workflowSettings().variables.length }}</span>\\n }\\n </button>\\n <button class=\\\"tab-btn\\\" [class.active]=\\\"activeSettingsTab() === 'advanced'\\\"\\n (click)=\\\"switchSettingsTab('advanced')\\\">\\n <i class=\\\"fa-light fa-cog\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.tabs.advanced' | translate | async }}\\n </button>\\n </div>\\n\\n <!-- Tab Content -->\\n <div class=\\\"settings-content\\\">\\n <!-- General Tab -->\\n @if (activeSettingsTab() === 'general') {\\n <div class=\\\"settings-section\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.general.title' | translate | async }}</h3>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.name.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.name.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().name\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().definitionId\\\" />\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.definition-id.description' | translate | async }}</small>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.general.fields.description.title' | translate | async }}</label>\\n <textarea class=\\\"form-textarea\\\" rows=\\\"4\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.general.fields.description.placeholder' | translate | async\\\"\\n [(ngModel)]=\\\"workflowSettings().description\\\"></textarea>\\n </div>\\n </div>\\n }\\n\\n <!-- Inputs Tab -->\\n @if (activeSettingsTab() === 'inputs') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.inputs.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowInput()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.inputs.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().inputs.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.inputs.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.inputs.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (input of workflowSettings().inputs; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowInput($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"userName\\\" [value]=\\\"input.name\\\"\\n (input)=\\\"updateWorkflowInput($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"User Name\\\" [value]=\\\"input.title\\\"\\n (input)=\\\"updateWorkflowInput($index, 'title', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"input.description || ''\\\"\\n (input)=\\\"updateWorkflowInput($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.data-type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"input.schema.dataType || 'string'\\\"\\n (change)=\\\"updateWorkflowInputSchema($index, 'dataType', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.default-value' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.inputs.fields.default-value-placeholder' | translate | async\\\"\\n [value]=\\\"input.schema.defaultValue || ''\\\"\\n (input)=\\\"updateWorkflowInputSchema($index, 'defaultValue', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [checked]=\\\"getInputIsRequired(input)\\\"\\n (change)=\\\"updateWorkflowInputValidation($index, $any($event.target).checked)\\\" />\\n <span>{{ '@workflow-management:workflow-studio.settings.sections.inputs.fields.required' | translate | async }}</span>\\n </label>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Outputs Tab -->\\n @if (activeSettingsTab() === 'outputs') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.outputs.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowOutput()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.outputs.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().outputs.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.outputs.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.outputs.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (output of workflowSettings().outputs; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowOutput($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.outputs.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"result\\\" [value]=\\\"output.name\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.title' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"Result\\\" [value]=\\\"output.title\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'title', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.outputs.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"output.description || ''\\\"\\n (input)=\\\"updateWorkflowOutput($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.outputs.fields.data-type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"output.schema.dataType || 'string'\\\"\\n (change)=\\\"updateWorkflowOutputSchema($index, 'dataType', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Variables Tab -->\\n @if (activeSettingsTab() === 'variables') {\\n <div class=\\\"settings-section\\\">\\n <div class=\\\"section-header\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.variables.title' | translate | async }}</h3>\\n <button class=\\\"add-btn\\\" (click)=\\\"addWorkflowVariable()\\\">\\n <i class=\\\"fa-light fa-plus\\\"></i>\\n {{ '@workflow-management:workflow-studio.settings.sections.variables.add-button' | translate | async }}\\n </button>\\n </div>\\n\\n @if (workflowSettings().variables.length === 0) {\\n <div class=\\\"empty-state\\\">\\n <i class=\\\"fa-light fa-inbox\\\"></i>\\n <p>{{ '@workflow-management:workflow-studio.settings.sections.variables.empty-state.title' | translate | async }}</p>\\n <small>{{ '@workflow-management:workflow-studio.settings.sections.variables.empty-state.description' | translate | async }}</small>\\n </div>\\n } @else {\\n <div class=\\\"items-list\\\">\\n @for (variable of workflowSettings().variables; track $index) {\\n <div class=\\\"item-card\\\">\\n <div class=\\\"item-header\\\">\\n <span class=\\\"item-number\\\">#{{ $index + 1 }}</span>\\n <button class=\\\"remove-btn\\\" (click)=\\\"removeWorkflowVariable($index)\\\"\\n [title]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.actions.remove' | translate | async\\\">\\n <i class=\\\"fa-light fa-trash\\\"></i>\\n </button>\\n </div>\\n <div class=\\\"item-body\\\">\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.name' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"tempData\\\" [value]=\\\"variable.name\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'name', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.type' | translate | async }}</label>\\n <select class=\\\"form-select\\\" [value]=\\\"variable.typeName\\\"\\n (change)=\\\"updateWorkflowVariable($index, 'typeName', $any($event.target).value)\\\">\\n <option value=\\\"string\\\">String</option>\\n <option value=\\\"number\\\">Number</option>\\n <option value=\\\"boolean\\\">Boolean</option>\\n <option value=\\\"object\\\">Object</option>\\n <option value=\\\"array\\\">Array</option>\\n </select>\\n </div>\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.description' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.fields.description-placeholder' | translate | async\\\"\\n [value]=\\\"variable.description || ''\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'description', $any($event.target).value)\\\" />\\n </div>\\n <div class=\\\"form-group\\\">\\n <label>{{ '@workflow-management:workflow-studio.settings.sections.variables.fields.initial-value' | translate | async }}</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\"\\n [placeholder]=\\\"'@workflow-management:workflow-studio.settings.sections.variables.fields.initial-value-placeholder' | translate | async\\\"\\n [value]=\\\"variable.value || ''\\\"\\n (input)=\\\"updateWorkflowVariable($index, 'value', $any($event.target).value)\\\" />\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n }\\n </div>\\n }\\n\\n <!-- Advanced Tab -->\\n @if (activeSettingsTab() === 'advanced') {\\n <div class=\\\"settings-section\\\">\\n <h3>{{ '@workflow-management:workflow-studio.settings.sections.advanced.title' | translate | async }}</h3>\\n\\n <!-- Versioning -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u0646\\u0633\\u062E\\u0647\\u200C\\u0628\\u0646\\u062F\\u06CC (Versioning)</h4>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>Version</label>\\n <input type=\\\"number\\\" class=\\\"form-input\\\" min=\\\"1\\\" [(ngModel)]=\\\"workflowSettings().version\\\" />\\n <small>\\u0634\\u0645\\u0627\\u0631\\u0647 \\u0646\\u0633\\u062E\\u0647 workflow (1, 2, 3, ...)</small>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\" style=\\\"margin-top: 1.8rem\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().isLatest\\\" />\\n <span>\\u0622\\u062E\\u0631\\u06CC\\u0646 \\u0646\\u0633\\u062E\\u0647 (Is Latest)</span>\\n </label>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\" style=\\\"margin-top: 1.8rem\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().isPublished\\\" />\\n <span>\\u0645\\u0646\\u062A\\u0634\\u0631 \\u0634\\u062F\\u0647 (Published)</span>\\n </label>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Options -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u062A\\u0646\\u0638\\u06CC\\u0645\\u0627\\u062A (Options)</h4>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().usableAsActivity\\\" />\\n <span>\\u0642\\u0627\\u0628\\u0644 \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0628\\u0647 \\u0639\\u0646\\u0648\\u0627\\u0646 Activity</span>\\n </label>\\n <small>\\u0627\\u06CC\\u0646 workflow \\u0645\\u06CC\\u200C\\u062A\\u0648\\u0627\\u0646\\u062F \\u0628\\u0647 \\u0639\\u0646\\u0648\\u0627\\u0646 \\u06CC\\u06A9 activity \\u062F\\u0631 workflow \\u0647\\u0627\\u06CC \\u062F\\u06CC\\u06AF\\u0631 \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0634\\u0648\\u062F</small>\\n </div>\\n <div class=\\\"form-group checkbox-group\\\">\\n <label>\\n <input type=\\\"checkbox\\\" [(ngModel)]=\\\"workflowSettings().autoUpdateConsumingWorkflows\\\" />\\n <span>\\u0628\\u0647\\u200C\\u0631\\u0648\\u0632\\u0631\\u0633\\u0627\\u0646\\u06CC \\u062E\\u0648\\u062F\\u06A9\\u0627\\u0631 workflows \\u0645\\u0635\\u0631\\u0641\\u200C\\u06A9\\u0646\\u0646\\u062F\\u0647</span>\\n </label>\\n <small>workflow \\u0647\\u0627\\u06CC\\u06CC \\u06A9\\u0647 \\u0627\\u0632 \\u0627\\u06CC\\u0646 workflow \\u0627\\u0633\\u062A\\u0641\\u0627\\u062F\\u0647 \\u0645\\u06CC\\u200C\\u06A9\\u0646\\u0646\\u062F \\u0628\\u0647 \\u0635\\u0648\\u0631\\u062A \\u062E\\u0648\\u062F\\u06A9\\u0627\\u0631 \\u0628\\u0647\\u200C\\u0631\\u0648\\u0632 \\u0645\\u06CC\\u200C\\u0634\\u0648\\u0646\\u062F</small>\\n </div>\\n </div>\\n\\n <!-- Metadata -->\\n <div class=\\\"advanced-group\\\">\\n <h4>Metadata</h4>\\n <div class=\\\"form-row\\\">\\n <div class=\\\"form-group flex-1\\\">\\n <label>Tool Version</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"1.0.0\\\"\\n [(ngModel)]=\\\"workflowSettings().toolVersion\\\" />\\n <small>\\u0646\\u0633\\u062E\\u0647 \\u0627\\u0628\\u0632\\u0627\\u0631 \\u0633\\u0627\\u0632\\u0646\\u062F\\u0647</small>\\n </div>\\n <div class=\\\"form-group flex-1\\\">\\n <label>Provider Name</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"WorkflowStudio\\\"\\n [(ngModel)]=\\\"workflowSettings().providerName\\\" />\\n <small>\\u0646\\u0627\\u0645 \\u0627\\u0628\\u0632\\u0627\\u0631 \\u0633\\u0627\\u0632\\u0646\\u062F\\u0647</small>\\n </div>\\n </div>\\n </div>\\n\\n <!-- Outcomes -->\\n <div class=\\\"advanced-group\\\">\\n <h4>Workflow Outcomes</h4>\\n <div class=\\\"form-group\\\">\\n <label>Possible Outcomes</label>\\n <input type=\\\"text\\\" class=\\\"form-input\\\" placeholder=\\\"Done, Success, Failed (\\u062C\\u062F\\u0627 \\u0634\\u062F\\u0647 \\u0628\\u0627 \\u06A9\\u0627\\u0645\\u0627)\\\"\\n [value]=\\\"workflowSettings().outcomes.join(', ')\\\"\\n (input)=\\\"updateOutcomes($any($event.target).value)\\\" />\\n <small>\\u0646\\u062A\\u0627\\u06CC\\u062C \\u0645\\u0645\\u06A9\\u0646 \\u06A9\\u0647 \\u0627\\u06CC\\u0646 workflow \\u0645\\u06CC\\u200C\\u062A\\u0648\\u0627\\u0646\\u062F \\u0628\\u0631\\u06AF\\u0631\\u062F\\u0627\\u0646\\u062F (\\u0645\\u062B\\u0644\\u0627\\u064B: Done, Success, Failed)</small>\\n </div>\\n <div class=\\\"outcomes-preview\\\">\\n @for (outcome of workflowSettings().outcomes; track outcome) {\\n <span class=\\\"outcome-chip\\\">{{ outcome }}</span>\\n }\\n </div>\\n </div>\\n\\n <!-- Export Preview -->\\n <div class=\\\"advanced-group\\\">\\n <h4>\\u062E\\u0631\\u0648\\u062C\\u06CC \\u0646\\u0647\\u0627\\u06CC\\u06CC (WorkflowDefinition)</h4>\\n <small>\\u0627\\u06CC\\u0646 \\u0633\\u0627\\u062E\\u062A\\u0627\\u0631 \\u062F\\u0642\\u06CC\\u0642\\u0627\\u064B \\u0645\\u0637\\u0627\\u0628\\u0642 \\u0628\\u0627 WorkflowDefinition \\u0627\\u0633\\u062A \\u0648 \\u062F\\u0631 \\u062F\\u06CC\\u062A\\u0627\\u0628\\u06CC\\u0633 \\u0630\\u062E\\u06CC\\u0631\\u0647 \\u0645\\u06CC\\u200C\\u0634\\u0648\\u062F</small>\\n <div class=\\\"export-info\\\">\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Definition ID:</span>\\n <code>{{ workflowSettings().definitionId || '(\\u062E\\u0627\\u0644\\u06CC)' }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Name:</span>\\n <code>{{ workflowSettings().name || '(\\u062E\\u0627\\u0644\\u06CC)' }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Version:</span>\\n <code>v{{ workflowSettings().version }}</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Inputs:</span>\\n <code>{{ workflowSettings().inputs.length }} items</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Outputs:</span>\\n <code>{{ workflowSettings().outputs.length }} items</code>\\n </div>\\n <div class=\\\"info-row\\\">\\n <span class=\\\"label\\\">Variables:</span>\\n <code>{{ workflowSettings().variables.length }} items</code>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n\\n <!-- Modal Footer -->\\n <div class=\\\"settings-modal-footer\\\">\\n <ax-button [text]=\\\"'@workflow-management:workflow-studio.settings.actions.cancel' | translate | async\\\" color=\\\"secondary\\\" size=\\\"md\\\" (onClick)=\\\"closeWorkflowSettings()\\\"> </ax-button>\\n <ax-button [text]=\\\"'@workflow-management:workflow-studio.settings.actions.save' | translate | async\\\" color=\\\"primary\\\" size=\\\"md\\\" (onClick)=\\\"saveWorkflowSettings()\\\"> </ax-button>\\n </div>\\n </div>\\n </div>\\n }\\n\\n <!-- Workflow Execution Dialog -->\\n @if (showExecutionDialog()) {\\n <div class=\\\"execution-dialog-overlay\\\" (click)=\\\"closeExecutionDialog()\\\">\\n <div class=\\\"execution-dialog\\\" (click)=\\\"$event.stopPropagation()\\\">\\n <!-- Dialog Header -->\\n <div class=\\\"execution-dialog-header\\\">\\n <div class=\\\"header-content\\\">\\n <i class=\\\"fa-light fa-play-circle\\\"></i>\\n <div class=\\\"header-info\\\">\\n <h2>{{ '@workflow-management:test-pages.workflow-studio.actions.execute-workflow.title' | translate |\\n async }}</h2>\\n <p>{{ '@workflow-management:test-pages.workflow-studio.actions.execute-workflow.description' | translate\\n | async }}</p>\\n </div>\\n </div>\\n <button class=\\\"close-btn\\\" (click)=\\\"closeExecutionDialog()\\\" [disabled]=\\\"isExecuting()\\\">\\n <i class=\\\"fa-light fa-times\\\"></i>\\n </button>\\n </div>\\n\\n <!-- Dialog Body -->\\n <div class=\\\"execution-dialog-body\\\">\\n <!-- Workflow Info Panel (Before Execution) -->\\n @if (!workflowInstanceState()) {\\n <div class=\\\"workflow-info-panel\\\">\\n <div class=\\\"start-section\\\">\\n <div class=\\\"start-illustration\\\">\\n <i class=\\\"fa-light fa-rocket\\\"></i>\\n </div>\\n <h3>{{ '@workflow-management:test-pages.workflow-studio.messages.info.ready-to-execute' | translate |\\n async }}</h3>\\n <p>{{ '@workflow-management:test-pages.workflow-studio.messages.info.click-to-start' | translate | async\\n }}</p>\\n <ax-button\\n [text]=\\\"'@workflow-management:test-pages.workflow-studio.actions.start-execution.title' | translate | async\\\"\\n color=\\\"success\\\" size=\\\"lg\\\" (onClick)=\\\"startWorkflowExecution()\\\">\\n </ax-button>\\n </div>\\n </div>\\n }\\n\\n\\n <!-- Custom UI for Registration -->\\n @if (false) {\\n <div class=\\\"registration-ui\\\">\\n <div class=\\\"registration-card\\\">\\n <div class=\\\"registration-icon\\\">\\n <i class=\\\"fa-light fa-user-circle\\\"></i>\\n </div>\\n <h3>\\u0641\\u0631\\u0622\\u06CC\\u0646\\u062F \\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645</h3>\\n <p class=\\\"registration-desc\\\">\\n \\u0627\\u06CC\\u0646 \\u0641\\u0644\\u0648 \\u0634\\u0627\\u0645\\u0644 \\u0686\\u0646\\u062F \\u0645\\u0631\\u062D\\u0644\\u0647 \\u0627\\u0633\\u062A \\u06A9\\u0647 \\u062F\\u0627\\u062F\\u0647\\u200C\\u0647\\u0627\\u06CC \\u06A9\\u0627\\u0631\\u0628\\u0631 \\u0631\\u0627 \\u062C\\u0645\\u0639\\u200C\\u0622\\u0648\\u0631\\u06CC \\u06A9\\u0631\\u062F\\u0647 \\u0648 \\u062F\\u0631 \\u0646\\u0647\\u0627\\u06CC\\u062A \\u062D\\u0633\\u0627\\u0628 \\u06A9\\u0627\\u0631\\u0628\\u0631\\u06CC \\u0627\\u06CC\\u062C\\u0627\\u062F \\u0645\\u06CC\\u200C\\u06A9\\u0646\\u062F.\\n </p>\\n\\n @if (workflowInstanceState()?.status === 'running') {\\n <div class=\\\"registration-progress\\\">\\n <div class=\\\"progress-spinner\\\">\\n <i class=\\\"fa-light fa-spinner-third fa-spin\\\"></i>\\n </div>\\n <p>\\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627\\u06CC \\u0645\\u0631\\u0627\\u062D\\u0644 \\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645...</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'finished') {\\n <div class=\\\"registration-success\\\">\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n <h4>\\u062B\\u0628\\u062A\\u200C\\u0646\\u0627\\u0645 \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u0627\\u0646\\u062C\\u0627\\u0645 \\u0634\\u062F!</h4>\\n <p>\\u062D\\u0633\\u0627\\u0628 \\u06A9\\u0627\\u0631\\u0628\\u0631\\u06CC \\u0634\\u0645\\u0627 \\u0627\\u06CC\\u062C\\u0627\\u062F \\u0634\\u062F \\u0648 \\u0628\\u0647 \\u0632\\u0648\\u062F\\u06CC \\u0628\\u0647 \\u062F\\u0627\\u0634\\u0628\\u0648\\u0631\\u062F \\u0645\\u0646\\u062A\\u0642\\u0644 \\u062E\\u0648\\u0627\\u0647\\u06CC\\u062F \\u0634\\u062F.</p>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Default Execution View -->\\n @if (workflowInstanceState()) {\\n <div class=\\\"default-execution-view\\\">\\n <div class=\\\"execution-status\\\">\\n @if (workflowInstanceState()?.status === 'running') {\\n <div class=\\\"status-running\\\">\\n <i class=\\\"fa-light fa-spinner-third fa-spin\\\"></i>\\n <h3>\\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627...</h3>\\n <p>Workflow \\u062F\\u0631 \\u062D\\u0627\\u0644 \\u0627\\u062C\\u0631\\u0627 \\u0627\\u0633\\u062A. \\u0644\\u0637\\u0641\\u0627\\u064B \\u0635\\u0628\\u0631 \\u06A9\\u0646\\u06CC\\u062F.</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'finished') {\\n <div class=\\\"status-finished\\\">\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n <h3>\\u0627\\u062C\\u0631\\u0627 \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u062A\\u06A9\\u0645\\u06CC\\u0644 \\u0634\\u062F</h3>\\n <p>Workflow \\u0628\\u0627 \\u0645\\u0648\\u0641\\u0642\\u06CC\\u062A \\u0627\\u062C\\u0631\\u0627 \\u0634\\u062F \\u0648 \\u062A\\u0645\\u0627\\u0645 Activities \\u0627\\u0646\\u062C\\u0627\\u0645 \\u0634\\u062F\\u0646\\u062F.</p>\\n </div>\\n }\\n\\n @if (workflowInstanceState()?.status === 'error') {\\n <div class=\\\"status-error\\\">\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n <h3>\\u062E\\u0637\\u0627 \\u062F\\u0631 \\u0627\\u062C\\u0631\\u0627</h3>\\n <p>{{ workflowInstanceState()?.error }}</p>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n\\n <!-- Execution Logs Panel -->\\n @if (workflowInstanceState() && executionLogs().length > 0) {\\n <div class=\\\"execution-logs-panel\\\">\\n <h3><i class=\\\"fa-light fa-terminal\\\"></i> \\u0644\\u0627\\u06AF\\u200C\\u0647\\u0627\\u06CC \\u0627\\u062C\\u0631\\u0627</h3>\\n <div class=\\\"logs-container-compact\\\">\\n @for (log of executionLogs(); track $index) {\\n <div class=\\\"log-item-compact\\\" [class]=\\\"'log-' + log.level\\\">\\n <span class=\\\"log-time\\\">{{ log.timestamp | date: 'HH:mm:ss' }}</span>\\n <span class=\\\"log-icon\\\">\\n @switch (log.level) {\\n @case ('info') {\\n <i class=\\\"fa-light fa-info-circle\\\"></i>\\n }\\n @case ('success') {\\n <i class=\\\"fa-light fa-check-circle\\\"></i>\\n }\\n @case ('warning') {\\n <i class=\\\"fa-light fa-exclamation-triangle\\\"></i>\\n }\\n @case ('error') {\\n <i class=\\\"fa-light fa-times-circle\\\"></i>\\n }\\n }\\n </span>\\n <span class=\\\"log-message\\\">{{ log.message }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n }\\n </div>\\n\\n <!-- Dialog Footer -->\\n <div class=\\\"execution-dialog-footer\\\">\\n <div class=\\\"footer-info\\\">\\n @if (workflowInstanceState()?.startTime) {\\n <span class=\\\"time-info\\\">\\n <i class=\\\"fa-light fa-clock\\\"></i>\\n \\u0634\\u0631\\u0648\\u0639: {{ workflowInstanceState()!.startTime | date: 'HH:mm:ss' }}\\n </span>\\n }\\n @if (workflowInstanceState()?.endTime) {\\n <span class=\\\"time-info\\\">\\n <i class=\\\"fa-light fa-flag-checkered\\\"></i>\\n \\u067E\\u0627\\u06CC\\u0627\\u0646: {{ workflowInstanceState()!.endTime | date: 'HH:mm:ss' }}\\n </span>\\n }\\n </div>\\n <div class=\\\"footer-actions\\\">\\n <ax-button\\n [text]=\\\"(workflowInstanceState() ? '@general:actions.close.title' : '@general:actions.cancel.title') | translate | async\\\"\\n color=\\\"secondary\\\" size=\\\"md\\\" [disabled]=\\\"isExecuting()\\\" (onClick)=\\\"closeExecutionDialog()\\\">\\n </ax-button>\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </axp-page-content>\\n</axp-page-layout>\", styles: [\".sidebar-header .toggle-btn{padding:.5rem;margin-left:auto;background:transparent;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s}.sidebar-header .toggle-btn:hover{background:#f8fafc;border-color:#8b5cf6;color:#8b5cf6}.sidebar-header .toggle-btn i{font-size:.875rem}.sidebar-toggle-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:100;padding:1rem .5rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#8b5cf6;cursor:pointer;box-shadow:0 4px 12px #0000001a;transition:all .3s}.sidebar-toggle-btn:hover{background:#8b5cf6;color:#fff;box-shadow:0 8px 24px #8b5cf64d;transform:translateY(-50%) scale(1.1)}.sidebar-toggle-btn.left{left:0;border-left:none;border-radius:0 8px 8px 0}.sidebar-toggle-btn.right{right:0;border-right:none;border-radius:8px 0 0 8px}.sidebar-toggle-btn i{font-size:1.25rem;display:block}.properties-header .header-actions{display:flex;gap:.5rem;margin-left:auto}.properties-header .header-btn{padding:.375rem .5rem;background:transparent;border:1px solid #e2e8f0;border-radius:4px;color:#64748b;cursor:pointer;transition:all .2s}.properties-header .header-btn:hover{background:#f8fafc;border-color:#8b5cf6;color:#8b5cf6}.properties-header .header-btn i{font-size:.75rem}.connections-list{margin-top:.75rem}.connection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:.5rem;font-size:.875rem}.connection-item i{color:#8b5cf6}.connection-item span{flex:1;color:#1e293b}.connection-item .remove-btn{padding:.25rem .375rem;background:transparent;border:1px solid #e2e8f0;border-radius:4px;color:#ef4444;cursor:pointer;transition:all .2s}.connection-item .remove-btn:hover{background:#fef2f2;border-color:#ef4444}.connection-item .remove-btn i{font-size:.75rem;color:inherit}.property-editor{margin-top:.75rem}.property-editor .property-row label{display:flex;align-items:center;gap:.5rem;justify-content:space-between}.property-editor .property-row label .property-type-badge{padding:.125rem .375rem;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:.625rem;font-weight:400;color:#64748b;text-transform:lowercase;font-family:JetBrains Mono,monospace}.property-editor .property-row select{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;background:#fff;cursor:pointer;transition:all .2s}.property-editor .property-row select:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.property-editor .property-row textarea{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.75rem;font-family:JetBrains Mono,monospace;color:#1e293b;resize:vertical;transition:all .2s}.property-editor .property-row textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.workflow-studio{display:flex;flex-direction:column;height:100vh;background:#f8fafc;overflow:hidden}.workflow-popup .popup-header{text-align:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e2e8f0}.workflow-popup .popup-header h3{margin:0 0 .5rem;color:#1e293b;font-size:1.5rem;font-weight:700}.workflow-popup .popup-header p{margin:0;color:#64748b;font-size:.95rem}.workflow-popup .popup-body{max-height:60vh;overflow-y:auto;padding:0 .5rem}.workflow-popup .popup-body h4{margin:1.5rem 0 .75rem;color:#374151;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.workflow-popup .popup-body ul{margin:0;padding-left:1.5rem}.workflow-popup .popup-body ul li{margin-bottom:.5rem;color:#4b5563}.workflow-popup .popup-body ul li strong{color:#1f2937}.workflow-popup .workflow-info{background:#f8fafc;padding:1rem;border-radius:8px;border:1px solid #e2e8f0}.workflow-popup .workflow-variables{background:#fef3c7;padding:1rem;border-radius:8px;border:1px solid #f59e0b}.workflow-popup .workflow-flow{background:#ecfdf5;padding:1rem;border-radius:8px;border:1px solid #10b981}.workflow-popup .workflow-flow .flow-steps{display:flex;flex-direction:column;gap:.75rem}.workflow-popup .workflow-flow .flow-steps .flow-step{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#fff;border-radius:6px;border:1px solid #d1d5db}.workflow-popup .workflow-flow .flow-steps .flow-step .step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#3b82f6;color:#fff;border-radius:50%;font-size:.8rem;font-weight:600}.workflow-popup .workflow-flow .flow-steps .flow-step .step-text{color:#374151;font-weight:500}.workflow-popup .workflow-json{background:#1f2937;padding:1rem;border-radius:8px;border:1px solid #374151}.workflow-popup .workflow-json .json-preview{background:transparent;color:#e5e7eb;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;line-height:1.4;margin:0;white-space:pre-wrap;word-break:break-all;max-height:200px;overflow-y:auto}.workflow-popup .popup-footer{text-align:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.workflow-popup .popup-footer .btn{padding:.75rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background-color .2s}.workflow-popup .popup-footer .btn:hover{background:#2563eb}.workflow-popup .popup-footer .btn i{font-size:.9rem}.view-workflow-link{color:#3b82f6;text-decoration:none;font-size:.85rem;margin-left:.5rem;transition:color .2s}.view-workflow-link:hover{color:#1d4ed8;text-decoration:underline}.studio-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.studio-header .header-title{display:flex;align-items:center;gap:.75rem}.studio-header .header-title i{font-size:1.75rem;color:#8b5cf6}.studio-header .header-title h1{margin:0;font-size:1.5rem;font-weight:700;color:#1e293b}.studio-header .header-title .badge{padding:.25rem .75rem;background:#8b5cf6;color:#fff;border-radius:12px;font-size:.75rem;font-weight:600}.studio-header .header-actions{display:flex;gap:.75rem;align-items:center}.samples-dropdown{position:relative}.samples-dropdown .samples-menu{position:absolute;top:calc(100% + .5rem);left:0;min-width:320px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #0000001a;z-index:1000;max-height:400px;overflow-y:auto}.samples-dropdown .samples-menu .sample-item{padding:.875rem 1rem;display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:all .2s}.samples-dropdown .samples-menu .sample-item:last-child{border-bottom:none}.samples-dropdown .samples-menu .sample-item:hover{background:#f8fafc;transform:translate(4px)}.samples-dropdown .samples-menu .sample-item i{font-size:1.25rem;margin-top:.125rem;color:#8b5cf6}.samples-dropdown .samples-menu .sample-item .sample-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.samples-dropdown .samples-menu .sample-item .sample-info strong{color:#1e293b;font-size:.875rem;font-weight:600}.samples-dropdown .samples-menu .sample-item .sample-info span{color:#64748b;font-size:.75rem;line-height:1.4}.studio-body{display:grid;grid-template-columns:320px 1fr 420px;gap:0;flex:1;overflow:hidden;transition:grid-template-columns .3s ease}.studio-body.sidebar-hidden{grid-template-columns:0 1fr 420px}.studio-body.properties-hidden{grid-template-columns:320px 1fr 0}.studio-body.sidebar-hidden.properties-hidden{grid-template-columns:0 1fr 0}.studio-sidebar{background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;overflow:hidden}.studio-sidebar .sidebar-header{padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.5rem}.studio-sidebar .sidebar-header i{font-size:1.25rem;color:#8b5cf6}.studio-sidebar .sidebar-header h3{flex:1;margin:0;font-size:1.125rem;font-weight:600;color:#1e293b}.activities-tree{flex:1;overflow-y:auto;padding:.5rem}.category-section{margin-bottom:.5rem}.category-section .category-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:8px;cursor:pointer;transition:all .2s;background:#f8fafc}.category-section .category-header:hover{background:#f1f5f9}.category-section .category-header.active{background:#ede9fe}.category-section .category-header.active>i:first-child{color:#8b5cf6}.category-section .category-header>i:first-child{font-size:.875rem;color:#94a3b8;transition:transform .2s,color .2s}.category-section .category-header>i:nth-child(2){font-size:1.125rem}.category-section .category-header span{flex:1;font-weight:600;font-size:.875rem;color:#334155}.category-section .category-header .count{flex:none;padding:.125rem .5rem;background:#fff;border-radius:10px;font-size:.75rem;font-weight:600;color:#64748b;border:1px solid #e2e8f0}.activities-list{padding:.5rem 0 .5rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;animation:slideDown .3s ease}.activities-list .activities-header{padding:.5rem .75rem;margin-bottom:.5rem}.activities-list .activities-header h4{margin:0;font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.activity-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:.875rem;margin-bottom:.75rem;transition:all .2s}.activity-card:hover{border-color:#8b5cf6;box-shadow:0 4px 12px #8b5cf61a;transform:translateY(-1px)}.activity-card .activity-info{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}.activity-card .activity-info>i{font-size:1.5rem;color:#8b5cf6;margin-top:.125rem}.activity-card .activity-info .activity-details{flex:1;display:flex;flex-direction:column;gap:.25rem}.activity-card .activity-info .activity-details strong{font-size:.875rem;color:#1e293b}.activity-card .activity-info .activity-details small{font-size:.75rem;color:#64748b;line-height:1.4}.activity-card .activity-info .activity-details code{font-size:.75rem;color:#8b5cf6;background:#f3f0ff;padding:.125rem .375rem;border-radius:4px;width:fit-content}.activity-card .copy-btn{float:right;padding:.375rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s;color:#64748b}.activity-card .copy-btn:hover{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.activity-card .copy-btn i{font-size:.875rem}.activity-card .activity-properties{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f1f5f9}.activity-card .activity-properties .properties-title{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.5rem}.activity-card .activity-properties .property-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.75rem}.activity-card .activity-properties .property-item code{color:#1e293b;background:#f8fafc;padding:.125rem .375rem;border-radius:3px}.activity-card .activity-properties .property-item .property-type{color:#64748b;font-style:italic}.activity-card .activity-properties .property-item .required{color:#ef4444;font-weight:700}.studio-editor{display:flex;flex-direction:column;background:#1e293b;overflow:hidden}.studio-editor .editor-header{padding:1rem 1.25rem;background:#0f172a;display:flex;align-items:center;gap:.5rem}.studio-editor .editor-header i{font-size:1.125rem;color:#8b5cf6}.studio-editor .editor-header h3{margin:0;font-size:1rem;font-weight:600;color:#e2e8f0}.studio-editor axp-page-toolbar .editor-tabs{display:flex;gap:.5rem;background:transparent}.studio-editor axp-page-toolbar .editor-tabs .tab-btn{padding:.5rem 1rem;background:transparent;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.studio-editor axp-page-toolbar .editor-tabs .tab-btn i{font-size:.875rem}.studio-editor axp-page-toolbar .editor-tabs .tab-btn:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569}.studio-editor axp-page-toolbar .editor-tabs .tab-btn.active{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.studio-editor .editor-content{flex:1;display:flex;overflow:hidden}.studio-editor .json-tab{flex:1;display:flex;flex-direction:column}.studio-editor .json-editor{flex:1;padding:1.5rem;background:#1e293b;color:#e2e8f0;border:none;outline:none;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.875rem;line-height:1.6;resize:none;overflow:auto}.studio-editor .json-editor::placeholder{color:#475569}.studio-editor .json-editor::-webkit-scrollbar{width:10px;height:10px}.studio-editor .json-editor::-webkit-scrollbar-track{background:#0f172a}.studio-editor .json-editor::-webkit-scrollbar-thumb{background:#475569;border-radius:5px}.studio-editor .json-editor::-webkit-scrollbar-thumb:hover{background:#64748b}.studio-editor .visual-tab{flex:1;display:flex;background:#f8fafc;position:relative}.studio-editor .visual-canvas{flex:1;display:flex;flex-direction:column;overflow:hidden}.studio-editor .visual-canvas .canvas-toolbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e2e8f0}.studio-editor .visual-canvas .canvas-toolbar .tool-btn{padding:.5rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;cursor:pointer;transition:all .2s}.studio-editor .visual-canvas .canvas-toolbar .tool-btn:hover{background:#8b5cf6;border-color:#8b5cf6;color:#fff}.studio-editor .visual-canvas .canvas-toolbar .tool-btn i{font-size:.875rem}.studio-editor .visual-canvas .canvas-toolbar .tool-info{flex:1;display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#64748b}.studio-editor .visual-canvas .canvas-toolbar .tool-info i{font-size:1rem;color:#8b5cf6}.studio-editor .visual-canvas .canvas-area{flex:1;position:relative;background:linear-gradient(90deg,#e5e7eb 1px,transparent 1px),linear-gradient(#e5e7eb 1px,transparent 1px);background-size:20px 20px;overflow:auto;min-height:600px}.studio-editor .visual-canvas .connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.studio-editor .visual-canvas .connection-line{stroke:#64748b;stroke-width:2;fill:none;opacity:.6;cursor:pointer;pointer-events:stroke;transition:all .2s}.studio-editor .visual-canvas .connection-line:hover{stroke:#ef4444;stroke-width:3;opacity:1}.studio-editor .visual-canvas .visual-node{position:absolute;width:150px;background:#fff;border:2px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:move;transition:all .2s;z-index:2}.studio-editor .visual-canvas .visual-node:hover{border-color:#8b5cf6;box-shadow:0 4px 16px #8b5cf633;transform:translateY(-2px)}.studio-editor .visual-canvas .visual-node.selected{border-color:#8b5cf6;border-width:3px;box-shadow:0 0 0 3px #8b5cf633}.studio-editor .visual-canvas .visual-node .node-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;border-radius:6px 6px 0 0;font-size:.875rem;font-weight:600}.studio-editor .visual-canvas .visual-node .node-header i{font-size:1rem}.studio-editor .visual-canvas .visual-node .node-header span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-editor .visual-canvas .visual-node .node-header .node-delete{padding:.25rem;background:#fff3;border:none;border-radius:4px;color:#fff;cursor:pointer;transition:all .2s}.studio-editor .visual-canvas .visual-node .node-header .node-delete:hover{background:#ef4444cc}.studio-editor .visual-canvas .visual-node .node-header .node-delete i{font-size:.75rem}.studio-editor .visual-canvas .visual-node .node-body{padding:.75rem}.studio-editor .visual-canvas .visual-node .node-body small{display:block;font-size:.75rem;color:#64748b;text-align:center}.studio-editor .visual-canvas .visual-node .node-connectors{position:relative}.studio-editor .visual-canvas .visual-node .node-connectors .connector{position:absolute;width:12px;height:12px;background:#8b5cf6;border:2px solid white;border-radius:50%;cursor:pointer;transition:all .2s;z-index:10}.studio-editor .visual-canvas .visual-node .node-connectors .connector:hover{transform:scale(1.3);box-shadow:0 0 0 3px #8b5cf64d}.studio-editor .visual-canvas .visual-node .node-connectors .connector-in{top:-50px;left:50%;transform:translate(-50%);background:#3b82f6}.studio-editor .visual-canvas .visual-node .node-connectors .connector-out{bottom:-6px;left:50%;transform:translate(-50%);background:#8b5cf6}.studio-editor .visual-canvas .visual-node .node-connectors .connector-out.active{background:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcomes-container{position:absolute;bottom:-60px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;background:#fff;padding:8px;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:120px;z-index:100}.studio-editor .visual-canvas .visual-node .node-connectors .outcomes-container:before{content:\\\"\\\";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid white;filter:drop-shadow(0 -2px 2px rgba(0,0,0,.05))}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s;position:relative}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector:hover{background:#f1f5f9;border-color:#8b5cf6;transform:translate(2px)}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector.active{background:#fef2f2;border-color:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector.active .outcome-dot{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector .outcome-label{font-size:.75rem;font-weight:600;color:#475569;-webkit-user-select:none;user-select:none;flex:1}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector .outcome-dot{width:10px;height:10px;background:#8b5cf6;border:2px solid white;border-radius:50%;transition:all .2s;flex-shrink:0}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=\\\"200\\\"] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Done] .outcome-dot{background:#10b981}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=\\\"404\\\"] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Failed] .outcome-dot{background:#ef4444}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Timeout] .outcome-dot,.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Cancelled] .outcome-dot{background:#f59e0b}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Then] .outcome-dot{background:#3b82f6}.studio-editor .visual-canvas .visual-node .node-connectors .outcome-connector[data-outcome=Else] .outcome-dot{background:#64748b}.studio-editor .visual-canvas .canvas-empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#94a3b8;pointer-events:none}.studio-editor .visual-canvas .canvas-empty-state i{font-size:4rem;margin-bottom:1rem;opacity:.5}.studio-editor .visual-canvas .canvas-empty-state p{margin:0 0 .5rem;font-size:1rem;font-weight:500}.studio-editor .visual-canvas .canvas-empty-state small{font-size:.875rem;opacity:.8}.studio-editor .properties-panel{width:280px;background:#fff;border-left:1px solid #e2e8f0;display:flex;flex-direction:column}.studio-editor .properties-panel .properties-header{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid #e2e8f0}.studio-editor .properties-panel .properties-header i{font-size:1.125rem;color:#8b5cf6}.studio-editor .properties-panel .properties-header h4{flex:1;margin:0;font-size:.875rem;font-weight:600;color:#1e293b}.studio-editor .properties-panel .properties-header button{padding:.25rem .5rem;background:transparent;border:none;color:#64748b;cursor:pointer;transition:color .2s}.studio-editor .properties-panel .properties-header button:hover{color:#ef4444}.studio-editor .properties-panel .properties-body{flex:1;padding:1rem;overflow-y:auto}.studio-editor .properties-panel .properties-body .property-row{margin-bottom:1rem}.studio-editor .properties-panel .properties-body .property-row label{display:block;font-size:.75rem;font-weight:600;color:#64748b;margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .property-row input{width:100%;padding:.5rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;transition:all .2s}.studio-editor .properties-panel .properties-body .property-row input:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.studio-editor .properties-panel .properties-body .property-row input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.studio-editor .properties-panel .properties-body .properties-divider{height:1px;background:#e2e8f0;margin:1.5rem 0}.studio-editor .properties-panel .properties-body h5{margin:0 0 .5rem;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .properties-hint{display:block;font-size:.75rem;color:#94a3b8;margin-bottom:.75rem}.studio-editor .properties-panel .properties-body .properties-json{margin:.75rem 0 0;padding:.75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;color:#1e293b;overflow-x:auto}.studio-editor .properties-panel .properties-body .no-properties{margin:.75rem 0 0;padding:1rem;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;text-align:center;font-size:.75rem;color:#94a3b8}.studio-editor .properties-panel .properties-body .connections-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:.75rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item.outcome-connection{border-left-width:3px}.studio-editor .properties-panel .properties-body .connections-list .connection-item i{color:#64748b;font-size:.875rem}.studio-editor .properties-panel .properties-body .connections-list .connection-item span{flex:1;color:#1e293b;font-weight:500}.studio-editor .properties-panel .properties-body .connections-list .connection-item .outcome-badge{padding:.25rem .5rem;border-radius:4px;color:#fff;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn{padding:.25rem;background:transparent;border:none;color:#ef4444;cursor:pointer;border-radius:4px;transition:all .2s}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn:hover{background:#fee2e2}.studio-editor .properties-panel .properties-body .connections-list .connection-item .remove-btn i{font-size:.75rem;color:inherit}.studio-editor .properties-panel .properties-body .outcomes-info{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:#fff;border:2px solid;border-radius:6px;font-size:.75rem;font-weight:600;color:#1e293b;transition:all .2s}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.studio-editor .properties-panel .properties-body .outcomes-info .outcome-tag .outcome-dot{width:8px;height:8px;border-radius:50%}.studio-result{display:flex;flex-direction:column;background:#fff;border-left:1px solid #e2e8f0;overflow:hidden}.studio-result .result-header{padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.5rem}.studio-result .result-header i{font-size:1.125rem;color:#10b981}.studio-result .result-header h3{flex:1;margin:0;font-size:1rem;font-weight:600;color:#1e293b}.studio-result .result-header .clear-btn{padding:.375rem .75rem;background:#fee2e2;color:#dc2626;border:none;border-radius:6px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s}.studio-result .result-header .clear-btn:hover{background:#fecaca}.studio-result .result-header .clear-btn i{font-size:.75rem;color:inherit}.studio-result .result-body{flex:1;overflow-y:auto;padding:1rem}.logs-container{display:flex;flex-direction:column;gap:.5rem}.log-item{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#f8fafc;border-left:3px solid #cbd5e1;border-radius:6px;font-size:.875rem}.log-item.log-info{border-left-color:#3b82f6;background:#eff6ff}.log-item.log-info .log-icon{color:#3b82f6}.log-item.log-success{border-left-color:#10b981;background:#f0fdf4}.log-item.log-success .log-icon{color:#10b981}.log-item.log-warning{border-left-color:#f59e0b;background:#fffbeb}.log-item.log-warning .log-icon{color:#f59e0b}.log-item.log-error{border-left-color:#ef4444;background:#fef2f2}.log-item.log-error .log-icon{color:#ef4444}.log-item .log-time{font-family:JetBrains Mono,monospace;font-size:.75rem;color:#64748b;min-width:80px}.log-item .log-icon{font-size:1rem}.log-item .log-message{flex:1;color:#1e293b}.log-item .log-data-toggle{padding:.25rem .5rem;background:transparent;border:1px solid #cbd5e1;border-radius:4px;cursor:pointer;transition:all .2s}.log-item .log-data-toggle:hover{background:#fff}.log-item .log-data-toggle i{font-size:.75rem;color:#64748b}.log-data{margin:.5rem 0 0;padding:1rem;background:#0f172a;color:#e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto}.settings-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem;animation:fadeIn .2s ease}.settings-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid #e2e8f0}.settings-modal-header .header-title{display:flex;align-items:center;gap:.75rem}.settings-modal-header .header-title i{font-size:1.5rem;color:#8b5cf6}.settings-modal-header .header-title h2{margin:0;font-size:1.25rem;font-weight:700;color:#1e293b}.settings-modal-header .close-btn{padding:.5rem;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:6px;transition:all .2s}.settings-modal-header .close-btn:hover{background:#f1f5f9;color:#ef4444}.settings-modal-header .close-btn i{font-size:1.25rem}.settings-modal-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.settings-tabs{display:flex;gap:.5rem;padding:1rem 2rem 0;border-bottom:1px solid #e2e8f0}.settings-tabs .tab-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;position:relative}.settings-tabs .tab-btn:hover{color:#8b5cf6;background:#f8fafc}.settings-tabs .tab-btn.active{color:#8b5cf6;border-bottom-color:#8b5cf6}.settings-tabs .tab-btn i{font-size:1rem}.settings-tabs .tab-btn .badge{padding:.125rem .5rem;background:#8b5cf6;color:#fff;border-radius:10px;font-size:.7rem;font-weight:600}.settings-content{flex:1;overflow-y:auto;padding:2rem}.settings-section h3{margin:0 0 1.5rem;font-size:1rem;font-weight:600;color:#1e293b}.settings-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.settings-section .section-header h3{margin:0}.settings-section .section-header .add-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#8b5cf6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.settings-section .section-header .add-btn:hover{background:#7c3aed;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.settings-section .section-header .add-btn i{font-size:.875rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:600;color:#475569;margin-bottom:.5rem}.form-group small{display:block;font-size:.75rem;color:#94a3b8;margin-top:.375rem}.form-group.checkbox-group{margin-bottom:0}.form-group.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;margin-bottom:0}.form-group.checkbox-group label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.form-group.checkbox-group label span{font-size:.875rem;font-weight:500}.form-group.flex-1{flex:1}.form-row{display:flex;gap:1rem;align-items:flex-start}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;color:#1e293b;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:#cbd5e1}.form-textarea{resize:vertical;font-family:inherit}.items-list{display:flex;flex-direction:column;gap:1rem}.item-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;transition:all .2s}.item-card:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0000000d}.item-card .item-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.item-card .item-header .item-number{font-size:.75rem;font-weight:700;color:#8b5cf6;padding:.25rem .5rem;background:#fff;border-radius:4px}.item-card .item-header .remove-btn{padding:.375rem .625rem;background:transparent;border:none;color:#ef4444;cursor:pointer;border-radius:4px;transition:all .2s}.item-card .item-header .remove-btn:hover{background:#fee2e2}.item-card .item-header .remove-btn i{font-size:.875rem}.item-card .item-body{padding:1rem}.advanced-group{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.advanced-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.advanced-group h4{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.outcomes-preview{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.outcomes-preview .outcome-chip{display:inline-flex;align-items:center;padding:.375rem .75rem;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;font-size:.75rem;font-weight:600;color:#475569}.export-info{margin-top:1rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.export-info .info-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid #e2e8f0}.export-info .info-row:last-child{border-bottom:none;padding-bottom:0}.export-info .info-row .label{font-size:.75rem;font-weight:600;color:#64748b;min-width:120px}.export-info .info-row code{flex:1;padding:.25rem .5rem;background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-size:.75rem;color:#1e293b;font-family:JetBrains Mono,monospace}.settings-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;border-top:1px solid #e2e8f0;background:#f8fafc}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:#94a3b8}.empty-state i{font-size:3rem;margin-bottom:1rem}.empty-state p{margin:0;font-size:.875rem}.final-result{margin-top:1.5rem;padding-top:1.5rem;border-top:2px solid #e2e8f0}.final-result .result-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background:#f8fafc;border-radius:8px;margin-bottom:1rem;cursor:pointer;transition:all .2s}.final-result .result-header:hover{background:#f1f5f9;transform:translate(-2px)}.final-result .result-header h4{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.875rem;font-weight:600;color:#475569;text-transform:uppercase}.final-result .result-header h4 i{font-size:.875rem;transition:transform .2s}.final-result .result-header .toggle-hint{font-size:.75rem;color:#94a3b8}.final-result .result-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.final-result .result-card .result-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0}.final-result .result-card .result-row:not(:last-child){border-bottom:1px solid #e2e8f0}.final-result .result-card .result-row strong{font-size:.875rem;color:#475569;min-width:100px}.final-result .result-card .result-row .badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.final-result .result-card .result-row .badge.badge-running{background:#dbeafe;color:#1e40af}.final-result .result-card .result-row .badge.badge-finished{background:#d1fae5;color:#065f46}.final-result .result-card .result-row .badge.badge-cancelled{background:#fed7aa;color:#92400e}.final-result .result-card .result-row .badge.badge-faulted{background:#fee2e2;color:#991b1b}.final-result .result-card .result-row pre{margin:.5rem 0 0;padding:.75rem;background:#0f172a;color:#e2e8f0;border-radius:6px;font-family:JetBrains Mono,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto;width:100%}.activities-list::-webkit-scrollbar,.result-body::-webkit-scrollbar{width:8px}.activities-list::-webkit-scrollbar-track,.result-body::-webkit-scrollbar-track{background:#f1f5f9}.activities-list::-webkit-scrollbar-thumb,.result-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.activities-list::-webkit-scrollbar-thumb:hover,.result-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.activity-card{cursor:grab}.activity-card:active{cursor:grabbing}.activity-card[draggable=true]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visual-node[draggable=true]{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visual-node:active{cursor:grabbing}.canvas-area[data-drag-over=true]{background-color:#8b5cf60d}.connector:hover{transform:scale(1.3);box-shadow:0 0 0 3px #8b5cf64d}.connector-out.active{animation:pulse 1s infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #ef44444d}50%{box-shadow:0 0 0 6px #ef44441a}}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:2000px}}.execution-dialog-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.execution-dialog{width:90vw;max-width:1200px;height:90vh;background:#fff;border-radius:16px;box-shadow:0 25px 50px #0000004d;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .3s ease}.execution-dialog-header{padding:1.5rem 2rem;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.execution-dialog-header .header-content{display:flex;align-items:center;gap:1rem;flex:1}.execution-dialog-header .header-content>i{font-size:2.5rem;opacity:.9}.execution-dialog-header .header-content .header-info h2{margin:0;font-size:1.75rem;font-weight:700}.execution-dialog-header .header-content .header-info p{margin:.25rem 0 0;opacity:.9;font-size:.95rem}.execution-dialog-header .close-btn{background:#fff3;border:none;width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:#fff;font-size:1.25rem}.execution-dialog-header .close-btn:hover:not(:disabled){background:#ffffff4d;transform:scale(1.05)}.execution-dialog-header .close-btn:disabled{opacity:.5;cursor:not-allowed}.execution-dialog-body{flex:1;overflow-y:auto;padding:2rem;background:#f8fafc}.execution-dialog-footer{padding:1rem 2rem;background:#fff;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.execution-dialog-footer .footer-info{display:flex;gap:1.5rem}.execution-dialog-footer .footer-info .time-info{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.875rem}.execution-dialog-footer .footer-info .time-info i{color:#8b5cf6}.execution-dialog-footer .footer-actions{display:flex;gap:.75rem}.workflow-info-panel{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 4px 6px #0000000d}.workflow-info-panel .info-section{margin-bottom:2rem}.workflow-info-panel .info-section h3{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:#1e293b;font-size:1.25rem}.workflow-info-panel .info-section h3 i{color:#8b5cf6}.workflow-info-panel .info-section .description{color:#475569;line-height:1.7;margin:0}.workflow-info-panel .info-section .features-list{list-style:none;padding:0;margin:0;display:grid;gap:.75rem}.workflow-info-panel .info-section .features-list li{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#f8fafc;border-radius:8px;color:#334155}.workflow-info-panel .info-section .features-list li i{color:#10b981;font-size:1.125rem}.workflow-info-panel .start-section{text-align:center;padding:2rem;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:12px;border:2px dashed #10b981}.workflow-info-panel .start-section .start-illustration{margin-bottom:1rem}.workflow-info-panel .start-section .start-illustration i{font-size:4rem;color:#10b981;animation:float 3s ease-in-out infinite}.workflow-info-panel .start-section h3{margin:0 0 .5rem;color:#1e293b;font-size:1.5rem}.workflow-info-panel .start-section p{margin:0 0 1.5rem;color:#64748b}.state-machine-ui .issue-tracker{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 2px #0000000d}.state-machine-ui .issue-tracker .issue-header-main{padding:1.5rem 2rem 1rem;border-bottom:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#64748b;margin-bottom:.75rem}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .project-name{color:#3b82f6;font-weight:600}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .separator{color:#94a3b8}.state-machine-ui .issue-tracker .issue-header-main .issue-breadcrumb .issue-key{color:#64748b}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title{display:flex;align-items:center;gap:.75rem}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .type-badge{padding:.375rem .75rem;border-radius:4px;font-size:.8125rem;font-weight:600;display:flex;align-items:center;gap:.375rem;background:#eff6ff;color:#3b82f6}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .type-badge i{font-size:1rem}.state-machine-ui .issue-tracker .issue-header-main .issue-type-title .issue-main-title{margin:0;font-size:1.5rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-action-bar{padding:.75rem 2rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left{display:flex;gap:.5rem}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn{padding:.5rem 1rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;color:#334155}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn:disabled{opacity:.5;cursor:not-allowed}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-primary:hover:not(:disabled){background:#2563eb}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-success{background:#10b981;color:#fff;border-color:#10b981}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-success:hover:not(:disabled){background:#059669}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-warning{background:#f59e0b;color:#fff;border-color:#f59e0b}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-left .status-transition-btn.btn-warning:hover:not(:disabled){background:#d97706}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-right .more-actions-btn{padding:.5rem 1rem;border:1px solid #cbd5e1;border-radius:4px;background:#fff;font-weight:500;font-size:.875rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;color:#334155;transition:all .2s}.state-machine-ui .issue-tracker .issue-action-bar .action-bar-right .more-actions-btn:hover{background:#f1f5f9}.state-machine-ui .issue-tracker .issue-main-content{display:grid;grid-template-columns:320px 1fr;gap:2rem;padding:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section{margin-bottom:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row{display:flex;padding:.625rem 0;border-bottom:1px solid #f1f5f9}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row:last-child{border-bottom:none}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row label{min-width:100px;font-size:.8125rem;color:#64748b;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value i{font-size:1rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .status-badge{padding:.25rem .625rem;border-radius:4px;color:#fff;font-weight:600;font-size:.75rem;text-transform:uppercase}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .view-workflow-link{color:#3b82f6;font-size:.8125rem;text-decoration:none;margin-left:.5rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .view-workflow-link:hover{text-decoration:underline}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .details-section .detail-row .detail-value .user-avatar{width:24px;height:24px;border-radius:50%;background:#8b5cf6;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz{background:#f8fafc;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz h3{margin:0 0 1rem;font-size:.875rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state{display:flex;flex-direction:column;align-items:center;gap:.375rem;opacity:.4;transition:opacity .2s}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.active,.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.completed{opacity:1}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state .state-circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;box-shadow:0 2px 4px #0000001a}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state .state-name{font-size:.6875rem;color:#64748b;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-state.active .state-name{color:#1e293b;font-weight:600}.state-machine-ui .issue-tracker .issue-main-content .issue-details-panel .state-machine-viz .states-flow .flow-arrow{color:#cbd5e1;font-size:.75rem;margin:0 .25rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section{margin-bottom:2rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section h3,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section h3{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1e293b}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section .description-content,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .description-content{padding:1rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .description-section .description-content p,.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .description-content p{margin:0;color:#475569;line-height:1.7;font-size:.875rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline{display:flex;flex-direction:column;gap:1rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item{display:flex;gap:.75rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-avatar{width:32px;height:32px;border-radius:50%;background:#8b5cf6;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.875rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content{flex:1;padding-bottom:1rem;border-bottom:1px solid #f1f5f9}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header{font-size:.875rem;color:#334155;line-height:1.6;margin-bottom:.375rem}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header strong{color:#1e293b;font-weight:600}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-header .activity-action{color:#64748b}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-meta{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#94a3b8}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item .activity-content .activity-meta .activity-label{color:#8b5cf6;font-weight:500}.state-machine-ui .issue-tracker .issue-main-content .issue-description-panel .activity-section .activity-timeline .activity-item:last-child .activity-content{border-bottom:none;padding-bottom:0}.registration-ui{display:flex;justify-content:center;align-items:center;min-height:400px}.registration-ui .registration-card{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 4px 6px #0000000d;text-align:center;max-width:500px}.registration-ui .registration-card .registration-icon{margin-bottom:1.5rem}.registration-ui .registration-card .registration-icon i{font-size:5rem;color:#8b5cf6}.registration-ui .registration-card h3{margin:0 0 .75rem;color:#1e293b;font-size:1.75rem;font-weight:700}.registration-ui .registration-card .registration-desc{margin:0 0 2rem;color:#64748b;line-height:1.7}.registration-ui .registration-card .registration-progress{padding:2rem;background:#fef3c7;border-radius:8px}.registration-ui .registration-card .registration-progress .progress-spinner{margin-bottom:1rem}.registration-ui .registration-card .registration-progress .progress-spinner i{font-size:3rem;color:#f59e0b}.registration-ui .registration-card .registration-progress p{margin:0;color:#92400e;font-weight:500}.registration-ui .registration-card .registration-success{padding:2rem;background:#f0fdf4;border-radius:8px}.registration-ui .registration-card .registration-success i{font-size:4rem;color:#10b981;margin-bottom:1rem}.registration-ui .registration-card .registration-success h4{margin:0 0 .5rem;color:#064e3b;font-size:1.5rem;font-weight:700}.registration-ui .registration-card .registration-success p{margin:0;color:#065f46}.default-execution-view{display:flex;justify-content:center;align-items:center;min-height:400px}.default-execution-view .execution-status{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;min-width:400px}.default-execution-view .execution-status i{font-size:5rem;margin-bottom:1.5rem}.default-execution-view .execution-status h3{margin:0 0 .75rem;font-size:1.75rem;font-weight:700}.default-execution-view .execution-status p{margin:0;color:#64748b;line-height:1.7}.default-execution-view .execution-status .status-running i{color:#f59e0b}.default-execution-view .execution-status .status-finished i{color:#10b981}.default-execution-view .execution-status .status-error i{color:#ef4444}.execution-logs-panel{margin-top:2rem;background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px #0000000d}.execution-logs-panel h3{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;color:#1e293b;font-size:1.125rem}.execution-logs-panel h3 i{color:#8b5cf6}.execution-logs-panel .logs-container-compact{max-height:300px;overflow-y:auto;background:#f8fafc;border-radius:8px;padding:.75rem}.execution-logs-panel .logs-container-compact .log-item-compact{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:6px;margin-bottom:.5rem;font-size:.875rem}.execution-logs-panel .logs-container-compact .log-item-compact:last-child{margin-bottom:0}.execution-logs-panel .logs-container-compact .log-item-compact .log-time{font-family:Courier New,monospace;color:#64748b;font-size:.8125rem;min-width:70px}.execution-logs-panel .logs-container-compact .log-item-compact .log-icon{display:flex;align-items:center;justify-content:center;width:20px}.execution-logs-panel .logs-container-compact .log-item-compact .log-icon i{font-size:1rem}.execution-logs-panel .logs-container-compact .log-item-compact .log-message{flex:1;color:#334155}.execution-logs-panel .logs-container-compact .log-item-compact.log-info{background:#eff6ff}.execution-logs-panel .logs-container-compact .log-item-compact.log-info .log-icon i{color:#3b82f6}.execution-logs-panel .logs-container-compact .log-item-compact.log-success{background:#f0fdf4}.execution-logs-panel .logs-container-compact .log-item-compact.log-success .log-icon i{color:#10b981}.execution-logs-panel .logs-container-compact .log-item-compact.log-warning{background:#fffbeb}.execution-logs-panel .logs-container-compact .log-item-compact.log-warning .log-icon i{color:#f59e0b}.execution-logs-panel .logs-container-compact .log-item-compact.log-error{background:#fef2f2}.execution-logs-panel .logs-container-compact .log-item-compact.log-error .log-icon i{color:#ef4444}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9saWIvZmVhdHVyZXMvZW5naW5lL3N0dWRpby93b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9tb2R1bGVzL3dvcmtmbG93LW1hbmFnZW1lbnQvc3JjL2xpYi9mZWF0dXJlcy9lbmdpbmUvc3R1ZGlvL3dvcmtmbG93LXN0dWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSw0QkFBNEIsRUFBOEMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN0SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxv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NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx5QkFBeUI7eUJBQ3JDO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYVGV4dEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90ZXh0LWJveCc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWxlY3QtYm94JztcbmltcG9ydCB7IEFYUFdvcmtmbG93TWFuYWdlciwgQVhQQWN0aXZpdHlEZWZpbml0aW9uU2VydmljZSwgQVhQQWN0aXZpdHlEZWZpbml0aW9uLCBBWFBBY3Rpdml0eUNhdGVnb3J5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XG5pbXBvcnQgeyBBWFBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlLCBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IEFYUFBhZ2VMYXlvdXRCYXNlLCBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCwgQVhQUGFnZUxheW91dENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3ZpZXdzJztcbmltcG9ydCB7IEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsIEFYUFRoZW1lTGF5b3V0U3RhcnRTaWRlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBWFBBY3Rpb25NZW51SXRlbSwgQVhQRXhlY3V0ZUNvbW1hbmQgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgUm9vdENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0JztcbmltcG9ydCB7IEFYTUFjdGl2aXR5Q2F0ZWdvcmllc1RyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWN0aXZpdHktY2F0ZWdvcmllcy10cmVlL2FjdGl2aXR5LWNhdGVnb3JpZXMtdHJlZS5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgQWN0aXZpdHlDYXRlZ29yeVVJIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGNvbG9yOiBzdHJpbmc7XG4gIGFjdGl2aXRpZXM6IEFjdGl2aXR5SW5mb1tdO1xufVxuXG5pbnRlcmZhY2UgUHJvcGVydHlTY2hlbWEge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnYm9vbGVhbicgfCAnb2JqZWN0JyB8ICdhcnJheScgfCAnc2VsZWN0JyB8ICdhbnknO1xuICByZXF1aXJlZDogYm9vbGVhbjtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGRlZmF1bHRWYWx1ZT86IGFueTtcbiAgb3B0aW9ucz86IEFycmF5PHsgdmFsdWU6IGFueTsgbGFiZWw6IHN0cmluZyB9PjsgLy8gRm9yIHNlbGVjdCB0eXBlXG59XG5cbmludGVyZmFjZSBBY3Rpdml0eUluZm8ge1xuICB0eXBlOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWNvbjogc3RyaW5nO1xuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eVNjaGVtYVtdO1xuICBkZWZhdWx0UHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIGFueT47IC8vIERlZmF1bHQgcHJvcGVydHkgdmFsdWVzXG59XG5cbmludGVyZmFjZSBFeGVjdXRpb25Mb2cge1xuICB0aW1lc3RhbXA6IERhdGU7XG4gIGxldmVsOiAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIGV4cGFuZGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29ubmVjdGlvbiBmcm9tIG9uZSBvdXRjb21lIHRvIGEgdGFyZ2V0IG5vZGUuXG4gKi9cbmludGVyZmFjZSBPdXRjb21lQ29ubmVjdGlvbiB7XG4gIG91dGNvbWU6IHN0cmluZzsgIC8vIGUuZy4sIFwiMjAwXCIsIFwiRG9uZVwiLCBcIkZhaWxlZFwiXG4gIHRhcmdldE5vZGVJZDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmlzdWFsTm9kZSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHBvc2l0aW9uOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBvdXRjb21lQ29ubmVjdGlvbnMgaW5zdGVhZFxuICAgKiBTaW1wbGUgbGlzdCBvZiBjb25uZWN0aW9ucyAoZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAqL1xuICBjb25uZWN0aW9uczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE91dGNvbWUtYmFzZWQgY29ubmVjdGlvbnMuXG4gICAqIEVhY2ggb3V0Y29tZSBjYW4gY29ubmVjdCB0byBhIGRpZmZlcmVudCB0YXJnZXQuXG4gICAqL1xuICBvdXRjb21lQ29ubmVjdGlvbnM/OiBPdXRjb21lQ29ubmVjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBBdmFpbGFibGUgb3V0Y29tZXMgZm9yIHRoaXMgbm9kZS5cbiAgICogQ29tcHV0ZWQgZnJvbSBhY3Rpdml0eSBkZXNjcmlwdG9yLlxuICAgKi9cbiAgb3V0Y29tZXM/OiBzdHJpbmdbXTtcbn1cblxudHlwZSBFZGl0b3JUYWIgPSAnanNvbicgfCAndmlzdWFsJztcbnR5cGUgU2V0dGluZ3NUYWIgPSAnZ2VuZXJhbCcgfCAnaW5wdXRzJyB8ICdvdXRwdXRzJyB8ICd2YXJpYWJsZXMnIHwgJ2FkdmFuY2VkJztcblxuaW50ZXJmYWNlIFdvcmtmbG93U2V0dGluZ3Mge1xuICAvLyBJZGVudGlmaWNhdGlvblxuICBkZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8vIFdvcmtmbG93IENvbW1vblxuICBpbnB1dHM6IFdvcmtmbG93SW5wdXRbXTtcbiAgb3V0cHV0czogV29ya2Zsb3dPdXRwdXRbXTtcbiAgdmFyaWFibGVzOiBXb3JrZmxvd1ZhcmlhYmxlW107XG4gIG91dGNvbWVzOiBzdHJpbmdbXTtcblxuICAvLyBPcHRpb25zXG4gIHVzYWJsZUFzQWN0aXZpdHk6IGJvb2xlYW47XG4gIGF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3M6IGJvb2xlYW47XG5cbiAgLy8gTWV0YWRhdGFcbiAgdmVyc2lvbjogbnVtYmVyO1xuICBpc0xhdGVzdDogYm9vbGVhbjtcbiAgaXNQdWJsaXNoZWQ6IGJvb2xlYW47XG4gIHRvb2xWZXJzaW9uOiBzdHJpbmc7XG4gIHByb3ZpZGVyTmFtZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgV29ya2Zsb3dJbnB1dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHNjaGVtYToge1xuICAgIGRhdGFUeXBlOiBzdHJpbmc7XG4gICAgbnVsbGFibGU/OiBib29sZWFuO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICBoaWRkZW4/OiBib29sZWFuIHwgc3RyaW5nO1xuICAgIGRlZmF1bHRWYWx1ZT86IGFueSB8IHN0cmluZyB8ICgoY29udGV4dDogYW55IHwgbnVsbCkgPT4gYW55KTtcbiAgfTtcbiAgdmFsaWRhdGlvbnM/OiBBcnJheTx7IHJ1bGU6IHN0cmluZzsgbWVzc2FnZT86IHN0cmluZzsgb3B0aW9ucz86IGFueSB9Pjtcbn1cblxuaW50ZXJmYWNlIFdvcmtmbG93T3V0cHV0IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc2NoZW1hOiB7XG4gICAgZGF0YVR5cGU6IHN0cmluZztcbiAgfTtcbn1cblxuaW50ZXJmYWNlIFdvcmtmbG93VmFyaWFibGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGVOYW1lOiBzdHJpbmc7XG4gIHZhbHVlPzogYW55O1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc3R1ZGlvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBBWEJ1dHRvbk1vZHVsZSxcbiAgICBBWFRleHRCb3hNb2R1bGUsXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWFBQYWdlTGF5b3V0Q29tcG9uZW50LFxuICAgIEFYUFRoZW1lTGF5b3V0QmxvY2tDb21wb25lbnQsXG4gICAgQVhQVGhlbWVMYXlvdXRTdGFydFNpZGVDb21wb25lbnQsXG4gICAgQVhNQWN0aXZpdHlDYXRlZ29yaWVzVHJlZUNvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFBQYWdlTGF5b3V0QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBXb3JrZmxvd1N0dWRpb0NvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vd29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dTdHVkaW9Db21wb25lbnQgZXh0ZW5kcyBBWFBQYWdlTGF5b3V0QmFzZUNvbXBvbmVudCB7XG4gIC8vI3JlZ2lvbiAtLS0tICAgU2VydmljZXMgJiBEZXBlbmRlbmNpZXMgICAtLS0tXG5cbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvd01hbmFnZXIgPSBpbmplY3QoQVhQV29ya2Zsb3dNYW5hZ2VyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eURlZmluaXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYUEFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0eVNlcnZpY2UgPSBpbmplY3QoQVhQRW50aXR5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFN0YXRlICAgLS0tLVxuXG4gIGFjdGl2ZVRhYiA9IHNpZ25hbDxFZGl0b3JUYWI+KCdqc29uJyk7XG4gIHNlbGVjdGVkQ2F0ZWdvcnkgPSBzaWduYWw8QVhQQWN0aXZpdHlDYXRlZ29yeSB8IG51bGw+KG51bGwpO1xuICBzZWxlY3RlZEFjdGl2aXR5ID0gc2lnbmFsPEFYUEFjdGl2aXR5RGVmaW5pdGlvbiB8IG51bGw+KG51bGwpO1xuICB3b3JrZmxvd0pzb24gPSBzaWduYWw8c3RyaW5nPih0aGlzLmdldEVtcHR5V29ya2Zsb3coKSk7XG4gIHZpc3VhbE5vZGVzID0gc2lnbmFsPFZpc3VhbE5vZGVbXT4oW10pO1xuICBzZWxlY3RlZE5vZGUgPSBzaWduYWw8VmlzdWFsTm9kZSB8IG51bGw+KG51bGwpO1xuICBpc0V4ZWN1dGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIGV4ZWN1dGlvbkxvZ3MgPSBzaWduYWw8RXhlY3V0aW9uTG9nW10+KFtdKTtcbiAgZXhlY3V0aW9uUmVzdWx0ID0gc2lnbmFsPGFueT4obnVsbCk7XG5cbiAgLy8gRXhlY3V0aW9uIERpYWxvZyBTdGF0ZVxuICBzaG93RXhlY3V0aW9uRGlhbG9nID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgd29ya2Zsb3dJbnN0YW5jZVN0YXRlID0gc2lnbmFsPGFueT4obnVsbCk7XG5cbiAgLy8gVUkgU3RhdGVcbiAgc2hvd1Byb3BlcnRpZXNQYW5lbCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgc2hvd1dvcmtmbG93U2V0dGluZ3MgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBhY3RpdmVTZXR0aW5nc1RhYiA9IHNpZ25hbDxTZXR0aW5nc1RhYj4oJ2dlbmVyYWwnKTtcbiAgc2hvd0V4ZWN1dGlvblJlc3VsdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgLy8gV29ya2Zsb3cgU2V0dGluZ3NcbiAgd29ya2Zsb3dTZXR0aW5ncyA9IHNpZ25hbDxXb3JrZmxvd1NldHRpbmdzPih7XG4gICAgZGVmaW5pdGlvbklkOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgaW5wdXRzOiBbXSxcbiAgICBvdXRwdXRzOiBbXSxcbiAgICB2YXJpYWJsZXM6IFtdLFxuICAgIG91dGNvbWVzOiBbJ0RvbmUnXSxcbiAgICB1c2FibGVBc0FjdGl2aXR5OiBmYWxzZSxcbiAgICBhdXRvVXBkYXRlQ29uc3VtaW5nV29ya2Zsb3dzOiBmYWxzZSxcbiAgICB2ZXJzaW9uOiAxLFxuICAgIGlzTGF0ZXN0OiB0cnVlLFxuICAgIGlzUHVibGlzaGVkOiBmYWxzZSxcbiAgICB0b29sVmVyc2lvbjogJzEuMC4wJyxcbiAgICBwcm92aWRlck5hbWU6ICdXb3JrZmxvd1N0dWRpbydcbiAgfSk7XG5cbiAgLy8gQ2FudmFzIHN0YXRlXG4gIGNhbnZhc09mZnNldCA9IHsgeDogMCwgeTogMCB9O1xuICBpc0RyYWdnaW5nQ2FudmFzID0gZmFsc2U7XG4gIGRyYWdTdGFydFBvcyA9IHsgeDogMCwgeTogMCB9O1xuICBkcmFnZ2VkQWN0aXZpdHk6IEFjdGl2aXR5SW5mbyB8IG51bGwgPSBudWxsO1xuICBkcmFnZ2VkTm9kZTogVmlzdWFsTm9kZSB8IG51bGwgPSBudWxsO1xuICBub2RlRHJhZ09mZnNldCA9IHsgeDogMCwgeTogMCB9O1xuICBjb25uZWN0aW9uU291cmNlOiB7IG5vZGU6IFZpc3VhbE5vZGU7IHR5cGU6ICdpbicgfCAnb3V0Jzsgb3V0Y29tZT86IHN0cmluZyB9IHwgbnVsbCA9IG51bGw7XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgLy8gUGFnZSBsYXlvdXQgaW5pdGlhbGl6YXRpb25cbiAgICBhd2FpdCBzdXBlci5uZ09uSW5pdCgpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBQYWdlIExheW91dCBPdmVycmlkZXMgICAtLS0tXG5cbiAgb3ZlcnJpZGUgYXN5bmMgZ2V0UGFnZVRpdGxlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8ubWVudXMud29ya2Zsb3ctc3R1ZGlvLnRpdGxlJyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQYWdlRGVzY3JpcHRpb24oKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8ubWVudXMud29ya2Zsb3ctc3R1ZGlvLmRlc2NyaXB0aW9uJyk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBnZXRQcmltYXJ5TWVudUl0ZW1zKCk6IFByb21pc2U8QVhQQWN0aW9uTWVudUl0ZW1bXT4ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdleGVjdXRlLXdvcmtmbG93JyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uYWN0aW9ucy5leGVjdXRlLXdvcmtmbG93LnRpdGxlJyxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXBsYXknLFxuICAgICAgICBjb2xvcjogJ3N1Y2Nlc3MnLFxuICAgICAgICBkaXNhYmxlZDogdGhpcy5pc0V4ZWN1dGluZygpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3dvcmtmbG93LXNldHRpbmdzJyxcbiAgICAgICAgdGl0bGU6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uYWN0aW9ucy5zZXR0aW5ncy50aXRsZScsXG4gICAgICAgIGljb246ICdmYS1saWdodCBmYS1jb2cnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cG9ydC13b3JrZmxvdycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmFjdGlvbnMuZXhwb3J0LnRpdGxlJyxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWRvd25sb2FkJyxcbiAgICAgICAgY29sb3I6ICdkZWZhdWx0JyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdldFNlY29uZGFyeU1lbnVJdGVtcygpOiBQcm9taXNlPEFYUEFjdGlvbk1lbnVJdGVtW10+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnZm9ybWF0LWpzb24nLFxuICAgICAgICB0aXRsZTogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5hY3Rpb25zLmZvcm1hdC1qc29uLnRpdGxlJyxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLWNvZGUnLFxuICAgICAgICBjb2xvcjogJ2RlZmF1bHQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2NsZWFyLWNhbnZhcycsXG4gICAgICAgIHRpdGxlOiAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmFjdGlvbnMuY2xlYXItY2FudmFzLnRpdGxlJyxcbiAgICAgICAgaWNvbjogJ2ZhLWxpZ2h0IGZhLXRyYXNoJyxcbiAgICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgICB2aXNpYmxlOiB0aGlzLmFjdGl2ZVRhYigpID09PSAndmlzdWFsJyxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogQVhQRXhlY3V0ZUNvbW1hbmQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzd2l0Y2ggKGNvbW1hbmQubmFtZSkge1xuICAgICAgY2FzZSAnZXhlY3V0ZS13b3JrZmxvdyc6XG4gICAgICAgIHRoaXMub3BlbkV4ZWN1dGlvbkRpYWxvZygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dvcmtmbG93LXNldHRpbmdzJzpcbiAgICAgICAgdGhpcy5vcGVuV29ya2Zsb3dTZXR0aW5ncygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2V4cG9ydC13b3JrZmxvdyc6XG4gICAgICAgIHRoaXMuZG93bmxvYWRXb3JrZmxvd0RlZmluaXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmb3JtYXQtanNvbic6XG4gICAgICAgIHRoaXMuZm9ybWF0SnNvbigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NsZWFyLWNhbnZhcyc6XG4gICAgICAgIHRoaXMuY2xlYXJDYW52YXMoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgLy8jcmVnaW9uIC0tLS0gICBDYXRlZ29yeSAmIEFjdGl2aXR5IExvYWRpbmcgICAtLS0tXG5cbiAgLyoqXG4gICAqIEhhbmRsZSBjYXRlZ29yeSBzZWxlY3Rpb24gZnJvbSB0cmVlXG4gICAqL1xuICBvbkNhdGVnb3J5Q2xpY2soY2F0ZWdvcnk6IEFYUEFjdGl2aXR5Q2F0ZWdvcnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuc2V0KGNhdGVnb3J5KTtcbiAgICB0aGlzLnNlbGVjdGVkQWN0aXZpdHkuc2V0KG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBhY3Rpdml0eSBzZWxlY3Rpb24gZnJvbSB0cmVlXG4gICAqL1xuICBvbkFjdGl2aXR5Q2xpY2soYWN0aXZpdHk6IEFYUEFjdGl2aXR5RGVmaW5pdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBY3Rpdml0eS5zZXQoYWN0aXZpdHkpO1xuICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgYEFjdGl2aXR5IHNlbGVjdGVkOiAke2FjdGl2aXR5Lm5hbWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBBWFBBY3Rpdml0eURlZmluaXRpb24gdG8gQWN0aXZpdHlJbmZvXG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRBY3Rpdml0eURlZmluaXRpb25Ub0luZm8oYWN0aXZpdHk6IEFYUEFjdGl2aXR5RGVmaW5pdGlvbik6IEFjdGl2aXR5SW5mbyB7XG4gICAgY29uc3QgcHJvcGVydGllczogUHJvcGVydHlTY2hlbWFbXSA9IChhY3Rpdml0eS5pbnB1dHMgfHwgW10pLm1hcChpbnB1dCA9PiAoe1xuICAgICAgbmFtZTogaW5wdXQubmFtZSxcbiAgICAgIHR5cGU6IHRoaXMuZ2V0UHJvcGVydHlUeXBlRnJvbVNjaGVtYShpbnB1dC5zY2hlbWEpLFxuICAgICAgcmVxdWlyZWQ6ICFpbnB1dC5zY2hlbWEubnVsbGFibGUsXG4gICAgICBkZXNjcmlwdGlvbjogaW5wdXQuZGVzY3JpcHRpb24sXG4gICAgICBkZWZhdWx0VmFsdWU6IGlucHV0LnNjaGVtYS5kZWZhdWx0VmFsdWVcbiAgICB9KSk7XG5cbiAgICBjb25zdCBkZWZhdWx0UHJvcGVydGllczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgIGlmIChwcm9wLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlZmF1bHRQcm9wZXJ0aWVzW3Byb3AubmFtZV0gPSBwcm9wLmRlZmF1bHRWYWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiBhY3Rpdml0eS50eXBlLFxuICAgICAgbmFtZTogYWN0aXZpdHkubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBhY3Rpdml0eS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIGljb246IGFjdGl2aXR5Lmljb24gfHwgJ2ZhLWxpZ2h0IGZhLWNpcmNsZScsXG4gICAgICBwcm9wZXJ0aWVzLFxuICAgICAgZGVmYXVsdFByb3BlcnRpZXNcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBwcm9wZXJ0eSB0eXBlIGZyb20gc2NoZW1hXG4gICAqL1xuICBwcml2YXRlIGdldFByb3BlcnR5VHlwZUZyb21TY2hlbWEoc2NoZW1hOiBhbnkpOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ29iamVjdCcgfCAnYXJyYXknIHwgJ3NlbGVjdCcgfCAnYW55JyB7XG4gICAgY29uc3QgZGF0YVR5cGUgPSBzY2hlbWE/LmRhdGFUeXBlIHx8ICdzdHJpbmcnO1xuICAgIGlmIChkYXRhVHlwZSA9PT0gJ2FycmF5JykgcmV0dXJuICdhcnJheSc7XG4gICAgaWYgKGRhdGFUeXBlID09PSAnb2JqZWN0JykgcmV0dXJuICdvYmplY3QnO1xuICAgIGlmIChkYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgIGlmIChkYXRhVHlwZSA9PT0gJ251bWJlcicgfHwgZGF0YVR5cGUgPT09ICdpbnRlZ2VyJykgcmV0dXJuICdudW1iZXInO1xuICAgIHJldHVybiAnc3RyaW5nJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY2F0ZWdvcnkgY29sb3JcbiAgICovXG4gIHByaXZhdGUgZ2V0Q2F0ZWdvcnlDb2xvcihjYXRlZ29yeUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9yTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgJ3dvcmtmbG93LW1hcmtlcnMnOiAnIzEwQjk4MScsXG4gICAgICAnY29udHJvbC1mbG93JzogJyMzQjgyRjYnLFxuICAgICAgJ3VzZXItaW50ZXJhY3Rpb24nOiAnIzhCNUNGNicsXG4gICAgICAnZGF0YSc6ICcjMTBCOTgxJyxcbiAgICAgICduYXZpZ2F0aW9uJzogJyNGNTlFMEInLFxuICAgICAgJ2V2ZW50cyc6ICcjRUY0NDQ0JyxcbiAgICAgICdodHRwJzogJyMwNkI2RDQnXG4gICAgfTtcbiAgICByZXR1cm4gY29sb3JNYXBbY2F0ZWdvcnlJZF0gfHwgJyM2NDc0OEInO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBlbXB0eSB3b3JrZmxvdyBKU09OXG4gICAqL1xuICBwcml2YXRlIGdldEVtcHR5V29ya2Zsb3coKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgaWQ6ICduZXctd29ya2Zsb3cnLFxuICAgICAgbmFtZTogJycsXG4gICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICB2ZXJzaW9uOiAxLFxuICAgICAgcm9vdDoge1xuICAgICAgICBpZDogJ3Jvb3QnLFxuICAgICAgICB0eXBlOiAnd29ya2Zsb3ctYWN0aXZpdHk6c2VxdWVuY2UnLFxuICAgICAgICBuYW1lOiAnUm9vdCcsXG4gICAgICAgIGNoaWxkcmVuOiBbXVxuICAgICAgfVxuICAgIH0sIG51bGwsIDIpO1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG5cblxuXG5cbiAgLyoqXG4gICAqIFN5bmMgdmlzdWFsaXplciB3aXRoIEpTT04gY2hhbmdlc1xuICAgKi9cbiAgc3luY1Zpc3VhbGl6ZXJXaXRoSnNvbigpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuYWN0aXZlVGFiKCkgPT09ICd2aXN1YWwnKSB7XG4gICAgICAgIHRoaXMuanNvblRvVmlzdWFsKCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbV29ya2Zsb3dTdHVkaW9dIEVycm9yIHN5bmNpbmcgdmlzdWFsaXplcjonLCBlcnIpO1xuICAgIH1cbiAgfVxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgV29ya2Zsb3cgRXhlY3V0aW9uICAgLS0tLVxuXG4gIC8qKlxuICAgKiBPcGVuIGV4ZWN1dGlvbiBkaWFsb2dcbiAgICovXG4gIG9wZW5FeGVjdXRpb25EaWFsb2coKSB7XG4gICAgdGhpcy5zaG93RXhlY3V0aW9uRGlhbG9nLnNldCh0cnVlKTtcbiAgICB0aGlzLndvcmtmbG93SW5zdGFuY2VTdGF0ZS5zZXQobnVsbCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgZXhlY3V0aW9uIGRpYWxvZ1xuICAgKi9cbiAgY2xvc2VFeGVjdXRpb25EaWFsb2coKSB7XG4gICAgdGhpcy5zaG93RXhlY3V0aW9uRGlhbG9nLnNldChmYWxzZSk7XG4gICAgdGhpcy53b3JrZmxvd0luc3RhbmNlU3RhdGUuc2V0KG51bGwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHdvcmtmbG93IGV4ZWN1dGlvblxuICAgKi9cbiAgYXN5bmMgc3RhcnRXb3JrZmxvd0V4ZWN1dGlvbigpIHtcbiAgICBhd2FpdCB0aGlzLnJ1bldvcmtmbG93KCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiDYp9is2LHYp9uMIHdvcmtmbG93XG4gICAqL1xuICBhc3luYyBydW5Xb3JrZmxvdygpIHtcbiAgICB0aGlzLmlzRXhlY3V0aW5nLnNldCh0cnVlKTtcbiAgICB0aGlzLmV4ZWN1dGlvbkxvZ3Muc2V0KFtdKTtcbiAgICB0aGlzLmV4ZWN1dGlvblJlc3VsdC5zZXQobnVsbCk7XG4gICAgdGhpcy5zaG93RXhlY3V0aW9uUmVzdWx0LnNldChmYWxzZSk7IC8vINio2LPYqtmGINmG2KrbjNis2Ycg2YLYqNmE24xcbiAgICB0aGlzLndvcmtmbG93SW5zdGFuY2VTdGF0ZS5zZXQoe1xuICAgICAgc3RhdHVzOiAncnVubmluZycsXG4gICAgICBzdGFydFRpbWU6IG5ldyBEYXRlKCksXG4gICAgICBjdXJyZW50U3RhdGU6IG51bGxcbiAgICB9KTtcblxuICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgJ9i02LHZiNi5INin2KzYsdin24wgV29ya2Zsb3cuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICAvLyBQYXJzZSBKU09OXG4gICAgICBjb25zdCB3b3JrZmxvd0RlZiA9IEpTT04ucGFyc2UodGhpcy53b3JrZmxvd0pzb24oKSk7XG4gICAgICBjb25zdCBsb2dNZXNzYWdlID0gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMoJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OnRlc3QtcGFnZXMubWVzc2FnZXMuaW5mby5qc29uLXBhcnNlZCcpO1xuICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBsb2dNZXNzYWdlLCB3b3JrZmxvd0RlZik7XG5cbiAgICAgIC8vIFNhdmUgd29ya2Zsb3cgZGVmaW5pdGlvbiB0byBlbnRpdHkgc2VydmljZSBmaXJzdFxuICAgICAgY29uc3Qgd29ya2Zsb3dJZCA9IHdvcmtmbG93RGVmLmlkIHx8IGB3b3JrZmxvdy0ke0RhdGUubm93KCl9YDtcbiAgICAgIGNvbnN0IGRlZmluaXRpb25Ub1NhdmUgPSB0aGlzLmV4cG9ydFdvcmtmbG93RGVmaW5pdGlvbigpO1xuICAgICAgXG4gICAgICBpZiAoIWRlZmluaXRpb25Ub1NhdmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gZXhwb3J0IHdvcmtmbG93IGRlZmluaXRpb24nKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2F2ZSBvciB1cGRhdGUgd29ya2Zsb3cgZGVmaW5pdGlvblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICAgICAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICAgIFJvb3RDb25maWcuZW50aXRpZXMud29ya2Zsb3dEZWZpbml0aW9uLm5hbWVcbiAgICAgICAgKS5kYXRhKCkuYnlLZXkod29ya2Zsb3dJZCk7XG5cbiAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLndpdGhFbnRpdHkoXG4gICAgICAgICAgICBSb290Q29uZmlnLm1vZHVsZS5uYW1lLFxuICAgICAgICAgICAgUm9vdENvbmZpZy5lbnRpdGllcy53b3JrZmxvd0RlZmluaXRpb24ubmFtZVxuICAgICAgICAgICkuZGF0YSgpLnVwZGF0ZSh3b3JrZmxvd0lkLCBkZWZpbml0aW9uVG9TYXZlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2Uud2l0aEVudGl0eShcbiAgICAgICAgICAgIFJvb3RDb25maWcubW9kdWxlLm5hbWUsXG4gICAgICAgICAgICBSb290Q29uZmlnLmVudGl0aWVzLndvcmtmbG93RGVmaW5pdGlvbi5uYW1lXG4gICAgICAgICAgKS5kYXRhKCkuY3JlYXRlKHsgLi4uZGVmaW5pdGlvblRvU2F2ZSwgaWQ6IHdvcmtmbG93SWQgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzYXZlTWVzc2FnZSA9IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKCdAd29ya2Zsb3ctbWFuYWdlbWVudDp0ZXN0LXBhZ2VzLm1lc3NhZ2VzLnN1Y2Nlc3Mud29ya2Zsb3ctc2F2ZWQnKTtcbiAgICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBzYXZlTWVzc2FnZSk7XG4gICAgICB9IGNhdGNoIChzYXZlRXJyb3I6IGFueSkge1xuICAgICAgICAvLyBDb250aW51ZSBleGVjdXRpb24gZXZlbiBpZiBzYXZlIGZhaWxzXG4gICAgICAgIGNvbnN0IHNhdmVFcnJvck1lc3NhZ2UgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQHdvcmtmbG93LW1hbmFnZW1lbnQ6dGVzdC1wYWdlcy5tZXNzYWdlcy53YXJuaW5nLnNhdmUtZmFpbGVkJyk7XG4gICAgICAgIHRoaXMuYWRkTG9nKCd3YXJuaW5nJywgYCR7c2F2ZUVycm9yTWVzc2FnZX06ICR7c2F2ZUVycm9yLm1lc3NhZ2V9YCk7XG4gICAgICB9XG5cbiAgICAgIC8vINin2KzYsdin24wgd29ya2Zsb3dcbiAgICAgIGNvbnN0IGV4ZWN1dGluZ01lc3NhZ2UgPSBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYygnQHdvcmtmbG93LW1hbmFnZW1lbnQ6dGVzdC1wYWdlcy5tZXNzYWdlcy5pbmZvLmV4ZWN1dGluZycpO1xuICAgICAgdGhpcy5hZGRMb2coJ2luZm8nLCBleGVjdXRpbmdNZXNzYWdlKTtcblxuICAgICAgLy8gU3RhcnQgd29ya2Zsb3cgZXhlY3V0aW9uIHVzaW5nIHRoZSB3b3JrZmxvdyBuYW1lXG4gICAgICBjb25zdCB3b3JrZmxvd05hbWUgPSBkZWZpbml0aW9uVG9TYXZlLm5hbWUgfHwgd29ya2Zsb3dJZDtcbiAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLndvcmtmbG93TWFuYWdlci5zdGFydCh3b3JrZmxvd05hbWUsIHt9KTtcbiAgICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgYFdvcmtmbG93IHN0YXJ0ZWQuIEluc3RhbmNlIElEOiAke3Jlc3VsdC5pbnN0YW5jZUlkfWAsIHJlc3VsdCk7XG5cbiAgICAgIGlmICghcmVzdWx0Lmluc3RhbmNlSWQpIHtcbiAgICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCBXb3JrZmxvdyDYqNinINiu2LfYpyDZhdmI2KfYrNmHINi02K8nLCByZXN1bHQpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvblJlc3VsdC5zZXQocmVzdWx0KTtcbiAgICAgICAgdGhpcy5zaG93RXhlY3V0aW9uUmVzdWx0LnNldCh0cnVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgd29ya2Zsb3cgZXhlY3V0aW9uIGxvb3AgLSBleGVjdXRlIGFsbCBmcm9udGVuZCB0YXNrc1xuICAgICAgbGV0IGN1cnJlbnRSZXN1bHQgPSByZXN1bHQ7XG4gICAgICBsZXQgdGFza0NvdW50ID0gMDtcblxuICAgICAgd2hpbGUgKGN1cnJlbnRSZXN1bHQubmV4dFRhc2spIHtcbiAgICAgICAgdGFza0NvdW50Kys7XG4gICAgICAgIGNvbnN0IHRhc2sgPSBjdXJyZW50UmVzdWx0Lm5leHRUYXNrO1xuXG4gICAgICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgYPCfk4sgVGFzayAke3Rhc2tDb3VudH06ICR7dGFzay5hY3Rpdml0eVR5cGV9ICgke3Rhc2suYWN0aXZpdHlOYW1lIHx8IHRhc2suYWN0aXZpdHlJZH0pYCwgdGFzayk7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAvLyBFeGVjdXRlIGZyb250ZW5kIHRhc2tcbiAgICAgICAgICB0aGlzLmFkZExvZygnaW5mbycsIGDimqEgRXhlY3V0aW5nIHRhc2s6ICR7dGFzay5hY3Rpdml0eVR5cGV9Li4uYCk7XG4gICAgICAgICAgY29uc3QgeyBvdXRwdXQsIG91dGNvbWUgfSA9IGF3YWl0IHRoaXMud29ya2Zsb3dNYW5hZ2VyLmV4ZWN1dGUodGFzayk7XG4gICAgICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBg4pyFIFRhc2sgZXhlY3V0ZWQuIE91dGNvbWU6ICR7b3V0Y29tZX1gLCB7IG91dHB1dCwgb3V0Y29tZSB9KTtcblxuICAgICAgICAgIC8vIENvbXBsZXRlIHRhc2sgYW5kIGdldCBuZXh0XG4gICAgICAgICAgdGhpcy5hZGRMb2coJ2luZm8nLCBg8J+UhCBDb21wbGV0aW5nIHRhc2sgYW5kIGdldHRpbmcgbmV4dC4uLmApO1xuICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSBhd2FpdCB0aGlzLndvcmtmbG93TWFuYWdlci5jb21wbGV0ZShcbiAgICAgICAgICAgIGN1cnJlbnRSZXN1bHQuaW5zdGFuY2VJZCEsXG4gICAgICAgICAgICB0YXNrLFxuICAgICAgICAgICAgb3V0Y29tZSxcbiAgICAgICAgICAgIG91dHB1dFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIWN1cnJlbnRSZXN1bHQuaW5zdGFuY2VJZCkge1xuICAgICAgICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCBUYXNrIGNvbXBsZXRpb24gZmFpbGVkJywgY3VycmVudFJlc3VsdCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VycmVudFJlc3VsdC5uZXh0VGFzaykge1xuICAgICAgICAgICAgdGhpcy5hZGRMb2coJ2luZm8nLCBg4p6h77iPIE5leHQgdGFzayBhdmFpbGFibGU6ICR7Y3VycmVudFJlc3VsdC5uZXh0VGFzay5hY3Rpdml0eVR5cGV9YCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuYWRkTG9nKCdzdWNjZXNzJywgJ+KchSBObyBtb3JlIHRhc2tzLiBXb3JrZmxvdyBjb21wbGV0ZWQhJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgYOKdjCBFcnJvciBleGVjdXRpbmcgdGFzazogJHtlcnJvci5tZXNzYWdlfWAsIGVycm9yKTtcbiAgICAgICAgICBjdXJyZW50UmVzdWx0ID0ge1xuICAgICAgICAgICAgLi4uY3VycmVudFJlc3VsdCxcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfHwgJ1Rhc2sgZXhlY3V0aW9uIGZhaWxlZCdcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vINmG2KrbjNis2YdcbiAgICAgIHRoaXMuZXhlY3V0aW9uUmVzdWx0LnNldChjdXJyZW50UmVzdWx0KTtcbiAgICAgIHRoaXMuc2hvd0V4ZWN1dGlvblJlc3VsdC5zZXQodHJ1ZSk7IC8vINio2KfYsiDaqdix2K/ZhiDYrtmI2K/aqdin2LEg2YbYqtuM2KzZh1xuXG4gICAgICB0aGlzLndvcmtmbG93SW5zdGFuY2VTdGF0ZS5zZXQoe1xuICAgICAgICBzdGF0dXM6ICdmaW5pc2hlZCcsXG4gICAgICAgIHN0YXJ0VGltZTogdGhpcy53b3JrZmxvd0luc3RhbmNlU3RhdGUoKT8uc3RhcnRUaW1lIHx8IG5ldyBEYXRlKCksXG4gICAgICAgIGVuZFRpbWU6IG5ldyBEYXRlKCksXG4gICAgICAgIHJlc3VsdDogY3VycmVudFJlc3VsdCxcbiAgICAgICAgY3VycmVudFN0YXRlOiBjdXJyZW50UmVzdWx0LnN0YXRlPy5vdXRwdXQ/LlsndGFza1N0YXR1cyddIHx8IGN1cnJlbnRSZXN1bHQuc3RhdGU/Lm91dHB1dD8uWydjdXJyZW50U3RhdGUnXVxuICAgICAgfSk7XG5cbiAgICAgIGlmIChjdXJyZW50UmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBg4pyFIFdvcmtmbG93INio2Kcg2YXZiNmB2YLbjNiqINin2KzYsdinINi02K8hICgke3Rhc2tDb3VudH0gdGFzayhzKSBleGVjdXRlZClgLCBjdXJyZW50UmVzdWx0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWRkTG9nKCdlcnJvcicsICfinYwgV29ya2Zsb3cg2KjYpyDYrti32Kcg2YXZiNin2KzZhyDYtNivOiAnICsgKGN1cnJlbnRSZXN1bHQuZXJyb3IgfHwgJ1Vua25vd24gZXJyb3InKSwgY3VycmVudFJlc3VsdCk7XG4gICAgICB9XG5cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICB0aGlzLmFkZExvZygnZXJyb3InLCAn4p2MINiu2LfYpyDYr9ixINin2KzYsdinOiAnICsgZXJyb3IubWVzc2FnZSwgZXJyb3IpO1xuICAgICAgdGhpcy53b3JrZmxvd0luc3RhbmNlU3RhdGUuc2V0KHtcbiAgICAgICAgLi4udGhpcy53b3JrZmxvd0luc3RhbmNlU3RhdGUoKSxcbiAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICBlcnJvcjogZXJyb3IubWVzc2FnZVxuICAgICAgfSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuaXNFeGVjdXRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuXG4gIC8qKlxuICAgKiDYp9i22KfZgdmHINqp2LHYr9mGINmE2Kfar1xuICAgKi9cbiAgYWRkTG9nKGxldmVsOiAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBhbnkpIHtcbiAgICBjb25zdCBsb2dzID0gdGhpcy5leGVjdXRpb25Mb2dzKCk7XG4gICAgbG9ncy5wdXNoKHtcbiAgICAgIHRpbWVzdGFtcDogbmV3IERhdGUoKSxcbiAgICAgIGxldmVsLFxuICAgICAgbWVzc2FnZSxcbiAgICAgIGRhdGFcbiAgICB9KTtcbiAgICB0aGlzLmV4ZWN1dGlvbkxvZ3Muc2V0KFsuLi5sb2dzXSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiDaqdm+24wg2qnYsdiv2YYg2YbZhdmI2YbZhyBhY3Rpdml0eVxuICAgKi9cbiAgY29weUFjdGl2aXR5VGVtcGxhdGUoYWN0aXZpdHk6IEFjdGl2aXR5SW5mbykge1xuICAgIGNvbnN0IHRlbXBsYXRlID0ge1xuICAgICAgaWQ6IGAke2FjdGl2aXR5LnR5cGUudG9Mb3dlckNhc2UoKX0tJHtEYXRlLm5vdygpfWAsXG4gICAgICB0eXBlOiBhY3Rpdml0eS50eXBlLFxuICAgICAgbmFtZTogYWN0aXZpdHkubmFtZSxcbiAgICAgIHByb3BlcnRpZXM6IHt9XG4gICAgfTtcblxuICAgIC8vINqp2b7bjCDYr9ixINqp2YTbjNm+4oCM2KjZiNix2K9cbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeSh0ZW1wbGF0ZSwgbnVsbCwgMikpO1xuICAgIHRoaXMuYWRkTG9nKCdzdWNjZXNzJywgYOKcgu+4jyBUZW1wbGF0ZSDYqNix2KfbjCAke2FjdGl2aXR5Lm5hbWV9INqp2b7bjCDYtNivIWApO1xuICB9XG5cbiAgLyoqXG4gICAqINmB2LHZhdiqINqp2LHYr9mGIEpTT05cbiAgICovXG4gIGZvcm1hdEpzb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGhpcy53b3JrZmxvd0pzb24oKSk7XG4gICAgICB0aGlzLndvcmtmbG93SnNvbi5zZXQoSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKSk7XG4gICAgICB0aGlzLmFkZExvZygnc3VjY2VzcycsICfinKggSlNPTiDZgdix2YXYqiDYtNivJyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCDYrti32Kcg2K/YsSDZgdix2YXYqjogJyArIGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqINio2KfYsiDaqdix2K/ZhiDYqtmG2LjbjNmF2KfYqiB3b3JrZmxvd1xuICAgKi9cbiAgb3BlbldvcmtmbG93U2V0dGluZ3MoKSB7XG4gICAgLy8gRXh0cmFjdCBzZXR0aW5ncyBmcm9tIGN1cnJlbnQgd29ya2Zsb3cgSlNPTlxuICAgIHRyeSB7XG4gICAgICBjb25zdCB3b3JrZmxvdyA9IEpTT04ucGFyc2UodGhpcy53b3JrZmxvd0pzb24oKSk7XG5cbiAgICAgIC8vIENvbnZlcnQgb2xkIGZvcm1hdCBpbnB1dHMvb3V0cHV0cyB0byBuZXcgZm9ybWF0XG4gICAgICBjb25zdCBjb252ZXJ0SW5wdXQgPSAoaW5wdXQ6IGFueSk6IFdvcmtmbG93SW5wdXQgPT4ge1xuICAgICAgICBpZiAoaW5wdXQuc2NoZW1hKSB7XG4gICAgICAgICAgLy8gQWxyZWFkeSBpbiBuZXcgZm9ybWF0XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgICAgICB0aXRsZTogaW5wdXQudGl0bGUgfHwgaW5wdXQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjaGVtYTogaW5wdXQuc2NoZW1hLFxuICAgICAgICAgICAgdmFsaWRhdGlvbnM6IGlucHV0LnZhbGlkYXRpb25zXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBPbGQgZm9ybWF0IC0gY29udmVydFxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiBpbnB1dC5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IGlucHV0Lm5hbWUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaW5wdXQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgZGF0YVR5cGU6IGlucHV0LnR5cGVOYW1lIHx8ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGlucHV0LmRlZmF1bHRWYWx1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbGlkYXRpb25zOiBpbnB1dC5pc1JlcXVpcmVkID8gW3sgcnVsZTogJ3JlcXVpcmVkJyB9XSA6IHVuZGVmaW5lZFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvbnZlcnRPdXRwdXQgPSAob3V0cHV0OiBhbnkpOiBXb3JrZmxvd091dHB1dCA9PiB7XG4gICAgICAgIGlmIChvdXRwdXQuc2NoZW1hKSB7XG4gICAgICAgICAgLy8gQWxyZWFkeSBpbiBuZXcgZm9ybWF0XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IG91dHB1dC5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IG91dHB1dC50aXRsZSB8fCBvdXRwdXQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBvdXRwdXQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICBzY2hlbWE6IG91dHB1dC5zY2hlbWFcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE9sZCBmb3JtYXQgLSBjb252ZXJ0XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IG91dHB1dC5uYW1lLFxuICAgICAgICAgICAgdGl0bGU6IG91dHB1dC5uYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IG91dHB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICBkYXRhVHlwZTogb3V0cHV0LnR5cGVOYW1lIHx8ICdzdHJpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfTtcblxuICAgICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7XG4gICAgICAgIGRlZmluaXRpb25JZDogd29ya2Zsb3cuZGVmaW5pdGlvbklkIHx8IHdvcmtmbG93LmlkIHx8ICcnLFxuICAgICAgICBuYW1lOiB3b3JrZmxvdy5uYW1lIHx8ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogd29ya2Zsb3cuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgIGlucHV0czogKHdvcmtmbG93LmlucHV0cyB8fCBbXSkubWFwKGNvbnZlcnRJbnB1dCksXG4gICAgICAgIG91dHB1dHM6ICh3b3JrZmxvdy5vdXRwdXRzIHx8IFtdKS5tYXAoY29udmVydE91dHB1dCksXG4gICAgICAgIHZhcmlhYmxlczogd29ya2Zsb3cudmFyaWFibGVzIHx8IFtdLFxuICAgICAgICBvdXRjb21lczogd29ya2Zsb3cub3V0Y29tZXMgfHwgWydEb25lJ10sXG4gICAgICAgIHVzYWJsZUFzQWN0aXZpdHk6IHdvcmtmbG93Lm9wdGlvbnM/LnVzYWJsZUFzQWN0aXZpdHkgfHwgZmFsc2UsXG4gICAgICAgIGF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3M6IHdvcmtmbG93Lm9wdGlvbnM/LmF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3MgfHwgZmFsc2UsXG4gICAgICAgIHZlcnNpb246IHdvcmtmbG93LnZlcnNpb24gfHwgMSxcbiAgICAgICAgaXNMYXRlc3Q6IHdvcmtmbG93LmlzTGF0ZXN0ICE9PSB1bmRlZmluZWQgPyB3b3JrZmxvdy5pc0xhdGVzdCA6IHRydWUsXG4gICAgICAgIGlzUHVibGlzaGVkOiB3b3JrZmxvdy5pc1B1Ymxpc2hlZCB8fCBmYWxzZSxcbiAgICAgICAgdG9vbFZlcnNpb246IHdvcmtmbG93LnRvb2xWZXJzaW9uIHx8ICcxLjAuMCcsXG4gICAgICAgIHByb3ZpZGVyTmFtZTogd29ya2Zsb3cucHJvdmlkZXJOYW1lIHx8ICdXb3JrZmxvd1N0dWRpbydcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBJZiBwYXJzaW5nIGZhaWxzLCB1c2UgZGVmYXVsdCBzZXR0aW5nc1xuICAgICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7XG4gICAgICAgIGRlZmluaXRpb25JZDogJycsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgICAgIGlucHV0czogW10sXG4gICAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgICB2YXJpYWJsZXM6IFtdLFxuICAgICAgICBvdXRjb21lczogWydEb25lJ10sXG4gICAgICAgIHVzYWJsZUFzQWN0aXZpdHk6IGZhbHNlLFxuICAgICAgICBhdXRvVXBkYXRlQ29uc3VtaW5nV29ya2Zsb3dzOiBmYWxzZSxcbiAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgaXNMYXRlc3Q6IHRydWUsXG4gICAgICAgIGlzUHVibGlzaGVkOiBmYWxzZSxcbiAgICAgICAgdG9vbFZlcnNpb246ICcxLjAuMCcsXG4gICAgICAgIHByb3ZpZGVyTmFtZTogJ1dvcmtmbG93U3R1ZGlvJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuc2hvd1dvcmtmbG93U2V0dGluZ3Muc2V0KHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqINio2LPYqtmGINiq2YbYuNuM2YXYp9iqIHdvcmtmbG93XG4gICAqL1xuICBjbG9zZVdvcmtmbG93U2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zaG93V29ya2Zsb3dTZXR0aW5ncy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqINiw2K7bjNix2Ycg2KrZhti424zZhdin2Kogd29ya2Zsb3dcbiAgICovXG4gIHNhdmVXb3JrZmxvd1NldHRpbmdzKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB3b3JrZmxvdyA9IEpTT04ucGFyc2UodGhpcy53b3JrZmxvd0pzb24oKSk7XG4gICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMud29ya2Zsb3dTZXR0aW5ncygpO1xuXG4gICAgICAvLyBVcGRhdGUgd29ya2Zsb3cgd2l0aCBzZXR0aW5ncyBhY2NvcmRpbmcgdG8gV29ya2Zsb3dEZWZpbml0aW9uIHN0cnVjdHVyZVxuICAgICAgd29ya2Zsb3cuZGVmaW5pdGlvbklkID0gc2V0dGluZ3MuZGVmaW5pdGlvbklkO1xuICAgICAgd29ya2Zsb3cubmFtZSA9IHNldHRpbmdzLm5hbWU7XG4gICAgICB3b3JrZmxvdy5kZXNjcmlwdGlvbiA9IHNldHRpbmdzLmRlc2NyaXB0aW9uO1xuICAgICAgd29ya2Zsb3cudmVyc2lvbiA9IHNldHRpbmdzLnZlcnNpb247XG4gICAgICB3b3JrZmxvdy5pc0xhdGVzdCA9IHNldHRpbmdzLmlzTGF0ZXN0O1xuICAgICAgd29ya2Zsb3cuaXNQdWJsaXNoZWQgPSBzZXR0aW5ncy5pc1B1Ymxpc2hlZDtcbiAgICAgIHdvcmtmbG93LnRvb2xWZXJzaW9uID0gc2V0dGluZ3MudG9vbFZlcnNpb247XG4gICAgICB3b3JrZmxvdy5wcm92aWRlck5hbWUgPSBzZXR0aW5ncy5wcm92aWRlck5hbWU7XG5cbiAgICAgIC8vIFdvcmtmbG93Q29tbW9uIHByb3BlcnRpZXNcbiAgICAgIHdvcmtmbG93Lm9wdGlvbnMgPSB7XG4gICAgICAgIHVzYWJsZUFzQWN0aXZpdHk6IHNldHRpbmdzLnVzYWJsZUFzQWN0aXZpdHksXG4gICAgICAgIGF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3M6IHNldHRpbmdzLmF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3NcbiAgICAgIH07XG4gICAgICB3b3JrZmxvdy52YXJpYWJsZXMgPSBzZXR0aW5ncy52YXJpYWJsZXMubWFwKHYgPT4gKHtcbiAgICAgICAgaWQ6IHYubmFtZSwgLy8gVXNlIG5hbWUgYXMgaWQgZm9yIG5vd1xuICAgICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICAgIHR5cGVOYW1lOiB2LnR5cGVOYW1lLFxuICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgc3RvcmFnZURyaXZlclR5cGU6ICdNZW1vcnknIC8vIERlZmF1bHQgc3RvcmFnZSBkcml2ZXJcbiAgICAgIH0pKTtcbiAgICAgIHdvcmtmbG93LmlucHV0cyA9IHNldHRpbmdzLmlucHV0cy5tYXAoaSA9PiAoe1xuICAgICAgICBuYW1lOiBpLm5hbWUsXG4gICAgICAgIHRpdGxlOiBpLnRpdGxlLFxuICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbixcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6IGkuc2NoZW1hLmRhdGFUeXBlLFxuICAgICAgICAgIG51bGxhYmxlOiBpLnNjaGVtYS5udWxsYWJsZSxcbiAgICAgICAgICByZWFkb25seTogaS5zY2hlbWEucmVhZG9ubHksXG4gICAgICAgICAgaGlkZGVuOiBpLnNjaGVtYS5oaWRkZW4sXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBpLnNjaGVtYS5kZWZhdWx0VmFsdWVcbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdGlvbnM6IGkudmFsaWRhdGlvbnNcbiAgICAgIH0pKTtcbiAgICAgIHdvcmtmbG93Lm91dHB1dHMgPSBzZXR0aW5ncy5vdXRwdXRzLm1hcChvID0+ICh7XG4gICAgICAgIG5hbWU6IG8ubmFtZSxcbiAgICAgICAgdGl0bGU6IG8udGl0bGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvLmRlc2NyaXB0aW9uLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogby5zY2hlbWEuZGF0YVR5cGVcbiAgICAgICAgfVxuICAgICAgfSkpO1xuICAgICAgd29ya2Zsb3cub3V0Y29tZXMgPSBzZXR0aW5ncy5vdXRjb21lcztcbiAgICAgIHdvcmtmbG93LmN1c3RvbVByb3BlcnRpZXMgPSB3b3JrZmxvdy5jdXN0b21Qcm9wZXJ0aWVzIHx8IHt9O1xuICAgICAgd29ya2Zsb3cuaXNSZWFkb25seSA9IGZhbHNlO1xuICAgICAgd29ya2Zsb3cuaXNTeXN0ZW0gPSBmYWxzZTtcblxuICAgICAgdGhpcy53b3JrZmxvd0pzb24uc2V0KEpTT04uc3RyaW5naWZ5KHdvcmtmbG93LCBudWxsLCAyKSk7XG4gICAgICB0aGlzLmFkZExvZygnc3VjY2VzcycsICfinIUg2KrZhti424zZhdin2Kog2YjYsdqpINmB2YTZiCDYsNiu24zYsdmHINi02K8nKTtcbiAgICAgIHRoaXMuY2xvc2VXb3JrZmxvd1NldHRpbmdzKCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCDYrti32Kcg2K/YsSDYsNiu24zYsdmHINiq2YbYuNuM2YXYp9iqOiAnICsgZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB3b3JrZmxvdyDYqNmHINmB2LHZhdiqIEVsc2EgV29ya2Zsb3cgRGVmaW5pdGlvbiB2My4wLjBcbiAgICogaHR0cHM6Ly9lbHNhd29ya2Zsb3dzLmlvL3NjaGVtYXMvd29ya2Zsb3ctZGVmaW5pdGlvbi92My4wLjAvc2NoZW1hLmpzb25cbiAgICovXG4gIGV4cG9ydFdvcmtmbG93RGVmaW5pdGlvbigpOiBhbnkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB3b3JrZmxvdyA9IEpTT04ucGFyc2UodGhpcy53b3JrZmxvd0pzb24oKSk7XG4gICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMud29ya2Zsb3dTZXR0aW5ncygpO1xuXG4gICAgICAvLyBDcmVhdGUgRWxzYSBXb3JrZmxvdyBEZWZpbml0aW9uIHYzLjAuMCBzdHJ1Y3R1cmVcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IGFueSA9IHtcbiAgICAgICAgLy8gVmVyc2lvbmVkRW50aXR5IGZpZWxkc1xuICAgICAgICBpZDogd29ya2Zsb3cuaWQgfHwgdGhpcy5nZW5lcmF0ZUlkKCksXG4gICAgICAgIHZlcnNpb246IHNldHRpbmdzLnZlcnNpb24sXG4gICAgICAgIGlzTGF0ZXN0OiBzZXR0aW5ncy5pc0xhdGVzdCxcbiAgICAgICAgaXNQdWJsaXNoZWQ6IHNldHRpbmdzLmlzUHVibGlzaGVkLFxuXG4gICAgICAgIC8vIElkZW50aWZpY2F0aW9uIGZpZWxkc1xuICAgICAgICBkZWZpbml0aW9uSWQ6IHNldHRpbmdzLmRlZmluaXRpb25JZCB8fCB3b3JrZmxvdy5pZCB8fCB0aGlzLmdlbmVyYXRlSWQoKSxcbiAgICAgICAgbmFtZTogc2V0dGluZ3MubmFtZSB8fCB3b3JrZmxvdy5uYW1lIHx8ICdVbnRpdGxlZCBXb3JrZmxvdycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBzZXR0aW5ncy5kZXNjcmlwdGlvbiB8fCB3b3JrZmxvdy5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgICAgdG9vbFZlcnNpb246IHNldHRpbmdzLnRvb2xWZXJzaW9uIHx8ICczLjAuMCcsXG5cbiAgICAgICAgLy8gTWF0ZXJpYWxpemF0aW9uIGZpZWxkc1xuICAgICAgICBwcm92aWRlck5hbWU6IHNldHRpbmdzLnByb3ZpZGVyTmFtZSB8fCAnQUNvcmVYJyxcbiAgICAgICAgbWF0ZXJpYWxpemVyQ29udGV4dDoge1xuICAgICAgICAgIG1hdGVyaWFsaXplck5hbWU6ICdKc29uJyxcbiAgICAgICAgICAvLyBTdG9yZSB0aGUgcm9vdCBhY3Rpdml0eSBhcyBKU09OIHN0cmluZ1xuICAgICAgICAgIHN0cmluZ0RhdGE6IEpTT04uc3RyaW5naWZ5KHdvcmtmbG93LnJvb3QpXG4gICAgICAgIH0sXG5cbiAgICAgICAgLy8gV29ya2Zsb3dDb21tb24gZmllbGRzXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICB1c2FibGVBc0FjdGl2aXR5OiBzZXR0aW5ncy51c2FibGVBc0FjdGl2aXR5IHx8IGZhbHNlLFxuICAgICAgICAgIGF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3M6IHNldHRpbmdzLmF1dG9VcGRhdGVDb25zdW1pbmdXb3JrZmxvd3MgfHwgZmFsc2VcbiAgICAgICAgfSxcblxuICAgICAgICAvLyBWYXJpYWJsZXMgYXJyYXlcbiAgICAgICAgdmFyaWFibGVzOiBzZXR0aW5ncy52YXJpYWJsZXMubWFwKHYgPT4gKHtcbiAgICAgICAgICBpZDogdi5uYW1lLFxuICAgICAgICAgIG5hbWU6IHYubmFtZSxcbiAgICAgICAgICB0eXBlTmFtZTogdi50eXBlTmFtZSxcbiAgICAgICAgICB2YWx1ZTogdi52YWx1ZSxcbiAgICAgICAgICBzdG9yYWdlRHJpdmVyVHlwZTogJ01lbW9yeSdcbiAgICAgICAgfSkpLFxuXG4gICAgICAgIC8vIElucHV0cyBhcnJheVxuICAgICAgICBpbnB1dHM6IHNldHRpbmdzLmlucHV0cy5tYXAoaSA9PiAoe1xuICAgICAgICAgIG5hbWU6IGkubmFtZSxcbiAgICAgICAgICB0aXRsZTogaS50aXRsZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogaS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgIGRhdGFUeXBlOiBpLnNjaGVtYS5kYXRhVHlwZSxcbiAgICAgICAgICAgIG51bGxhYmxlOiBpLnNjaGVtYS5udWxsYWJsZSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiBpLnNjaGVtYS5yZWFkb25seSxcbiAgICAgICAgICAgIGhpZGRlbjogaS5zY2hlbWEuaGlkZGVuLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBpLnNjaGVtYS5kZWZhdWx0VmFsdWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRpb25zOiBpLnZhbGlkYXRpb25zIHx8IFtdXG4gICAgICAgIH0pKSxcblxuICAgICAgICAvLyBPdXRwdXRzIGFycmF5XG4gICAgICAgIG91dHB1dHM6IHNldHRpbmdzLm91dHB1dHMubWFwKG8gPT4gKHtcbiAgICAgICAgICBuYW1lOiBvLm5hbWUsXG4gICAgICAgICAgdGl0bGU6IG8udGl0bGUsXG4gICAgICAgICAgZGVzY3JpcHRpb246IG8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgICBkYXRhVHlwZTogby5zY2hlbWEuZGF0YVR5cGVcbiAgICAgICAgICB9XG4gICAgICAgIH0pKSxcblxuICAgICAgICAvLyBPdXRjb21lcyBhcnJheVxuICAgICAgICBvdXRjb21lczogc2V0dGluZ3Mub3V0Y29tZXMgfHwgWydEb25lJ10sXG5cbiAgICAgICAgLy8gQ3VzdG9tIHByb3BlcnRpZXNcbiAgICAgICAgY3VzdG9tUHJvcGVydGllczogd29ya2Zsb3cuY3VzdG9tUHJvcGVydGllcyB8fCB7fSxcblxuICAgICAgICAvLyBGbGFnc1xuICAgICAgICBpc1JlYWRvbmx5OiBmYWxzZSxcbiAgICAgICAgaXNTeXN0ZW06IGZhbHNlLFxuXG4gICAgICAgIC8vIFJvb3QgYWN0aXZpdHkgKGRpcmVjdCByZWZlcmVuY2UgZm9yIEVsc2EgY29tcGF0aWJpbGl0eSlcbiAgICAgICAgcm9vdDogd29ya2Zsb3cucm9vdFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCDYrti32Kcg2K/YsSBleHBvcnQ6ICcgKyBlcnJvci5tZXNzYWdlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDYr9in2YbZhNmI2K8gV29ya2Zsb3dEZWZpbml0aW9uINio2Ycg2LXZiNix2KogSlNPTiBmaWxlXG4gICAqL1xuICBkb3dubG9hZFdvcmtmbG93RGVmaW5pdGlvbigpIHtcbiAgICBjb25zdCBkZWZpbml0aW9uID0gdGhpcy5leHBvcnRXb3JrZmxvd0RlZmluaXRpb24oKTtcbiAgICBpZiAoIWRlZmluaXRpb24pIHJldHVybjtcblxuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoZGVmaW5pdGlvbiwgbnVsbCwgMildLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyB9KTtcbiAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuZG93bmxvYWQgPSBgJHtkZWZpbml0aW9uLmRlZmluaXRpb25JZCB8fCAnd29ya2Zsb3cnfS12JHtkZWZpbml0aW9uLnZlcnNpb259Lmpzb25gO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICBVUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7XG5cbiAgICB0aGlzLmFkZExvZygnc3VjY2VzcycsIGDwn5OlIFdvcmtmbG93IERlZmluaXRpb24g2K/Yp9mG2YTZiNivINi02K86ICR7bGluay5kb3dubG9hZH1gKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgd2YtJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICB9XG5cbiAgLyoqXG4gICAqINiq2LrbjNuM2LEg2KrYqCBzZXR0aW5nc1xuICAgKi9cbiAgc3dpdGNoU2V0dGluZ3NUYWIodGFiOiBTZXR0aW5nc1RhYikge1xuICAgIHRoaXMuYWN0aXZlU2V0dGluZ3NUYWIuc2V0KHRhYik7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gV29ya2Zsb3cgSW5wdXRzIE1hbmFnZW1lbnQgPT09PT09PT09PT09XG5cbiAgYWRkV29ya2Zsb3dJbnB1dCgpIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMud29ya2Zsb3dTZXR0aW5ncygpO1xuICAgIHNldHRpbmdzLmlucHV0cy5wdXNoKHtcbiAgICAgIG5hbWU6IGBpbnB1dCR7c2V0dGluZ3MuaW5wdXRzLmxlbmd0aCArIDF9YCxcbiAgICAgIHRpdGxlOiBgSW5wdXQgJHtzZXR0aW5ncy5pbnB1dHMubGVuZ3RoICsgMX1gLFxuICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgc2NoZW1hOiB7XG4gICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVmYXVsdFZhbHVlOiB1bmRlZmluZWRcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0aW9uczogdW5kZWZpbmVkXG4gICAgfSk7XG4gICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7IC4uLnNldHRpbmdzIH0pO1xuICB9XG5cbiAgcmVtb3ZlV29ya2Zsb3dJbnB1dChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLndvcmtmbG93U2V0dGluZ3MoKTtcbiAgICBzZXR0aW5ncy5pbnB1dHMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLndvcmtmbG93U2V0dGluZ3Muc2V0KHsgLi4uc2V0dGluZ3MgfSk7XG4gIH1cblxuICB1cGRhdGVXb3JrZmxvd0lucHV0KGluZGV4OiBudW1iZXIsIGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMud29ya2Zsb3dTZXR0aW5ncygpO1xuICAgIGNvbnN0IGlucHV0ID0gc2V0dGluZ3MuaW5wdXRzW2luZGV4XTtcblxuICAgIGlmIChmaWVsZCA9PT0gJ3NjaGVtYScpIHtcbiAgICAgIC8vIEZvciBuZXN0ZWQgc2NoZW1hIHVwZGF0ZXNcbiAgICAgIChpbnB1dCBhcyBhbnkpW2ZpZWxkXSA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoZmllbGQuc3RhcnRzV2l0aCgnc2NoZW1hLicpKSB7XG4gICAgICAvLyBGb3IgbmVzdGVkIHNjaGVtYSBwcm9wZXJ0aWVzIGxpa2UgJ3NjaGVtYS5kYXRhVHlwZSdcbiAgICAgIGNvbnN0IHNjaGVtYUZpZWxkID0gZmllbGQucmVwbGFjZSgnc2NoZW1hLicsICcnKTtcbiAgICAgIGlmICghaW5wdXQuc2NoZW1hKSB7XG4gICAgICAgIGlucHV0LnNjaGVtYSA9IHsgZGF0YVR5cGU6ICdzdHJpbmcnIH07XG4gICAgICB9XG4gICAgICAoaW5wdXQuc2NoZW1hIGFzIGFueSlbc2NoZW1hRmllbGRdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIChpbnB1dCBhcyBhbnkpW2ZpZWxkXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMud29ya2Zsb3dTZXR0aW5ncy5zZXQoeyAuLi5zZXR0aW5ncyB9KTtcbiAgfVxuXG4gIHVwZGF0ZVdvcmtmbG93SW5wdXRTY2hlbWEoaW5kZXg6IG51bWJlciwgc2NoZW1hRmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgY29uc3QgaW5wdXQgPSBzZXR0aW5ncy5pbnB1dHNbaW5kZXhdO1xuICAgIGlmICghaW5wdXQuc2NoZW1hKSB7XG4gICAgICBpbnB1dC5zY2hlbWEgPSB7IGRhdGFUeXBlOiAnc3RyaW5nJyB9O1xuICAgIH1cbiAgICAoaW5wdXQuc2NoZW1hIGFzIGFueSlbc2NoZW1hRmllbGRdID0gdmFsdWU7XG4gICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7IC4uLnNldHRpbmdzIH0pO1xuICB9XG5cbiAgdXBkYXRlV29ya2Zsb3dJbnB1dFZhbGlkYXRpb24oaW5kZXg6IG51bWJlciwgaXNSZXF1aXJlZDogYm9vbGVhbikge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgY29uc3QgaW5wdXQgPSBzZXR0aW5ncy5pbnB1dHNbaW5kZXhdO1xuICAgIGlmIChpc1JlcXVpcmVkKSB7XG4gICAgICBpZiAoIWlucHV0LnZhbGlkYXRpb25zKSB7XG4gICAgICAgIGlucHV0LnZhbGlkYXRpb25zID0gW107XG4gICAgICB9XG4gICAgICBpZiAoIWlucHV0LnZhbGlkYXRpb25zLnNvbWUodiA9PiB2LnJ1bGUgPT09ICdyZXF1aXJlZCcpKSB7XG4gICAgICAgIGlucHV0LnZhbGlkYXRpb25zLnB1c2goeyBydWxlOiAncmVxdWlyZWQnIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dC52YWxpZGF0aW9ucyA9IGlucHV0LnZhbGlkYXRpb25zPy5maWx0ZXIodiA9PiB2LnJ1bGUgIT09ICdyZXF1aXJlZCcpO1xuICAgICAgaWYgKGlucHV0LnZhbGlkYXRpb25zPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaW5wdXQudmFsaWRhdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMud29ya2Zsb3dTZXR0aW5ncy5zZXQoeyAuLi5zZXR0aW5ncyB9KTtcbiAgfVxuXG4gIGdldElucHV0SXNSZXF1aXJlZChpbnB1dDogV29ya2Zsb3dJbnB1dCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpbnB1dC52YWxpZGF0aW9ucz8uc29tZSh2ID0+IHYucnVsZSA9PT0gJ3JlcXVpcmVkJykgPz8gZmFsc2U7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gV29ya2Zsb3cgT3V0cHV0cyBNYW5hZ2VtZW50ID09PT09PT09PT09PVxuXG4gIGFkZFdvcmtmbG93T3V0cHV0KCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgc2V0dGluZ3Mub3V0cHV0cy5wdXNoKHtcbiAgICAgIG5hbWU6IGBvdXRwdXQke3NldHRpbmdzLm91dHB1dHMubGVuZ3RoICsgMX1gLFxuICAgICAgdGl0bGU6IGBPdXRwdXQgJHtzZXR0aW5ncy5vdXRwdXRzLmxlbmd0aCArIDF9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgIHNjaGVtYToge1xuICAgICAgICBkYXRhVHlwZTogJ3N0cmluZydcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93U2V0dGluZ3Muc2V0KHsgLi4uc2V0dGluZ3MgfSk7XG4gIH1cblxuICByZW1vdmVXb3JrZmxvd091dHB1dChpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLndvcmtmbG93U2V0dGluZ3MoKTtcbiAgICBzZXR0aW5ncy5vdXRwdXRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7IC4uLnNldHRpbmdzIH0pO1xuICB9XG5cbiAgdXBkYXRlV29ya2Zsb3dPdXRwdXQoaW5kZXg6IG51bWJlciwgZmllbGQ6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgY29uc3Qgb3V0cHV0ID0gc2V0dGluZ3Mub3V0cHV0c1tpbmRleF07XG5cbiAgICBpZiAoZmllbGQuc3RhcnRzV2l0aCgnc2NoZW1hLicpKSB7XG4gICAgICAvLyBGb3IgbmVzdGVkIHNjaGVtYSBwcm9wZXJ0aWVzIGxpa2UgJ3NjaGVtYS5kYXRhVHlwZSdcbiAgICAgIGNvbnN0IHNjaGVtYUZpZWxkID0gZmllbGQucmVwbGFjZSgnc2NoZW1hLicsICcnKTtcbiAgICAgIGlmICghb3V0cHV0LnNjaGVtYSkge1xuICAgICAgICBvdXRwdXQuc2NoZW1hID0geyBkYXRhVHlwZTogJ3N0cmluZycgfTtcbiAgICAgIH1cbiAgICAgIChvdXRwdXQuc2NoZW1hIGFzIGFueSlbc2NoZW1hRmllbGRdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIChvdXRwdXQgYXMgYW55KVtmaWVsZF0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLndvcmtmbG93U2V0dGluZ3Muc2V0KHsgLi4uc2V0dGluZ3MgfSk7XG4gIH1cblxuICB1cGRhdGVXb3JrZmxvd091dHB1dFNjaGVtYShpbmRleDogbnVtYmVyLCBzY2hlbWFGaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLndvcmtmbG93U2V0dGluZ3MoKTtcbiAgICBjb25zdCBvdXRwdXQgPSBzZXR0aW5ncy5vdXRwdXRzW2luZGV4XTtcbiAgICBpZiAoIW91dHB1dC5zY2hlbWEpIHtcbiAgICAgIG91dHB1dC5zY2hlbWEgPSB7IGRhdGFUeXBlOiAnc3RyaW5nJyB9O1xuICAgIH1cbiAgICAob3V0cHV0LnNjaGVtYSBhcyBhbnkpW3NjaGVtYUZpZWxkXSA9IHZhbHVlO1xuICAgIHRoaXMud29ya2Zsb3dTZXR0aW5ncy5zZXQoeyAuLi5zZXR0aW5ncyB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PSBXb3JrZmxvdyBWYXJpYWJsZXMgTWFuYWdlbWVudCA9PT09PT09PT09PT1cblxuICBhZGRXb3JrZmxvd1ZhcmlhYmxlKCkge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgc2V0dGluZ3MudmFyaWFibGVzLnB1c2goe1xuICAgICAgbmFtZTogYHZhcmlhYmxlJHtzZXR0aW5ncy52YXJpYWJsZXMubGVuZ3RoICsgMX1gLFxuICAgICAgdHlwZU5hbWU6ICdzdHJpbmcnLFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgZGVzY3JpcHRpb246ICcnXG4gICAgfSk7XG4gICAgdGhpcy53b3JrZmxvd1NldHRpbmdzLnNldCh7IC4uLnNldHRpbmdzIH0pO1xuICB9XG5cbiAgcmVtb3ZlV29ya2Zsb3dWYXJpYWJsZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLndvcmtmbG93U2V0dGluZ3MoKTtcbiAgICBzZXR0aW5ncy52YXJpYWJsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLndvcmtmbG93U2V0dGluZ3Muc2V0KHsgLi4uc2V0dGluZ3MgfSk7XG4gIH1cblxuICB1cGRhdGVXb3JrZmxvd1ZhcmlhYmxlKGluZGV4OiBudW1iZXIsIGZpZWxkOiBrZXlvZiBXb3JrZmxvd1ZhcmlhYmxlLCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLndvcmtmbG93U2V0dGluZ3MoKTtcbiAgICAoc2V0dGluZ3MudmFyaWFibGVzW2luZGV4XSBhcyBhbnkpW2ZpZWxkXSA9IHZhbHVlO1xuICAgIHRoaXMud29ya2Zsb3dTZXR0aW5ncy5zZXQoeyAuLi5zZXR0aW5ncyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDYqNmH4oCM2LHZiNiy2LHYs9in2YbbjCBvdXRjb21lcyDYp9iyIHN0cmluZ1xuICAgKi9cbiAgdXBkYXRlT3V0Y29tZXMob3V0Y29tZXNTdHJpbmc6IHN0cmluZykge1xuICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy53b3JrZmxvd1NldHRpbmdzKCk7XG4gICAgc2V0dGluZ3Mub3V0Y29tZXMgPSBvdXRjb21lc1N0cmluZ1xuICAgICAgLnNwbGl0KCcsJylcbiAgICAgIC5tYXAobyA9PiBvLnRyaW0oKSlcbiAgICAgIC5maWx0ZXIobyA9PiBvLmxlbmd0aCA+IDApO1xuICAgIHRoaXMud29ya2Zsb3dTZXR0aW5ncy5zZXQoeyAuLi5zZXR0aW5ncyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDZvtin2qkg2qnYsdiv2YYg2YTYp9qv4oCM2YfYp1xuICAgKi9cbiAgY2xlYXJMb2dzKCkge1xuICAgIHRoaXMuZXhlY3V0aW9uTG9ncy5zZXQoW10pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09IFZpc3VhbCBEZXNpZ25lciBNZXRob2RzID09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiDYqti624zbjNixINiq2KhcbiAgICovXG4gIHN3aXRjaFRhYih0YWI6IEVkaXRvclRhYikge1xuICAgIGlmICh0YWIgPT09ICd2aXN1YWwnICYmIHRoaXMuYWN0aXZlVGFiKCkgPT09ICdqc29uJykge1xuICAgICAgLy8g2KrYqNiv24zZhCBKU09OINio2YcgVmlzdWFsXG4gICAgICB0aGlzLmpzb25Ub1Zpc3VhbCgpO1xuICAgIH0gZWxzZSBpZiAodGFiID09PSAnanNvbicgJiYgdGhpcy5hY3RpdmVUYWIoKSA9PT0gJ3Zpc3VhbCcpIHtcbiAgICAgIC8vINiq2KjYr9uM2YQgVmlzdWFsINio2YcgSlNPTlxuICAgICAgdGhpcy52aXN1YWxUb0pzb24oKTtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVUYWIuc2V0KHRhYik7XG4gIH1cblxuICAvKipcbiAgICog2KfZhtiq2K7Yp9ioIE5vZGVcbiAgICovXG4gIHNlbGVjdE5vZGVCeUlkKG5vZGU6IFZpc3VhbE5vZGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZS5zZXQobm9kZSk7XG4gIH1cblxuICAvKipcbiAgICog2K3YsNmBIE5vZGVcbiAgICovXG4gIGRlbGV0ZU5vZGUobm9kZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMudmlzdWFsTm9kZXMoKS5maWx0ZXIobiA9PiBuLmlkICE9PSBub2RlSWQpO1xuICAgIC8vINit2LDZgSDYp9iq2LXYp9mE2KfYqiDYqNmHINin24zZhiDZhtmI2K9cbiAgICBub2Rlcy5mb3JFYWNoKG4gPT4ge1xuICAgICAgbi5jb25uZWN0aW9ucyA9IG4uY29ubmVjdGlvbnMuZmlsdGVyKGMgPT4gYyAhPT0gbm9kZUlkKTtcbiAgICB9KTtcbiAgICB0aGlzLnZpc3VhbE5vZGVzLnNldChub2Rlcyk7XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGUoKT8uaWQgPT09IG5vZGVJZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgYPCfl5HvuI8gTm9kZSDYrdiw2YEg2LTYr2ApO1xuICB9XG5cbiAgLyoqXG4gICAqINin2KrYtdin2YQg2K/ZiCBOb2RlINio2Kcgb3V0Y29tZSDZhdi02K7YtVxuICAgKi9cbiAgY29ubmVjdE5vZGVzKGZyb21JZDogc3RyaW5nLCB0b0lkOiBzdHJpbmcsIG91dGNvbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMudmlzdWFsTm9kZXMoKTtcbiAgICBjb25zdCBmcm9tTm9kZUluZGV4ID0gbm9kZXMuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gZnJvbUlkKTtcbiAgICBjb25zdCB0b05vZGUgPSBub2Rlcy5maW5kKG4gPT4gbi5pZCA9PT0gdG9JZCk7XG5cbiAgICBpZiAoZnJvbU5vZGVJbmRleCAhPT0gLTEgJiYgdG9Ob2RlKSB7XG4gICAgICBjb25zdCBmcm9tTm9kZSA9IG5vZGVzW2Zyb21Ob2RlSW5kZXhdO1xuXG4gICAgICAvLyBVc2Ugb3V0Y29tZS1iYXNlZCBjb25uZWN0aW9ucyBpZiBhdmFpbGFibGVcbiAgICAgIGlmIChvdXRjb21lICYmIGZyb21Ob2RlLm91dGNvbWVzICYmIGZyb21Ob2RlLm91dGNvbWVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3Qgb3V0Y29tZUNvbm5lY3Rpb25zID0gZnJvbU5vZGUub3V0Y29tZUNvbm5lY3Rpb25zIHx8IFtdO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgb3V0Y29tZSBhbHJlYWR5IGhhcyBhIGNvbm5lY3Rpb25cbiAgICAgICAgY29uc3QgZXhpc3RpbmdDb25uZWN0aW9uID0gb3V0Y29tZUNvbm5lY3Rpb25zLmZpbmQoYyA9PiBjLm91dGNvbWUgPT09IG91dGNvbWUpO1xuICAgICAgICBpZiAoZXhpc3RpbmdDb25uZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5hZGRMb2coJ3dhcm5pbmcnLCBg4pqg77iPIE91dGNvbWUgXCIke291dGNvbWV9XCIg2YLYqNmE2KfZiyDZhdiq2LXZhCDYtNiv2Ycg2KfYs9iqYCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQWRkIG5ldyBvdXRjb21lIGNvbm5lY3Rpb25cbiAgICAgICAgY29uc3QgdXBkYXRlZE5vZGVzID0gWy4uLm5vZGVzXTtcbiAgICAgICAgdXBkYXRlZE5vZGVzW2Zyb21Ob2RlSW5kZXhdID0ge1xuICAgICAgICAgIC4uLmZyb21Ob2RlLFxuICAgICAgICAgIG91dGNvbWVDb25uZWN0aW9uczogWy4uLm91dGNvbWVDb25uZWN0aW9ucywgeyBvdXRjb21lLCB0YXJnZXROb2RlSWQ6IHRvSWQgfV0sXG4gICAgICAgICAgY29ubmVjdGlvbnM6IFsuLi5mcm9tTm9kZS5jb25uZWN0aW9ucywgdG9JZF0gLy8gS2VlcCBmb3IgYmFja3dhcmQgY29tcGF0XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy52aXN1YWxOb2Rlcy5zZXQodXBkYXRlZE5vZGVzKTtcbiAgICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBg8J+UlyAke2Zyb21Ob2RlLm5hbWV9IFske291dGNvbWV9XSDihpIgJHt0b05vZGUubmFtZX1gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFNpbXBsZSBjb25uZWN0aW9uIChubyBvdXRjb21lcylcbiAgICAgICAgaWYgKCFmcm9tTm9kZS5jb25uZWN0aW9ucy5pbmNsdWRlcyh0b0lkKSkge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWROb2RlcyA9IFsuLi5ub2Rlc107XG4gICAgICAgICAgdXBkYXRlZE5vZGVzW2Zyb21Ob2RlSW5kZXhdID0ge1xuICAgICAgICAgICAgLi4uZnJvbU5vZGUsXG4gICAgICAgICAgICBjb25uZWN0aW9uczogWy4uLmZyb21Ob2RlLmNvbm5lY3Rpb25zLCB0b0lkXVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB0aGlzLnZpc3VhbE5vZGVzLnNldCh1cGRhdGVkTm9kZXMpO1xuICAgICAgICAgIHRoaXMuYWRkTG9nKCdzdWNjZXNzJywgYPCflJcgJHtmcm9tTm9kZS5uYW1lfSDZhdiq2LXZhCDYtNivINio2YcgJHt0b05vZGUubmFtZX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFkZExvZygnd2FybmluZycsICfimqDvuI8g2KfbjNmGINin2KrYtdin2YQg2KfYsiDZgtio2YQg2YjYrNmI2K8g2K/Yp9ix2K8nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZExvZygnZXJyb3InLCAn4p2MINiu2LfYpyDYr9ixINin24zYrNin2K8g2KfYqti12KfZhCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDZgti32Lkg2KfYqti12KfZhCAo2KjYpyDbjNinINio2K/ZiNmGIG91dGNvbWUpXG4gICAqL1xuICBkaXNjb25uZWN0Tm9kZXMoZnJvbUlkOiBzdHJpbmcsIHRvSWQ6IHN0cmluZywgb3V0Y29tZT86IHN0cmluZykge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy52aXN1YWxOb2RlcygpO1xuICAgIGNvbnN0IGZyb21Ob2RlSW5kZXggPSBub2Rlcy5maW5kSW5kZXgobiA9PiBuLmlkID09PSBmcm9tSWQpO1xuXG4gICAgaWYgKGZyb21Ob2RlSW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCBmcm9tTm9kZSA9IG5vZGVzW2Zyb21Ob2RlSW5kZXhdO1xuICAgICAgY29uc3QgdXBkYXRlZE5vZGVzID0gWy4uLm5vZGVzXTtcblxuICAgICAgLy8gUmVtb3ZlIGZyb20gb3V0Y29tZSBjb25uZWN0aW9ucyBpZiBzcGVjaWZpZWRcbiAgICAgIGlmIChvdXRjb21lICYmIGZyb21Ob2RlLm91dGNvbWVDb25uZWN0aW9ucykge1xuICAgICAgICB1cGRhdGVkTm9kZXNbZnJvbU5vZGVJbmRleF0gPSB7XG4gICAgICAgICAgLi4uZnJvbU5vZGUsXG4gICAgICAgICAgb3V0Y29tZUNvbm5lY3Rpb25zOiBmcm9tTm9kZS5vdXRjb21lQ29ubmVjdGlvbnMuZmlsdGVyKFxuICAgICAgICAgICAgYyA9PiAhKGMub3V0Y29tZSA9PT0gb3V0Y29tZSAmJiBjLnRhcmdldE5vZGVJZCA9PT0gdG9JZClcbiAgICAgICAgICApLFxuICAgICAgICAgIGNvbm5lY3Rpb25zOiBmcm9tTm9kZS5jb25uZWN0aW9ucy5maWx0ZXIoYyA9PiBjICE9PSB0b0lkKVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gU2ltcGxlIGRpc2Nvbm5lY3RcbiAgICAgICAgdXBkYXRlZE5vZGVzW2Zyb21Ob2RlSW5kZXhdID0ge1xuICAgICAgICAgIC4uLmZyb21Ob2RlLFxuICAgICAgICAgIGNvbm5lY3Rpb25zOiBmcm9tTm9kZS5jb25uZWN0aW9ucy5maWx0ZXIoYyA9PiBjICE9PSB0b0lkKSxcbiAgICAgICAgICBvdXRjb21lQ29ubmVjdGlvbnM6IGZyb21Ob2RlLm91dGNvbWVDb25uZWN0aW9ucz8uZmlsdGVyKGMgPT4gYy50YXJnZXROb2RlSWQgIT09IHRvSWQpXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHRoaXMudmlzdWFsTm9kZXMuc2V0KHVwZGF0ZWROb2Rlcyk7XG4gICAgICB0aGlzLmFkZExvZygnaW5mbycsIGDinILvuI8g2KfYqti12KfZhCDZgti32Lkg2LTYryR7b3V0Y29tZSA/IGAgWyR7b3V0Y29tZX1dYCA6ICcnfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDYqtio2K/bjNmEIEpTT04g2KjZhyBWaXN1YWxcbiAgICovXG4gIGpzb25Ub1Zpc3VhbCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd29ya2Zsb3cgPSBKU09OLnBhcnNlKHRoaXMud29ya2Zsb3dKc29uKCkpO1xuICAgICAgY29uc3Qgbm9kZXM6IFZpc3VhbE5vZGVbXSA9IFtdO1xuICAgICAgbGV0IHlQb3MgPSAxMDA7XG5cbiAgICAgIC8vINm+2LHYr9in2LLYtCByb290IGFjdGl2aXR5XG4gICAgICBpZiAod29ya2Zsb3cucm9vdCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NBY3Rpdml0eVRvTm9kZSh3b3JrZmxvdy5yb290LCBub2RlcywgMTAwLCB5UG9zKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy52aXN1YWxOb2Rlcy5zZXQobm9kZXMpO1xuICAgICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCAn4pyFIEpTT04g2KjZhyBWaXN1YWwg2KrYqNiv24zZhCDYtNivJyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCDYrti32Kcg2K/YsSDYqtio2K/bjNmEOiAnICsgZXJyb3IubWVzc2FnZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqINm+2LHYr9in2LLYtCBBY3Rpdml0eSDYqNmHIE5vZGUgKHJlY3Vyc2l2ZSlcbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc0FjdGl2aXR5VG9Ob2RlKFxuICAgIGFjdGl2aXR5OiBhbnksXG4gICAgbm9kZXM6IFZpc3VhbE5vZGVbXSxcbiAgICB4OiBudW1iZXIsXG4gICAgeTogbnVtYmVyLFxuICAgIHBhcmVudElkPzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3Qgbm9kZUlkID0gYWN0aXZpdHkuaWQgfHwgYCR7YWN0aXZpdHkudHlwZX0tJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCl9YDtcblxuICAgIC8vIEdldCBvdXRjb21lcyBmb3IgdGhpcyBhY3Rpdml0eSB0eXBlICh1c2UgZGVmYXVsdCBmb3Igbm93LCB3aWxsIGJlIHVwZGF0ZWQgYXN5bmMgaWYgbmVlZGVkKVxuICAgIGNvbnN0IG91dGNvbWVzID0gWydEb25lJ107IC8vIERlZmF1bHQgb3V0Y29tZSwgd2lsbCBiZSB1cGRhdGVkIHdoZW4gYWN0aXZpdHkgaW5mbyBpcyBsb2FkZWRcblxuICAgIC8vIEdldCBvdXRjb21lQ29ubmVjdGlvbnMgZnJvbSBhY3Rpdml0eSBkZWZpbml0aW9uXG4gICAgY29uc3Qgb3V0Y29tZUNvbm5lY3Rpb25zID0gYWN0aXZpdHkub3V0Y29tZUNvbm5lY3Rpb25zIHx8IFtdO1xuXG4gICAgLy8gQnVpbGQgc2ltcGxlIGNvbm5lY3Rpb25zIGxpc3QgZnJvbSBvdXRjb21lQ29ubmVjdGlvbnMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbiAgICBjb25zdCBjb25uZWN0aW9ucyA9IG91dGNvbWVDb25uZWN0aW9ucy5tYXAoKGNvbm46IGFueSkgPT4gY29ubi50YXJnZXROb2RlSWQpO1xuXG4gICAgY29uc3Qgbm9kZTogVmlzdWFsTm9kZSA9IHtcbiAgICAgIGlkOiBub2RlSWQsXG4gICAgICB0eXBlOiBhY3Rpdml0eS50eXBlLFxuICAgICAgbmFtZTogYWN0aXZpdHkubmFtZSB8fCBhY3Rpdml0eS50eXBlLFxuICAgICAgaWNvbjogdGhpcy5nZXRJY29uRm9yQWN0aXZpdHlUeXBlKGFjdGl2aXR5LnR5cGUpLFxuICAgICAgcHJvcGVydGllczogYWN0aXZpdHkucHJvcGVydGllcyB8fCB7fSxcbiAgICAgIHBvc2l0aW9uOiB7IHgsIHkgfSxcbiAgICAgIGNvbm5lY3Rpb25zOiBjb25uZWN0aW9ucyxcbiAgICAgIG91dGNvbWVDb25uZWN0aW9uczogb3V0Y29tZUNvbm5lY3Rpb25zLFxuICAgICAgb3V0Y29tZXM6IG91dGNvbWVzXG4gICAgfTtcblxuICAgIG5vZGVzLnB1c2gobm9kZSk7XG5cbiAgICAvLyDYp9qv2LEgcGFyZW50INiv2KfYsdiv2Iwg2KfYqti12KfZhCDYqNix2YLYsdin2LEg2qnZhiAo2KjYsdin24wgU2VxdWVuY2UpXG4gICAgaWYgKHBhcmVudElkICYmICFvdXRjb21lQ29ubmVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJlbnROb2RlID0gbm9kZXMuZmluZChuID0+IG4uaWQgPT09IHBhcmVudElkKTtcbiAgICAgIGlmIChwYXJlbnROb2RlICYmICFwYXJlbnROb2RlLmNvbm5lY3Rpb25zLmluY2x1ZGVzKG5vZGVJZCkpIHtcbiAgICAgICAgcGFyZW50Tm9kZS5jb25uZWN0aW9ucy5wdXNoKG5vZGVJZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g2b7Ysdiv2KfYsti0IGNoaWxkcmVuICjYqNix2KfbjCBTZXF1ZW5jZSkgLSDYp9mF2Kcg2YHZgti3INin2q/YsSBvdXRjb21lQ29ubmVjdGlvbnMg2YbYqNin2LTYr1xuICAgIGlmIChhY3Rpdml0eS5jaGlsZHJlbiAmJiBBcnJheS5pc0FycmF5KGFjdGl2aXR5LmNoaWxkcmVuKSAmJiAhb3V0Y29tZUNvbm5lY3Rpb25zLmxlbmd0aCkge1xuICAgICAgbGV0IGNoaWxkWSA9IHk7XG4gICAgICBhY3Rpdml0eS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNoaWxkWSA9IHkgKyAoaW5kZXggKiAxMDApO1xuICAgICAgICB0aGlzLnByb2Nlc3NBY3Rpdml0eVRvTm9kZShjaGlsZCwgbm9kZXMsIHggKyAyNTAsIGNoaWxkWSwgbm9kZUlkKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBub2RlSWQ7XG4gIH1cblxuICAvKipcbiAgICog2KrYqNiv24zZhCBWaXN1YWwg2KjZhyBKU09OXG4gICAqL1xuICB2aXN1YWxUb0pzb24oKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5vZGVzID0gdGhpcy52aXN1YWxOb2RlcygpO1xuXG4gICAgICBpZiAobm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuYWRkTG9nKCd3YXJuaW5nJywgJ+KaoO+4jyDZh9uM2oYgTm9kZSDYp9uMINmI2KzZiNivINmG2K/Yp9ix2K8nKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyDZvtuM2K/YpyDaqdix2K/ZhiByb290IG5vZGUgKG5vZGUg2KjYr9mI2YYgcGFyZW50KVxuICAgICAgY29uc3Qgcm9vdE5vZGUgPSB0aGlzLmZpbmRSb290Tm9kZShub2Rlcyk7XG5cbiAgICAgIGlmICghcm9vdE5vZGUpIHtcbiAgICAgICAgdGhpcy5hZGRMb2coJ2Vycm9yJywgJ+KdjCBSb290IE5vZGUg2b7bjNiv2Kcg2YbYtNivJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd29ya2Zsb3cgPSB7XG4gICAgICAgIGlkOiAndmlzdWFsLXdvcmtmbG93LScgKyBEYXRlLm5vdygpLFxuICAgICAgICBuYW1lOiAnVmlzdWFsIFdvcmtmbG93JyxcbiAgICAgICAgdmVyc2lvbjogMSxcbiAgICAgICAgcm9vdDogdGhpcy5ub2RlVG9BY3Rpdml0eShyb290Tm9kZSwgbm9kZXMpXG4gICAgICB9O1xuXG4gICAgICB0aGlzLndvcmtmbG93SnNvbi5zZXQoSlNPTi5zdHJpbmdpZnkod29ya2Zsb3csIG51bGwsIDIpKTtcbiAgICAgIHRoaXMuYWRkTG9nKCdzdWNjZXNzJywgJ+KchSBWaXN1YWwg2KjZhyBKU09OINiq2KjYr9uM2YQg2LTYrycpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMuYWRkTG9nKCdlcnJvcicsICfinYwg2K7Yt9inINiv2LEg2KrYqNiv24zZhDogJyArIGVycm9yLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDZvtuM2K/YpyDaqdix2K/ZhiBSb290IE5vZGVcbiAgICovXG4gIHByaXZhdGUgZmluZFJvb3ROb2RlKG5vZGVzOiBWaXN1YWxOb2RlW10pOiBWaXN1YWxOb2RlIHwgbnVsbCB7XG4gICAgLy8gTm9kZSDYp9uMINqp2Ycg2KjZhyDYotmGINin2LTYp9ix2Ycg2YbYtNiv2YdcbiAgICBjb25zdCBjb25uZWN0ZWRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBub2Rlcy5mb3JFYWNoKG4gPT4gbi5jb25uZWN0aW9ucy5mb3JFYWNoKGMgPT4gY29ubmVjdGVkSWRzLmFkZChjKSkpO1xuXG4gICAgY29uc3Qgcm9vdE5vZGVzID0gbm9kZXMuZmlsdGVyKG4gPT4gIWNvbm5lY3RlZElkcy5oYXMobi5pZCkpO1xuICAgIHJldHVybiByb290Tm9kZXNbMF0gfHwgbm9kZXNbMF07XG4gIH1cblxuICAvKipcbiAgICog2KrYqNiv24zZhCBOb2RlINio2YcgQWN0aXZpdHkgKHJlY3Vyc2l2ZSlcbiAgICovXG4gIHByaXZhdGUgbm9kZVRvQWN0aXZpdHkobm9kZTogVmlzdWFsTm9kZSwgYWxsTm9kZXM6IFZpc3VhbE5vZGVbXSk6IGFueSB7XG4gICAgY29uc3QgYWN0aXZpdHk6IGFueSA9IHtcbiAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgdHlwZTogbm9kZS50eXBlLFxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxuICAgICAgcHJvcGVydGllczogbm9kZS5wcm9wZXJ0aWVzXG4gICAgfTtcblxuICAgIC8vINin2q/YsSBjaGlsZHJlbiDYr9in2LHYryAoY29ubmVjdGlvbnMpXG4gICAgaWYgKG5vZGUuY29ubmVjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY2hpbGRyZW4gPSBub2RlLmNvbm5lY3Rpb25zXG4gICAgICAgIC5tYXAoY29ubklkID0+IGFsbE5vZGVzLmZpbmQobiA9PiBuLmlkID09PSBjb25uSWQpKVxuICAgICAgICAuZmlsdGVyKG4gPT4gbiAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAubWFwKGNoaWxkTm9kZSA9PiB0aGlzLm5vZGVUb0FjdGl2aXR5KGNoaWxkTm9kZSEsIGFsbE5vZGVzKSk7XG5cbiAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGFjdGl2aXR5LmNoaWxkcmVuID0gY2hpbGRyZW47XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGl2aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqINiv2LHbjNin2YHYqiDYotuM2qnZiNmGINio2LHYp9uMINmG2YjYuSBBY3Rpdml0eVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJY29uRm9yQWN0aXZpdHlUeXBlKHR5cGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgaWNvbk1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTpzZXF1ZW5jZSc6ICdmYS1saWdodCBmYS1saXN0LW9sJyxcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTpzaG93LWNvbmZpcm0tZGlhbG9nJzogJ2ZhLWxpZ2h0IGZhLXF1ZXN0aW9uLWNpcmNsZScsXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy1hbGVydC1kaWFsb2cnOiAnZmEtbGlnaHQgZmEtY2lyY2xlLWluZm8nLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5OnNob3ctdG9hc3QnOiAnZmEtbGlnaHQgZmEtYmVsbCcsXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2V0LXZhcmlhYmxlJzogJ2ZhLWxpZ2h0IGZhLXZhcmlhYmxlJyxcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTpleGVjdXRlLXF1ZXJ5JzogJ2ZhLWxpZ2h0IGZhLXNlYXJjaCcsXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6ZXhlY3V0ZS1jb21tYW5kJzogJ2ZhLWxpZ2h0IGZhLWJvbHQnLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5Om5hdmlnYXRlJzogJ2ZhLWxpZ2h0IGZhLXJvdXRlJyxcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTpkaXNwYXRjaC1ldmVudCc6ICdmYS1saWdodCBmYS1wYXBlci1wbGFuZSdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGljb25NYXBbdHlwZV0gfHwgJ2ZhLWxpZ2h0IGZhLWNpcmNsZSc7XG4gIH1cblxuICAvKipcbiAgICog2KjZh+KAjNix2YjYstix2LPYp9mG24wgcHJvcGVydHkg2YbZiNivXG4gICAqL1xuICB1cGRhdGVOb2RlUHJvcGVydHkobm9kZUlkOiBzdHJpbmcsIHByb3BlcnR5TmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLnZpc3VhbE5vZGVzKCk7XG4gICAgY29uc3Qgbm9kZUluZGV4ID0gbm9kZXMuZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gbm9kZUlkKTtcblxuICAgIGlmIChub2RlSW5kZXggIT09IC0xKSB7XG4gICAgICBjb25zdCBub2RlID0gbm9kZXNbbm9kZUluZGV4XTtcbiAgICAgIGNvbnN0IHVwZGF0ZWROb2RlcyA9IFsuLi5ub2Rlc107XG5cbiAgICAgIC8vINin2q/YsSBwcm9wZXJ0eSDZhdiz2KrZgtuM2YUg2YbZiNivINin2LPYqiAo2YXYq9mEIG5hbWUpXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnbmFtZScpIHtcbiAgICAgICAgdXBkYXRlZE5vZGVzW25vZGVJbmRleF0gPSB7XG4gICAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgICBuYW1lOiB2YWx1ZVxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8g2Kfar9ixIHByb3BlcnR5INiv2KfYrtmEIHByb3BlcnRpZXMgb2JqZWN0INin2LPYqlxuICAgICAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgICAgIC4uLm5vZGUucHJvcGVydGllcyxcbiAgICAgICAgICBbcHJvcGVydHlOYW1lXTogdmFsdWVcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBSZWNvbXB1dGUgb3V0Y29tZXMgaWYgcHJvcGVydHkgYWZmZWN0cyB0aGVtIChlLmcuLCBleHBlY3RlZFN0YXR1c0NvZGVzKVxuICAgICAgICBsZXQgbmV3T3V0Y29tZXMgPSBub2RlLm91dGNvbWVzO1xuICAgICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnZXhwZWN0ZWRTdGF0dXNDb2RlcycgJiYgbm9kZS50eXBlID09PSAnd29ya2Zsb3ctYWN0aXZpdHk6aHR0cC1yZXF1ZXN0Jykge1xuICAgICAgICAgIC8vIExvYWQgYWN0aXZpdHkgaW5mbyBhc3luY2hyb25vdXNseSBhbmQgdXBkYXRlIG91dGNvbWVzXG4gICAgICAgICAgdGhpcy5maW5kQWN0aXZpdHlJbmZvKG5vZGUudHlwZSkudGhlbihhY3Rpdml0eUluZm8gPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGl2aXR5SW5mbykge1xuICAgICAgICAgICAgICBjb25zdCBjb21wdXRlZE91dGNvbWVzID0gdGhpcy5jb21wdXRlT3V0Y29tZXMoYWN0aXZpdHlJbmZvLCBuZXdQcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZE5vZGVzID0gdGhpcy52aXN1YWxOb2RlcygpO1xuICAgICAgICAgICAgICBjb25zdCBub2RlSWR4ID0gdXBkYXRlZE5vZGVzLmZpbmRJbmRleChuID0+IG4uaWQgPT09IG5vZGVJZCk7XG4gICAgICAgICAgICAgIGlmIChub2RlSWR4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZWROb2Rlc1tub2RlSWR4XSA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnVwZGF0ZWROb2Rlc1tub2RlSWR4XSxcbiAgICAgICAgICAgICAgICAgIG91dGNvbWVzOiBjb21wdXRlZE91dGNvbWVzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbE5vZGVzLnNldChbLi4udXBkYXRlZE5vZGVzXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRMb2coJ2luZm8nLCBg8J+UhCBPdXRjb21lcyB1cGRhdGVkOiBbJHtjb21wdXRlZE91dGNvbWVzLmpvaW4oJywgJyl9XWApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2lsZW50bHkgZmFpbCBpZiBhY3Rpdml0eSBpbmZvIG5vdCBmb3VuZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlZE5vZGVzW25vZGVJbmRleF0gPSB7XG4gICAgICAgICAgLi4ubm9kZSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBuZXdQcm9wZXJ0aWVzLFxuICAgICAgICAgIG91dGNvbWVzOiBuZXdPdXRjb21lc1xuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnZpc3VhbE5vZGVzLnNldCh1cGRhdGVkTm9kZXMpO1xuXG4gICAgICAvLyDYp9qv2LEg2KfbjNmGINmG2YjYryBzZWxlY3RlZCDYp9iz2KrYjCDYotmGINix2Kcg2YfZhSB1cGRhdGUg2qnZhlxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWROb2RlKCk/LmlkID09PSBub2RlSWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KHVwZGF0ZWROb2Rlc1tub2RlSW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog2b7bjNiv2Kcg2qnYsdiv2YYgYWN0aXZpdHkgaW5mbyDYqNixINin2LPYp9izIHR5cGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgZmluZEFjdGl2aXR5SW5mbyh0eXBlOiBzdHJpbmcpOiBQcm9taXNlPEFjdGl2aXR5SW5mbyB8IG51bGw+IHtcbiAgICB0cnkge1xuICAgICAgLy8gVHJ5IHRvIGdldCBhY3Rpdml0eSBieSBuYW1lICh0eXBlIGlzIHVzZWQgYXMgbmFtZSBpbiBzb21lIGNhc2VzKVxuICAgICAgY29uc3QgYWN0aXZpdHkgPSBhd2FpdCB0aGlzLmFjdGl2aXR5RGVmaW5pdGlvblNlcnZpY2UuZ2V0QWN0aXZpdHlCeU5hbWUodHlwZSk7XG4gICAgICBpZiAoYWN0aXZpdHkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEFjdGl2aXR5RGVmaW5pdGlvblRvSW5mbyhhY3Rpdml0eSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGZpbmQgYWN0aXZpdHkgaW5mbyBmb3IgdHlwZTogJHt0eXBlfWAsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog2b7Yp9qpINqp2LHYr9mGINmH2YXZhyDZhtmI2K/Zh9inXG4gICAqL1xuICBjbGVhckNhbnZhcygpIHtcbiAgICB0aGlzLnZpc3VhbE5vZGVzLnNldChbXSk7XG4gICAgdGhpcy5zZWxlY3RlZE5vZGUuc2V0KG51bGwpO1xuICAgIHRoaXMuYWRkTG9nKCdpbmZvJywgJ/Cfl5HvuI8gQ2FudmFzINm+2KfaqSDYtNivJyk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gRHJhZyAmIERyb3AgTWV0aG9kcyA9PT09PT09PT09PT1cblxuICAvKipcbiAgICog2LTYsdmI2LkgZHJhZyDYp9iyIGFjdGl2aXR5IGxpc3RcbiAgICovXG4gIG9uQWN0aXZpdHlEcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCwgYWN0aXZpdHk6IEFjdGl2aXR5SW5mbykge1xuICAgIHRoaXMuZHJhZ2dlZEFjdGl2aXR5ID0gYWN0aXZpdHk7XG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnY29weSc7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsIGFjdGl2aXR5LnR5cGUpO1xuICAgIH1cbiAgICB0aGlzLmFkZExvZygnaW5mbycsIGDwn46vINiv2LEg2K3Yp9mEIERyYWc6ICR7YWN0aXZpdHkubmFtZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDZvtin24zYp9mGIGRyYWcg2KfYsiBhY3Rpdml0eSBsaXN0XG4gICAqL1xuICBvbkFjdGl2aXR5RHJhZ0VuZChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgdGhpcy5kcmFnZ2VkQWN0aXZpdHkgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIGRyYWcgb3ZlciDYsdmI24wgQ2FudmFzXG4gICAqL1xuICBvbkNhbnZhc0RyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIpIHtcbiAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBkcmFnIGxlYXZlINin2LIgQ2FudmFzXG4gICAqL1xuICBvbkNhbnZhc0RyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgLy8g2YXbjOKAjNiq2YjYp9mGINin2LIg2KfbjNmGINio2LHYp9uMIHZpc3VhbCBmZWVkYmFjayDYp9iz2KrZgdin2K/ZhyDaqdix2K9cbiAgfVxuXG4gIC8qKlxuICAgKiDZhdit2KfYs9io2Ycgb3V0Y29tZXMg2KjYsdin24wg24zaqSBhY3Rpdml0eVxuICAgKi9cbiAgY29tcHV0ZU91dGNvbWVzKGFjdGl2aXR5SW5mbzogQWN0aXZpdHlJbmZvLCBwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nW10ge1xuICAgIC8vIEZvciBIVFRQIFJlcXVlc3Qgd2l0aCBleHBlY3RlZCBzdGF0dXMgY29kZXNcbiAgICBpZiAoYWN0aXZpdHlJbmZvLnR5cGUgPT09ICd3b3JrZmxvdy1hY3Rpdml0eTpodHRwLXJlcXVlc3QnICYmIHByb3BlcnRpZXNbJ2V4cGVjdGVkU3RhdHVzQ29kZXMnXSkge1xuICAgICAgY29uc3QgY29kZXMgPSBBcnJheS5pc0FycmF5KHByb3BlcnRpZXNbJ2V4cGVjdGVkU3RhdHVzQ29kZXMnXSlcbiAgICAgICAgPyBwcm9wZXJ0aWVzWydleHBlY3RlZFN0YXR1c0NvZGVzJ11cbiAgICAgICAgOiBbcHJvcGVydGllc1snZXhwZWN0ZWRTdGF0dXNDb2RlcyddXTtcblxuICAgICAgY29uc3Qgc3RhdHVzT3V0Y29tZXMgPSBjb2Rlcy5tYXAoKGNvZGU6IG51bWJlcikgPT4gY29kZS50b1N0cmluZygpKTtcbiAgICAgIHJldHVybiBbLi4uc3RhdHVzT3V0Y29tZXMsICdEb25lJywgJ0ZhaWxlZCcsICdUaW1lb3V0J107XG4gICAgfVxuXG4gICAgLy8gVE9ETzogQWRkIG1vcmUgYWN0aXZpdHkgdHlwZXMgd2l0aCBkeW5hbWljIG91dGNvbWVzXG5cbiAgICAvLyBEZWZhdWx0OiBjaGVjayBhY3Rpdml0eSBpbmZvIGZvciBvdXRjb21lc1xuICAgIC8vIEZvciBub3csIHdlIGRlZmluZSBvdXRjb21lcyBtYW51YWxseSBmb3Iga25vd24gYWN0aXZpdGllc1xuICAgIGNvbnN0IG91dGNvbWVNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHtcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTppZic6IFsnVGhlbicsICdFbHNlJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy1jb25maXJtLWRpYWxvZyc6IFsnQ29uZmlybWVkJywgJ0NhbmNlbGxlZCddLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5OnNob3ctYWxlcnQtZGlhbG9nJzogWydEb25lJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy1mb3JtJzogWydTdWJtaXR0ZWQnLCAnQ2FuY2VsbGVkJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6aHR0cC1yZXF1ZXN0JzogWydEb25lJywgJ0ZhaWxlZCcsICdUaW1lb3V0J10sIC8vIFdpbGwgYmUgb3ZlcnJpZGRlbiBpZiBleHBlY3RlZFN0YXR1c0NvZGVzIGV4aXN0XG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2VxdWVuY2UnOiBbJ0RvbmUnXSxcbiAgICAgICd3b3JrZmxvdy1hY3Rpdml0eTpmb3ItZWFjaCc6IFsnRG9uZSddLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5OndoaWxlJzogWydEb25lJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2V0LXZhcmlhYmxlJzogWydEb25lJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6ZXhlY3V0ZS1xdWVyeSc6IFsnRG9uZSddLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5OmV4ZWN1dGUtY29tbWFuZCc6IFsnRG9uZSddLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5Om5hdmlnYXRlJzogWydEb25lJ10sXG4gICAgICAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy10b2FzdCc6IFsnRG9uZSddLFxuICAgICAgJ3dvcmtmbG93LWFjdGl2aXR5OmRpc3BhdGNoLWV2ZW50JzogWydEb25lJ11cbiAgICB9O1xuXG4gICAgcmV0dXJuIG91dGNvbWVNYXBbYWN0aXZpdHlJbmZvLnR5cGVdIHx8IFsnRG9uZSddO1xuICB9XG5cbiAgLyoqXG4gICAqIGRyb3Ag2LHZiNuMIENhbnZhcyAtINin2LbYp9mB2Ycg2qnYsdiv2YYgYWN0aXZpdHkg2KzYr9uM2K9cbiAgICovXG4gIG9uQ2FudmFzRHJvcChldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIGlmICghdGhpcy5kcmFnZ2VkQWN0aXZpdHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjYW52YXMgPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSBjYW52YXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3QgeCA9IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQgLSA3NTsgLy8gY2VudGVyIG5vZGVcbiAgICBjb25zdCB5ID0gZXZlbnQuY2xpZW50WSAtIHJlY3QudG9wIC0gNDA7XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMudmlzdWFsTm9kZXMoKTtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7IC4uLih0aGlzLmRyYWdnZWRBY3Rpdml0eS5kZWZhdWx0UHJvcGVydGllcyB8fCB7fSkgfTtcblxuICAgIGNvbnN0IG5ld05vZGU6IFZpc3VhbE5vZGUgPSB7XG4gICAgICBpZDogYCR7dGhpcy5kcmFnZ2VkQWN0aXZpdHkudHlwZX0tJHtEYXRlLm5vdygpfWAsXG4gICAgICB0eXBlOiB0aGlzLmRyYWdnZWRBY3Rpdml0eS50eXBlLFxuICAgICAgbmFtZTogdGhpcy5kcmFnZ2VkQWN0aXZpdHkubmFtZSxcbiAgICAgIGljb246IHRoaXMuZHJhZ2dlZEFjdGl2aXR5Lmljb24sXG4gICAgICBwcm9wZXJ0aWVzOiBkZWZhdWx0UHJvcHMsXG4gICAgICBwb3NpdGlvbjogeyB4OiBNYXRoLm1heCgwLCB4KSwgeTogTWF0aC5tYXgoMCwgeSkgfSxcbiAgICAgIGNvbm5lY3Rpb25zOiBbXSxcbiAgICAgIG91dGNvbWVDb25uZWN0aW9uczogW10sXG4gICAgICBvdXRjb21lczogdGhpcy5jb21wdXRlT3V0Y29tZXModGhpcy5kcmFnZ2VkQWN0aXZpdHksIGRlZmF1bHRQcm9wcylcbiAgICB9O1xuXG4gICAgdGhpcy52aXN1YWxOb2Rlcy5zZXQoWy4uLm5vZGVzLCBuZXdOb2RlXSk7XG5cbiAgICBjb25zdCBvdXRjb21lc0luZm8gPSBuZXdOb2RlLm91dGNvbWVzICYmIG5ld05vZGUub3V0Y29tZXMubGVuZ3RoID4gMVxuICAgICAgPyBgIHdpdGggJHtuZXdOb2RlLm91dGNvbWVzLmxlbmd0aH0gb3V0Y29tZXMgWyR7bmV3Tm9kZS5vdXRjb21lcy5qb2luKCcsICcpfV1gXG4gICAgICA6ICcnO1xuXG4gICAgdGhpcy5hZGRMb2coJ3N1Y2Nlc3MnLCBg4pyFIEFjdGl2aXR5ICR7dGhpcy5kcmFnZ2VkQWN0aXZpdHkubmFtZX0g2KfYttin2YHZhyDYtNivJHtvdXRjb21lc0luZm99YCk7XG4gICAgdGhpcy5kcmFnZ2VkQWN0aXZpdHkgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINi02LHZiNi5IGRyYWcg2YbZiNivXG4gICAqL1xuICBvbk5vZGVEcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCwgbm9kZTogVmlzdWFsTm9kZSkge1xuICAgIHRoaXMuZHJhZ2dlZE5vZGUgPSBub2RlO1xuXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IHJlY3QgPSB0YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5ub2RlRHJhZ09mZnNldCA9IHtcbiAgICAgIHg6IGV2ZW50LmNsaWVudFggLSByZWN0LmxlZnQsXG4gICAgICB5OiBldmVudC5jbGllbnRZIC0gcmVjdC50b3BcbiAgICB9O1xuXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XG4gICAgICAvLyBNYWtlIGRyYWcgaW1hZ2UgdHJhbnNwYXJlbnRcbiAgICAgIGNvbnN0IGltZyA9IG5ldyBJbWFnZSgpO1xuICAgICAgaW1nLnNyYyA9ICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcnO1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERyYWdJbWFnZShpbWcsIDAsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDYr9ixINit2KfZhCBkcmFnINmG2YjYr1xuICAgKi9cbiAgb25Ob2RlRHJhZyhldmVudDogRHJhZ0V2ZW50LCBub2RlOiBWaXN1YWxOb2RlKSB7XG4gICAgaWYgKCF0aGlzLmRyYWdnZWROb2RlIHx8IGV2ZW50LmNsaWVudFggPT09IDAgfHwgZXZlbnQuY2xpZW50WSA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jYW52YXMtYXJlYScpIGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghY2FudmFzKSByZXR1cm47XG5cbiAgICBjb25zdCByZWN0ID0gY2FudmFzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHggPSBldmVudC5jbGllbnRYIC0gcmVjdC5sZWZ0IC0gdGhpcy5ub2RlRHJhZ09mZnNldC54O1xuICAgIGNvbnN0IHkgPSBldmVudC5jbGllbnRZIC0gcmVjdC50b3AgLSB0aGlzLm5vZGVEcmFnT2Zmc2V0Lnk7XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMudmlzdWFsTm9kZXMoKTtcbiAgICBjb25zdCBub2RlSW5kZXggPSBub2Rlcy5maW5kSW5kZXgobiA9PiBuLmlkID09PSBub2RlLmlkKTtcblxuICAgIGlmIChub2RlSW5kZXggIT09IC0xKSB7XG4gICAgICBub2Rlc1tub2RlSW5kZXhdLnBvc2l0aW9uID0ge1xuICAgICAgICB4OiBNYXRoLm1heCgwLCB4KSxcbiAgICAgICAgeTogTWF0aC5tYXgoMCwgeSlcbiAgICAgIH07XG4gICAgICB0aGlzLnZpc3VhbE5vZGVzLnNldChbLi4ubm9kZXNdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog2b7Yp9uM2KfZhiBkcmFnINmG2YjYr1xuICAgKi9cbiAgb25Ob2RlRHJhZ0VuZChldmVudDogRHJhZ0V2ZW50LCBub2RlOiBWaXN1YWxOb2RlKSB7XG4gICAgdGhpcy5kcmFnZ2VkTm9kZSA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICog2qnZhNuM2qkg2LHZiNuMINqp2KfZhtqp2KrZiNixIC0g2KjYsdin24wg2KfbjNis2KfYryDYp9iq2LXYp9mEICjYqNix2KfbjCBhY3Rpdml0aWVzINio2Kcg24zaqSBvdXRjb21lKVxuICAgKi9cbiAgb25Db25uZWN0b3JDbGljayhldmVudDogRXZlbnQsIG5vZGU6IFZpc3VhbE5vZGUsIHR5cGU6ICdpbicgfCAnb3V0Jykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKCF0aGlzLmNvbm5lY3Rpb25Tb3VyY2UpIHtcbiAgICAgIC8vINin2YjZhNuM2YYg2qnZhNuM2qkgLSDYsNiu24zYsdmHIHNvdXJjZVxuICAgICAgaWYgKHR5cGUgPT09ICdvdXQnKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdGlvblNvdXJjZSA9IHsgbm9kZSwgdHlwZSB9O1xuICAgICAgICB0aGlzLmFkZExvZygnaW5mbycsIGDwn5SXINmF2YbYqNi5INin2KrYtdin2YQg2KfZhtiq2K7Yp9ioINi02K86ICR7bm9kZS5uYW1lfWApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyDYr9mI2YXbjNmGINqp2YTbjNqpIC0g2KfbjNis2KfYryDYp9iq2LXYp9mEXG4gICAgICBpZiAodHlwZSA9PT0gJ2luJyAmJiB0aGlzLmNvbm5lY3Rpb25Tb3VyY2Uubm9kZS5pZCAhPT0gbm9kZS5pZCkge1xuICAgICAgICB0aGlzLmNvbm5lY3ROb2Rlcyh0aGlzLmNvbm5lY3Rpb25Tb3VyY2Uubm9kZS5pZCwgbm9kZS5pZCwgdGhpcy5jb25uZWN0aW9uU291cmNlLm91dGNvbWUpO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25Tb3VyY2UgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hZGRMb2coJ3dhcm5pbmcnLCAn4pqg77iPINin2KrYtdin2YQg2YbYp9mF2LnYqtio2LEgLSDYp9io2KrYr9inINix2YjbjCBjb25uZWN0b3Ig2K7YsdmI2KzbjCDZiCDYs9m+2LMg2YjYsdmI2K/bjCDaqdmE24zaqSDaqdmG24zYrycpO1xuICAgICAgICB0aGlzLmNvbm5lY3Rpb25Tb3VyY2UgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDaqdmE24zaqSDYsdmI24wgb3V0Y29tZSBjb25uZWN0b3IgLSDYqNix2KfbjCBhY3Rpdml0aWVzINio2Kcg2obZhtivIG91dGNvbWVcbiAgICovXG4gIG9uT3V0Y29tZUNvbm5lY3RvckNsaWNrKGV2ZW50OiBFdmVudCwgbm9kZTogVmlzdWFsTm9kZSwgb3V0Y29tZTogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuY29ubmVjdGlvblNvdXJjZSkge1xuICAgICAgLy8g2KfZiNmE24zZhiDaqdmE24zaqSAtINiw2K7bjNix2Ycgc291cmNlINio2Kcgb3V0Y29tZVxuICAgICAgdGhpcy5jb25uZWN0aW9uU291cmNlID0geyBub2RlLCB0eXBlOiAnb3V0Jywgb3V0Y29tZSB9O1xuICAgICAgdGhpcy5hZGRMb2coJ2luZm8nLCBg8J+UlyDZhdmG2KjYuSDYp9iq2LXYp9mEINin2YbYqtiu2KfYqCDYtNivOiAke25vZGUubmFtZX0gWyR7b3V0Y29tZX1dYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkTG9nKCd3YXJuaW5nJywgJ+KaoO+4jyDZhNi32YHYp9mLINix2YjbjCBpbnB1dCBjb25uZWN0b3Ig24zaqSDZhtmI2K8g2K/bjNqv2LEg2qnZhNuM2qkg2qnZhtuM2K8nKTtcbiAgICAgIHRoaXMuY29ubmVjdGlvblNvdXJjZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09IFVJIE1ldGhvZHMgPT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqINiq2LrbjNuM2LEg2YjYtti524zYqiDZhtmF2KfbjNi0IFByb3BlcnRpZXMgUGFuZWxcbiAgICovXG4gIHRvZ2dsZVByb3BlcnRpZXNQYW5lbCgpIHtcbiAgICB0aGlzLnNob3dQcm9wZXJ0aWVzUGFuZWwuc2V0KCF0aGlzLnNob3dQcm9wZXJ0aWVzUGFuZWwoKSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT0gVGVtcGxhdGUgSGVscGVyIE1ldGhvZHMgPT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqINm+24zYr9inINqp2LHYr9mGIE5vZGUg2KjYpyBJRFxuICAgKi9cbiAgZmluZE5vZGVCeUlkKG5vZGVJZDogc3RyaW5nKTogVmlzdWFsTm9kZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMudmlzdWFsTm9kZXMoKS5maW5kKG4gPT4gbi5pZCA9PT0gbm9kZUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDYqNix2LHYs9uMINin24zZhtqp2Ycg2KLbjNinIHByb3BlcnRpZXMg2K7Yp9mE24wg2KfYs9iqINuM2Kcg2YbZh1xuICAgKi9cbiAgaGFzUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMgJiYgT2JqZWN0LmtleXMocHJvcGVydGllcykubGVuZ3RoID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiDYr9iz2KrYsdiz24wg2KjZhyBPYmplY3Qg2KjYsdin24wg2KfYs9iq2YHYp9iv2Ycg2K/YsSB0ZW1wbGF0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IE9iamVjdCA9IE9iamVjdDtcblxuICAvKipcbiAgICog2K/Ys9iq2LHYs9uMINio2YcgdHlwZW9mINio2LHYp9uMINin2LPYqtmB2KfYr9mHINiv2LEgdGVtcGxhdGVcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSB0eXBlb2YgPSAodmFsdWU6IGFueSkgPT4gdHlwZW9mIHZhbHVlO1xuXG4gIC8qKlxuICAgKiDYr9iz2KrYsdiz24wg2KjZhyBKU09OINio2LHYp9uMINin2LPYqtmB2KfYr9mHINiv2LEgdGVtcGxhdGVcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBKU09OID0gSlNPTjtcblxuICAvKipcbiAgICog2K/YsduM2KfZgdiqINix2YbaryDYqNixINin2LPYp9izIG91dGNvbWVcbiAgICovXG4gIHByb3RlY3RlZCBnZXRPdXRjb21lQ29sb3Iob3V0Y29tZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2xvck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgICcyMDAnOiAnIzEwYjk4MScsICAgICAgLy8gR3JlZW4gLSBTdWNjZXNzXG4gICAgICAnRG9uZSc6ICcjMTBiOTgxJywgICAgIC8vIEdyZWVuIC0gU3VjY2Vzc1xuICAgICAgJ1N1Y2Nlc3MnOiAnIzEwYjk4MScsICAvLyBHcmVlbiAtIFN1Y2Nlc3NcbiAgICAgICc0MDQnOiAnI2VmNDQ0NCcsICAgICAgLy8gUmVkIC0gRXJyb3JcbiAgICAgICc1MDAnOiAnI2VmNDQ0NCcsICAgICAgLy8gUmVkIC0gRXJyb3JcbiAgICAgICdGYWlsZWQnOiAnI2VmNDQ0NCcsICAgLy8gUmVkIC0gRXJyb3JcbiAgICAgICdFcnJvcic6ICcjZWY0NDQ0JywgICAgLy8gUmVkIC0gRXJyb3JcbiAgICAgICdUaW1lb3V0JzogJyNmNTllMGInLCAgLy8gT3JhbmdlIC0gV2FybmluZ1xuICAgICAgJ0NhbmNlbGxlZCc6ICcjZjU5ZTBiJywvLyBPcmFuZ2UgLSBXYXJuaW5nXG4gICAgICAnVGhlbic6ICcjM2I4MmY2JywgICAgIC8vIEJsdWUgLSBJbmZvXG4gICAgICAnRWxzZSc6ICcjNjQ3NDhiJywgICAgIC8vIEdyYXlcbiAgICB9O1xuXG4gICAgcmV0dXJuIGNvbG9yTWFwW291dGNvbWVdIHx8ICcjOGI1Y2Y2JzsgLy8gUHVycGxlIC0gRGVmYXVsdFxuICB9XG5cbiAgLyoqXG4gICAqINiv2LHbjNin2YHYqiDZhtin2YUg2LHZhtqvINio2LHYp9uMIG1hcmtlciBJRFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldE91dGNvbWVDb2xvck5hbWUob3V0Y29tZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoWycyMDAnLCAnRG9uZScsICdTdWNjZXNzJ10uaW5jbHVkZXMob3V0Y29tZSkpIHtcbiAgICAgIHJldHVybiAnc3VjY2Vzcyc7XG4gICAgfVxuICAgIGlmIChbJzQwNCcsICc1MDAnLCAnRmFpbGVkJywgJ0Vycm9yJ10uaW5jbHVkZXMob3V0Y29tZSkpIHtcbiAgICAgIHJldHVybiAnZXJyb3InO1xuICAgIH1cbiAgICBpZiAoWydUaW1lb3V0JywgJ0NhbmNlbGxlZCddLmluY2x1ZGVzKG91dGNvbWUpKSB7XG4gICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgIH1cbiAgICBpZiAoWydUaGVuJ10uaW5jbHVkZXMob3V0Y29tZSkpIHtcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuICAgIHJldHVybiAnZGVmYXVsdCc7XG4gIH1cblxuICAvKipcbiAgICog2KjZh+KAjNix2YjYstix2LPYp9mG24wgcHJvcGVydHkg2KjYpyBwYXJzZSDaqdix2K/ZhiBKU09OXG4gICAqL1xuICB1cGRhdGVOb2RlUHJvcGVydHlKU09OKG5vZGVJZDogc3RyaW5nLCBwcm9wZXJ0eU5hbWU6IHN0cmluZywganNvblN0cmluZzogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gSlNPTi5wYXJzZShqc29uU3RyaW5nKTtcbiAgICAgIHRoaXMudXBkYXRlTm9kZVByb3BlcnR5KG5vZGVJZCwgcHJvcGVydHlOYW1lLCB2YWx1ZSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vINin2q/YsSBKU09OINmG2KfZhdi52KrYqNixINio2YjYr9iMINqG24zYstuMINmG2qnZhlxuICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIEpTT046JywganNvblN0cmluZyk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxheHAtcGFnZS1sYXlvdXQ+XG4gIDxheHAtbGF5b3V0LXN0YXJ0LXNpZGU+XG4gICAgPGF4cC1hY3Rpdml0eS1jYXRlZ29yaWVzLXRyZWUgKGNhdGVnb3J5Q2xpY2spPVwib25DYXRlZ29yeUNsaWNrKCRldmVudClcIlxuICAgICAgKGFjdGl2aXR5Q2xpY2spPVwib25BY3Rpdml0eUNsaWNrKCRldmVudClcIj48L2F4cC1hY3Rpdml0eS1jYXRlZ29yaWVzLXRyZWU+XG4gIDwvYXhwLWxheW91dC1zdGFydC1zaWRlPlxuXG4gIDxheHAtcGFnZS10b29sYmFyPlxuICAgIDxheHAtbGF5b3V0LXByZWZpeD5cbiAgICAgIDwhLS0gRWRpdG9yIFRhYnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLXRhYnNcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1idG5cIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYigpID09PSAnanNvbidcIiAoY2xpY2spPVwic3dpdGNoVGFiKCdqc29uJylcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWNvZGVcIj48L2k+XG4gICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby50ZXJtcy5qc29uLWVkaXRvcicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1idG5cIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVRhYigpID09PSAndmlzdWFsJ1wiIChjbGljayk9XCJzd2l0Y2hUYWIoJ3Zpc3VhbCcpXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3RcIj48L2k+XG4gICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby50ZXJtcy52aXN1YWwtZGVzaWduZXInIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2F4cC1sYXlvdXQtcHJlZml4PlxuICA8L2F4cC1wYWdlLXRvb2xiYXI+XG5cbiAgPGF4cC1wYWdlLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LXN0dWRpb1wiPlxuICAgICAgPCEtLSBNYWluIExheW91dCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHVkaW8tYm9keVwiIFtjbGFzcy5wcm9wZXJ0aWVzLWhpZGRlbl09XCIhc2hvd1Byb3BlcnRpZXNQYW5lbCgpXCI+XG5cbiAgICAgICAgPCEtLSBFZGl0b3IgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHVkaW8tZWRpdG9yXCI+XG4gICAgICAgICAgPCEtLSBUYWIgQ29udGVudCAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDwhLS0gSlNPTiBUYWIgLS0+XG4gICAgICAgICAgICBAaWYgKGFjdGl2ZVRhYigpID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJqc29uLXRhYlwiPlxuICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJqc29uLWVkaXRvclwiIFsobmdNb2RlbCldPVwid29ya2Zsb3dKc29uXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmpzb24tZWRpdG9yLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDwvdGV4dGFyZWE+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBWaXN1YWwgVGFiIC0tPlxuICAgICAgICAgICAgQGlmIChhY3RpdmVUYWIoKSA9PT0gJ3Zpc3VhbCcpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aXN1YWwtdGFiXCI+XG4gICAgICAgICAgICAgIDwhLS0gQ2FudmFzIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmlzdWFsLWNhbnZhc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW52YXMtdG9vbGJhclwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRvb2wtYnRuXCIgKGNsaWNrKT1cImNsZWFyQ2FudmFzKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmNhbnZhcy10b29sYmFyLmNsZWFyLWNhbnZhcy50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXRyYXNoXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidG9vbC1idG5cIiAoY2xpY2spPVwidmlzdWFsVG9Kc29uKClcIlxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmNhbnZhcy10b29sYmFyLmNvbnZlcnQtdG8tanNvbi50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWNvZGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbC1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtbGlnaHRidWxiXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5jYW52YXMtdG9vbGJhci5oaW50JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FudmFzLWFyZWFcIiAoZHJvcCk9XCJvbkNhbnZhc0Ryb3AoJGV2ZW50KVwiIChkcmFnb3Zlcik9XCJvbkNhbnZhc0RyYWdPdmVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkNhbnZhc0RyYWdMZWF2ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8IS0tIFNWRyBmb3IgQ29ubmVjdGlvbnMgLS0+XG4gICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY29ubmVjdGlvbnMtbGF5ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBPdXRjb21lLWJhc2VkIENvbm5lY3Rpb25zIC0tPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChub2RlIG9mIHZpc3VhbE5vZGVzKCk7IHRyYWNrIG5vZGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChub2RlLm91dGNvbWVDb25uZWN0aW9ucyAmJiBub2RlLm91dGNvbWVDb25uZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNvbm4gb2Ygbm9kZS5vdXRjb21lQ29ubmVjdGlvbnM7IHRyYWNrIGNvbm4udGFyZ2V0Tm9kZUlkICsgY29ubi5vdXRjb21lKSB7XG4gICAgICAgICAgICAgICAgICAgIEBsZXQgdGFyZ2V0Tm9kZSA9IGZpbmROb2RlQnlJZChjb25uLnRhcmdldE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodGFyZ2V0Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZyBjbGFzcz1cIm91dGNvbWUtY29ubmVjdGlvbi1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaW5lIFthdHRyLngxXT1cIm5vZGUucG9zaXRpb24ueCArIDc1XCIgW2F0dHIueTFdPVwibm9kZS5wb3NpdGlvbi55ICsgODBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIueDJdPVwidGFyZ2V0Tm9kZS5wb3NpdGlvbi54ICsgNzVcIiBbYXR0ci55Ml09XCJ0YXJnZXROb2RlLnBvc2l0aW9uLnkgLSA1MFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbm5lY3Rpb24tbGluZSBvdXRjb21lLWxpbmVcIiBbYXR0ci5zdHJva2VdPVwiZ2V0T3V0Y29tZUNvbG9yKGNvbm4ub3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMi41XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm1hcmtlci1lbmRdPVwiJ3VybCgjYXJyb3doZWFkLScgKyBnZXRPdXRjb21lQ29sb3JOYW1lKGNvbm4ub3V0Y29tZSkgKyAnKSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIiAoZGJsY2xpY2spPVwiZGlzY29ubmVjdE5vZGVzKG5vZGUuaWQsIGNvbm4udGFyZ2V0Tm9kZUlkLCBjb25uLm91dGNvbWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIidPdXRjb21lOiAnICsgY29ubi5vdXRjb21lICsgJyAoRG91YmxlLWNsaWNrIHRvIHJlbW92ZSknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGl0bGU+e3sgY29ubi5vdXRjb21lIH19IOKGkiB7eyB0YXJnZXROb2RlLm5hbWUgfX08L3RpdGxlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGluZT5cbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dCBbYXR0ci54XT1cIihub2RlLnBvc2l0aW9uLnggKyB0YXJnZXROb2RlLnBvc2l0aW9uLngpIC8gMiArIDc1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnldPVwiKG5vZGUucG9zaXRpb24ueSArIHRhcmdldE5vZGUucG9zaXRpb24ueSkgLyAyICsgMTVcIiBjbGFzcz1cImNvbm5lY3Rpb24tbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbmNob3I9XCJtaWRkbGVcIiBbYXR0ci5maWxsXT1cImdldE91dGNvbWVDb2xvcihjb25uLm91dGNvbWUpXCIgZm9udC1zaXplPVwiMTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ9XCI2MDBcIiBwb2ludGVyLWV2ZW50cz1cIm5vbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbm4ub3V0Y29tZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gU2ltcGxlIENvbm5lY3Rpb25zIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAodGFyZ2V0SWQgb2Ygbm9kZS5jb25uZWN0aW9uczsgdHJhY2sgdGFyZ2V0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCB0YXJnZXROb2RlID0gZmluZE5vZGVCeUlkKHRhcmdldElkKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmICh0YXJnZXROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaW5lIFthdHRyLngxXT1cIm5vZGUucG9zaXRpb24ueCArIDc1XCIgW2F0dHIueTFdPVwibm9kZS5wb3NpdGlvbi55ICsgNDBcIlxuICAgICAgICAgICAgICAgICAgICAgIFthdHRyLngyXT1cInRhcmdldE5vZGUucG9zaXRpb24ueCArIDc1XCIgW2F0dHIueTJdPVwidGFyZ2V0Tm9kZS5wb3NpdGlvbi55IC0gNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29ubmVjdGlvbi1saW5lXCIgc3Ryb2tlPVwiIzY0NzQ4YlwiIHN0cm9rZS13aWR0aD1cIjJcIiBtYXJrZXItZW5kPVwidXJsKCNhcnJvd2hlYWQtZGVmYXVsdClcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCIgKGRibGNsaWNrKT1cImRpc2Nvbm5lY3ROb2Rlcyhub2RlLmlkLCB0YXJnZXRJZClcIlxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwiRG91YmxlLWNsaWNrINio2LHYp9uMINit2LDZgSDYp9iq2LXYp9mEXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHRpdGxlPkRvdWJsZS1jbGljayDYqNix2KfbjCDYrdiw2YE8L3RpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8L2xpbmU+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIERlZmF1bHQgQXJyb3cgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hcmtlciBpZD1cImFycm93aGVhZC1kZWZhdWx0XCIgbWFya2VyV2lkdGg9XCIxMFwiIG1hcmtlckhlaWdodD1cIjEwXCIgcmVmWD1cIjlcIiByZWZZPVwiM1wiIG9yaWVudD1cImF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz1cIjAgMCwgMTAgMywgMCA2XCIgZmlsbD1cIiM2NDc0OGJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbWFya2VyPlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU3VjY2VzcyBBcnJvdyAoR3JlZW4pIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIgaWQ9XCJhcnJvd2hlYWQtc3VjY2Vzc1wiIG1hcmtlcldpZHRoPVwiMTBcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIHJlZlg9XCI5XCIgcmVmWT1cIjNcIiBvcmllbnQ9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIwIDAsIDEwIDMsIDAgNlwiIGZpbGw9XCIjMTBiOTgxXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hcmtlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEVycm9yIEFycm93IChSZWQpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIgaWQ9XCJhcnJvd2hlYWQtZXJyb3JcIiBtYXJrZXJXaWR0aD1cIjEwXCIgbWFya2VySGVpZ2h0PVwiMTBcIiByZWZYPVwiOVwiIHJlZlk9XCIzXCIgb3JpZW50PVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPVwiMCAwLCAxMCAzLCAwIDZcIiBmaWxsPVwiI2VmNDQ0NFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXJrZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBXYXJuaW5nIEFycm93IChPcmFuZ2UpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIgaWQ9XCJhcnJvd2hlYWQtd2FybmluZ1wiIG1hcmtlcldpZHRoPVwiMTBcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIHJlZlg9XCI5XCIgcmVmWT1cIjNcIiBvcmllbnQ9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIwIDAsIDEwIDMsIDAgNlwiIGZpbGw9XCIjZjU5ZTBiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hcmtlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEluZm8gQXJyb3cgKEJsdWUpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXJrZXIgaWQ9XCJhcnJvd2hlYWQtaW5mb1wiIG1hcmtlcldpZHRoPVwiMTBcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIHJlZlg9XCI5XCIgcmVmWT1cIjNcIiBvcmllbnQ9XCJhdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9XCIwIDAsIDEwIDMsIDAgNlwiIGZpbGw9XCIjM2I4MmY2XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hcmtlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgICAgICAgPC9zdmc+XG5cbiAgICAgICAgICAgICAgICAgIDwhLS0gTm9kZXMgLS0+XG4gICAgICAgICAgICAgICAgICBAZm9yIChub2RlIG9mIHZpc3VhbE5vZGVzKCk7IHRyYWNrIG5vZGUuaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2aXN1YWwtbm9kZVwiIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZE5vZGUoKT8uaWQgPT09IG5vZGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUubGVmdC5weF09XCJub2RlLnBvc2l0aW9uLnhcIiBbc3R5bGUudG9wLnB4XT1cIm5vZGUucG9zaXRpb24ueVwiIFthdHRyLmRhdGEtbm9kZS1pZF09XCJub2RlLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgZHJhZ2dhYmxlPVwidHJ1ZVwiIChkcmFnc3RhcnQpPVwib25Ob2RlRHJhZ1N0YXJ0KCRldmVudCwgbm9kZSlcIiAoZHJhZyk9XCJvbk5vZGVEcmFnKCRldmVudCwgbm9kZSlcIlxuICAgICAgICAgICAgICAgICAgICAoZHJhZ2VuZCk9XCJvbk5vZGVEcmFnRW5kKCRldmVudCwgbm9kZSlcIiAoY2xpY2spPVwic2VsZWN0Tm9kZUJ5SWQobm9kZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIm5vZGUuaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBub2RlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm5vZGUtZGVsZXRlXCIgKGNsaWNrKT1cImRlbGV0ZU5vZGUobm9kZS5pZCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGUtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyBub2RlLnR5cGUgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kZS1jb25uZWN0b3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBJbnB1dCBDb25uZWN0b3IgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbm5lY3RvciBjb25uZWN0b3ItaW5cIiB0aXRsZT1cIklucHV0XCIgKGNsaWNrKT1cIm9uQ29ubmVjdG9yQ2xpY2soJGV2ZW50LCBub2RlLCAnaW4nKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBPdXRwdXQgQ29ubmVjdG9ycyAtIE11bHRpcGxlIG91dGNvbWVzIHN1cHBvcnQgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChub2RlLm91dGNvbWVzICYmIG5vZGUub3V0Y29tZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gTXVsdGlwbGUgb3V0Y29tZXM6IHNob3cgc2VwYXJhdGUgcG9ydCBmb3IgZWFjaCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0Y29tZXMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvdXRjb21lIG9mIG5vZGUub3V0Y29tZXM7IHRyYWNrIG91dGNvbWU7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRjb21lLWNvbm5lY3RvclwiIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25Tb3VyY2U/Lm5vZGU/LmlkID09PSBub2RlLmlkICYmIGNvbm5lY3Rpb25Tb3VyY2U/Lm91dGNvbWUgPT09IG91dGNvbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiIFthdHRyLmRhdGEtb3V0Y29tZV09XCJvdXRjb21lXCIgW3RpdGxlXT1cIidPdXRwdXQ6ICcgKyBvdXRjb21lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uT3V0Y29tZUNvbm5lY3RvckNsaWNrKCRldmVudCwgbm9kZSwgb3V0Y29tZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvdXRjb21lLWxhYmVsXCI+e3sgb3V0Y29tZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm91dGNvbWUtZG90XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNpbmdsZSBvdXRjb21lOiBzaG93IHNpbXBsZSBvdXRwdXQgY29ubmVjdG9yIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25uZWN0b3IgY29ubmVjdG9yLW91dFwiIFtjbGFzcy5hY3RpdmVdPVwiY29ubmVjdGlvblNvdXJjZT8ubm9kZT8uaWQgPT09IG5vZGUuaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJPdXRwdXRcIiAoY2xpY2spPVwib25Db25uZWN0b3JDbGljaygkZXZlbnQsIG5vZGUsICdvdXQnKVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPCEtLSBFbXB0eSBTdGF0ZSAtLT5cbiAgICAgICAgICAgICAgICAgIEBpZiAodmlzdWFsTm9kZXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW52YXMtZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1kaWFncmFtLXByb2plY3RcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDxwPkFjdGl2aXR5INmH2Kcg2LHYpyDYp9iyINiz2KfbjNiv2KjYp9ixINio2Ycg2KfbjNmG2KzYpyDYqNqp2LTbjNivPC9wPlxuICAgICAgICAgICAgICAgICAgICA8c21hbGw+24zYpyDYp9iyINiq2KggSlNPTtiMIHdvcmtmbG93INix2KcgaW1wb3J0INqp2YbbjNivPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8IS0tIFByb3BlcnRpZXMgUGFuZWwgLS0+XG4gICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWROb2RlKCkgJiYgc2hvd1Byb3BlcnRpZXNQYW5lbCgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9wZXJ0aWVzLXBhbmVsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnRpZXMtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXNsaWRlcnNcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8aDQ+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2g0PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJoZWFkZXItYnRuXCIgKGNsaWNrKT1cInRvZ2dsZVByb3BlcnRpZXNQYW5lbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwuYWN0aW9ucy5jbG9zZS1wYW5lbCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtYW5nbGUtcmlnaHRcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiaGVhZGVyLWJ0blwiIChjbGljayk9XCJzZWxlY3RlZE5vZGUuc2V0KG51bGwpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwuYWN0aW9ucy5jbG9zZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnRpZXMtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5LXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwuZmllbGRzLmlkJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFt2YWx1ZV09XCJzZWxlY3RlZE5vZGUoKSEuaWRcIiBkaXNhYmxlZCAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudHMucHJvcGVydGllcy1wYW5lbC5maWVsZHMudHlwZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWROb2RlKCkhLnR5cGVcIiBkaXNhYmxlZCAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudHMucHJvcGVydGllcy1wYW5lbC5maWVsZHMubmFtZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTo8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWROb2RlKCkhLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVOb2RlUHJvcGVydHkoc2VsZWN0ZWROb2RlKCkhLmlkLCAnbmFtZScsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydGllcy1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxoNT7wn5OlIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5wcm9wZXJ0aWVzLXBhbmVsLnNlY3Rpb25zLmlucHV0LXByb3BlcnRpZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwicHJvcGVydGllcy1oaW50XCI+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwuc2VjdGlvbnMuaW5wdXQtcHJvcGVydGllcycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fSAtINmF2YLYp9iv24zYsSDYsdinINiq2YbYuNuM2YUg2qnZhtuM2K88L3NtYWxsPlxuXG4gICAgICAgICAgICAgICAgICBAaWYgKGhhc1Byb3BlcnRpZXMoc2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXMpKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktZWRpdG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGtleSBvZiBPYmplY3Qua2V5cyhzZWxlY3RlZE5vZGUoKSEucHJvcGVydGllcyk7IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sga2V5IH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb3BlcnR5LXR5cGUtYmFkZ2VcIj57eyB0eXBlb2Ygc2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuXG4gICAgICAgICAgICAgICAgICAgICAgQGlmICh0eXBlb2Ygc2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XVwiIChjaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZU5vZGVQcm9wZXJ0eShzZWxlY3RlZE5vZGUoKSEuaWQsIGtleSwgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSA9PT0gJ3RydWUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+VHJ1ZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj5GYWxzZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHR5cGVvZiBzZWxlY3RlZE5vZGUoKSEucHJvcGVydGllc1trZXldID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgW3ZhbHVlXT1cInNlbGVjdGVkTm9kZSgpIS5wcm9wZXJ0aWVzW2tleV1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZU5vZGVQcm9wZXJ0eShzZWxlY3RlZE5vZGUoKSEuaWQsIGtleSwgKyRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICh0eXBlb2Ygc2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcm93cz1cIjNcIiBbdmFsdWVdPVwiSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XSwgbnVsbCwgMilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZU5vZGVQcm9wZXJ0eUpTT04oc2VsZWN0ZWROb2RlKCkhLmlkLCBrZXksICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbdmFsdWVdPVwic2VsZWN0ZWROb2RlKCkhLnByb3BlcnRpZXNba2V5XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidXBkYXRlTm9kZVByb3BlcnR5KHNlbGVjdGVkTm9kZSgpIS5pZCwga2V5LCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibm8tcHJvcGVydGllc1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudHMucHJvcGVydGllcy1wYW5lbC5lbXB0eS1zdGF0ZXMubm8tcHJvcGVydGllcycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydGllcy1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxoNT7wn5OkIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5wcm9wZXJ0aWVzLXBhbmVsLnNlY3Rpb25zLm91dHB1dC12YXJpYWJsZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2g1PlxuICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwicHJvcGVydGllcy1oaW50XCI+2K7YsdmI2KzbjCDZiCDZhdiq2LrbjNix2YfYpzwvc21hbGw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydHktcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudHMucHJvcGVydGllcy1wYW5lbC5maWVsZHMub3V0cHV0LXZhcmlhYmxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19OjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwi2YXYq9mE2KfZiyByZXN1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZE5vZGUoKSEucHJvcGVydGllc1snb3V0cHV0VmFyaWFibGUnXSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZU5vZGVQcm9wZXJ0eShzZWxlY3RlZE5vZGUoKSEuaWQsICdvdXRwdXRWYXJpYWJsZScsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydGllcy1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxoNT7wn5SXIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5wcm9wZXJ0aWVzLXBhbmVsLnNlY3Rpb25zLmNvbm5lY3Rpb25zJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInByb3BlcnRpZXMtaGludFwiPtin2KrYtdin2YTYp9iqINin24zZhiDZhtmI2K88L3NtYWxsPlxuXG4gICAgICAgICAgICAgICAgICA8IS0tIE91dGNvbWUtYmFzZWQgQ29ubmVjdGlvbnMgLS0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGVkTm9kZSgpIS5vdXRjb21lQ29ubmVjdGlvbnMgJiYgc2VsZWN0ZWROb2RlKCkhLm91dGNvbWVDb25uZWN0aW9ucyEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbm5lY3Rpb25zLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY29ubiBvZiBzZWxlY3RlZE5vZGUoKSEub3V0Y29tZUNvbm5lY3Rpb25zITsgdHJhY2sgY29ubi50YXJnZXROb2RlSWQgKyBjb25uLm91dGNvbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCB0YXJnZXROb2RlID0gZmluZE5vZGVCeUlkKGNvbm4udGFyZ2V0Tm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmICh0YXJnZXROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25uZWN0aW9uLWl0ZW0gb3V0Y29tZS1jb25uZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJvdXRjb21lLWJhZGdlXCIgW3N0eWxlLmJhY2tncm91bmRdPVwiZ2V0T3V0Y29tZUNvbG9yKGNvbm4ub3V0Y29tZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbm4ub3V0Y29tZSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRhcmdldE5vZGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVtb3ZlLWJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGlzY29ubmVjdE5vZGVzKHNlbGVjdGVkTm9kZSgpIS5pZCwgY29ubi50YXJnZXROb2RlSWQsIGNvbm4ub3V0Y29tZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCLYrdiw2YEg2KfYqti12KfZhFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZE5vZGUoKSEuY29ubmVjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgPCEtLSBTaW1wbGUgQ29ubmVjdGlvbnMgKGZhbGxiYWNrKSAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25uZWN0aW9ucy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHRhcmdldElkIG9mIHNlbGVjdGVkTm9kZSgpIS5jb25uZWN0aW9uczsgdHJhY2sgdGFyZ2V0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCB0YXJnZXROb2RlID0gZmluZE5vZGVCeUlkKHRhcmdldElkKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmICh0YXJnZXROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25uZWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWFycm93LXJpZ2h0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHRhcmdldE5vZGUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVtb3ZlLWJ0blwiIChjbGljayk9XCJkaXNjb25uZWN0Tm9kZXMoc2VsZWN0ZWROb2RlKCkhLmlkLCB0YXJnZXRJZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCLYrdiw2YEg2KfYqti12KfZhFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibm8tcHJvcGVydGllc1wiPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5wcm9wZXJ0aWVzLXBhbmVsLmVtcHR5LXN0YXRlcy5uby1jb25uZWN0aW9ucycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPCEtLSBBdmFpbGFibGUgT3V0Y29tZXMgSW5mbyAtLT5cbiAgICAgICAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWROb2RlKCkhLm91dGNvbWVzICYmIHNlbGVjdGVkTm9kZSgpIS5vdXRjb21lcyEubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnRpZXMtZGl2aWRlclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGg1PvCfk6Qge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLnByb3BlcnRpZXMtcGFuZWwuc2VjdGlvbnMuYXZhaWxhYmxlLW91dGNvbWVzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInByb3BlcnRpZXMtaGludFwiPtiu2LHZiNis24zigIzZh9in24wg2YXZiNis2YjYryDYqNix2KfbjCDYp9iq2LXYp9mEPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdXRjb21lcy1pbmZvXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKG91dGNvbWUgb2Ygc2VsZWN0ZWROb2RlKCkhLm91dGNvbWVzITsgdHJhY2sgb3V0Y29tZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm91dGNvbWUtdGFnXCIgW3N0eWxlLmJvcmRlckNvbG9yXT1cImdldE91dGNvbWVDb2xvcihvdXRjb21lKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3V0Y29tZS1kb3RcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJnZXRPdXRjb21lQ29sb3Iob3V0Y29tZSlcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAge3sgb3V0Y29tZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvcGVydGllcy1kaXZpZGVyXCI+PC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxoNT7wn5OdIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5wcm9wZXJ0aWVzLXBhbmVsLnNlY3Rpb25zLnJhdy1qc29uJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9oNT5cbiAgICAgICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJwcm9wZXJ0aWVzLWpzb25cIj57eyBzZWxlY3RlZE5vZGUoKSB8IGpzb24gfX08L3ByZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8IS0tIFRvZ2dsZSBCdXR0b24gZm9yIFByb3BlcnRpZXMgKHdoZW4gY2xvc2VkKSAtLT5cbiAgICAgICAgICAgICAgQGlmIChzZWxlY3RlZE5vZGUoKSAmJiAhc2hvd1Byb3BlcnRpZXNQYW5lbCgpKSB7XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJzaWRlYmFyLXRvZ2dsZS1idG4gcmlnaHRcIiAoY2xpY2spPVwidG9nZ2xlUHJvcGVydGllc1BhbmVsKClcIlxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLmNvbXBvbmVudHMucHJvcGVydGllcy1wYW5lbC5hY3Rpb25zLnNob3ctcGFuZWwnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXNsaWRlcnNcIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPCEtLSBSZXN1bHQgUGFuZWwgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdHVkaW8tcmVzdWx0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGVybWluYWxcIj48L2k+XG4gICAgICAgICAgICA8aDM+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2gzPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsZWFyLWJ0blwiIChjbGljayk9XCJjbGVhckxvZ3MoKVwiICpuZ0lmPVwiZXhlY3V0aW9uTG9ncygpLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10cmFzaFwiPjwvaT4ge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OnRlc3QtcGFnZXMuYWN0aW9ucy5jbGVhci1sb2dzLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtYm9keVwiPlxuICAgICAgICAgICAgPCEtLSBFeGVjdXRpb24gTG9ncyAtLT5cbiAgICAgICAgICAgIEBpZiAoZXhlY3V0aW9uTG9ncygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICBAZm9yIChsb2cgb2YgZXhlY3V0aW9uTG9ncygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZy1pdGVtXCIgW2NsYXNzXT1cIidsb2ctJyArIGxvZy5sZXZlbFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nLXRpbWVcIj57eyBsb2cudGltZXN0YW1wIHwgZGF0ZTogJ0hIOm1tOnNzLlNTUycgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2ctaWNvblwiPlxuICAgICAgICAgICAgICAgICAgQHN3aXRjaCAobG9nLmxldmVsKSB7XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ2luZm8nKSB7XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaGVjay1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ3dhcm5pbmcnKSB7XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGltZXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxvZy1tZXNzYWdlXCI+e3sgbG9nLm1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmIChsb2cuZGF0YSkge1xuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJsb2ctZGF0YS10b2dnbGVcIiAoY2xpY2spPVwibG9nLmV4cGFuZGVkID0gIWxvZy5leHBhbmRlZFwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodFwiIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiIWxvZy5leHBhbmRlZFwiIFtjbGFzcy5mYS1jaGV2cm9uLXVwXT1cImxvZy5leHBhbmRlZFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIEBpZiAobG9nLmRhdGEgJiYgbG9nLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICAgIDxwcmUgY2xhc3M9XCJsb2ctZGF0YVwiPnt7IGxvZy5kYXRhIHwganNvbiB9fTwvcHJlPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbGF5LWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgPHA+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZW1wdHktc3RhdGVzLm5vLXJlc3VsdHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBGaW5hbCBSZXN1bHQgLS0+XG4gICAgICAgICAgICBAaWYgKGV4ZWN1dGlvblJlc3VsdCgpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmluYWwtcmVzdWx0XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtaGVhZGVyXCIgKGNsaWNrKT1cInNob3dFeGVjdXRpb25SZXN1bHQuc2V0KCFzaG93RXhlY3V0aW9uUmVzdWx0KCkpXCI+XG4gICAgICAgICAgICAgICAgPGg0PlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodFwiIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwic2hvd0V4ZWN1dGlvblJlc3VsdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmZhLWNoZXZyb24tbGVmdF09XCIhc2hvd0V4ZWN1dGlvblJlc3VsdCgpXCI+PC9pPlxuICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1oaW50XCI+e3sgKHNob3dFeGVjdXRpb25SZXN1bHQoKSA/ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5leGVjdXRpb24tcmVzdWx0LmZpbmFsLXJlc3VsdC50b2dnbGUuY2xvc2UnIDogJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LnRvZ2dsZS5vcGVuJykgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoc2hvd0V4ZWN1dGlvblJlc3VsdCgpKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtY2FyZFwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZXhlY3V0aW9uUmVzdWx0KCkuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LmZpZWxkcy5zdGF0dXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX06PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCIgW2NsYXNzXT1cIidiYWRnZS0nICsgKGV4ZWN1dGlvblJlc3VsdCgpLnN0YXR1cz8udG9Mb3dlckNhc2UoKSB8fCAndW5rbm93bicpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGV4ZWN1dGlvblJlc3VsdCgpLnN0YXR1cyB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGV4ZWN1dGlvblJlc3VsdCgpLnN1YlN0YXR1cykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5leGVjdXRpb24tcmVzdWx0LmZpbmFsLXJlc3VsdC5maWVsZHMuc3ViLXN0YXR1cycgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTo8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIiBbY2xhc3NdPVwiJ2JhZGdlLScgKyAoZXhlY3V0aW9uUmVzdWx0KCkuc3ViU3RhdHVzPy50b0xvd2VyQ2FzZSgpIHx8ICd1bmtub3duJylcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZXhlY3V0aW9uUmVzdWx0KCkuc3ViU3RhdHVzIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoZXhlY3V0aW9uUmVzdWx0KCkuc3VjY2VzcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LmZpZWxkcy5zdWNjZXNzJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19Ojwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtjbGFzc109XCInYmFkZ2UtJyArIChleGVjdXRpb25SZXN1bHQoKS5zdWNjZXNzID8gJ3N1Y2Nlc3MnIDogJ2RhbmdlcicpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IChleGVjdXRpb25SZXN1bHQoKS5zdWNjZXNzID8gJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LnZhbHVlcy5zdWNjZXNzJyA6ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5leGVjdXRpb24tcmVzdWx0LmZpbmFsLXJlc3VsdC52YWx1ZXMuZmFpbGVkJykgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGV4ZWN1dGlvblJlc3VsdCgpLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlc3VsdC1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5jb21wb25lbnRzLmV4ZWN1dGlvbi1yZXN1bHQuZmluYWwtcmVzdWx0LmZpZWxkcy5lcnJvcicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTo8L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItdGV4dFwiPnt7IGV4ZWN1dGlvblJlc3VsdCgpLmVycm9yIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGV4ZWN1dGlvblJlc3VsdCgpLm91dHB1dCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtcm93XCI+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uY29tcG9uZW50cy5leGVjdXRpb24tcmVzdWx0LmZpbmFsLXJlc3VsdC5maWVsZHMub3V0cHV0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19Ojwvc3Ryb25nPlxuICAgICAgICAgICAgICAgICAgPHByZT57eyBleGVjdXRpb25SZXN1bHQoKS5vdXRwdXQgfCBqc29uIH19PC9wcmU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gV29ya2Zsb3cgU2V0dGluZ3MgTW9kYWwgLS0+XG4gICAgICBAaWYgKHNob3dXb3JrZmxvd1NldHRpbmdzKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1tb2RhbC1vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dTZXR0aW5ncygpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1tb2RhbFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8IS0tIE1vZGFsIEhlYWRlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbW9kYWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXRpdGxlXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtY29nXCI+PC9pPlxuICAgICAgICAgICAgICA8aDI+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd1NldHRpbmdzKClcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSBNb2RhbCBCb2R5IC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1tb2RhbC1ib2R5XCI+XG4gICAgICAgICAgICA8IS0tIFRhYnMgTmF2aWdhdGlvbiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy10YWJzXCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItYnRuXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZXR0aW5nc1RhYigpID09PSAnZ2VuZXJhbCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzd2l0Y2hTZXR0aW5nc1RhYignZ2VuZXJhbCcpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1pbmZvLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnRhYnMuZ2VuZXJhbCcgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1idG5cIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNldHRpbmdzVGFiKCkgPT09ICdpbnB1dHMnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3dpdGNoU2V0dGluZ3NUYWIoJ2lucHV0cycpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1zaWduLWluXCI+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3MudGFicy5pbnB1dHMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93U2V0dGluZ3MoKS5pbnB1dHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj57eyB3b3JrZmxvd1NldHRpbmdzKCkuaW5wdXRzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidGFiLWJ0blwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlU2V0dGluZ3NUYWIoKSA9PT0gJ291dHB1dHMnXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic3dpdGNoU2V0dGluZ3NUYWIoJ291dHB1dHMnKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtc2lnbi1vdXRcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy50YWJzLm91dHB1dHMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93U2V0dGluZ3MoKS5vdXRwdXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlXCI+e3sgd29ya2Zsb3dTZXR0aW5ncygpLm91dHB1dHMubGVuZ3RoIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItYnRuXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZXR0aW5nc1RhYigpID09PSAndmFyaWFibGVzJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFNldHRpbmdzVGFiKCd2YXJpYWJsZXMnKVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtYm94XCI+PC9pPlxuICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3MudGFicy52YXJpYWJsZXMnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93U2V0dGluZ3MoKS52YXJpYWJsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIj57eyB3b3JrZmxvd1NldHRpbmdzKCkudmFyaWFibGVzLmxlbmd0aCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwidGFiLWJ0blwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlU2V0dGluZ3NUYWIoKSA9PT0gJ2FkdmFuY2VkJ1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInN3aXRjaFNldHRpbmdzVGFiKCdhZHZhbmNlZCcpXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jb2dcIj48L2k+XG4gICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy50YWJzLmFkdmFuY2VkJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwhLS0gVGFiIENvbnRlbnQgLS0+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtY29udGVudFwiPlxuICAgICAgICAgICAgICA8IS0tIEdlbmVyYWwgVGFiIC0tPlxuICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVNldHRpbmdzVGFiKCkgPT09ICdnZW5lcmFsJykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxoMz57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmdlbmVyYWwudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2gzPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5nZW5lcmFsLmZpZWxkcy5uYW1lLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmdlbmVyYWwuZmllbGRzLm5hbWUucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIndvcmtmbG93U2V0dGluZ3MoKS5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMuZ2VuZXJhbC5maWVsZHMuZGVmaW5pdGlvbi1pZC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0taW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5nZW5lcmFsLmZpZWxkcy5kZWZpbml0aW9uLWlkLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd1NldHRpbmdzKCkuZGVmaW5pdGlvbklkXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmdlbmVyYWwuZmllbGRzLmRlZmluaXRpb24taWQuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5nZW5lcmFsLmZpZWxkcy5kZXNjcmlwdGlvbi50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLXRleHRhcmVhXCIgcm93cz1cIjRcIlxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5nZW5lcmFsLmZpZWxkcy5kZXNjcmlwdGlvbi5wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dTZXR0aW5ncygpLmRlc2NyaXB0aW9uXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICA8IS0tIElucHV0cyBUYWIgLS0+XG4gICAgICAgICAgICAgIEBpZiAoYWN0aXZlU2V0dGluZ3NUYWIoKSA9PT0gJ2lucHV0cycpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxoMz57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ0blwiIChjbGljayk9XCJhZGRXb3JrZmxvd0lucHV0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1wbHVzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5hZGQtYnV0dG9uJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAod29ya2Zsb3dTZXR0aW5ncygpLmlucHV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGVcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtaW5ib3hcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8cD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5lbXB0eS1zdGF0ZS50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvcD5cbiAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5lbXB0eS1zdGF0ZS5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKGlucHV0IG9mIHdvcmtmbG93U2V0dGluZ3MoKS5pbnB1dHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbnVtYmVyXCI+I3t7ICRpbmRleCArIDEgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlbW92ZS1idG5cIiAoY2xpY2spPVwicmVtb3ZlV29ya2Zsb3dJbnB1dCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5hY3Rpb25zLnJlbW92ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS10cmFzaFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5pbnB1dHMuZmllbGRzLm5hbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cInVzZXJOYW1lXCIgW3ZhbHVlXT1cImlucHV0Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVXb3JrZmxvd0lucHV0KCRpbmRleCwgJ25hbWUnLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5pbnB1dHMuZmllbGRzLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJVc2VyIE5hbWVcIiBbdmFsdWVdPVwiaW5wdXQudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVXb3JrZmxvd0lucHV0KCRpbmRleCwgJ3RpdGxlJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5maWVsZHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMuaW5wdXRzLmZpZWxkcy5kZXNjcmlwdGlvbi1wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpbnB1dC5kZXNjcmlwdGlvbiB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVXb3JrZmxvd0lucHV0KCRpbmRleCwgJ2Rlc2NyaXB0aW9uJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5maWVsZHMuZGF0YS10eXBlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW3ZhbHVlXT1cImlucHV0LnNjaGVtYS5kYXRhVHlwZSB8fCAnc3RyaW5nJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVXb3JrZmxvd0lucHV0U2NoZW1hKCRpbmRleCwgJ2RhdGFUeXBlJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic3RyaW5nXCI+U3RyaW5nPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm51bWJlclwiPk51bWJlcjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJib29sZWFuXCI+Qm9vbGVhbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJvYmplY3RcIj5PYmplY3Q8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYXJyYXlcIj5BcnJheTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLmlucHV0cy5maWVsZHMuZGVmYXVsdC12YWx1ZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMuaW5wdXRzLmZpZWxkcy5kZWZhdWx0LXZhbHVlLXBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaW5wdXQuc2NoZW1hLmRlZmF1bHRWYWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVdvcmtmbG93SW5wdXRTY2hlbWEoJGluZGV4LCAnZGVmYXVsdFZhbHVlJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY2hlY2tib3gtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImdldElucHV0SXNSZXF1aXJlZChpbnB1dClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidXBkYXRlV29ya2Zsb3dJbnB1dFZhbGlkYXRpb24oJGluZGV4LCAkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5pbnB1dHMuZmllbGRzLnJlcXVpcmVkJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBPdXRwdXRzIFRhYiAtLT5cbiAgICAgICAgICAgICAgQGlmIChhY3RpdmVTZXR0aW5nc1RhYigpID09PSAnb3V0cHV0cycpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxoMz57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLm91dHB1dHMudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZC1idG5cIiAoY2xpY2spPVwiYWRkV29ya2Zsb3dPdXRwdXQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXBsdXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMub3V0cHV0cy5hZGQtYnV0dG9uJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIEBpZiAod29ya2Zsb3dTZXR0aW5ncygpLm91dHB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWluYm94XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPHA+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5vdXRwdXRzLmVtcHR5LXN0YXRlLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMub3V0cHV0cy5lbXB0eS1zdGF0ZS5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvc21hbGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1zLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgIEBmb3IgKG91dHB1dCBvZiB3b3JrZmxvd1NldHRpbmdzKCkub3V0cHV0czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbS1udW1iZXJcIj4je3sgJGluZGV4ICsgMSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVtb3ZlLWJ0blwiIChjbGljayk9XCJyZW1vdmVXb3JrZmxvd091dHB1dCgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLm91dHB1dHMuYWN0aW9ucy5yZW1vdmUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdHJhc2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMub3V0cHV0cy5maWVsZHMubmFtZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwicmVzdWx0XCIgW3ZhbHVlXT1cIm91dHB1dC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidXBkYXRlV29ya2Zsb3dPdXRwdXQoJGluZGV4LCAnbmFtZScsICRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLm91dHB1dHMuZmllbGRzLnRpdGxlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJSZXN1bHRcIiBbdmFsdWVdPVwib3V0cHV0LnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidXBkYXRlV29ya2Zsb3dPdXRwdXQoJGluZGV4LCAndGl0bGUnLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMub3V0cHV0cy5maWVsZHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMub3V0cHV0cy5maWVsZHMuZGVzY3JpcHRpb24tcGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3V0cHV0LmRlc2NyaXB0aW9uIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVdvcmtmbG93T3V0cHV0KCRpbmRleCwgJ2Rlc2NyaXB0aW9uJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5vdXRwdXRzLmZpZWxkcy5kYXRhLXR5cGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW3ZhbHVlXT1cIm91dHB1dC5zY2hlbWEuZGF0YVR5cGUgfHwgJ3N0cmluZydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVdvcmtmbG93T3V0cHV0U2NoZW1hKCRpbmRleCwgJ2RhdGFUeXBlJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInN0cmluZ1wiPlN0cmluZzwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVtYmVyXCI+TnVtYmVyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJib29sZWFuXCI+Qm9vbGVhbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwib2JqZWN0XCI+T2JqZWN0PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhcnJheVwiPkFycmF5PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBWYXJpYWJsZXMgVGFiIC0tPlxuICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVNldHRpbmdzVGFiKCkgPT09ICd2YXJpYWJsZXMnKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICA8aDM+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2gzPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFkZC1idG5cIiAoY2xpY2spPVwiYWRkV29ya2Zsb3dWYXJpYWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtcGx1c1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMuYWRkLWJ1dHRvbicgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93U2V0dGluZ3MoKS52YXJpYWJsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWluYm94XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPHA+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMuZW1wdHktc3RhdGUudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICAgICAgICA8c21hbGw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMuZW1wdHktc3RhdGUuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L3NtYWxsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtcy1saXN0XCI+XG4gICAgICAgICAgICAgICAgICBAZm9yICh2YXJpYWJsZSBvZiB3b3JrZmxvd1NldHRpbmdzKCkudmFyaWFibGVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0taGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLW51bWJlclwiPiN7eyAkaW5kZXggKyAxIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJyZW1vdmUtYnRuXCIgKGNsaWNrKT1cInJlbW92ZVdvcmtmbG93VmFyaWFibGUoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMuYWN0aW9ucy5yZW1vdmUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdHJhc2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMudmFyaWFibGVzLmZpZWxkcy5uYW1lJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCJ0ZW1wRGF0YVwiIFt2YWx1ZV09XCJ2YXJpYWJsZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwidXBkYXRlV29ya2Zsb3dWYXJpYWJsZSgkaW5kZXgsICduYW1lJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmbGV4LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMudmFyaWFibGVzLmZpZWxkcy50eXBlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgW3ZhbHVlXT1cInZhcmlhYmxlLnR5cGVOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInVwZGF0ZVdvcmtmbG93VmFyaWFibGUoJGluZGV4LCAndHlwZU5hbWUnLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzdHJpbmdcIj5TdHJpbmc8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibnVtYmVyXCI+TnVtYmVyPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImJvb2xlYW5cIj5Cb29sZWFuPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm9iamVjdFwiPk9iamVjdDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhcnJheVwiPkFycmF5PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLnNlY3Rpb25zLnZhcmlhYmxlcy5maWVsZHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMudmFyaWFibGVzLmZpZWxkcy5kZXNjcmlwdGlvbi1wbGFjZWhvbGRlcicgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YXJpYWJsZS5kZXNjcmlwdGlvbiB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVXb3JrZmxvd1ZhcmlhYmxlKCRpbmRleCwgJ2Rlc2NyaXB0aW9uJywgJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy52YXJpYWJsZXMuZmllbGRzLmluaXRpYWwtdmFsdWUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3Muc2VjdGlvbnMudmFyaWFibGVzLmZpZWxkcy5pbml0aWFsLXZhbHVlLXBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhcmlhYmxlLnZhbHVlIHx8ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVdvcmtmbG93VmFyaWFibGUoJGluZGV4LCAndmFsdWUnLCAkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIDwhLS0gQWR2YW5jZWQgVGFiIC0tPlxuICAgICAgICAgICAgICBAaWYgKGFjdGl2ZVNldHRpbmdzVGFiKCkgPT09ICdhZHZhbmNlZCcpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8aDM+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OndvcmtmbG93LXN0dWRpby5zZXR0aW5ncy5zZWN0aW9ucy5hZHZhbmNlZC50aXRsZScgfCB0cmFuc2xhdGUgfCBhc3luYyB9fTwvaDM+XG5cbiAgICAgICAgICAgICAgICA8IS0tIFZlcnNpb25pbmcgLS0+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkdmFuY2VkLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICA8aDQ+2YbYs9iu2YfigIzYqNmG2K/bjCAoVmVyc2lvbmluZyk8L2g0PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5WZXJzaW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiIG1pbj1cIjFcIiBbKG5nTW9kZWwpXT1cIndvcmtmbG93U2V0dGluZ3MoKS52ZXJzaW9uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+2LTZhdin2LHZhyDZhtiz2K7ZhyB3b3JrZmxvdyAoMSwgMiwgMywgLi4uKTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjaGVja2JveC1ncm91cFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMS44cmVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwid29ya2Zsb3dTZXR0aW5ncygpLmlzTGF0ZXN0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPtii2K7YsduM2YYg2YbYs9iu2YcgKElzIExhdGVzdCk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNoZWNrYm94LWdyb3VwXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxLjhyZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJ3b3JrZmxvd1NldHRpbmdzKCkuaXNQdWJsaXNoZWRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+2YXZhtiq2LTYsSDYtNiv2YcgKFB1Ymxpc2hlZCk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDwhLS0gT3B0aW9ucyAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxoND7YqtmG2LjbjNmF2KfYqiAoT3B0aW9ucyk8L2g0PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY2hlY2tib3gtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cIndvcmtmbG93U2V0dGluZ3MoKS51c2FibGVBc0FjdGl2aXR5XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7Zgtin2KjZhCDYp9iz2KrZgdin2K/ZhyDYqNmHINi52YbZiNin2YYgQWN0aXZpdHk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD7Yp9uM2YYgd29ya2Zsb3cg2YXbjOKAjNiq2YjYp9mG2K8g2KjZhyDYudmG2YjYp9mGINuM2qkgYWN0aXZpdHkg2K/YsSB3b3JrZmxvdyDZh9in24wg2K/bjNqv2LEg2KfYs9iq2YHYp9iv2Ycg2LTZiNivPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgY2hlY2tib3gtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cIndvcmtmbG93U2V0dGluZ3MoKS5hdXRvVXBkYXRlQ29uc3VtaW5nV29ya2Zsb3dzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7YqNmH4oCM2LHZiNiy2LHYs9in2YbbjCDYrtmI2K/aqdin2LEgd29ya2Zsb3dzINmF2LXYsdmB4oCM2qnZhtmG2K/Zhzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPndvcmtmbG93INmH2KfbjNuMINqp2Ycg2KfYsiDYp9uM2YYgd29ya2Zsb3cg2KfYs9iq2YHYp9iv2Ycg2YXbjOKAjNqp2YbZhtivINio2Ycg2LXZiNix2Kog2K7ZiNiv2qnYp9ixINio2YfigIzYsdmI2LIg2YXbjOKAjNi02YjZhtivPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBNZXRhZGF0YSAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxoND5NZXRhZGF0YTwvaDQ+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlRvb2wgVmVyc2lvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIgcGxhY2Vob2xkZXI9XCIxLjAuMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIndvcmtmbG93U2V0dGluZ3MoKS50b29sVmVyc2lvblwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPtmG2LPYrtmHINin2KjYstin2LEg2LPYp9iy2YbYr9mHPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Qcm92aWRlciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0taW5wdXRcIiBwbGFjZWhvbGRlcj1cIldvcmtmbG93U3R1ZGlvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dTZXR0aW5ncygpLnByb3ZpZGVyTmFtZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNtYWxsPtmG2KfZhSDYp9io2LLYp9ixINiz2KfYstmG2K/Zhzwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8IS0tIE91dGNvbWVzIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZHZhbmNlZC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgPGg0PldvcmtmbG93IE91dGNvbWVzPC9oND5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Qb3NzaWJsZSBPdXRjb21lczwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiIHBsYWNlaG9sZGVyPVwiRG9uZSwgU3VjY2VzcywgRmFpbGVkICjYrNiv2Kcg2LTYr9mHINio2Kcg2qnYp9mF2KcpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwid29ya2Zsb3dTZXR0aW5ncygpLm91dGNvbWVzLmpvaW4oJywgJylcIlxuICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVPdXRjb21lcygkYW55KCRldmVudC50YXJnZXQpLnZhbHVlKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzbWFsbD7Zhtiq2KfbjNisINmF2YXaqdmGINqp2Ycg2KfbjNmGIHdvcmtmbG93INmF24zigIzYqtmI2KfZhtivINio2LHar9ix2K/Yp9mG2K8gKNmF2KvZhNin2Ys6IERvbmUsIFN1Y2Nlc3MsIEZhaWxlZCk8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3V0Y29tZXMtcHJldmlld1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChvdXRjb21lIG9mIHdvcmtmbG93U2V0dGluZ3MoKS5vdXRjb21lczsgdHJhY2sgb3V0Y29tZSkge1xuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm91dGNvbWUtY2hpcFwiPnt7IG91dGNvbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPCEtLSBFeHBvcnQgUHJldmlldyAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2YW5jZWQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIDxoND7Yrtix2YjYrNuMINmG2YfYp9uM24wgKFdvcmtmbG93RGVmaW5pdGlvbik8L2g0PlxuICAgICAgICAgICAgICAgICAgPHNtYWxsPtin24zZhiDYs9in2K7Yqtin2LEg2K/ZgtuM2YLYp9mLINmF2LfYp9io2YIg2KjYpyBXb3JrZmxvd0RlZmluaXRpb24g2KfYs9iqINmIINiv2LEg2K/bjNiq2KfYqNuM2LMg2LDYrtuM2LHZhyDZhduM4oCM2LTZiNivPC9zbWFsbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleHBvcnQtaW5mb1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+RGVmaW5pdGlvbiBJRDo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3sgd29ya2Zsb3dTZXR0aW5ncygpLmRlZmluaXRpb25JZCB8fCAnKNiu2KfZhNuMKScgfX08L2NvZGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+TmFtZTo8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPGNvZGU+e3sgd29ya2Zsb3dTZXR0aW5ncygpLm5hbWUgfHwgJyjYrtin2YTbjCknIH19PC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPlZlcnNpb246PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnZ7eyB3b3JrZmxvd1NldHRpbmdzKCkudmVyc2lvbiB9fTwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5JbnB1dHM6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnt7IHdvcmtmbG93U2V0dGluZ3MoKS5pbnB1dHMubGVuZ3RoIH19IGl0ZW1zPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm8tcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPk91dHB1dHM6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnt7IHdvcmtmbG93U2V0dGluZ3MoKS5vdXRwdXRzLmxlbmd0aCB9fSBpdGVtczwvY29kZT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5WYXJpYWJsZXM6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPnt7IHdvcmtmbG93U2V0dGluZ3MoKS52YXJpYWJsZXMubGVuZ3RoIH19IGl0ZW1zPC9jb2RlPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIE1vZGFsIEZvb3RlciAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2V0dGluZ3MtbW9kYWwtZm9vdGVyXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIFt0ZXh0XT1cIidAd29ya2Zsb3ctbWFuYWdlbWVudDp3b3JrZmxvdy1zdHVkaW8uc2V0dGluZ3MuYWN0aW9ucy5jYW5jZWwnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIiBjb2xvcj1cInNlY29uZGFyeVwiIHNpemU9XCJtZFwiIChvbkNsaWNrKT1cImNsb3NlV29ya2Zsb3dTZXR0aW5ncygpXCI+IDwvYXgtYnV0dG9uPlxuICAgICAgICAgICAgPGF4LWJ1dHRvbiBbdGV4dF09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6d29ya2Zsb3ctc3R1ZGlvLnNldHRpbmdzLmFjdGlvbnMuc2F2ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiIGNvbG9yPVwicHJpbWFyeVwiIHNpemU9XCJtZFwiIChvbkNsaWNrKT1cInNhdmVXb3JrZmxvd1NldHRpbmdzKClcIj4gPC9heC1idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gV29ya2Zsb3cgRXhlY3V0aW9uIERpYWxvZyAtLT5cbiAgICAgIEBpZiAoc2hvd0V4ZWN1dGlvbkRpYWxvZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXhlY3V0aW9uLWRpYWxvZy1vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRXhlY3V0aW9uRGlhbG9nKClcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWN1dGlvbi1kaWFsb2dcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPCEtLSBEaWFsb2cgSGVhZGVyIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVjdXRpb24tZGlhbG9nLWhlYWRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtcGxheS1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItaW5mb1wiPlxuICAgICAgICAgICAgICAgIDxoMj57eyAnQHdvcmtmbG93LW1hbmFnZW1lbnQ6dGVzdC1wYWdlcy53b3JrZmxvdy1zdHVkaW8uYWN0aW9ucy5leGVjdXRlLXdvcmtmbG93LnRpdGxlJyB8IHRyYW5zbGF0ZSB8XG4gICAgICAgICAgICAgICAgICBhc3luYyB9fTwvaDI+XG4gICAgICAgICAgICAgICAgPHA+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OnRlc3QtcGFnZXMud29ya2Zsb3ctc3R1ZGlvLmFjdGlvbnMuZXhlY3V0ZS13b3JrZmxvdy5kZXNjcmlwdGlvbicgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgICAgICAgIHwgYXN5bmMgfX08L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlRXhlY3V0aW9uRGlhbG9nKClcIiBbZGlzYWJsZWRdPVwiaXNFeGVjdXRpbmcoKVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERpYWxvZyBCb2R5IC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVjdXRpb24tZGlhbG9nLWJvZHlcIj5cbiAgICAgICAgICAgIDwhLS0gV29ya2Zsb3cgSW5mbyBQYW5lbCAoQmVmb3JlIEV4ZWN1dGlvbikgLS0+XG4gICAgICAgICAgICBAaWYgKCF3b3JrZmxvd0luc3RhbmNlU3RhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWluZm8tcGFuZWxcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXJ0LXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhcnQtaWxsdXN0cmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXJvY2tldFwiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aDM+e3sgJ0B3b3JrZmxvdy1tYW5hZ2VtZW50OnRlc3QtcGFnZXMud29ya2Zsb3ctc3R1ZGlvLm1lc3NhZ2VzLmluZm8ucmVhZHktdG8tZXhlY3V0ZScgfCB0cmFuc2xhdGUgfFxuICAgICAgICAgICAgICAgICAgYXN5bmMgfX08L2gzPlxuICAgICAgICAgICAgICAgIDxwPnt7ICdAd29ya2Zsb3ctbWFuYWdlbWVudDp0ZXN0LXBhZ2VzLndvcmtmbG93LXN0dWRpby5tZXNzYWdlcy5pbmZvLmNsaWNrLXRvLXN0YXJ0JyB8IHRyYW5zbGF0ZSB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICB9fTwvcD5cbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBbdGV4dF09XCInQHdvcmtmbG93LW1hbmFnZW1lbnQ6dGVzdC1wYWdlcy53b3JrZmxvdy1zdHVkaW8uYWN0aW9ucy5zdGFydC1leGVjdXRpb24udGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzXCIgc2l6ZT1cImxnXCIgKG9uQ2xpY2spPVwic3RhcnRXb3JrZmxvd0V4ZWN1dGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgPCEtLSBDdXN0b20gVUkgZm9yIFJlZ2lzdHJhdGlvbiAtLT5cbiAgICAgICAgICAgIEBpZiAoZmFsc2UpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWdpc3RyYXRpb24tdWlcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ2lzdHJhdGlvbi1jYXJkXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlZ2lzdHJhdGlvbi1pY29uXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXVzZXItY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMz7Zgdix2KLbjNmG2K8g2KvYqNiq4oCM2YbYp9mFPC9oMz5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInJlZ2lzdHJhdGlvbi1kZXNjXCI+XG4gICAgICAgICAgICAgICAgICDYp9uM2YYg2YHZhNmIINi02KfZhdmEINqG2YbYryDZhdix2K3ZhNmHINin2LPYqiDaqdmHINiv2KfYr9mH4oCM2YfYp9uMINqp2KfYsdio2LEg2LHYpyDYrNmF2LnigIzYotmI2LHbjCDaqdix2K/ZhyDZiCDYr9ixINmG2YfYp9uM2Kog2K3Ys9in2Kgg2qnYp9ix2KjYsduMINin24zYrNin2K8g2YXbjOKAjNqp2YbYry5cbiAgICAgICAgICAgICAgICA8L3A+XG5cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93SW5zdGFuY2VTdGF0ZSgpPy5zdGF0dXMgPT09ICdydW5uaW5nJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWdpc3RyYXRpb24tcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtc3Bpbm5lci10aGlyZCBmYS1zcGluXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8cD7Yr9ixINit2KfZhCDYp9is2LHYp9uMINmF2LHYp9it2YQg2KvYqNiq4oCM2YbYp9mFLi4uPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAod29ya2Zsb3dJbnN0YW5jZVN0YXRlKCk/LnN0YXR1cyA9PT0gJ2ZpbmlzaGVkJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWdpc3RyYXRpb24tc3VjY2Vzc1wiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaGVjay1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8aDQ+2KvYqNiq4oCM2YbYp9mFINio2Kcg2YXZiNmB2YLbjNiqINin2YbYrNin2YUg2LTYryE8L2g0PlxuICAgICAgICAgICAgICAgICAgPHA+2K3Ys9in2Kgg2qnYp9ix2KjYsduMINi02YXYpyDYp9uM2KzYp9ivINi02K8g2Ygg2KjZhyDYstmI2K/bjCDYqNmHINiv2KfYtNio2YjYsdivINmF2YbYqtmC2YQg2K7ZiNin2YfbjNivINi02K8uPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBEZWZhdWx0IEV4ZWN1dGlvbiBWaWV3IC0tPlxuICAgICAgICAgICAgQGlmICh3b3JrZmxvd0luc3RhbmNlU3RhdGUoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZXhlY3V0aW9uLXZpZXdcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWN1dGlvbi1zdGF0dXNcIj5cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93SW5zdGFuY2VTdGF0ZSgpPy5zdGF0dXMgPT09ICdydW5uaW5nJykge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtcnVubmluZ1wiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1zcGlubmVyLXRoaXJkIGZhLXNwaW5cIj48L2k+XG4gICAgICAgICAgICAgICAgICA8aDM+2K/YsSDYrdin2YQg2KfYrNix2KcuLi48L2gzPlxuICAgICAgICAgICAgICAgICAgPHA+V29ya2Zsb3cg2K/YsSDYrdin2YQg2KfYrNix2Kcg2KfYs9iqLiDZhNi32YHYp9mLINi12KjYsSDaqdmG24zYry48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICh3b3JrZmxvd0luc3RhbmNlU3RhdGUoKT8uc3RhdHVzID09PSAnZmluaXNoZWQnKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1maW5pc2hlZFwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaGVjay1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8aDM+2KfYrNix2Kcg2KjYpyDZhdmI2YHZgtuM2Kog2KraqdmF24zZhCDYtNivPC9oMz5cbiAgICAgICAgICAgICAgICAgIDxwPldvcmtmbG93INio2Kcg2YXZiNmB2YLbjNiqINin2KzYsdinINi02K8g2Ygg2KrZhdin2YUgQWN0aXZpdGllcyDYp9mG2KzYp9mFINi02K/ZhtivLjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKHdvcmtmbG93SW5zdGFuY2VTdGF0ZSgpPy5zdGF0dXMgPT09ICdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWVycm9yXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXRpbWVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDxoMz7Yrti32Kcg2K/YsSDYp9is2LHYpzwvaDM+XG4gICAgICAgICAgICAgICAgICA8cD57eyB3b3JrZmxvd0luc3RhbmNlU3RhdGUoKT8uZXJyb3IgfX08L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIEV4ZWN1dGlvbiBMb2dzIFBhbmVsIC0tPlxuICAgICAgICAgICAgQGlmICh3b3JrZmxvd0luc3RhbmNlU3RhdGUoKSAmJiBleGVjdXRpb25Mb2dzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWN1dGlvbi1sb2dzLXBhbmVsXCI+XG4gICAgICAgICAgICAgIDxoMz48aSBjbGFzcz1cImZhLWxpZ2h0IGZhLXRlcm1pbmFsXCI+PC9pPiDZhNin2q/igIzZh9in24wg2KfYrNix2Kc8L2gzPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9ncy1jb250YWluZXItY29tcGFjdFwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGxvZyBvZiBleGVjdXRpb25Mb2dzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2ctaXRlbS1jb21wYWN0XCIgW2NsYXNzXT1cIidsb2ctJyArIGxvZy5sZXZlbFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2ctdGltZVwiPnt7IGxvZy50aW1lc3RhbXAgfCBkYXRlOiAnSEg6bW06c3MnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsb2ctaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChsb2cubGV2ZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdpbmZvJykge1xuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jaGVjay1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd3YXJuaW5nJykge1xuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtdGltZXMtY2lyY2xlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibG9nLW1lc3NhZ2VcIj57eyBsb2cubWVzc2FnZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8IS0tIERpYWxvZyBGb290ZXIgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWN1dGlvbi1kaWFsb2ctZm9vdGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgQGlmICh3b3JrZmxvd0luc3RhbmNlU3RhdGUoKT8uc3RhcnRUaW1lKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGltZS1pbmZvXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1jbG9ja1wiPjwvaT5cbiAgICAgICAgICAgICAgICDYtNix2YjYuToge3sgd29ya2Zsb3dJbnN0YW5jZVN0YXRlKCkhLnN0YXJ0VGltZSB8IGRhdGU6ICdISDptbTpzcycgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAod29ya2Zsb3dJbnN0YW5jZVN0YXRlKCk/LmVuZFRpbWUpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWZsYWctY2hlY2tlcmVkXCI+PC9pPlxuICAgICAgICAgICAgICAgINm+2KfbjNin2YY6IHt7IHdvcmtmbG93SW5zdGFuY2VTdGF0ZSgpIS5lbmRUaW1lIHwgZGF0ZTogJ0hIOm1tOnNzJyB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICAgICAgICBbdGV4dF09XCIod29ya2Zsb3dJbnN0YW5jZVN0YXRlKCkgPyAnQGdlbmVyYWw6YWN0aW9ucy5jbG9zZS50aXRsZScgOiAnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnKSB8IHRyYW5zbGF0ZSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInNlY29uZGFyeVwiIHNpemU9XCJtZFwiIFtkaXNhYmxlZF09XCJpc0V4ZWN1dGluZygpXCIgKG9uQ2xpY2spPVwiY2xvc2VFeGVjdXRpb25EaWFsb2coKVwiPlxuICAgICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2F4cC1wYWdlLWNvbnRlbnQ+XG48L2F4cC1wYWdlLWxheW91dD4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LW1vZHVsZXMtd29ya2Zsb3ctbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy93b3JrZmxvdy1tYW5hZ2VtZW50L3NyYy9hY29yZXgtbW9kdWxlcy13b3JrZmxvdy1tYW5hZ2VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["factory","i1","i2"],"mappings":"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"}
|