@acorex/platform 21.0.0-next.2 → 21.0.0-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/auth/index.d.ts +97 -238
  2. package/common/index.d.ts +783 -213
  3. package/core/index.d.ts +311 -442
  4. package/fesm2022/acorex-platform-auth.mjs +156 -200
  5. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-common.mjs +1038 -127
  7. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-core.mjs +602 -413
  9. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-domain.mjs +54 -11
  11. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-layout-builder.mjs +412 -270
  13. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-layout-components.mjs +2100 -3141
  15. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-layout-designer.mjs +7 -7
  17. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-layout-entity.mjs +730 -652
  19. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-layout-views.mjs +4 -4
  21. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  22. package/fesm2022/acorex-platform-layout-widget-core.mjs +249 -205
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  24. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs → acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs} +2 -2
  25. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +1 -0
  26. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs} +2 -2
  27. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +1 -0
  28. package/fesm2022/acorex-platform-layout-widgets.mjs +3066 -1040
  29. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  30. package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs → acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs} +26 -5
  31. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +1 -0
  32. package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs → acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs} +4 -5
  33. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +1 -0
  34. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +101 -0
  35. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs → acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs} +3 -3
  37. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-themes-default.mjs +166 -30
  39. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  40. package/fesm2022/acorex-platform-themes-shared.mjs +27 -27
  41. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  42. package/fesm2022/acorex-platform-workflow.mjs +474 -1527
  43. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  44. package/layout/builder/index.d.ts +4 -1
  45. package/layout/components/index.d.ts +405 -327
  46. package/layout/designer/index.d.ts +3 -3
  47. package/layout/entity/index.d.ts +154 -108
  48. package/layout/widget-core/index.d.ts +39 -52
  49. package/layout/widgets/index.d.ts +368 -54
  50. package/package.json +9 -9
  51. package/themes/default/index.d.ts +15 -2
  52. package/themes/shared/index.d.ts +10 -10
  53. package/workflow/index.d.ts +182 -817
  54. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs +0 -50
  55. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-edit.component-fhhZOWul.mjs.map +0 -1
  56. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs +0 -42
  57. package/fesm2022/acorex-platform-layout-widgets-extra-properties-schema-widget-view.component-C3Qbs0fz.mjs.map +0 -1
  58. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs +0 -55
  59. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-edit.component-CngQBUlN.mjs.map +0 -1
  60. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs +0 -50
  61. package/fesm2022/acorex-platform-layout-widgets-extra-properties-values-widget-view.component-DSNo9e4W.mjs.map +0 -1
  62. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs +0 -48
  63. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-edit.component-CL0CwEHX.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs +0 -42
  65. package/fesm2022/acorex-platform-layout-widgets-extra-properties-widget-view.component-B6Fi0xTw.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-D0y-9nE5.mjs.map +0 -1
  67. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-m8rHZP8L.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-mARj77Mr.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-Cym8pq0v.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs +0 -101
  71. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BTA6h7Xd.mjs.map +0 -1
  72. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-B_P0a5KW.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-workflow.mjs","sources":["../tmp-esm2022/workflow/lib/errors.types.js","../tmp-esm2022/workflow/lib/workflow-event-dispatcher.service.js","../tmp-esm2022/workflow/lib/workflow-registery.service.js","../tmp-esm2022/workflow/lib/workflow.types.js","../tmp-esm2022/workflow/lib/actions/decide.action.js","../tmp-esm2022/workflow/lib/workflow.service.js","../tmp-esm2022/workflow/lib/actions/start-workflow.action.js","../tmp-esm2022/workflow/lib/engine/workflow-definition.config.js","../tmp-esm2022/workflow/lib/engine/workflow-definition-registry.service.js","../tmp-esm2022/workflow/lib/engine/workflow-instance.types.js","../tmp-esm2022/workflow/lib/engine/activity.types.js","../tmp-esm2022/workflow/lib/engine/activity-provider.service.js","../tmp-esm2022/workflow/lib/engine/activity-category.provider.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-execution.service.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-coordinator.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-execution.types.js","../tmp-esm2022/workflow/lib/engine/runtime/index.js","../tmp-esm2022/workflow/lib/engine/activities/write-line.activity.js","../tmp-esm2022/workflow/lib/engine/activities/sequence.activity.js","../tmp-esm2022/workflow/lib/engine/activities/show-confirm-dialog.activity.js","../tmp-esm2022/workflow/lib/engine/activities/show-alert-dialog.activity.js","../tmp-esm2022/workflow/lib/engine/activities/show-dialog-layout-builder.activity.js","../tmp-esm2022/workflow/lib/engine/activities/show-toast.activity.js","../tmp-esm2022/workflow/lib/engine/activities/navigate.activity.js","../tmp-esm2022/workflow/lib/engine/activities/set-variable.activity.js","../tmp-esm2022/workflow/lib/engine/activities/dispatch-event.activity.js","../tmp-esm2022/workflow/lib/engine/activities/if.activity.js","../tmp-esm2022/workflow/lib/engine/activities/while.activity.js","../tmp-esm2022/workflow/lib/engine/activities/for-each.activity.js","../tmp-esm2022/workflow/lib/engine/activities/execute-command.activity.js","../tmp-esm2022/workflow/lib/engine/activities/execute-query.activity.js","../tmp-esm2022/workflow/lib/engine/activities/start-activity.activity.js","../tmp-esm2022/workflow/lib/engine/activities/end-activity.activity.js","../tmp-esm2022/workflow/lib/engine/activities/activity-command-setups.js","../tmp-esm2022/workflow/lib/engine/activities/index.js","../tmp-esm2022/workflow/lib/engine/index.js","../tmp-esm2022/workflow/lib/workflow.module.js","../tmp-esm2022/workflow/acorex-platform-workflow.js"],"sourcesContent":["export class AXPWorkflowError extends Error {\n constructor(message, inner = null) {\n super(message);\n this.inner = inner;\n this.name = 'AXPWorkflowError';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2Vycm9ycy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsS0FBSztJQUN2QyxZQUFZLE9BQWUsRUFBUyxRQUFzQixJQUFJO1FBQzFELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURpQixVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUUxRCxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGlubmVyOiBFcnJvciB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQVhQV29ya2Zsb3dFcnJvcic7XG4gICAgfVxufSJdfQ==","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowEventService {\n constructor() {\n this.eventSubject = new Subject();\n }\n dispatch(event) {\n this.eventSubject.next(event);\n }\n get events$() {\n return this.eventSubject.asObservable();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL3dvcmtmbG93LWV2ZW50LWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTTNDLE1BQU0sT0FBTyx1QkFBdUI7SUFIcEM7UUFJVSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO0tBU3hEO0lBUEMsUUFBUSxDQUFDLEtBQXVCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0FUVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dFdmVudCB9IGZyb20gJy4vd29ya2Zsb3cudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dFdmVudFNlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PEFYUFdvcmtmbG93RXZlbnQ+KCk7XG5cbiAgZGlzcGF0Y2goZXZlbnQ6IEFYUFdvcmtmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGdldCBldmVudHMkKCk6IE9ic2VydmFibGU8QVhQV29ya2Zsb3dFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowRegistryService {\n constructor() {\n this.functionsMap = new Map();\n this.actionsMap = new Map();\n this.workflowsMap = new Map();\n }\n registerWorkflow(name, workflow) {\n this.workflowsMap.set(name, workflow);\n }\n getWorkflow(name) {\n return this.workflowsMap.get(name);\n }\n registerAction(name, action) {\n this.actionsMap.set(name, action);\n }\n getAction(name) {\n return this.actionsMap.get(name);\n }\n registerFunction(name, func) {\n this.functionsMap.set(name, func);\n }\n getFunction(name) {\n return this.functionsMap.get(name);\n }\n getFunctionNames() {\n return Array.from(this.functionsMap.keys());\n }\n getStep(workflowName, stepName) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n return steps[stepName];\n }\n return undefined;\n }\n updateStepInWorkflow(workflowName, stepName, step) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n if (steps[stepName]) {\n steps[stepName] = step;\n }\n else {\n throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);\n }\n }\n else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n addStepToWorkflow(workflowName, stepName, step) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n if (!steps[stepName]) {\n steps[stepName] = step;\n }\n else {\n throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);\n }\n }\n else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n addAfterStep(workflowId, stepId, newStepId, newStepAction, conditionExpression) {\n const step = this.getStep(workflowId, stepId);\n if (step != undefined) {\n this.addStepToWorkflow(workflowId, newStepId, {\n action: newStepAction,\n nextSteps: step.nextSteps,\n });\n this.updateStepInWorkflow(workflowId, stepId, {\n ...step,\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: conditionExpression }],\n nextStepId: newStepId,\n },\n ],\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUFNakQsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFDNUQsZUFBVSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ3hELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7S0E0RnZEO0lBMUZDLGdCQUFnQixDQUFDLElBQVksRUFBRSxRQUFxQjtRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBK0I7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsSUFBK0I7UUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FB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QUFDO0lBQ0gsQ0FBQzsrR0E5RlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dGdW5jdGlvbiwgQVhQV29ya2Zsb3dTdGVwIH0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZSB7XG4gIHByaXZhdGUgZnVuY3Rpb25zTWFwID0gbmV3IE1hcDxzdHJpbmcsIFR5cGU8QVhQV29ya2Zsb3dGdW5jdGlvbj4+KCk7XG4gIHByaXZhdGUgYWN0aW9uc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPj4oKTtcbiAgcHJpdmF0ZSB3b3JrZmxvd3NNYXAgPSBuZXcgTWFwPHN0cmluZywgQVhQV29ya2Zsb3c+KCk7XG5cbiAgcmVnaXN0ZXJXb3JrZmxvdyhuYW1lOiBzdHJpbmcsIHdvcmtmbG93OiBBWFBXb3JrZmxvdyk6IHZvaWQge1xuICAgIHRoaXMud29ya2Zsb3dzTWFwLnNldChuYW1lLCB3b3JrZmxvdyk7XG4gIH1cblxuICBnZXRXb3JrZmxvdyhuYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMud29ya2Zsb3dzTWFwLmdldChuYW1lKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQWN0aW9uKG5hbWU6IHN0cmluZywgYWN0aW9uOiBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uc01hcC5zZXQobmFtZSwgYWN0aW9uKTtcbiAgfVxuXG4gIGdldEFjdGlvbihuYW1lOiBzdHJpbmcpOiBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc01hcC5nZXQobmFtZSk7XG4gIH1cblxuICByZWdpc3RlckZ1bmN0aW9uKG5hbWU6IHN0cmluZywgZnVuYzogVHlwZTxBWFBXb3JrZmxvd0Z1bmN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuZnVuY3Rpb25zTWFwLnNldChuYW1lLCBmdW5jKTtcbiAgfVxuXG4gIGdldEZ1bmN0aW9uKG5hbWU6IHN0cmluZyk6IFR5cGU8QVhQV29ya2Zsb3dGdW5jdGlvbj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc01hcC5nZXQobmFtZSk7XG4gIH1cblxuICBnZXRGdW5jdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZ1bmN0aW9uc01hcC5rZXlzKCkpO1xuICB9XG5cbiAgZ2V0U3RlcCh3b3JrZmxvd05hbWU6IHN0cmluZywgc3RlcE5hbWU6IHN0cmluZyk6IEFYUFdvcmtmbG93U3RlcCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB0aGlzLndvcmtmbG93c01hcC5nZXQod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAod29ya2Zsb3cpIHtcbiAgICAgIGNvbnN0IHN0ZXBzID0gd29ya2Zsb3cuc3RlcHMgYXMgeyBba2V5OiBzdHJpbmddOiBBWFBXb3JrZmxvd1N0ZXAgfTtcbiAgICAgIHJldHVybiBzdGVwc1tzdGVwTmFtZV07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICB1cGRhdGVTdGVwSW5Xb3JrZmxvdyh3b3JrZmxvd05hbWU6IHN0cmluZywgc3RlcE5hbWU6IHN0cmluZywgc3RlcDogQVhQV29ya2Zsb3dTdGVwKTogdm9pZCB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB0aGlzLndvcmtmbG93c01hcC5nZXQod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAod29ya2Zsb3cpIHtcbiAgICAgIGNvbnN0IHN0ZXBzID0gd29ya2Zsb3cuc3RlcHMgYXMgeyBba2V5OiBzdHJpbmddOiBBWFBXb3JrZmxvd1N0ZXAgfTtcbiAgICAgIGlmIChzdGVwc1tzdGVwTmFtZV0pIHtcbiAgICAgICAgc3RlcHNbc3RlcE5hbWVdID0gc3RlcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RlcCB3aXRoIG5hbWUgJHtzdGVwTmFtZX0gZG9lcyBub3QgZXhpc3QgaW4gd29ya2Zsb3cgJHt3b3JrZmxvd05hbWV9LmApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdvcmtmbG93IHdpdGggbmFtZSAke3dvcmtmbG93TmFtZX0gZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuICB9XG5cbiAgYWRkU3RlcFRvV29ya2Zsb3cod29ya2Zsb3dOYW1lOiBzdHJpbmcsIHN0ZXBOYW1lOiBzdHJpbmcsIHN0ZXA6IEFYUFdvcmtmbG93U3RlcCk6IHZvaWQge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gdGhpcy53b3JrZmxvd3NNYXAuZ2V0KHdvcmtmbG93TmFtZSk7XG4gICAgaWYgKHdvcmtmbG93KSB7XG4gICAgICBjb25zdCBzdGVwcyA9IHdvcmtmbG93LnN0ZXBzIGFzIHsgW2tleTogc3RyaW5nXTogQVhQV29ya2Zsb3dTdGVwIH07XG4gICAgICBpZiAoIXN0ZXBzW3N0ZXBOYW1lXSkge1xuICAgICAgICBzdGVwc1tzdGVwTmFtZV0gPSBzdGVwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGVwIHdpdGggbmFtZSAke3N0ZXBOYW1lfSBhbHJlYWR5IGV4aXN0cyBpbiB3b3JrZmxvdyAke3dvcmtmbG93TmFtZX0uYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgV29ya2Zsb3cgd2l0aCBuYW1lICR7d29ya2Zsb3dOYW1lfSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG4gIH1cblxuICBhZGRBZnRlclN0ZXAoXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgIG5ld1N0ZXBJZDogc3RyaW5nLFxuICAgIG5ld1N0ZXBBY3Rpb246IHN0cmluZyxcbiAgICBjb25kaXRpb25FeHByZXNzaW9uOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0U3RlcCh3b3JrZmxvd0lkLCBzdGVwSWQpO1xuICAgIGlmIChzdGVwICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hZGRTdGVwVG9Xb3JrZmxvdyh3b3JrZmxvd0lkLCBuZXdTdGVwSWQsIHtcbiAgICAgICAgYWN0aW9uOiBuZXdTdGVwQWN0aW9uLFxuICAgICAgICBuZXh0U3RlcHM6IHN0ZXAubmV4dFN0ZXBzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudXBkYXRlU3RlcEluV29ya2Zsb3cod29ya2Zsb3dJZCwgc3RlcElkLCB7XG4gICAgICAgIC4uLnN0ZXAsXG4gICAgICAgIG5leHRTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiBjb25kaXRpb25FeHByZXNzaW9uIH1dLFxuICAgICAgICAgICAgbmV4dFN0ZXBJZDogbmV3U3RlcElkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { filter } from 'rxjs';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { cloneDeep, get } from 'lodash-es';\nimport { setSmart } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowContext {\n constructor(initialData = {}) {\n this.variables = {};\n this.stepOutputs = new Map();\n this.variables = cloneDeep(initialData);\n }\n setVariable(key, value) {\n setSmart(this.variables, key, value);\n }\n setVariables(context = {}) {\n this.variables = { ...this.variables, ...context };\n }\n getVariable(key) {\n return !key ? this.variables : get(this.variables, key);\n }\n setOutput(key, output) {\n this.stepOutputs.set(key, output);\n }\n setOutputs(values) {\n this.stepOutputs = new Map([...this.stepOutputs, ...values]);\n }\n getOutput(key) {\n return this.stepOutputs.get(key);\n }\n}\nexport class AXPWorkflowAction {\n constructor() {\n this.eventService = inject(AXPWorkflowEventService);\n }\n dispatch(event) {\n this.eventService.dispatch(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPWorkflowFunction {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction, decorators: [{\n type: Injectable\n }] });\nexport function createWorkFlowEvent(type) {\n const eventCreator = (payload) => ({ type, payload });\n eventCreator.type = type;\n return eventCreator;\n}\nexport function ofType(...allowedTypes) {\n return filter((event) => allowedTypes.some((type) => event.type === type.type));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBUWpELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBWSxjQUFtQixFQUFFO1FBSXpCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUpoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBS0QsV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBR0QsWUFBWSxDQUFDLFVBQWUsRUFBRTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBVSxHQUFtQjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFXO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQXdCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxTQUFTLENBQVUsR0FBVztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQXlCRCxNQUFNLE9BQWdCLGlCQUFpQjtJQUR2QztRQUVVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FPeEQ7SUFMVyxRQUFRLENBQUMsS0FBdUI7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FMbUIsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRHRDLFVBQVU7O0FBWVgsTUFBTSxPQUFnQixtQkFBbUI7K0dBQW5CLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUR4QyxVQUFVOztBQVlYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBSSxJQUFZO0lBQ2pELE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekQsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDekIsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQTZCLEdBQUcsWUFBcUM7SUFDekYsT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0V2ZW50U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IHNldFNtYXJ0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvdyB7XG4gIHN0ZXBzOiB7IFtzdGVwTmFtZTogc3RyaW5nXTogQVhQV29ya2Zsb3dTdGVwIH07XG4gIHN0YXJ0U3RlcElkOiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93Q29udGV4dCB7XG5cbiAgY29uc3RydWN0b3IoaW5pdGlhbERhdGE6IGFueSA9IHt9KSB7XG4gICAgdGhpcy52YXJpYWJsZXMgPSBjbG9uZURlZXAoaW5pdGlhbERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YXJpYWJsZXM6IGFueSA9IHt9O1xuICBwcml2YXRlIHN0ZXBPdXRwdXRzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gIHNldFZhcmlhYmxlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgc2V0U21hcnQodGhpcy52YXJpYWJsZXMsIGtleSwgdmFsdWUpO1xuICB9XG5cblxuICBzZXRWYXJpYWJsZXMoY29udGV4dDogYW55ID0ge30pIHtcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHsgLi4udGhpcy52YXJpYWJsZXMsIC4uLmNvbnRleHQgfTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlPFQgPSBhbnk+KGtleT86IHN0cmluZyB8IG51bGwpOiBUIHtcbiAgICByZXR1cm4gIWtleSA/IHRoaXMudmFyaWFibGVzIDogZ2V0KHRoaXMudmFyaWFibGVzLCBrZXkpO1xuICB9XG5cbiAgc2V0T3V0cHV0KGtleTogc3RyaW5nLCBvdXRwdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc3RlcE91dHB1dHMuc2V0KGtleSwgb3V0cHV0KTtcbiAgfVxuXG4gIHNldE91dHB1dHModmFsdWVzOiBNYXA8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5zdGVwT3V0cHV0cyA9IG5ldyBNYXAoWy4uLnRoaXMuc3RlcE91dHB1dHMsIC4uLnZhbHVlc10pXG4gIH1cblxuICBnZXRPdXRwdXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwT3V0cHV0cy5nZXQoa2V5KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd0FjdGlvbklucHV0ID0gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd0NvbmRpdGlvblR5cGUgPSAnQU5EJyB8ICdPUicgfCAnU0lOR0xFJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0NvbmRpdGlvbiB7XG4gIHR5cGU6IEFYUFdvcmtmbG93Q29uZGl0aW9uVHlwZTtcbiAgY29uZGl0aW9ucz86IEFYUFdvcmtmbG93Q29uZGl0aW9uW107IC8vIE5lc3RlZCBjb25kaXRpb25zXG4gIGV4cHJlc3Npb24/OiBzdHJpbmc7IC8vIFVzZWQgaWYgdHlwZSBpcyAnU0lOR0xFJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93TmV4dFN0ZXAge1xuICBjb25kaXRpb25zOiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdO1xuICBuZXh0U3RlcElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dTdGVwIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGFjdGlvbjogQVhQV29ya2Zsb3dBY3Rpb24gfCBzdHJpbmc7XG4gIGlucHV0PzogQVhQV29ya2Zsb3dBY3Rpb25JbnB1dDtcbiAgbmV4dFN0ZXBzPzogQVhQV29ya2Zsb3dOZXh0U3RlcFtdO1xuICBjb25kaXRpb25zPzogQVhQV29ya2Zsb3dDb25kaXRpb25bXTtcbn1cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYUFdvcmtmbG93RXZlbnRTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZGlzcGF0Y2goZXZlbnQ6IEFYUFdvcmtmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5kaXNwYXRjaChldmVudCk7XG4gIH1cblxuICBhYnN0cmFjdCBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcbiAgYWJzdHJhY3QgZXhlY3V0ZSguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8YW55PiB8IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0V2ZW50PFQgPSBhbnk+IHtcbiAgdHlwZTogc3RyaW5nO1xuICBwYXlsb2FkPzogVDtcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXb3JrRmxvd0V2ZW50PFQ+KHR5cGU6IHN0cmluZykge1xuICBjb25zdCBldmVudENyZWF0b3IgPSAocGF5bG9hZDogVCkgPT4gKHsgdHlwZSwgcGF5bG9hZCB9KTtcbiAgZXZlbnRDcmVhdG9yLnR5cGUgPSB0eXBlO1xuICByZXR1cm4gZXZlbnRDcmVhdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2ZUeXBlPFQgZXh0ZW5kcyB7IHR5cGU6IHN0cmluZyB9PiguLi5hbGxvd2VkVHlwZXM6IEFycmF5PHsgdHlwZTogc3RyaW5nIH0+KSB7XG4gIHJldHVybiBmaWx0ZXIoKGV2ZW50OiBUKSA9PiBhbGxvd2VkVHlwZXMuc29tZSgodHlwZSkgPT4gZXZlbnQudHlwZSA9PT0gdHlwZS50eXBlKSk7XG59XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction } from \"../workflow.types\";\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowDecideAction extends AXPWorkflowAction {\n async execute(context) {\n // its a fake action\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9hY3Rpb25zL2RlY2lkZS5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7O0FBTTFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUNyQyxvQkFBb0I7SUFDeEIsQ0FBQzsrR0FIUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSBcIi4uL3dvcmtmbG93LnR5cGVzXCI7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dEZWNpZGVBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gICAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gaXRzIGEgZmFrZSBhY3Rpb25cbiAgICB9XG59Il19","import { Injectable, Injector, inject } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { AXPWorkflowError } from './errors.types';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport { AXPWorkflowContext, } from './workflow.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./workflow-registery.service\";\nexport class AXPWorkflowService {\n get events$() {\n return this.eventService.events$;\n }\n constructor(registryService, injector) {\n this.registryService = registryService;\n this.injector = injector;\n this.eventService = inject(AXPWorkflowEventService);\n }\n exists(name) {\n return !!this.registryService.getWorkflow(name);\n }\n async execute(workflow, initialContext = null) {\n // Instantiate or retrieve the workflow\n const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;\n let currentStepId = wk.startStepId;\n const context = initialContext instanceof AXPWorkflowContext\n ? initialContext\n : new AXPWorkflowContext(this.processData(initialContext) ?? {});\n // Initialize context with initial variables\n while (currentStepId) {\n const currentStep = wk.steps[currentStepId];\n if (!currentStep) {\n throw new AXPWorkflowError(`Step '${currentStepId}' not found in the workflow steps.`);\n }\n // Instantiate or retrieve the action\n const action = typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;\n //\n if (currentStep.input) {\n let inputs = {};\n await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);\n await new Promise((resolve) => setTimeout(async () => {\n Object.assign(action, inputs);\n resolve(0);\n }));\n }\n try {\n await new Promise((resolve) => setTimeout(async () => {\n await action.execute(context);\n resolve(0);\n }, 0));\n }\n catch (error) {\n console.error(error);\n throw new AXPWorkflowError('Workflow Error', error);\n }\n // Determine the next step based on the conditions\n const nextStepInfo = await this.determineNextStep(currentStep, context);\n if (nextStepInfo) {\n currentStepId = nextStepInfo.nextStepId;\n }\n else {\n break; // Exit the loop if no next step is determined\n }\n }\n return context;\n }\n processData(initialContext) {\n //TODO: update values with expressions and return new object\n return initialContext;\n }\n getActionInstance(actionName) {\n const actionType = this.registryService.getAction(actionName);\n if (!actionType) {\n throw new AXPWorkflowError(`Action type '${actionName}' not found in the registry.`);\n }\n return this.injector.get(actionType);\n }\n getWorkflowInstance(workflowName) {\n const workflowType = this.registryService.getWorkflow(workflowName);\n if (!workflowType) {\n throw new AXPWorkflowError(`Workflow type '${workflowName}' not found in the registry.`);\n }\n return workflowType;\n }\n async determineNextStep(currentStep, context) {\n if (!currentStep.nextSteps) {\n return null;\n }\n for (const nextStep of currentStep.nextSteps) {\n if (await this.evaluateCondition(nextStep.conditions, context)) {\n return nextStep;\n }\n }\n return null;\n }\n async evaluateCondition(conditions, context) {\n if (!conditions || conditions.length === 0) {\n return true; // If no conditions, the step proceeds\n }\n // Map each condition to a promise using evaluateSingleCondition\n const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));\n // Wait for all promises to resolve\n const results = await Promise.all(conditionPromises);\n // Check if every condition is true\n return results.every((result) => result);\n }\n async evaluateSingleCondition(condition, context) {\n switch (condition.type) {\n case 'SINGLE':\n return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context));\n case 'AND':\n // Evaluate all conditions with 'AND' logic\n const andConditions = condition.conditions ?? [];\n const andResults = await Promise.all(andConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return andResults.every((result) => result);\n case 'OR':\n // Evaluate all conditions with 'OR' logic\n const orConditions = condition.conditions ?? [];\n const orResults = await Promise.all(orConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return orResults.some((result) => result);\n default:\n throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);\n }\n }\n //TODO: return any and recursively update object, update scopes\n async evaluateExpression(templateExpression, context) {\n try {\n let expression = '';\n if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n expression = expressionMatch[1];\n }\n else {\n expression = templateExpression;\n }\n // Create a scope that includes context and registered functions\n const scope = { context, ...this.createFunctionScope() };\n // Evaluating the expression within the created scope\n const sandbox = new Function('scope', `return (async function() { with (scope) { return ${expression}; } })();`);\n const result = await sandbox(scope);\n return result;\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n async processInputs(obj, inputs, pathPrefix = '', context = {}) {\n if (!obj) {\n return;\n }\n for await (const i of Object.entries(obj)) {\n const key = i[0];\n const value = i[1];\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.trim().includes('{{')) {\n const expValue = await this.evaluateExpression(value, context);\n set(inputs, currentPath, expValue);\n }\n else if (typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.processInputs(value, inputs, currentPath, context);\n }\n else {\n // Apply static values directly\n set(inputs, currentPath, value);\n }\n }\n }\n createFunctionScope() {\n const scope = {};\n this.registryService.getFunctionNames().forEach((name) => {\n scope[name] = this.getFunctionInstance(name).execute;\n });\n return { methods: { scope } };\n }\n getFunctionInstance(functionName) {\n const functionType = this.registryService.getFunction(functionName);\n if (!functionType) {\n throw new AXPWorkflowError(`Function type '${functionName}' not found in the registry.`);\n }\n return this.injector.get(functionType);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, deps: [{ token: i1.AXPWorkflowRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.AXPWorkflowRegistryService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi93b3JrZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBSUwsa0JBQWtCLEdBS25CLE1BQU0sa0JBQWtCLENBQUM7OztBQUsxQixNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQW9CLGVBQTJDLEVBQVUsUUFBa0I7UUFBdkUsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU5uRixpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBTXdDLENBQUM7SUFFaEcsTUFBTSxDQUFDLElBQVk7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUdELEtBQUssQ0FBQyxPQUFPLENBQ1gsUUFBOEIsRUFDOUIsaUJBQWtELElBQUk7UUFFdEQsdUNBQXVDO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMs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SUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sK0JBQStCO2dCQUMvQixHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxZQUFvQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixZQUFZLDhCQUE4QixDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0FwTlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93RXJyb3IgfSBmcm9tICcuL2Vycm9ycy50eXBlcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0V2ZW50U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQge1xuICBBWFBXb3JrZmxvdyxcbiAgQVhQV29ya2Zsb3dBY3Rpb24sXG4gIEFYUFdvcmtmbG93Q29uZGl0aW9uLFxuICBBWFBXb3JrZmxvd0NvbnRleHQsXG4gIEFYUFdvcmtmbG93RXZlbnQsXG4gIEFYUFdvcmtmbG93RnVuY3Rpb24sXG4gIEFYUFdvcmtmbG93TmV4dFN0ZXAsXG4gIEFYUFdvcmtmbG93U3RlcCxcbn0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd1NlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd0V2ZW50U2VydmljZSk7XG5cbiAgZ2V0IGV2ZW50cyQoKTogT2JzZXJ2YWJsZTxBWFBXb3JrZmxvd0V2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLmV2ZW50cyQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZ2lzdHJ5U2VydmljZTogQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cblxuICBleGlzdHMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0V29ya2Zsb3cobmFtZSk7XG4gIH1cblxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgd29ya2Zsb3c6IEFYUFdvcmtmbG93IHwgc3RyaW5nLFxuICAgIGluaXRpYWxDb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQgfCBhbnkgfCBudWxsID0gbnVsbFxuICApOiBQcm9taXNlPEFYUFdvcmtmbG93Q29udGV4dD4ge1xuICAgIC8vIEluc3RhbnRpYXRlIG9yIHJldHJpZXZlIHRoZSB3b3JrZmxvd1xuICAgIGNvbnN0IHdrID0gdHlwZW9mIHdvcmtmbG93ID09PSAnc3RyaW5nJyA/IHRoaXMuZ2V0V29ya2Zsb3dJbnN0YW5jZSh3b3JrZmxvdykgOiB3b3JrZmxvdztcblxuICAgIGxldCBjdXJyZW50U3RlcElkID0gd2suc3RhcnRTdGVwSWQ7XG4gICAgY29uc3QgY29udGV4dCA9XG4gICAgICBpbml0aWFsQ29udGV4dCBpbnN0YW5jZW9mIEFYUFdvcmtmbG93Q29udGV4dFxuICAgICAgICA/IGluaXRpYWxDb250ZXh0XG4gICAgICAgIDogbmV3IEFYUFdvcmtmbG93Q29udGV4dCh0aGlzLnByb2Nlc3NEYXRhKGluaXRpYWxDb250ZXh0KSA/PyB7fSk7XG4gICAgLy8gSW5pdGlhbGl6ZSBjb250ZXh0IHdpdGggaW5pdGlhbCB2YXJpYWJsZXNcblxuICAgIHdoaWxlIChjdXJyZW50U3RlcElkKSB7XG4gICAgICBjb25zdCBjdXJyZW50U3RlcCA9IHdrLnN0ZXBzW2N1cnJlbnRTdGVwSWRdO1xuICAgICAgaWYgKCFjdXJyZW50U3RlcCkge1xuICAgICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgU3RlcCAnJHtjdXJyZW50U3RlcElkfScgbm90IGZvdW5kIGluIHRoZSB3b3JrZmxvdyBzdGVwcy5gKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW5zdGFudGlhdGUgb3IgcmV0cmlldmUgdGhlIGFjdGlvblxuICAgICAgY29uc3QgYWN0aW9uID1cbiAgICAgICAgdHlwZW9mIGN1cnJlbnRTdGVwLmFjdGlvbiA9PT0gJ3N0cmluZycgPyB0aGlzLmdldEFjdGlvbkluc3RhbmNlKGN1cnJlbnRTdGVwLmFjdGlvbikgOiBjdXJyZW50U3RlcC5hY3Rpb247XG4gICAgICAvL1xuICAgICAgaWYgKGN1cnJlbnRTdGVwLmlucHV0KSB7XG4gICAgICAgIGxldCBpbnB1dHM6IGFueSA9IHt9O1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NJbnB1dHMoY2xvbmVEZWVwKGN1cnJlbnRTdGVwLmlucHV0KSwgaW5wdXRzLCAnJywgY29udGV4dCk7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PlxuICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIGlucHV0cyk7XG4gICAgICAgICAgICByZXNvbHZlKDApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbi5leGVjdXRlKGNvbnRleHQpO1xuICAgICAgICAgICAgcmVzb2x2ZSgwKTtcbiAgICAgICAgICB9LCAwKVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKCdXb3JrZmxvdyBFcnJvcicsIGVycm9yIGFzIEVycm9yKTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVybWluZSB0aGUgbmV4dCBzdGVwIGJhc2VkIG9uIHRoZSBjb25kaXRpb25zXG4gICAgICBjb25zdCBuZXh0U3RlcEluZm8gPSBhd2FpdCB0aGlzLmRldGVybWluZU5leHRTdGVwKGN1cnJlbnRTdGVwLCBjb250ZXh0KTtcbiAgICAgIGlmIChuZXh0U3RlcEluZm8pIHtcbiAgICAgICAgY3VycmVudFN0ZXBJZCA9IG5leHRTdGVwSW5mby5uZXh0U3RlcElkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7IC8vIEV4aXQgdGhlIGxvb3AgaWYgbm8gbmV4dCBzdGVwIGlzIGRldGVybWluZWRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEYXRhKGluaXRpYWxDb250ZXh0OiBhbnkpOiBhbnkge1xuICAgIC8vVE9ETzogdXBkYXRlIHZhbHVlcyB3aXRoIGV4cHJlc3Npb25zIGFuZCByZXR1cm4gbmV3IG9iamVjdFxuICAgIHJldHVybiBpbml0aWFsQ29udGV4dDtcbiAgfVxuXG5cblxuICBwcml2YXRlIGdldEFjdGlvbkluc3RhbmNlKGFjdGlvbk5hbWU6IHN0cmluZyk6IEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0QWN0aW9uKGFjdGlvbk5hbWUpO1xuICAgIGlmICghYWN0aW9uVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYEFjdGlvbiB0eXBlICcke2FjdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoYWN0aW9uVHlwZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFdvcmtmbG93SW5zdGFuY2Uod29ya2Zsb3dOYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB7XG4gICAgY29uc3Qgd29ya2Zsb3dUeXBlID0gdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0V29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAoIXdvcmtmbG93VHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFdvcmtmbG93IHR5cGUgJyR7d29ya2Zsb3dOYW1lfScgbm90IGZvdW5kIGluIHRoZSByZWdpc3RyeS5gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdvcmtmbG93VHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGV0ZXJtaW5lTmV4dFN0ZXAoXG4gICAgY3VycmVudFN0ZXA6IEFYUFdvcmtmbG93U3RlcCxcbiAgICBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHRcbiAgKTogUHJvbWlzZTxBWFBXb3JrZmxvd05leHRTdGVwIHwgbnVsbD4ge1xuICAgIGlmICghY3VycmVudFN0ZXAubmV4dFN0ZXBzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBuZXh0U3RlcCBvZiBjdXJyZW50U3RlcC5uZXh0U3RlcHMpIHtcbiAgICAgIGlmIChhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKG5leHRTdGVwLmNvbmRpdGlvbnMsIGNvbnRleHQpKSB7XG4gICAgICAgIHJldHVybiBuZXh0U3RlcDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbnM6IEFYUFdvcmtmbG93Q29uZGl0aW9uW10sIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7IC8vIElmIG5vIGNvbmRpdGlvbnMsIHRoZSBzdGVwIHByb2NlZWRzXG4gICAgfVxuXG4gICAgLy8gTWFwIGVhY2ggY29uZGl0aW9uIHRvIGEgcHJvbWlzZSB1c2luZyBldmFsdWF0ZVNpbmdsZUNvbmRpdGlvblxuICAgIGNvbnN0IGNvbmRpdGlvblByb21pc2VzID0gY29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kaXRpb24sIGNvbnRleHQpKTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byByZXNvbHZlXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGNvbmRpdGlvblByb21pc2VzKTtcblxuICAgIC8vIENoZWNrIGlmIGV2ZXJ5IGNvbmRpdGlvbiBpcyB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHJlc3VsdCkgPT4gcmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVTaW5nbGVDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBBWFBXb3JrZmxvd0NvbmRpdGlvbixcbiAgICBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHRcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSAnU0lOR0xFJzpcbiAgICAgICAgcmV0dXJuICghY29uZGl0aW9uLmV4cHJlc3Npb24gPyB0cnVlIDogYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24oY29uZGl0aW9uLmV4cHJlc3Npb24sIGNvbnRleHQpKSBhcyBib29sZWFuO1xuICAgICAgY2FzZSAnQU5EJzpcbiAgICAgICAgLy8gRXZhbHVhdGUgYWxsIGNvbmRpdGlvbnMgd2l0aCAnQU5EJyBsb2dpY1xuICAgICAgICBjb25zdCBhbmRDb25kaXRpb25zID0gY29uZGl0aW9uLmNvbmRpdGlvbnMgPz8gW107XG4gICAgICAgIGNvbnN0IGFuZFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChhbmRDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xuICAgICAgICByZXR1cm4gYW5kUmVzdWx0cy5ldmVyeSgocmVzdWx0KSA9PiByZXN1bHQpO1xuXG4gICAgICBjYXNlICdPUic6XG4gICAgICAgIC8vIEV2YWx1YXRlIGFsbCBjb25kaXRpb25zIHdpdGggJ09SJyBsb2dpY1xuICAgICAgICBjb25zdCBvckNvbmRpdGlvbnMgPSBjb25kaXRpb24uY29uZGl0aW9ucyA/PyBbXTtcbiAgICAgICAgY29uc3Qgb3JSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwob3JDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xuICAgICAgICByZXR1cm4gb3JSZXN1bHRzLnNvbWUoKHJlc3VsdCkgPT4gcmVzdWx0KTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFVuc3VwcG9ydGVkIGNvbmRpdGlvbiB0eXBlOiAke2NvbmRpdGlvbi50eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vVE9ETzogcmV0dXJuIGFueSBhbmQgcmVjdXJzaXZlbHkgdXBkYXRlIG9iamVjdCwgdXBkYXRlIHNjb3Blc1xuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZywgY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTxCb29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBleHByZXNzaW9uID0gJyc7XG4gICAgICBpZiAodHlwZW9mIHRlbXBsYXRlRXhwcmVzc2lvbiA9PT0gJ3N0cmluZycgJiYgdGVtcGxhdGVFeHByZXNzaW9uLnRyaW0oKS5pbmNsdWRlcygne3snKSkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uTWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL1xce1xce1xccyooLio/KVxccypcXH1cXH0vKTtcbiAgICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHJlc3Npb24gPSB0ZW1wbGF0ZUV4cHJlc3Npb247XG4gICAgICB9XG4gICAgICAvLyBDcmVhdGUgYSBzY29wZSB0aGF0IGluY2x1ZGVzIGNvbnRleHQgYW5kIHJlZ2lzdGVyZWQgZnVuY3Rpb25zXG4gICAgICBjb25zdCBzY29wZSA9IHsgY29udGV4dCwgLi4udGhpcy5jcmVhdGVGdW5jdGlvblNjb3BlKCkgfTtcbiAgICAgIC8vIEV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24gd2l0aGluIHRoZSBjcmVhdGVkIHNjb3BlXG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyB3aXRoIChzY29wZSkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSB9KSgpO2ApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBldmFsdWF0aW5nIGV4cHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0lucHV0cyhvYmo6IGFueSwgaW5wdXRzOiBhbnksIHBhdGhQcmVmaXg6IHN0cmluZyA9ICcnLCBjb250ZXh0OiBhbnkgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghb2JqKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBpIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGNvbnN0IGtleSA9IGlbMF07XG4gICAgICBjb25zdCB2YWx1ZSA9IGlbMV07XG4gICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGhQcmVmaXggPyBgJHtwYXRoUHJlZml4fS4ke2tleX1gIDoga2V5O1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmluY2x1ZGVzKCd7eycpKSB7XG4gICAgICAgIGNvbnN0IGV4cFZhbHVlID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odmFsdWUsIGNvbnRleHQpO1xuICAgICAgICBzZXQoaW5wdXRzLCBjdXJyZW50UGF0aCwgZXhwVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAodmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBoYW5kbGUgbmVzdGVkIG9iamVjdHNcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5wdXRzKHZhbHVlLCBpbnB1dHMsIGN1cnJlbnRQYXRoLCBjb250ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHN0YXRpYyB2YWx1ZXMgZGlyZWN0bHlcbiAgICAgICAgc2V0KGlucHV0cywgY3VycmVudFBhdGgsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uU2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0RnVuY3Rpb25OYW1lcygpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIHNjb3BlW25hbWVdID0gdGhpcy5nZXRGdW5jdGlvbkluc3RhbmNlKG5hbWUpLmV4ZWN1dGU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgbWV0aG9kczogeyBzY29wZSB9IH07XG4gIH1cblxuICBwcml2YXRlIGdldEZ1bmN0aW9uSW5zdGFuY2UoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcbiAgICBjb25zdCBmdW5jdGlvblR5cGUgPSB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUpO1xuICAgIGlmICghZnVuY3Rpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgRnVuY3Rpb24gdHlwZSAnJHtmdW5jdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZnVuY3Rpb25UeXBlKTtcbiAgfVxufVxuIl19","import { inject, Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction } from \"../workflow.types\";\nimport { AXPWorkflowService } from \"../workflow.service\";\nimport * as i0 from \"@angular/core\";\nexport class AXPStartWorkflowAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.workflowService = inject(AXPWorkflowService);\n }\n async execute(context) {\n //console.log(\"start WK current context\", context);\n //console.log(\"start WK input context\", this.context);\n if (this.context)\n context.setVariables(this.context);\n //console.log(\"start WK merged context\", context);\n try {\n await this.workflowService.execute(this.workflow, context);\n }\n catch (e) {\n throw e;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtd29ya2Zsb3cuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2FjdGlvbnMvc3RhcnQtd29ya2Zsb3cuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQUg3RDs7UUFLWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0tBa0J2RDtJQWRHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDckMsbURBQW1EO1FBQ25ELHNEQUFzRDtRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsa0RBQWtEO1FBQ2xELElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsQ0FBQztRQUNaLENBQUM7SUFFTCxDQUFDOytHQW5CUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tIFwiLi4vd29ya2Zsb3cudHlwZXNcIjtcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gXCIuLi93b3JrZmxvdy5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFN0YXJ0V29ya2Zsb3dBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG5cbiAgICBwcml2YXRlIHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpXG4gICAgcHJpdmF0ZSB3b3JrZmxvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgY29udGV4dDogYW55O1xuXG4gICAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIGN1cnJlbnQgY29udGV4dFwiLCBjb250ZXh0KTtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIGlucHV0IGNvbnRleHRcIiwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dClcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VmFyaWFibGVzKHRoaXMuY29udGV4dClcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIG1lcmdlZCBjb250ZXh0XCIsIGNvbnRleHQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvd1NlcnZpY2UuZXhlY3V0ZSh0aGlzLndvcmtmbG93LCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4iXX0=","import { InjectionToken, inject, Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Injection token for workflow definition loaders.\n * Multiple loaders can be provided (multi: true).\n */\nexport const AXP_WORKFLOW_DEFINITION_LOADER = new InjectionToken('AXP_WORKFLOW_DEFINITION_LOADER');\n/**\n * Resolver service for workflow definitions.\n * Aggregates all registered loaders and resolves workflow definitions.\n */\nexport class AXPWorkflowDefinitionResolver {\n constructor() {\n this.loaders = inject(AXP_WORKFLOW_DEFINITION_LOADER, { optional: true });\n }\n /**\n * Get workflow definition by name (unique key).\n * Tries all registered loaders until one returns a definition.\n * @param name - The workflow name (unique key)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n const loaderArray = Array.isArray(this.loaders) ? this.loaders : this.loaders ? [this.loaders] : [];\n for (const loader of loaderArray) {\n try {\n const definition = await loader.get(name);\n if (definition) {\n return definition;\n }\n }\n catch (error) {\n console.warn(`[AXPWorkflowDefinitionResolver] Loader failed for ${name}:`, error);\n }\n }\n return null;\n }\n /**\n * Get all available workflow names from all loaders.\n * @returns Array of unique workflow names\n */\n async getAllNames() {\n const loaderArray = Array.isArray(this.loaders) ? this.loaders : this.loaders ? [this.loaders] : [];\n const allNames = new Set();\n for (const loader of loaderArray) {\n if (loader.getAllNames) {\n try {\n const names = await loader.getAllNames();\n names.forEach((name) => allNames.add(name));\n }\n catch (error) {\n console.warn('[AXPWorkflowDefinitionResolver] Failed to get names from loader:', error);\n }\n }\n }\n return Array.from(allNames);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFtQ25FOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCxnQ0FBZ0MsQ0FDakMsQ0FBQztBQUVGOzs7R0FHRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFVSxZQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0E4QzlFO0lBNUNDOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBHLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDO2dCQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixPQUFPLFVBQVUsQ0FBQztnQkFDcEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELElBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRW5DLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQztvQkFDSCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDMUYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBOUNVLDZCQUE2QjttSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzRGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uIH0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnR5cGVzJztcblxuLyoqXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIGxvYWRlciBpbnRlcmZhY2UuXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIHdvcmtmbG93IGRlZmluaXRpb25zIGZyb20gdmFyaW91cyBzb3VyY2VzIChKU09OIGZpbGVzLCBkYXRhYmFzZSwgZXRjLikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dEZWZpbml0aW9uTG9hZGVyIHtcbiAgLyoqXG4gICAqIEdldCB3b3JrZmxvdyBkZWZpbml0aW9uIGJ5IG5hbWUgKHVuaXF1ZSBrZXkpLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lICh1bmlxdWUga2V5KVxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb24gfCBudWxsPjtcblxuICAvKipcbiAgICogR2V0IGFsbCBhdmFpbGFibGUgd29ya2Zsb3cgbmFtZXMuXG4gICAqIFVzZWQgZm9yIHByZWxvYWRpbmcgYW5kIGRpc2NvdmVyeS5cbiAgICogQHJldHVybnMgQXJyYXkgb2Ygd29ya2Zsb3cgbmFtZXNcbiAgICovXG4gIGdldEFsbE5hbWVzPygpOiBQcm9taXNlPHN0cmluZ1tdPjtcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIHByZWxvYWRlciBpbnRlcmZhY2UuXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIGEgbGlzdCBvZiB3b3JrZmxvdyBkZWZpbml0aW9ucyB0aGF0IHNob3VsZCBiZSBwcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dEZWZpbml0aW9uUHJlbG9hZGVyIHtcbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHdvcmtmbG93IGRlZmluaXRpb24gSURzIHRvIHByZWxvYWQuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGRlZmluaXRpb24gSURzXG4gICAqL1xuICBwcmVsb2FkKCk6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3Igd29ya2Zsb3cgZGVmaW5pdGlvbiBsb2FkZXJzLlxuICogTXVsdGlwbGUgbG9hZGVycyBjYW4gYmUgcHJvdmlkZWQgKG11bHRpOiB0cnVlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFYUF9XT1JLRkxPV19ERUZJTklUSU9OX0xPQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBXb3JrZmxvd0RlZmluaXRpb25Mb2FkZXI+KFxuICAnQVhQX1dPUktGTE9XX0RFRklOSVRJT05fTE9BREVSJyxcbik7XG5cbi8qKlxuICogUmVzb2x2ZXIgc2VydmljZSBmb3Igd29ya2Zsb3cgZGVmaW5pdGlvbnMuXG4gKiBBZ2dyZWdhdGVzIGFsbCByZWdpc3RlcmVkIGxvYWRlcnMgYW5kIHJlc29sdmVzIHdvcmtmbG93IGRlZmluaXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93RGVmaW5pdGlvblJlc29sdmVyIHtcbiAgcHJpdmF0ZSBsb2FkZXJzID0gaW5qZWN0KEFYUF9XT1JLRkxPV19ERUZJTklUSU9OX0xPQURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGRlZmluaXRpb24gYnkgbmFtZSAodW5pcXVlIGtleSkuXG4gICAqIFRyaWVzIGFsbCByZWdpc3RlcmVkIGxvYWRlcnMgdW50aWwgb25lIHJldHVybnMgYSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lICh1bmlxdWUga2V5KVxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb24gfCBudWxsPiB7XG4gICAgY29uc3QgbG9hZGVyQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMubG9hZGVycykgPyB0aGlzLmxvYWRlcnMgOiB0aGlzLmxvYWRlcnMgPyBbdGhpcy5sb2FkZXJzXSA6IFtdO1xuXG4gICAgZm9yIChjb25zdCBsb2FkZXIgb2YgbG9hZGVyQXJyYXkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBhd2FpdCBsb2FkZXIuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oYFtBWFBXb3JrZmxvd0RlZmluaXRpb25SZXNvbHZlcl0gTG9hZGVyIGZhaWxlZCBmb3IgJHtuYW1lfTpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBhdmFpbGFibGUgd29ya2Zsb3cgbmFtZXMgZnJvbSBhbGwgbG9hZGVycy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgdW5pcXVlIHdvcmtmbG93IG5hbWVzXG4gICAqL1xuICBhc3luYyBnZXRBbGxOYW1lcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgbG9hZGVyQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMubG9hZGVycykgPyB0aGlzLmxvYWRlcnMgOiB0aGlzLmxvYWRlcnMgPyBbdGhpcy5sb2FkZXJzXSA6IFtdO1xuICAgIGNvbnN0IGFsbE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IGxvYWRlciBvZiBsb2FkZXJBcnJheSkge1xuICAgICAgaWYgKGxvYWRlci5nZXRBbGxOYW1lcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG5hbWVzID0gYXdhaXQgbG9hZGVyLmdldEFsbE5hbWVzKCk7XG4gICAgICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiBhbGxOYW1lcy5hZGQobmFtZSkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW0FYUFdvcmtmbG93RGVmaW5pdGlvblJlc29sdmVyXSBGYWlsZWQgdG8gZ2V0IG5hbWVzIGZyb20gbG9hZGVyOicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKGFsbE5hbWVzKTtcbiAgfVxufVxuXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPWorkflowDefinitionResolver } from './workflow-definition.config';\nimport * as i0 from \"@angular/core\";\n/**\n * Registry service for workflow definitions.\n * Caches loaded definitions and provides change notifications.\n */\nexport class AXPWorkflowDefinitionRegistryService {\n constructor() {\n this.resolver = inject(AXPWorkflowDefinitionResolver);\n this.cache = new Map();\n this.onChanged = new Subject();\n }\n /**\n * Observable for workflow definition changes.\n */\n get onChanged$() {\n return this.onChanged.asObservable();\n }\n /**\n * Get workflow definition by name (unique key).\n * Uses cache if available, otherwise loads from resolver.\n * @param name - The workflow name (unique key)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n // Check cache first\n if (this.cache.has(name)) {\n return this.cache.get(name);\n }\n // Load from resolver\n const definition = await this.resolver.get(name);\n if (definition) {\n this.cache.set(name, definition);\n this.onChanged.next({ name, action: 'registered' });\n }\n return definition;\n }\n /**\n * Register a workflow definition in the cache.\n * @param definition - The workflow definition to register\n */\n register(definition) {\n this.cache.set(definition.name, definition);\n this.onChanged.next({ name: definition.name, action: 'registered' });\n }\n /**\n * Update a workflow definition in the cache.\n * @param definition - The updated workflow definition\n */\n update(definition) {\n if (this.cache.has(definition.name)) {\n this.cache.set(definition.name, definition);\n this.onChanged.next({ name: definition.name, action: 'updated' });\n }\n }\n /**\n * Remove a workflow definition from the cache.\n * @param name - The workflow name to remove\n */\n remove(name) {\n if (this.cache.has(name)) {\n this.cache.delete(name);\n this.onChanged.next({ name, action: 'removed' });\n }\n }\n /**\n * Clear all cached workflow definitions.\n */\n clear() {\n this.cache.clear();\n }\n /**\n * Check if a workflow definition is cached.\n * @param definitionId - The workflow definition ID\n * @returns True if cached, false otherwise\n */\n has(definitionId) {\n return this.cache.has(definitionId);\n }\n /**\n * Get all cached workflow definition IDs.\n * @returns Array of definition IDs (only those that have been loaded)\n */\n getAllIds() {\n return Array.from(this.cache.keys());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS93b3JrZmxvdy1kZWZpbml0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFN0U7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQUhqRDtRQUlVLGFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDakQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFrRSxDQUFDO0tBcUZuRztJQW5GQzs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDcEIsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQy9CLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLFVBQWlDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQWlDO1FBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxZQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOytHQXZGVSxvQ0FBb0M7bUhBQXBDLG9DQUFvQyxjQUZuQyxNQUFNOzs0RkFFUCxvQ0FBb0M7a0JBSGhELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0RlZmluaXRpb24gfSBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uUmVzb2x2ZXIgfSBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnJztcblxuLyoqXG4gKiBSZWdpc3RyeSBzZXJ2aWNlIGZvciB3b3JrZmxvdyBkZWZpbml0aW9ucy5cbiAqIENhY2hlcyBsb2FkZWQgZGVmaW5pdGlvbnMgYW5kIHByb3ZpZGVzIGNoYW5nZSBub3RpZmljYXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZXNvbHZlciA9IGluamVjdChBWFBXb3JrZmxvd0RlZmluaXRpb25SZXNvbHZlcik7XG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQVhQV29ya2Zsb3dEZWZpbml0aW9uPigpO1xuICBwcml2YXRlIG9uQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgbmFtZTogc3RyaW5nOyBhY3Rpb246ICdyZWdpc3RlcmVkJyB8ICd1cGRhdGVkJyB8ICdyZW1vdmVkJyB9PigpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGZvciB3b3JrZmxvdyBkZWZpbml0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBnZXQgb25DaGFuZ2VkJCgpIHtcbiAgICByZXR1cm4gdGhpcy5vbkNoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGRlZmluaXRpb24gYnkgbmFtZSAodW5pcXVlIGtleSkuXG4gICAqIFVzZXMgY2FjaGUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgbG9hZHMgZnJvbSByZXNvbHZlci5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgd29ya2Zsb3cgbmFtZSAodW5pcXVlIGtleSlcbiAgICogQHJldHVybnMgV29ya2Zsb3cgZGVmaW5pdGlvbiBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgYXN5bmMgZ2V0KG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQobmFtZSkhO1xuICAgIH1cblxuICAgIC8vIExvYWQgZnJvbSByZXNvbHZlclxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBhd2FpdCB0aGlzLnJlc29sdmVyLmdldChuYW1lKTtcbiAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgdGhpcy5jYWNoZS5zZXQobmFtZSwgZGVmaW5pdGlvbik7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZSwgYWN0aW9uOiAncmVnaXN0ZXJlZCcgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSB3b3JrZmxvdyBkZWZpbml0aW9uIGluIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSBUaGUgd29ya2Zsb3cgZGVmaW5pdGlvbiB0byByZWdpc3RlclxuICAgKi9cbiAgcmVnaXN0ZXIoZGVmaW5pdGlvbjogQVhQV29ya2Zsb3dEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5zZXQoZGVmaW5pdGlvbi5uYW1lLCBkZWZpbml0aW9uKTtcbiAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZTogZGVmaW5pdGlvbi5uYW1lLCBhY3Rpb246ICdyZWdpc3RlcmVkJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSB3b3JrZmxvdyBkZWZpbml0aW9uIGluIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSBUaGUgdXBkYXRlZCB3b3JrZmxvdyBkZWZpbml0aW9uXG4gICAqL1xuICB1cGRhdGUoZGVmaW5pdGlvbjogQVhQV29ya2Zsb3dEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGRlZmluaXRpb24ubmFtZSkpIHtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGRlZmluaXRpb24ubmFtZSwgZGVmaW5pdGlvbik7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZTogZGVmaW5pdGlvbi5uYW1lLCBhY3Rpb246ICd1cGRhdGVkJyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgd29ya2Zsb3cgZGVmaW5pdGlvbiBmcm9tIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgd29ya2Zsb3cgbmFtZSB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMobmFtZSkpIHtcbiAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKG5hbWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCh7IG5hbWUsIGFjdGlvbjogJ3JlbW92ZWQnIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY2FjaGVkIHdvcmtmbG93IGRlZmluaXRpb25zLlxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgd29ya2Zsb3cgZGVmaW5pdGlvbiBpcyBjYWNoZWQuXG4gICAqIEBwYXJhbSBkZWZpbml0aW9uSWQgLSBUaGUgd29ya2Zsb3cgZGVmaW5pdGlvbiBJRFxuICAgKiBAcmV0dXJucyBUcnVlIGlmIGNhY2hlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBoYXMoZGVmaW5pdGlvbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5oYXMoZGVmaW5pdGlvbklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNhY2hlZCB3b3JrZmxvdyBkZWZpbml0aW9uIElEcy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgZGVmaW5pdGlvbiBJRHMgKG9ubHkgdGhvc2UgdGhhdCBoYXZlIGJlZW4gbG9hZGVkKVxuICAgKi9cbiAgZ2V0QWxsSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNhY2hlLmtleXMoKSk7XG4gIH1cbn1cblxuIl19","// ============================================\n// WORKFLOW INSTANCE v3.0.0 TYPES\n// Based on Elsa Workflow Instance schema: https://elsaworkflows.io/schemas/workflow-instance/v3.0.0/schema.json\n// Compatible with Elsa backend while using ACoreX naming conventions\n// ============================================\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3dvcmtmbG93LWluc3RhbmNlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxpQ0FBaUM7QUFDakMsZ0hBQWdIO0FBQ2hILHFFQUFxRTtBQUNyRSwrQ0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gV09SS0ZMT1cgSU5TVEFOQ0UgdjMuMC4wIFRZUEVTXG4vLyBCYXNlZCBvbiBFbHNhIFdvcmtmbG93IEluc3RhbmNlIHNjaGVtYTogaHR0cHM6Ly9lbHNhd29ya2Zsb3dzLmlvL3NjaGVtYXMvd29ya2Zsb3ctaW5zdGFuY2UvdjMuMC4wL3NjaGVtYS5qc29uXG4vLyBDb21wYXRpYmxlIHdpdGggRWxzYSBiYWNrZW5kIHdoaWxlIHVzaW5nIEFDb3JlWCBuYW1pbmcgY29udmVudGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogV29ya2Zsb3cgc3RhdHVzLlxuICovXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd1N0YXR1cyA9ICdSdW5uaW5nJyB8ICdGaW5pc2hlZCc7XG5cbi8qKlxuICogV29ya2Zsb3cgc3ViLXN0YXR1cy5cbiAqL1xuZXhwb3J0IHR5cGUgQVhQV29ya2Zsb3dTdWJTdGF0dXMgPSAnUGVuZGluZycgfCAnRXhlY3V0aW5nJyB8ICdTdXNwZW5kZWQnIHwgJ0ZpbmlzaGVkJyB8ICdDYW5jZWxsZWQnIHwgJ0ZhdWx0ZWQnO1xuXG4vKipcbiAqIEFjdGl2aXR5IHN0YXR1cy5cbiAqL1xuZXhwb3J0IHR5cGUgQVhQQWN0aXZpdHlTdGF0dXMgPSAnUnVubmluZycgfCAnQ29tcGxldGVkJyB8ICdDYW5jZWxlZCcgfCAnRmF1bHRlZCc7XG5cbi8qKlxuICogRXhjZXB0aW9uIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4Y2VwdGlvblN0YXRlIHtcbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiB0eXBlIG5hbWUuXG4gICAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0cmFjZSAobnVsbGFibGUpLlxuICAgKi9cbiAgc3RhY2tUcmFjZT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElubmVyIGV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgaW5uZXJFeGNlcHRpb24/OiBBWFBFeGNlcHRpb25TdGF0ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQWN0aXZpdHkgaW5jaWRlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlJbmNpZGVudCB7XG4gIC8qKlxuICAgKiBBY3Rpdml0eSBJRCB0aGF0IGNhdXNlZCB0aGUgaW5jaWRlbnQuXG4gICAqL1xuICBhY3Rpdml0eUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IG5vZGUgSUQuXG4gICAqL1xuICBhY3Rpdml0eU5vZGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSB0eXBlLlxuICAgKi9cbiAgYWN0aXZpdHlUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluY2lkZW50IG1lc3NhZ2UuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgZXhjZXB0aW9uPzogQVhQRXhjZXB0aW9uU3RhdGUgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgKElTTyBkYXRlLXRpbWUpLlxuICAgKi9cbiAgdGltZXN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV29ya2Zsb3cgZmF1bHQgc3RhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dGYXVsdFN0YXRlIHtcbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgZXhjZXB0aW9uPzogQVhQRXhjZXB0aW9uU3RhdGUgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGYXVsdCBtZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGYXVsdGVkIGFjdGl2aXR5IElEIChudWxsYWJsZSkuXG4gICAqL1xuICBmYXVsdGVkQWN0aXZpdHlJZD86IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKlxuICogQm9va21hcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQm9va21hcmsge1xuICAvKipcbiAgICogQm9va21hcmsgSUQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBuYW1lLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBoYXNoLlxuICAgKi9cbiAgaGFzaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBwYXlsb2FkIChudWxsYWJsZSkuXG4gICAqL1xuICBwYXlsb2FkPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogQWN0aXZpdHkgbm9kZSBJRC5cbiAgICovXG4gIGFjdGl2aXR5Tm9kZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IGluc3RhbmNlIElELlxuICAgKi9cbiAgYWN0aXZpdHlJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG8gYnVybiBmbGFnLlxuICAgKi9cbiAgYXV0b0J1cm4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBtZXRob2QgbmFtZSAobnVsbGFibGUpLlxuICAgKi9cbiAgY2FsbGJhY2tNZXRob2ROYW1lPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogTWV0YWRhdGEgKG51bGxhYmxlKS5cbiAgICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGw7XG59XG5cbi8qKlxuICogQ29tcGxldGlvbiBjYWxsYmFjayBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZSB7XG4gIC8qKlxuICAgKiBPd25lciBhY3Rpdml0eSBpbnN0YW5jZSBJRC5cbiAgICovXG4gIG93bmVySW5zdGFuY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGlsZCBhY3Rpdml0eSBub2RlIElELlxuICAgKi9cbiAgY2hpbGROb2RlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIG5hbWUgKG51bGxhYmxlKS5cbiAgICovXG4gIG1ldGhvZE5hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFZhcmlhYmxlIChmb3IgYWN0aXZpdHkgY29udGV4dCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlWYXJpYWJsZSB7XG4gIC8qKlxuICAgKiBWYXJpYWJsZSBJRC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcmlhYmxlIG5hbWUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgbmFtZS5cbiAgICovXG4gIHR5cGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElzIGFycmF5IGZsYWcuXG4gICAqL1xuICBpc0FycmF5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFyaWFibGUgdmFsdWUgKG51bGxhYmxlKS5cbiAgICovXG4gIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU3RvcmFnZSBkcml2ZXIgdHlwZSBuYW1lIChudWxsYWJsZSkuXG4gICAqL1xuICBzdG9yYWdlRHJpdmVyVHlwZU5hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIEFjdGl2aXR5IGV4ZWN1dGlvbiBjb250ZXh0IHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFjdGl2aXR5RXhlY3V0aW9uQ29udGV4dFN0YXRlIHtcbiAgLyoqXG4gICAqIENvbnRleHQgSUQgKGFjdGl2aXR5IGluc3RhbmNlIElEKS5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmVudCBjb250ZXh0IElEIChudWxsYWJsZSkuXG4gICAqL1xuICBwYXJlbnRDb250ZXh0SWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBTY2hlZHVsZWQgYWN0aXZpdHkgbm9kZSBJRC5cbiAgICovXG4gIHNjaGVkdWxlZEFjdGl2aXR5Tm9kZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE93bmVyIGFjdGl2aXR5IG5vZGUgSUQgKG51bGxhYmxlKS5cbiAgICovXG4gIG93bmVyQWN0aXZpdHlOb2RlSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGJhZy5cbiAgICovXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IHN0YXRlIChldmFsdWF0ZWQgcHJvcGVydGllcykgKG51bGxhYmxlKS5cbiAgICovXG4gIGFjdGl2aXR5U3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbDtcblxuICAvKipcbiAgICogRHluYW1pYyB2YXJpYWJsZXMuXG4gICAqL1xuICBkeW5hbWljVmFyaWFibGVzOiBBWFBBY3Rpdml0eVZhcmlhYmxlW107XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IHN0YXR1cy5cbiAgICovXG4gIHN0YXR1czogQVhQQWN0aXZpdHlTdGF0dXM7XG5cbiAgLyoqXG4gICAqIElzIGV4ZWN1dGluZyBmbGFnLlxuICAgKi9cbiAgaXNFeGVjdXRpbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZhdWx0IGNvdW50LlxuICAgKi9cbiAgZmF1bHRDb3VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGFydGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSkuXG4gICAqL1xuICBzdGFydGVkQXQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcGxldGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSwgbnVsbGFibGUpLlxuICAgKi9cbiAgY29tcGxldGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUYWcgKG51bGxhYmxlKS5cbiAgICovXG4gIHRhZz86IGFueSB8IG51bGw7XG59XG5cbi8qKlxuICogV29ya2Zsb3cgc3RhdGUgKGludGVybmFsIGV4ZWN1dGlvbiBzdGF0ZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dTdGF0ZSB7XG4gIC8qKlxuICAgKiBTdGF0ZSBJRC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IGRlZmluaXRpb24gSUQuXG4gICAqL1xuICBkZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbiB2ZXJzaW9uLlxuICAgKi9cbiAgZGVmaW5pdGlvblZlcnNpb246IG51bWJlcjtcblxuICAvKipcbiAgICogQ29ycmVsYXRpb24gSUQgKG51bGxhYmxlKS5cbiAgICovXG4gIGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM6IEFYUFdvcmtmbG93U3RhdHVzO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdWItc3RhdHVzLlxuICAgKi9cbiAgc3ViU3RhdHVzOiBBWFBXb3JrZmxvd1N1YlN0YXR1cztcblxuICAvKipcbiAgICogQm9va21hcmtzLlxuICAgKi9cbiAgYm9va21hcmtzOiBBWFBCb29rbWFya1tdO1xuXG4gIC8qKlxuICAgKiBJbmNpZGVudHMuXG4gICAqL1xuICBpbmNpZGVudHM6IEFYUEFjdGl2aXR5SW5jaWRlbnRbXTtcblxuICAvKipcbiAgICogRmF1bHQgKG51bGxhYmxlKS5cbiAgICovXG4gIGZhdWx0PzogQVhQV29ya2Zsb3dGYXVsdFN0YXRlIHwgbnVsbDtcblxuICAvKipcbiAgICogQ29tcGxldGlvbiBjYWxsYmFja3MuXG4gICAqL1xuICBjb21wbGV0aW9uQ2FsbGJhY2tzOiBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSBleGVjdXRpb24gY29udGV4dHMuXG4gICAqL1xuICBhY3Rpdml0eUV4ZWN1dGlvbkNvbnRleHRzOiBBWFBBY3Rpdml0eUV4ZWN1dGlvbkNvbnRleHRTdGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBkYXRhLlxuICAgKi9cbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIE91dHB1dCBkYXRhLlxuICAgKi9cbiAgb3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGJhZy5cbiAgICovXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lKS5cbiAgICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSkuXG4gICAqL1xuICB1cGRhdGVkQXQ6IHN0cmluZztcblxuICAvKipcbiAgICogRmluaXNoZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lLCBudWxsYWJsZSkuXG4gICAqL1xuICBmaW5pc2hlZEF0Pzogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBpbnN0YW5jZSAoc3RvcmVkIGluIGRhdGFiYXNlKS5cbiAqIFRoaXMgbWF0Y2hlcyB0aGUgRWxzYSBXb3JrZmxvdyBJbnN0YW5jZSBzY2hlbWEgZm9yIGJhY2tlbmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0luc3RhbmNlIHtcbiAgLyoqXG4gICAqIFNjaGVtYSByZWZlcmVuY2UuXG4gICAqL1xuICAkc2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaW5zdGFuY2UgSUQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBkZWZpbml0aW9uIElELlxuICAgKi9cbiAgZGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IGRlZmluaXRpb24gdmVyc2lvbiBJRC5cbiAgICovXG4gIGRlZmluaXRpb25WZXJzaW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbiB2ZXJzaW9uIG51bWJlci5cbiAgICovXG4gIHZlcnNpb246IG51bWJlcjtcblxuICAvKipcbiAgICogUGFyZW50IHdvcmtmbG93IGluc3RhbmNlIElEIChudWxsYWJsZSwgZm9yIGNoaWxkIHdvcmtmbG93cykuXG4gICAqL1xuICBwYXJlbnRXb3JrZmxvd0luc3RhbmNlSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdGF0ZSAoaW50ZXJuYWwgZXhlY3V0aW9uIHN0YXRlKS5cbiAgICovXG4gIHdvcmtmbG93U3RhdGU6IEFYUFdvcmtmbG93U3RhdGU7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHN0YXR1cy5cbiAgICovXG4gIHN0YXR1czogQVhQV29ya2Zsb3dTdGF0dXM7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHN1Yi1zdGF0dXMuXG4gICAqL1xuICBzdWJTdGF0dXM6IEFYUFdvcmtmbG93U3ViU3RhdHVzO1xuXG4gIC8qKlxuICAgKiBDb3JyZWxhdGlvbiBJRCAobnVsbGFibGUpLlxuICAgKi9cbiAgY29ycmVsYXRpb25JZD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG5hbWUgKG51bGxhYmxlKS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBJbmNpZGVudCBjb3VudC5cbiAgICovXG4gIGluY2lkZW50Q291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlZCBhdCB0aW1lc3RhbXAgKElTTyBkYXRlLXRpbWUpLlxuICAgKi9cbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lKS5cbiAgICovXG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaW5pc2hlZCBhdCB0aW1lc3RhbXAgKElTTyBkYXRlLXRpbWUsIG51bGxhYmxlKS5cbiAgICovXG4gIGZpbmlzaGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4iXX0=","/**\n * Base abstract class for activities.\n * Extend this to create custom activities.\n */\nexport class Activity {\n constructor(type, name) {\n this.type = type;\n this.name = name;\n }\n /**\n * Helper method that returns Done outcome by default.\n */\n createResult(output, outcome = 'Done') {\n return {\n success: true,\n data: {\n output,\n outcomes: { [outcome]: true },\n },\n };\n }\n}\n/**\n * Activity registry for registering and creating activities.\n */\nexport class ActivityRegistry {\n constructor() {\n this.registry = new Map();\n this.descriptors = new Map();\n }\n /**\n * Register an activity type.\n */\n register(type, factory, descriptor) {\n this.registry.set(type, factory);\n this.descriptors.set(type, descriptor);\n }\n /**\n * Create an activity instance.\n */\n create(type) {\n const factory = this.registry.get(type);\n if (!factory) {\n throw new Error(`Unknown activity type: ${type}`);\n }\n return factory();\n }\n /**\n * Get activity descriptor.\n */\n getDescriptor(type) {\n return this.descriptors.get(type);\n }\n /**\n * Get all registered types.\n */\n getTypes() {\n return Array.from(this.registry.keys());\n }\n /**\n * Get all descriptors.\n */\n getAllDescriptors() {\n return Array.from(this.descriptors.values());\n }\n /**\n * Get descriptors by category.\n */\n getDescriptorsByCategory(category) {\n return this.getAllDescriptors().filter(d => d.category === category);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXR5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdDQTs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLFFBQVE7SUFJNUIsWUFBWSxJQUFZLEVBQUUsSUFBYTtRQUNyQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBUUQ7O09BRUc7SUFDTyxZQUFZLENBQ3BCLE1BQWUsRUFDZixVQUFrQixNQUFNO1FBRXhCLE9BQU87WUFDTCxPQUFPLEVBQUUsSUFBSTtZQUNiLElBQUksRUFBRTtnQkFDSixNQUFNO2dCQUNOLFFBQVEsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFO2FBQzlCO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXFHRDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFDVSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQTJCLENBQUM7UUFDOUMsZ0JBQVcsR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztJQW9EOUQsQ0FBQztJQWxEQzs7T0FFRztJQUNILFFBQVEsQ0FDTixJQUFZLEVBQ1osT0FBd0IsRUFDeEIsVUFBOEI7UUFFOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsSUFBWTtRQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxPQUFPLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FBQyxJQUFZO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2YsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCx3QkFBd0IsQ0FBQyxRQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQQ29tbWFuZCB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWVcIjtcbmltcG9ydCB7IEFYUEV4ZWN1dGVDb21tYW5kUmVzdWx0LCBBWFBWYWxpZGF0aW9uUnVsZXMgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb3JlXCI7XG5pbXBvcnQgeyBBWFBXaWRnZXRUeXBlc01hcCB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC93aWRnZXQtY29yZVwiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU0lNUExJRklFRCBBQ1RJVklUWSBTWVNURU1cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlQcm9wZXJ0eVdpZGdldCB7XG4gIHR5cGU6IEFYUFdpZGdldFR5cGVzTWFwW2tleW9mIEFYUFdpZGdldFR5cGVzTWFwXSB8IHN0cmluZztcbiAgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbi8qKlxuICogU2ltcGxlIGFjdGl2aXR5IGludGVyZmFjZSAtIGp1c3QgYSBjb21tYW5kIHdpdGggb3V0Y29tZXMuXG4gKiBBbGwgYWN0aXZpdGllcyBhcmUgQVhQQ29tbWFuZCBmb3IgdW5pZmllZCBleGVjdXRpb24gdGhyb3VnaCBDb21tYW5kIEJ1cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWN0aXZpdHk8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gYW55PiBleHRlbmRzIEFYUENvbW1hbmQ8VElucHV0LCB7XG4gIG91dHB1dDogVE91dHB1dDtcbiAgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59PiB7XG4gIC8qKlxuICAgKiBBY3Rpdml0eSB0eXBlIG5hbWUuXG4gICAqIEV4YW1wbGU6IFwiV3JpdGVMaW5lXCIsIFwiU2hvd0RpYWxvZ1wiLCBcIkNyZWF0ZVVzZXJDb21tYW5kXCJcbiAgICovXG4gIHR5cGU6IHN0cmluZztcbiAgXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWUgZm9yIFVJLlxuICAgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpdml0eSBhcyBhIGNvbW1hbmQuXG4gICAqIEBwYXJhbSBpbnB1dCAtIEFjdGl2aXR5IGlucHV0IGRhdGFcbiAgICogQHJldHVybnMgUHJvbWlzZSB3aXRoIG91dHB1dCBhbmQgb3V0Y29tZXNcbiAgICovXG4gIGV4ZWN1dGUoaW5wdXQ6IFRJbnB1dCk6IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8eyBvdXRwdXQ6IFRPdXRwdXQ7IG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IH0+Pjtcbn1cblxuLyoqXG4gKiBCYXNlIGFic3RyYWN0IGNsYXNzIGZvciBhY3Rpdml0aWVzLlxuICogRXh0ZW5kIHRoaXMgdG8gY3JlYXRlIGN1c3RvbSBhY3Rpdml0aWVzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWN0aXZpdHk8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gYW55PiBpbXBsZW1lbnRzIElBY3Rpdml0eTxUSW5wdXQsIFRPdXRwdXQ+IHtcbiAgdHlwZTogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZywgbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBhY3Rpdml0eSBhcyBhIGNvbW1hbmQuXG4gICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGluIHN1YmNsYXNzZXMgdG8gaW1wbGVtZW50IGFjdGl2aXR5IGxvZ2ljLlxuICAgKi9cbiAgYWJzdHJhY3QgZXhlY3V0ZShpbnB1dDogVElucHV0KTogUHJvbWlzZTxBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogVE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4+O1xuICBcbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdGhhdCByZXR1cm5zIERvbmUgb3V0Y29tZSBieSBkZWZhdWx0LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc3VsdChcbiAgICBvdXRwdXQ6IFRPdXRwdXQsXG4gICAgb3V0Y29tZTogc3RyaW5nID0gJ0RvbmUnLFxuICApOiBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdDx7IG91dHB1dDogVE91dHB1dDsgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gfT4ge1xuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgZGF0YToge1xuICAgICAgICBvdXRwdXQsXG4gICAgICAgIG91dGNvbWVzOiB7IFtvdXRjb21lXTogdHJ1ZSB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQWN0aXZpdHkgZGVzY3JpcHRvciAtIG1ldGFkYXRhIGFib3V0IGFuIGFjdGl2aXR5IHR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlEZXNjcmlwdG9yIHtcbiAgLyoqXG4gICAqIEFjdGl2aXR5IHR5cGUgbmFtZS5cbiAgICovXG4gIHR5cGU6IHN0cmluZztcbiAgXG4gIC8qKlxuICAgKiBEaXNwbGF5IG5hbWUgZm9yIFVJLlxuICAgKi9cbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB3aGF0IHRoZSBhY3Rpdml0eSBkb2VzLlxuICAgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogQ2F0ZWdvcnkgZm9yIGdyb3VwaW5nIGluIHRvb2xib3guXG4gICAqL1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBcbiAgLyoqXG4gICAqIEljb24gbmFtZSBvciBjbGFzcy5cbiAgICovXG4gIGljb24/OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogV2hlcmUgdGhpcyBhY3Rpdml0eSBzaG91bGQgYmUgZXhlY3V0ZWQuXG4gICAqIC0gJ2Zyb250ZW5kJzogRXhlY3V0ZSBpbiBicm93c2VyIChVSSBhY3Rpdml0aWVzLCBjb25zb2xlLCBldmVudHMpXG4gICAqIC0gJ2JhY2tlbmQnOiBFeGVjdXRlIGluIGJhY2tlbmQgKGJ1c2luZXNzIGxvZ2ljLCBBUEkgY2FsbHMpXG4gICAqIC0gJ2JvdGgnOiBFeGVjdXRlIGluIGJvdGggZnJvbnRlbmQgYW5kIGJhY2tlbmQgKGh5YnJpZCBhY3Rpdml0aWVzKVxuICAgKiBcbiAgICogRGVmYXVsdDogJ2Zyb250ZW5kJ1xuICAgKi9cbiAgZXhlY3V0aW9uTW9kZT86ICdmcm9udGVuZCcgfCAnYmFja2VuZCcgfCAnYm90aCc7XG4gIFxuICAvKipcbiAgICogSW5wdXQgZGVzY3JpcHRvcnMuXG4gICAqL1xuICBpbnB1dHM6IElucHV0RGVzY3JpcHRvcltdO1xuICBcbiAgLyoqXG4gICAqIE91dHB1dCBkZXNjcmlwdG9ycy5cbiAgICovXG4gIG91dHB1dHM6IE91dHB1dERlc2NyaXB0b3JbXTtcbiAgXG4gIC8qKlxuICAgKiBTdGF0aWMgb3V0Y29tZXMgKGV4aXQgcG9pbnRzKS5cbiAgICogRXhhbXBsZTogWydEb25lJywgJ1N1Y2Nlc3MnLCAnRmFpbGVkJ11cbiAgICovXG4gIG91dGNvbWVzPzogc3RyaW5nW107XG4gIFxuICAvKipcbiAgICogV2hldGhlciB0aGlzIGFjdGl2aXR5IGlzIGJyb3dzYWJsZSBpbiB0aGUgdG9vbGJveC5cbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgaXNCcm93c2FibGU/OiBib29sZWFuO1xuICBcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBhY3Rpdml0eSBpcyBhIGNvbnRhaW5lciAoY2FuIGhhdmUgY2hpbGRyZW4pLlxuICAgKiBEZWZhdWx0OiBmYWxzZVxuICAgKi9cbiAgaXNDb250YWluZXI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIElucHV0IHByb3BlcnR5IGRlc2NyaXB0b3IuXG4gKiBTaW1pbGFyIHRvIEFYUEVudGl0eVByb3BlcnR5IHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnB1dERlc2NyaXB0b3Ige1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBzY2hlbWE6IHtcbiAgICBkYXRhVHlwZTogc3RyaW5nO1xuICAgIG51bGxhYmxlPzogYm9vbGVhbjtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgaGlkZGVuPzogYm9vbGVhbiB8IHN0cmluZztcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnkgfCBzdHJpbmcgfCAoKGNvbnRleHQ6IGFueSB8IG51bGwpID0+IGFueSk7XG4gICAgaW50ZXJmYWNlPzogQWN0aXZpdHlQcm9wZXJ0eVdpZGdldDtcbiAgfTtcbiAgdmFsaWRhdGlvbnM/OiBBWFBWYWxpZGF0aW9uUnVsZXM7XG59XG5cbi8qKlxuICogT3V0cHV0IHByb3BlcnR5IGRlc2NyaXB0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0RGVzY3JpcHRvciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHNjaGVtYToge1xuICAgIGRhdGFUeXBlOiBzdHJpbmc7XG4gIH07XG59XG5cbi8qKlxuICogQWN0aXZpdHkgcmVnaXN0cnkgZm9yIHJlZ2lzdGVyaW5nIGFuZCBjcmVhdGluZyBhY3Rpdml0aWVzLlxuICovXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlSZWdpc3RyeSB7XG4gIHByaXZhdGUgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgKCkgPT4gSUFjdGl2aXR5PigpO1xuICBwcml2YXRlIGRlc2NyaXB0b3JzID0gbmV3IE1hcDxzdHJpbmcsIEFjdGl2aXR5RGVzY3JpcHRvcj4oKTtcblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gYWN0aXZpdHkgdHlwZS5cbiAgICovXG4gIHJlZ2lzdGVyKFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBmYWN0b3J5OiAoKSA9PiBJQWN0aXZpdHksXG4gICAgZGVzY3JpcHRvcjogQWN0aXZpdHlEZXNjcmlwdG9yXG4gICk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0cnkuc2V0KHR5cGUsIGZhY3RvcnkpO1xuICAgIHRoaXMuZGVzY3JpcHRvcnMuc2V0KHR5cGUsIGRlc2NyaXB0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBhY3Rpdml0eSBpbnN0YW5jZS5cbiAgICovXG4gIGNyZWF0ZSh0eXBlOiBzdHJpbmcpOiBJQWN0aXZpdHkge1xuICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLnJlZ2lzdHJ5LmdldCh0eXBlKTtcbiAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBhY3Rpdml0eSB0eXBlOiAke3R5cGV9YCk7XG4gICAgfVxuICAgIHJldHVybiBmYWN0b3J5KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFjdGl2aXR5IGRlc2NyaXB0b3IuXG4gICAqL1xuICBnZXREZXNjcmlwdG9yKHR5cGU6IHN0cmluZyk6IEFjdGl2aXR5RGVzY3JpcHRvciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvcnMuZ2V0KHR5cGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgcmVnaXN0ZXJlZCB0eXBlcy5cbiAgICovXG4gIGdldFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnJlZ2lzdHJ5LmtleXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBkZXNjcmlwdG9ycy5cbiAgICovXG4gIGdldEFsbERlc2NyaXB0b3JzKCk6IEFjdGl2aXR5RGVzY3JpcHRvcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmRlc2NyaXB0b3JzLnZhbHVlcygpKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBkZXNjcmlwdG9ycyBieSBjYXRlZ29yeS5cbiAgICovXG4gIGdldERlc2NyaXB0b3JzQnlDYXRlZ29yeShjYXRlZ29yeTogc3RyaW5nKTogQWN0aXZpdHlEZXNjcmlwdG9yW10ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbERlc2NyaXB0b3JzKCkuZmlsdGVyKGQgPT4gZC5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkpO1xuICB9XG59Il19","import { Injectable, inject, InjectionToken } from '@angular/core';\nimport { AXPCommandService, AXPCommandRegistry } from '@acorex/platform/runtime';\nimport * as i0 from \"@angular/core\";\n/**\n * Injection token for activity providers.\n */\nexport const AXP_ACTIVITY_PROVIDER = new InjectionToken('AXP_ACTIVITY_PROVIDER');\n/**\n * Activity Provider Service.\n * Collects all activity providers and manages activity registration.\n */\nexport class AXPActivityProviderService {\n constructor() {\n this.activityDescriptors = new Map();\n this.categories = [];\n this.providers = [];\n this.categoryProviders = [];\n this.initialized = false;\n this.commandService = inject(AXPCommandService);\n this.commandRegistry = inject(AXPCommandRegistry);\n }\n /**\n * Register an activity provider.\n */\n registerProvider(provider) {\n this.providers.push(provider);\n if (this.initialized) {\n this.initializeProvider(provider);\n }\n }\n /**\n * Register a category provider.\n */\n registerCategoryProvider(provider) {\n this.categoryProviders.push(provider);\n if (this.initialized) {\n this.initializeCategoryProvider(provider);\n }\n }\n /**\n * Initialize all providers.\n */\n async initialize() {\n if (this.initialized)\n return;\n // Initialize category providers first\n for (const provider of this.categoryProviders) {\n await this.initializeCategoryProvider(provider);\n }\n // Initialize activity providers\n for (const provider of this.providers) {\n await this.initializeProvider(provider);\n }\n this.initialized = true;\n }\n /**\n * Get activity descriptor by key.\n */\n getDescriptor(key) {\n return this.activityDescriptors.get(key);\n }\n /**\n * Get all activity descriptors.\n */\n getAllDescriptors() {\n return Array.from(this.activityDescriptors.values());\n }\n /**\n * Get descriptors by category.\n */\n getDescriptorsByCategory(category) {\n return this.getAllDescriptors().filter(d => d.category === category);\n }\n /**\n * Get all categories.\n */\n getCategories() {\n return [...this.categories].sort((a, b) => (a.order || 999) - (b.order || 999));\n }\n /**\n * Create an activity instance by key using AXPCommandService.\n */\n async createActivity(key) {\n try {\n // Check if command exists\n if (!this.commandService.exists(key)) {\n return null;\n }\n // Get command loader from registry\n const loader = this.commandRegistry.getLoader(key);\n if (!loader) {\n return null;\n }\n // Create command instance\n const command = await loader();\n return command;\n }\n catch (error) {\n return null;\n }\n }\n // ============================================\n // PRIVATE METHODS\n // ============================================\n async initializeProvider(provider) {\n const context = {\n registerActivity: (config) => {\n this.activityDescriptors.set(config.key, config.descriptor);\n }\n };\n await provider.provide(context);\n }\n async initializeCategoryProvider(provider) {\n const context = {\n registerCategories: (categories) => {\n this.categories.push(...categories);\n }\n };\n await provider.provide(context);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityProviderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityProviderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcHJvdmlkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9lbmdpbmUvYWN0aXZpdHktcHJvdmlkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBK0JqRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUF3Qix1QkFBdUIsQ0FBQyxDQUFDO0FBaUJ4Rzs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sMEJBQTBCO0lBSHZDO1FBSVUsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDNUQsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsY0FBUyxHQUEwQixFQUFFLENBQUM7UUFDdEMsc0JBQWlCLEdBQWtDLEVBQUUsQ0FBQztRQUN0RCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNYLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDM0Msb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQW9IL0Q7SUFsSEM7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUE2QjtRQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QixDQUFDLFFBQXFDO1FBQzVELElB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Q0FBQztJQUNsQyxDQUFDO0lBRU8sS0FBSyxDQUFDLDBCQUEwQixDQUFDLFFBQXFDO1FBQzVFLE1BQU0sT0FBTyxHQUF1QztZQUNsRCxrQkFBa0IsRUFBRSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7U0FDRixDQUFDO1FBRUYsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBMUhVLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXIsIEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlckNvbnRleHQgfSBmcm9tICcuL2FjdGl2aXR5LWNhdGVnb3J5LnByb3ZpZGVyJztcbmltcG9ydCB7IEFYUENvbW1hbmRTZXJ2aWNlLCBBWFBDb21tYW5kUmVnaXN0cnkgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuaW1wb3J0IHsgQWN0aXZpdHlEZXNjcmlwdG9yLCBJQWN0aXZpdHkgfSBmcm9tICcuL2FjdGl2aXR5LnR5cGVzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEFDVElWSVRZIFBST1ZJREVSIFBBVFRFUk4gKEluZnJhc3RydWN0dXJlKVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb250ZXh0IGZvciByZWdpc3RlcmluZyBhY3Rpdml0aWVzIGluIGEgcHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlQcm92aWRlckNvbnRleHQge1xuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gYWN0aXZpdHkgd2l0aCBpdHMgZGVzY3JpcHRvci5cbiAgICovXG4gIHJlZ2lzdGVyQWN0aXZpdHkoY29uZmlnOiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRvcjogQWN0aXZpdHlEZXNjcmlwdG9yO1xuICB9KTogdm9pZDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGFjdGl2aXR5IHByb3ZpZGVycy5cbiAqIE1vZHVsZXMgaW1wbGVtZW50IHRoaXMgdG8gcmVnaXN0ZXIgdGhlaXIgYWN0aXZpdGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBBY3Rpdml0eVByb3ZpZGVyIHtcbiAgLyoqXG4gICAqIFByb3ZpZGUgYWN0aXZpdGllcyB0byB0aGUgc3lzdGVtLlxuICAgKi9cbiAgcHJvdmlkZShjb250ZXh0OiBBWFBBY3Rpdml0eVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4gfCB2b2lkO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgYWN0aXZpdHkgcHJvdmlkZXJzLlxuICovXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUEFjdGl2aXR5UHJvdmlkZXJbXT4oJ0FYUF9BQ1RJVklUWV9QUk9WSURFUicpO1xuXG4vKipcbiAqIENhdGVnb3J5IGRlZmluaXRpb24gZm9yIGFjdGl2aXR5IGNhdGVnb3JpemF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2aXR5Q2F0ZWdvcnkge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgb3JkZXI/OiBudW1iZXI7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuXG4vKipcbiAqIEFjdGl2aXR5IFByb3ZpZGVyIFNlcnZpY2UuXG4gKiBDb2xsZWN0cyBhbGwgYWN0aXZpdHkgcHJvdmlkZXJzIGFuZCBtYW5hZ2VzIGFjdGl2aXR5IHJlZ2lzdHJhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlQcm92aWRlclNlcnZpY2Uge1xuICBwcml2YXRlIGFjdGl2aXR5RGVzY3JpcHRvcnMgPSBuZXcgTWFwPHN0cmluZywgQWN0aXZpdHlEZXNjcmlwdG9yPigpO1xuICBwcml2YXRlIGNhdGVnb3JpZXM6IEFjdGl2aXR5Q2F0ZWdvcnlbXSA9IFtdO1xuICBwcml2YXRlIHByb3ZpZGVyczogQVhQQWN0aXZpdHlQcm92aWRlcltdID0gW107XG4gIHByaXZhdGUgY2F0ZWdvcnlQcm92aWRlcnM6IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlcltdID0gW107XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kU2VydmljZSA9IGluamVjdChBWFBDb21tYW5kU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFJlZ2lzdHJ5ID0gaW5qZWN0KEFYUENvbW1hbmRSZWdpc3RyeSk7XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGFuIGFjdGl2aXR5IHByb3ZpZGVyLlxuICAgKi9cbiAgcmVnaXN0ZXJQcm92aWRlcihwcm92aWRlcjogQVhQQWN0aXZpdHlQcm92aWRlcik6IHZvaWQge1xuICAgIHRoaXMucHJvdmlkZXJzLnB1c2gocHJvdmlkZXIpO1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVQcm92aWRlcihwcm92aWRlcik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY2F0ZWdvcnkgcHJvdmlkZXIuXG4gICAqL1xuICByZWdpc3RlckNhdGVnb3J5UHJvdmlkZXIocHJvdmlkZXI6IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlcik6IHZvaWQge1xuICAgIHRoaXMuY2F0ZWdvcnlQcm92aWRlcnMucHVzaChwcm92aWRlcik7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNhdGVnb3J5UHJvdmlkZXIocHJvdmlkZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGFsbCBwcm92aWRlcnMuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICAvLyBJbml0aWFsaXplIGNhdGVnb3J5IHByb3ZpZGVycyBmaXJzdFxuICAgIGZvciAoY29uc3QgcHJvdmlkZXIgb2YgdGhpcy5jYXRlZ29yeVByb3ZpZGVycykge1xuICAgICAgYXdhaXQgdGhpcy5pbml0aWFsaXplQ2F0ZWdvcnlQcm92aWRlcihwcm92aWRlcik7XG4gICAgfVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBhY3Rpdml0eSBwcm92aWRlcnNcbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVQcm92aWRlcihwcm92aWRlcik7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFjdGl2aXR5IGRlc2NyaXB0b3IgYnkga2V5LlxuICAgKi9cbiAgZ2V0RGVzY3JpcHRvcihrZXk6IHN0cmluZyk6IEFjdGl2aXR5RGVzY3JpcHRvciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlEZXNjcmlwdG9ycy5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGFjdGl2aXR5IGRlc2NyaXB0b3JzLlxuICAgKi9cbiAgZ2V0QWxsRGVzY3JpcHRvcnMoKTogQWN0aXZpdHlEZXNjcmlwdG9yW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuYWN0aXZpdHlEZXNjcmlwdG9ycy52YWx1ZXMoKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGRlc2NyaXB0b3JzIGJ5IGNhdGVnb3J5LlxuICAgKi9cbiAgZ2V0RGVzY3JpcHRvcnNCeUNhdGVnb3J5KGNhdGVnb3J5OiBzdHJpbmcpOiBBY3Rpdml0eURlc2NyaXB0b3JbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsRGVzY3JpcHRvcnMoKS5maWx0ZXIoZCA9PiBkLmNhdGVnb3J5ID09PSBjYXRlZ29yeSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBjYXRlZ29yaWVzLlxuICAgKi9cbiAgZ2V0Q2F0ZWdvcmllcygpOiBBY3Rpdml0eUNhdGVnb3J5W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5jYXRlZ29yaWVzXS5zb3J0KChhLCBiKSA9PiAoYS5vcmRlciB8fCA5OTkpIC0gKGIub3JkZXIgfHwgOTk5KSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGFjdGl2aXR5IGluc3RhbmNlIGJ5IGtleSB1c2luZyBBWFBDb21tYW5kU2VydmljZS5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUFjdGl2aXR5KGtleTogc3RyaW5nKTogUHJvbWlzZTxJQWN0aXZpdHkgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhpc3RzXG4gICAgICBpZiAoIXRoaXMuY29tbWFuZFNlcnZpY2UuZXhpc3RzKGtleSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEdldCBjb21tYW5kIGxvYWRlciBmcm9tIHJlZ2lzdHJ5XG4gICAgICBjb25zdCBsb2FkZXIgPSB0aGlzLmNvbW1hbmRSZWdpc3RyeS5nZXRMb2FkZXIoa2V5KTtcbiAgICAgIGlmICghbG9hZGVyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBDcmVhdGUgY29tbWFuZCBpbnN0YW5jZVxuICAgICAgY29uc3QgY29tbWFuZCA9IGF3YWl0IGxvYWRlcigpO1xuICAgICAgcmV0dXJuIGNvbW1hbmQgYXMgSUFjdGl2aXR5O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxpemVQcm92aWRlcihwcm92aWRlcjogQVhQQWN0aXZpdHlQcm92aWRlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEFjdGl2aXR5UHJvdmlkZXJDb250ZXh0ID0ge1xuICAgICAgcmVnaXN0ZXJBY3Rpdml0eTogKGNvbmZpZykgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2aXR5RGVzY3JpcHRvcnMuc2V0KGNvbmZpZy5rZXksIGNvbmZpZy5kZXNjcmlwdG9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgYXdhaXQgcHJvdmlkZXIucHJvdmlkZShjb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZUNhdGVnb3J5UHJvdmlkZXIocHJvdmlkZXI6IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRleHQ6IEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlckNvbnRleHQgPSB7XG4gICAgICByZWdpc3RlckNhdGVnb3JpZXM6IChjYXRlZ29yaWVzKSA9PiB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKC4uLmNhdGVnb3JpZXMpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKGNvbnRleHQpO1xuICB9XG59XG4iXX0=","import { Injectable, InjectionToken, Optional, SkipSelf, Inject } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Injection token for activity category providers.\n */\nexport const AXP_ACTIVITY_CATEGORY_PROVIDER = new InjectionToken('AXP_ACTIVITY_CATEGORY_PROVIDER');\nexport class AXPActivityCategoryProviderService {\n constructor(parent, providers = []) {\n this.parent = parent;\n this.providers = providers;\n this.categories = new Map();\n this.isInitialized = false;\n if (!parent) {\n this.initialize();\n }\n }\n async initialize() {\n if (this.isInitialized) {\n return;\n }\n for (const provider of this.providers) {\n await provider.provide({\n registerCategories: (categories) => {\n categories.forEach(cat => this.categories.set(cat.name, cat));\n }\n });\n }\n this.isInitialized = true;\n }\n getAllCategories() {\n return Array.from(this.categories.values()).sort((a, b) => (a.order || 0) - (b.order || 0));\n }\n getCategory(name) {\n return this.categories.get(name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityCategoryProviderService, deps: [{ token: AXPActivityCategoryProviderService, optional: true, skipSelf: true }, { token: AXP_ACTIVITY_CATEGORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityCategoryProviderService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityCategoryProviderService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: AXPActivityCategoryProviderService, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [AXP_ACTIVITY_CATEGORY_PROVIDER]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY2F0ZWdvcnkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXR5LWNhdGVnb3J5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQXFCL0Y7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBZ0MsZ0NBQWdDLENBQUMsQ0FBQztBQUdsSSxNQUFNLE9BQU8sa0NBQWtDO0lBSTdDLFlBQ2tDLE1BQTJDLEVBQ2YsWUFBMkMsRUFBRTtRQUR6RSxXQUFNLEdBQU4sTUFBTSxDQUFxQztRQUNmLGNBQVMsR0FBVCxTQUFTLENBQW9DO1FBTG5HLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBc0MsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQU01QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsVUFBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFDckIsa0JBQWtCLEVBQUUsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0FsQ1Usa0NBQWtDLGlHQU12Qiw4QkFBOEI7bUhBTnpDLGtDQUFrQyxjQURyQixNQUFNOzs0RkFDbkIsa0NBQWtDO2tCQUQ5QyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTTdCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBTa2lwU2VsZiwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlDYXRlZ29yeURlc2NyaXB0b3Ige1xuICBuYW1lOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgb3JkZXI/OiBudW1iZXI7XG4gIGlzVmlzaWJsZT86IGJvb2xlYW47XG4gIHRhZ3M/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXJDb250ZXh0IHtcbiAgcmVnaXN0ZXJDYXRlZ29yaWVzKGNhdGVnb3JpZXM6IEFjdGl2aXR5Q2F0ZWdvcnlEZXNjcmlwdG9yW10pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlciB7XG4gIHByb3ZpZGUoY29udGV4dDogQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyQ29udGV4dCk6IFByb21pc2U8dm9pZD4gfCB2b2lkO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3IgYWN0aXZpdHkgY2F0ZWdvcnkgcHJvdmlkZXJzLlxuICovXG5leHBvcnQgY29uc3QgQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYUEFjdGl2aXR5Q2F0ZWdvcnlQcm92aWRlcltdPignQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSJyk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyU2VydmljZSB7XG4gIHByaXZhdGUgY2F0ZWdvcmllcyA9IG5ldyBNYXA8c3RyaW5nLCBBY3Rpdml0eUNhdGVnb3J5RGVzY3JpcHRvcj4oKTtcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBwYXJlbnQ/OiBBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSKSBwcml2YXRlIHByb3ZpZGVyczogQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyW10gPSBbXVxuICApIHtcbiAgICBpZiAoIXBhcmVudCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIHRoaXMucHJvdmlkZXJzKSB7XG4gICAgICBhd2FpdCBwcm92aWRlci5wcm92aWRlKHtcbiAgICAgICAgcmVnaXN0ZXJDYXRlZ29yaWVzOiAoY2F0ZWdvcmllcykgPT4ge1xuICAgICAgICAgIGNhdGVnb3JpZXMuZm9yRWFjaChjYXQgPT4gdGhpcy5jYXRlZ29yaWVzLnNldChjYXQubmFtZSwgY2F0KSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgZ2V0QWxsQ2F0ZWdvcmllcygpOiBBY3Rpdml0eUNhdGVnb3J5RGVzY3JpcHRvcltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNhdGVnb3JpZXMudmFsdWVzKCkpLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyIHx8IDApIC0gKGIub3JkZXIgfHwgMCkpO1xuICB9XG5cbiAgZ2V0Q2F0ZWdvcnkobmFtZTogc3RyaW5nKTogQWN0aXZpdHlDYXRlZ29yeURlc2NyaXB0b3IgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNhdGVnb3JpZXMuZ2V0KG5hbWUpO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Abstract service for workflow execution operations.\n *\n * This service handles communication with backend for workflow execution.\n *\n * Implementation should be provided in connectivity layer:\n * - Mock implementation: @acorex/connectivity/mock\n * - API implementation: @acorex/connectivity/api\n *\n * @example\n * ```typescript\n * // In connectivity/mock\n * @Injectable()\n * export class AXCWorkflowExecutionService implements AXPWorkflowExecutionService {\n * async startExecution(request: AXPStartWorkflowExecutionRequest): Promise<AXPStartWorkflowExecutionResponse> {\n * // Mock implementation\n * }\n * }\n *\n * // In connectivity/api\n * @Injectable()\n * export class AXCWorkflowExecutionService implements AXPWorkflowExecutionService {\n * constructor(private http: HttpClient) {}\n *\n * async startExecution(request: AXPStartWorkflowExecutionRequest): Promise<AXPStartWorkflowExecutionResponse> {\n * return firstValueFrom(\n * this.http.post<AXPStartWorkflowExecutionResponse>(\n * `${this.config.baseUrl}/api/workflows/${request.workflowId}/start`,\n * { input: request.input }\n * )\n * );\n * }\n * }\n * ```\n */\nexport class AXPWorkflowExecutionService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvd29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFFSCxNQUFNLE9BQWdCLDJCQUEyQjsrR0FBM0IsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdCxcbiAgQVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlLFxuICBBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3QsXG4gIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2UsXG4gIEFYUEdldFdvcmtmbG93RXhlY3V0aW9uU3RhdGVSZXF1ZXN0LFxuICBBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXF1ZXN0LFxuICBBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXNwb25zZSxcbiAgQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSxcbn0gZnJvbSAnLi93b3JrZmxvdy1leGVjdXRpb24udHlwZXMnO1xuXG4vKipcbiAqIEFic3RyYWN0IHNlcnZpY2UgZm9yIHdvcmtmbG93IGV4ZWN1dGlvbiBvcGVyYXRpb25zLlxuICogXG4gKiBUaGlzIHNlcnZpY2UgaGFuZGxlcyBjb21tdW5pY2F0aW9uIHdpdGggYmFja2VuZCBmb3Igd29ya2Zsb3cgZXhlY3V0aW9uLlxuICogXG4gKiBJbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgcHJvdmlkZWQgaW4gY29ubmVjdGl2aXR5IGxheWVyOlxuICogLSBNb2NrIGltcGxlbWVudGF0aW9uOiBAYWNvcmV4L2Nvbm5lY3Rpdml0eS9tb2NrXG4gKiAtIEFQSSBpbXBsZW1lbnRhdGlvbjogQGFjb3JleC9jb25uZWN0aXZpdHkvYXBpXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBjb25uZWN0aXZpdHkvbW9ja1xuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFYQ1dvcmtmbG93RXhlY3V0aW9uU2VydmljZSBpbXBsZW1lbnRzIEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB7XG4gKiAgIGFzeW5jIHN0YXJ0RXhlY3V0aW9uKHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0KTogUHJvbWlzZTxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+IHtcbiAqICAgICAvLyBNb2NrIGltcGxlbWVudGF0aW9uXG4gKiAgIH1cbiAqIH1cbiAqIFxuICogLy8gSW4gY29ubmVjdGl2aXR5L2FwaVxuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFYQ1dvcmtmbG93RXhlY3V0aW9uU2VydmljZSBpbXBsZW1lbnRzIEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB7XG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cbiAqICAgXG4gKiAgIGFzeW5jIHN0YXJ0RXhlY3V0aW9uKHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0KTogUHJvbWlzZTxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+IHtcbiAqICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gKiAgICAgICB0aGlzLmh0dHAucG9zdDxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+KFxuICogICAgICAgICBgJHt0aGlzLmNvbmZpZy5iYXNlVXJsfS9hcGkvd29ya2Zsb3dzLyR7cmVxdWVzdC53b3JrZmxvd0lkfS9zdGFydGAsXG4gKiAgICAgICAgIHsgaW5wdXQ6IHJlcXVlc3QuaW5wdXQgfVxuICogICAgICAgKVxuICogICAgICk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQV29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFN0YXJ0IGEgbmV3IHdvcmtmbG93IGV4ZWN1dGlvbi5cbiAgICogXG4gICAqIENyZWF0ZXMgYSBuZXcgd29ya2Zsb3cgZXhlY3V0aW9uIGluc3RhbmNlIGluIGJhY2tlbmQgYW5kIHJldHVybnMgZXhlY3V0aW9uIElELlxuICAgKiBcbiAgICogQHBhcmFtIHJlcXVlc3QgLSBTdGFydCBleGVjdXRpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzcG9uc2Ugd2l0aCBleGVjdXRpb25JZCBhbmQgaW5pdGlhbCBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5zdGFydEV4ZWN1dGlvbih7XG4gICAqICAgd29ya2Zsb3dJZDogJ215LXdvcmtmbG93JyxcbiAgICogICBpbnB1dDogeyB1c2VySWQ6ICcxMjMnLCBhY3Rpb246ICdjcmVhdGUnIH1cbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnRXhlY3V0aW9uIElEOicsIHJlc3BvbnNlLmV4ZWN1dGlvbklkKTtcbiAgICogY29uc29sZS5sb2coJ0luaXRpYWwgU3RhdGU6JywgcmVzcG9uc2Uuc3RhdGUpO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHN0YXJ0RXhlY3V0aW9uKFxuICAgIHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0XG4gICk6IFByb21pc2U8QVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlPjtcblxuICAvKipcbiAgICogUmVzdW1lIGEgc3VzcGVuZGVkIHdvcmtmbG93IGV4ZWN1dGlvbi5cbiAgICogXG4gICAqIFJlc3VtZXMgd29ya2Zsb3cgZXhlY3V0aW9uIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24gKGUuZy4sIGFmdGVyIHNob3ctZGlhbG9nKS5cbiAgICogXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gUmVzdW1lIGV4ZWN1dGlvbiByZXF1ZXN0XG4gICAqIEByZXR1cm5zIFJlc3VtZSByZXNwb25zZSB3aXRoIG5leHQgc3RlcCBhbmQgdXBkYXRlZCBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5yZXN1bWVFeGVjdXRpb24oe1xuICAgKiAgIGV4ZWN1dGlvbklkOiAnZXhlYy0xMjMnLFxuICAgKiAgIHN0ZXBJZDogJ3N0ZXAtZGlhbG9nLTEnLFxuICAgKiAgIHRhc2tUb2tlbjogJ3NlYy10YXNrLXRva2VuJyxcbiAgICogICBvdXRjb21lOiAnQ29uZmlybWVkJyxcbiAgICogICB1c2VySW5wdXQ6IHsgY29uZmlybWVkOiB0cnVlIH1cbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnTmV4dCBTdGVwOicsIHJlc3BvbnNlLm5leHRTdGVwKTtcbiAgICogY29uc29sZS5sb2coJ1VwZGF0ZWQgU3RhdGU6JywgcmVzcG9uc2Uuc3RhdGUpO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHJlc3VtZUV4ZWN1dGlvbihcbiAgICByZXF1ZXN0OiBBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RcbiAgKTogUHJvbWlzZTxBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlPjtcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgd29ya2Zsb3cgZXhlY3V0aW9uIHN0YXRlLlxuICAgKiBcbiAgICogUmV0cmlldmVzIGN1cnJlbnQgc3RhdGUgb2YgYSB3b3JrZmxvdyBleGVjdXRpb24gZnJvbSBiYWNrZW5kLlxuICAgKiBcbiAgICogQHBhcmFtIHJlcXVlc3QgLSBHZXQgc3RhdGUgcmVxdWVzdFxuICAgKiBAcmV0dXJucyBDdXJyZW50IHdvcmtmbG93IGV4ZWN1dGlvbiBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzdGF0ZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5nZXRFeGVjdXRpb25TdGF0ZSh7XG4gICAqICAgZXhlY3V0aW9uSWQ6ICdleGVjLTEyMydcbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnU3RhdHVzOicsIHN0YXRlLnN0YXR1cyk7XG4gICAqIGNvbnNvbGUubG9nKCdWYXJpYWJsZXM6Jywgc3RhdGUudmFyaWFibGVzKTtcbiAgICogYGBgXG4gICAqL1xuICBhYnN0cmFjdCBnZXRFeGVjdXRpb25TdGF0ZShcbiAgICByZXF1ZXN0OiBBWFBHZXRXb3JrZmxvd0V4ZWN1dGlvblN0YXRlUmVxdWVzdFxuICApOiBQcm9taXNlPEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU+O1xuXG4gIC8qKlxuICAgKiBHZXQgd29ya2Zsb3cgZGVmaW5pdGlvbiBieSBJRC5cbiAgICogXG4gICAqIFJldHJpZXZlcyB3b3JrZmxvdyBkZWZpbml0aW9uIGZyb20gYmFja2VuZC5cbiAgICogXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gR2V0IHdvcmtmbG93IGRlZmluaXRpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIGluIGV4ZWN1dGFibGUgZm9ybWF0XG4gICAqIFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgd29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlLmdldFdvcmtmbG93RGVmaW5pdGlvbih7XG4gICAqICAgd29ya2Zsb3dJZDogJ215LXdvcmtmbG93J1xuICAgKiB9KTtcbiAgICogXG4gICAqIGNvbnNvbGUubG9nKCdXb3JrZmxvdzonLCByZXNwb25zZS53b3JrZmxvdyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0V29ya2Zsb3dEZWZpbml0aW9uKFxuICAgIHJlcXVlc3Q6IEFYUEdldFdvcmtmbG93RGVmaW5pdGlvblJlcXVlc3RcbiAgKTogUHJvbWlzZTxBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXNwb25zZT47XG59XG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPWorkflowExecutionService } from './workflow-execution.service';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * Production Workflow Coordinator.\n *\n * Separates frontend/backend execution:\n * - Frontend activities: Execute with AXPCommand in browser\n * - Backend activities: Execute via API calls to backend\n * - State caching: Caches workflow state in client for performance\n *\n */\nexport class WorkflowCoordinator {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.workflowExecutionService = inject(AXPWorkflowExecutionService);\n this.commandService = inject(AXPCommandService);\n //#endregion\n //#region ---- State Cache (Client-side for Performance) ----\n /**\n * Cache workflow states in memory for quick access.\n * Key: executionId\n * Value: AXPWorkflowExecutionState\n */\n this.stateCache = new Map();\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Start workflow execution in backend.\n *\n * Backend decides what to do: returns pendingTask or indicates completion.\n * Frontend only calls API - no business logic here.\n *\n * @param workflowId - Workflow ID\n * @param input - Initial input data\n * @returns Execution result with pendingTask (if any)\n *\n * @example\n * ```typescript\n * const result = await coordinator.startWorkflow('my-workflow', { userId: '123' });\n *\n * if (result.pendingTask) {\n * // Execute task if frontend, or wait for backend to complete\n * if (result.pendingTask.executionMode === 'frontend') {\n * await coordinator.executeTask(result.pendingTask);\n * await coordinator.completeTask(result.executionId, result.pendingTask, outcome, output);\n * }\n * }\n * ```\n */\n async startWorkflow(workflowId, input = {}) {\n try {\n const execution = await this.startWorkflowExecution(workflowId, input);\n const result = {\n success: true,\n output: execution.state.output,\n nextTask: execution.pendingTask || null,\n executionId: execution.executionId,\n state: execution.state\n };\n return result;\n }\n catch (error) {\n console.error('[WorkflowCoordinator] ❌ Error in startWorkflow', error);\n return {\n success: false,\n error: error.message || 'Failed to start workflow',\n nextTask: null\n };\n }\n }\n /**\n * Execute a frontend task using AXPCommand.\n *\n * Only executes if task.executionMode is 'frontend' or 'both'.\n * Backend tasks are handled automatically by backend.\n *\n * @param task - Task to execute\n * @returns Execution result with output and outcome\n */\n async executeTask(task) {\n // Only execute frontend tasks\n if (task.executionMode !== 'frontend' && task.executionMode !== 'both') {\n throw new Error(`Task '${task.activityId}' is not a frontend task. Backend handles it automatically.`);\n }\n return await this.executeFrontendActivity(task);\n }\n /**\n * Complete a task and get next task from backend.\n *\n * Sends task result to backend API.\n * Backend decides: next task, fail, or complete workflow.\n *\n * @param executionId - Execution ID\n * @param task - Completed task\n * @param outcome - Task outcome (e.g., 'Done', 'Confirmed', 'Cancelled')\n * @param output - Task output/result\n * @returns Next task from backend (if any)\n */\n async completeTask(executionId, task, outcome, output) {\n try {\n // Send result to backend - backend decides next step\n const response = await this.workflowExecutionService.resumeExecution({\n executionId,\n stepId: task.activityId,\n taskToken: task.taskToken,\n outcome,\n userInput: output\n });\n // Update cache\n if (response.state) {\n this.stateCache.set(executionId, response.state);\n }\n return {\n success: true,\n output: response.output,\n nextTask: response.nextTask || null,\n executionId,\n state: response.state\n };\n }\n catch (error) {\n return {\n success: false,\n error: error.message || 'Failed to complete task',\n nextTask: null\n };\n }\n }\n /**\n * Execute workflow by ID (backward compatibility).\n *\n * @deprecated Use startWorkflow + executeTask + completeTask pattern instead.\n * This method is kept for backward compatibility but will be removed.\n */\n async executeWorkflowById(workflowId, input = {}) {\n // Just start workflow - caller should handle task execution\n return await this.startWorkflow(workflowId, input);\n }\n /**\n * Resume a suspended workflow (e.g., after user interaction).\n *\n * Backend determines nextStep based on outcome and outcomeConnections.\n * Client only provides executionId, stepId, outcome, and optional userInput.\n *\n * @param executionId - Workflow execution ID\n * @param stepId - Step ID that was waiting for user input\n * @param outcome - User action outcome (e.g., 'Confirmed', 'Cancelled', 'Submitted')\n * @param userInput - Optional user input data\n */\n async resumeWorkflow(executionId, stepId, outcome, userInput, taskToken) {\n try {\n // Ensure taskToken is provided for secure resumption\n if (!taskToken) {\n throw new Error('Missing taskToken for resumeWorkflow');\n }\n // Backend handles everything: checks outcomeConnections and determines nextStep\n const response = await this.workflowExecutionService.resumeExecution({\n executionId,\n stepId,\n taskToken,\n outcome,\n userInput\n });\n // Update cache with state from backend\n if (response.state) {\n this.stateCache.set(executionId, response.state);\n }\n return {\n success: true,\n output: response.output,\n nextTask: response.nextTask || null, // Backend determines this from outcomeConnections\n executionId,\n state: response.state\n };\n }\n catch (error) {\n return {\n success: false,\n error: error.message || 'Failed to resume workflow',\n nextTask: null\n };\n }\n }\n /**\n * Get workflow execution state (from cache or backend).\n */\n async getWorkflowState(executionId) {\n // Check cache first\n const cached = this.stateCache.get(executionId);\n if (cached) {\n // Cache is valid for 5 minutes\n const cacheAge = Date.now() - cached.lastUpdated.getTime();\n if (cacheAge < 5 * 60 * 1000) {\n return cached;\n }\n }\n // Fetch from backend\n try {\n const state = await this.workflowExecutionService.getExecutionState({\n executionId\n });\n // Update cache\n this.stateCache.set(executionId, state);\n return state;\n }\n catch {\n return null;\n }\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Execute a frontend activity using CommandBus.\n *\n * Frontend activities are executed in the browser using AXPCommandService.\n * Activities can also be executed in both frontend and backend (hybrid mode).\n *\n * @param task - Frontend task to execute\n * @returns Execution result with output and outcome\n */\n async executeFrontendActivity(task) {\n try {\n // Check if command exists\n const commandExists = this.commandService.exists(task.activityType);\n if (!commandExists) {\n console.warn(`[WorkflowCoordinator] ⚠️ Frontend activity '${task.activityType}' is not registered. Skipping execution.`);\n return {\n output: null,\n outcome: 'Done'\n };\n }\n // Execute activity via CommandBus\n // Activities registered as AXPCommand return {output, outcomes}\n // 🎯 Flatten properties if nested (workflow-studio format)\n let commandInput = task.input || task.config || {};\n if (commandInput['properties'] && typeof commandInput['properties'] === 'object') {\n // Flatten: {properties: {text: \"...\"}} -> {text: \"...\"}\n commandInput = { ...commandInput['properties'] };\n }\n const result = await this.commandService.execute(task.activityType, commandInput);\n if (!result) {\n return {\n output: null,\n outcome: 'Failed',\n };\n }\n if (!result.success) {\n return {\n output: {\n error: result.message?.text,\n },\n outcome: 'Failed',\n };\n }\n const commandResult = result.data;\n const outcomes = commandResult?.outcomes ?? {};\n let outcome = 'Done';\n if (Object.keys(outcomes).length > 0) {\n outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';\n }\n return {\n output: commandResult?.output ?? null,\n outcome,\n };\n }\n catch (error) {\n console.error(`[WorkflowCoordinator] ❌ Error executing frontend activity '${task.activityType}':`, error);\n return {\n output: { error: error.message || 'Unknown error' },\n outcome: 'Failed'\n };\n }\n }\n /**\n * Start workflow execution in backend.\n * Backend returns executionId, initial state, and first task to execute.\n */\n async startWorkflowExecution(workflowId, input) {\n const response = await this.workflowExecutionService.startExecution({\n workflowId,\n input\n });\n // Cache state\n this.stateCache.set(response.executionId, response.state);\n return {\n executionId: response.executionId,\n state: response.state,\n pendingTask: response.pendingTask\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvd29ya2Zsb3ctY29vcmRpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBcUIzRSxZQUFZO0FBRVo7Ozs7Ozs7O0dBUUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBSUUsK0NBQStDO1FBRTlCLDZCQUF3QixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQy9ELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFNUQsWUFBWTtRQUVaLGlFQUFpRTtRQUVqRTs7OztXQUlHO1FBQ0ssZUFBVSxHQUFHLElBQUksR0FBRyxFQUFxQyxDQUFDO0tBeVVuRTtJQXRVQyxZQUFZO0lBRVosc0NBQXNDO0lBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FDakIsVUFBa0IsRUFDbEIsUUFBNkIsRUFBRTtRQUUvQixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdkUsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDOUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSTtnQkFDdkMsV0FB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QUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsc0JBQXNCLENBQ2xDLFVBQWtCLEVBQ2xCLEtBQTBCO1FBRTFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsQ0FBQztZQUNsRSxVQUFVO1lBQ1YsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ2pDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztZQUNyQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7U0FDbEMsQ0FBQztJQUNKLENBQUM7K0dBclZVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSxcbiAgQVhQV29ya2Zsb3dUYXNrLFxufSBmcm9tICcuL3dvcmtmbG93LWV4ZWN1dGlvbi50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgJiBJbnRlcmZhY2VzICAgLS0tLVxuXG4vKipcbiAqIFdvcmtmbG93IGV4ZWN1dGlvbiByZXN1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dFeGVjdXRpb25SZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBvdXRwdXQ/OiBhbnk7XG4gIGVycm9yPzogc3RyaW5nO1xuICBuZXh0VGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGw7XG4gIGV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICBzdGF0ZT86IEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU7XG59XG5cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogUHJvZHVjdGlvbiBXb3JrZmxvdyBDb29yZGluYXRvci5cbiAqIFxuICogU2VwYXJhdGVzIGZyb250ZW5kL2JhY2tlbmQgZXhlY3V0aW9uOlxuICogLSBGcm9udGVuZCBhY3Rpdml0aWVzOiBFeGVjdXRlIHdpdGggQVhQQ29tbWFuZCBpbiBicm93c2VyXG4gKiAtIEJhY2tlbmQgYWN0aXZpdGllczogRXhlY3V0ZSB2aWEgQVBJIGNhbGxzIHRvIGJhY2tlbmRcbiAqIC0gU3RhdGUgY2FjaGluZzogQ2FjaGVzIHdvcmtmbG93IHN0YXRlIGluIGNsaWVudCBmb3IgcGVyZm9ybWFuY2VcbiAqIFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Nvb3JkaW5hdG9yIHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd0V4ZWN1dGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRTZXJ2aWNlID0gaW5qZWN0KEFYUENvbW1hbmRTZXJ2aWNlKTtcbiAgXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgQ2FjaGUgKENsaWVudC1zaWRlIGZvciBQZXJmb3JtYW5jZSkgICAtLS0tXG5cbiAgLyoqXG4gICAqIENhY2hlIHdvcmtmbG93IHN0YXRlcyBpbiBtZW1vcnkgZm9yIHF1aWNrIGFjY2Vzcy5cbiAgICogS2V5OiBleGVjdXRpb25JZFxuICAgKiBWYWx1ZTogQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0ZUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU+KCk7XG5cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBTdGFydCB3b3JrZmxvdyBleGVjdXRpb24gaW4gYmFja2VuZC5cbiAgICogXG4gICAqIEJhY2tlbmQgZGVjaWRlcyB3aGF0IHRvIGRvOiByZXR1cm5zIHBlbmRpbmdUYXNrIG9yIGluZGljYXRlcyBjb21wbGV0aW9uLlxuICAgKiBGcm9udGVuZCBvbmx5IGNhbGxzIEFQSSAtIG5vIGJ1c2luZXNzIGxvZ2ljIGhlcmUuXG4gICAqIFxuICAgKiBAcGFyYW0gd29ya2Zsb3dJZCAtIFdvcmtmbG93IElEXG4gICAqIEBwYXJhbSBpbnB1dCAtIEluaXRpYWwgaW5wdXQgZGF0YVxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzdWx0IHdpdGggcGVuZGluZ1Rhc2sgKGlmIGFueSlcbiAgICogXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgY29vcmRpbmF0b3Iuc3RhcnRXb3JrZmxvdygnbXktd29ya2Zsb3cnLCB7IHVzZXJJZDogJzEyMycgfSk7XG4gICAqIFxuICAgKiBpZiAocmVzdWx0LnBlbmRpbmdUYXNrKSB7XG4gICAqICAgLy8gRXhlY3V0ZSB0YXNrIGlmIGZyb250ZW5kLCBvciB3YWl0IGZvciBiYWNrZW5kIHRvIGNvbXBsZXRlXG4gICAqICAgaWYgKHJlc3VsdC5wZW5kaW5nVGFzay5leGVjdXRpb25Nb2RlID09PSAnZnJvbnRlbmQnKSB7XG4gICAqICAgICBhd2FpdCBjb29yZGluYXRvci5leGVjdXRlVGFzayhyZXN1bHQucGVuZGluZ1Rhc2spO1xuICAgKiAgICAgYXdhaXQgY29vcmRpbmF0b3IuY29tcGxldGVUYXNrKHJlc3VsdC5leGVjdXRpb25JZCwgcmVzdWx0LnBlbmRpbmdUYXNrLCBvdXRjb21lLCBvdXRwdXQpO1xuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHN0YXJ0V29ya2Zsb3coXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGVjdXRpb24gPSBhd2FpdCB0aGlzLnN0YXJ0V29ya2Zsb3dFeGVjdXRpb24od29ya2Zsb3dJZCwgaW5wdXQpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIG91dHB1dDogZXhlY3V0aW9uLnN0YXRlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IGV4ZWN1dGlvbi5wZW5kaW5nVGFzayB8fCBudWxsLFxuICAgICAgICBleGVjdXRpb25JZDogZXhlY3V0aW9uLmV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogZXhlY3V0aW9uLnN0YXRlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbV29ya2Zsb3dDb29yZGluYXRvcl0g4p2MIEVycm9yIGluIHN0YXJ0V29ya2Zsb3cnLCBlcnJvcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdycsXG4gICAgICAgIG5leHRUYXNrOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgZnJvbnRlbmQgdGFzayB1c2luZyBBWFBDb21tYW5kLlxuICAgKiBcbiAgICogT25seSBleGVjdXRlcyBpZiB0YXNrLmV4ZWN1dGlvbk1vZGUgaXMgJ2Zyb250ZW5kJyBvciAnYm90aCcuXG4gICAqIEJhY2tlbmQgdGFza3MgYXJlIGhhbmRsZWQgYXV0b21hdGljYWxseSBieSBiYWNrZW5kLlxuICAgKiBcbiAgICogQHBhcmFtIHRhc2sgLSBUYXNrIHRvIGV4ZWN1dGVcbiAgICogQHJldHVybnMgRXhlY3V0aW9uIHJlc3VsdCB3aXRoIG91dHB1dCBhbmQgb3V0Y29tZVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZVRhc2soXG4gICAgdGFzazogQVhQV29ya2Zsb3dUYXNrXG4gICk6IFByb21pc2U8eyBvdXRwdXQ6IGFueTsgb3V0Y29tZTogc3RyaW5nIH0+IHtcbiAgICBcbiAgICAvLyBPbmx5IGV4ZWN1dGUgZnJvbnRlbmQgdGFza3NcbiAgICBpZiAodGFzay5leGVjdXRpb25Nb2RlICE9PSAnZnJvbnRlbmQnICYmIHRhc2suZXhlY3V0aW9uTW9kZSAhPT0gJ2JvdGgnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhc2sgJyR7dGFzay5hY3Rpdml0eUlkfScgaXMgbm90IGEgZnJvbnRlbmQgdGFzay4gQmFja2VuZCBoYW5kbGVzIGl0IGF1dG9tYXRpY2FsbHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUZyb250ZW5kQWN0aXZpdHkodGFzayk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGUgYSB0YXNrIGFuZCBnZXQgbmV4dCB0YXNrIGZyb20gYmFja2VuZC5cbiAgICogXG4gICAqIFNlbmRzIHRhc2sgcmVzdWx0IHRvIGJhY2tlbmQgQVBJLlxuICAgKiBCYWNrZW5kIGRlY2lkZXM6IG5leHQgdGFzaywgZmFpbCwgb3IgY29tcGxldGUgd29ya2Zsb3cuXG4gICAqIFxuICAgKiBAcGFyYW0gZXhlY3V0aW9uSWQgLSBFeGVjdXRpb24gSURcbiAgICogQHBhcmFtIHRhc2sgLSBDb21wbGV0ZWQgdGFza1xuICAgKiBAcGFyYW0gb3V0Y29tZSAtIFRhc2sgb3V0Y29tZSAoZS5nLiwgJ0RvbmUnLCAnQ29uZmlybWVkJywgJ0NhbmNlbGxlZCcpXG4gICAqIEBwYXJhbSBvdXRwdXQgLSBUYXNrIG91dHB1dC9yZXN1bHRcbiAgICogQHJldHVybnMgTmV4dCB0YXNrIGZyb20gYmFja2VuZCAoaWYgYW55KVxuICAgKi9cbiAgYXN5bmMgY29tcGxldGVUYXNrKFxuICAgIGV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICAgdGFzazogQVhQV29ya2Zsb3dUYXNrLFxuICAgIG91dGNvbWU6IHN0cmluZyxcbiAgICBvdXRwdXQ/OiBhbnlcbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBTZW5kIHJlc3VsdCB0byBiYWNrZW5kIC0gYmFja2VuZCBkZWNpZGVzIG5leHQgc3RlcFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndvcmtmbG93RXhlY3V0aW9uU2VydmljZS5yZXN1bWVFeGVjdXRpb24oe1xuICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgc3RlcElkOiB0YXNrLmFjdGl2aXR5SWQsXG4gICAgICAgIHRhc2tUb2tlbjogdGFzay50YXNrVG9rZW4sXG4gICAgICAgIG91dGNvbWUsXG4gICAgICAgIHVzZXJJbnB1dDogb3V0cHV0XG4gICAgICB9KTtcblxuICAgICAgLy8gVXBkYXRlIGNhY2hlXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgcmVzcG9uc2Uuc3RhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBvdXRwdXQ6IHJlc3BvbnNlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IHJlc3BvbnNlLm5leHRUYXNrIHx8IG51bGwsXG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgdGFzaycsXG4gICAgICAgIG5leHRUYXNrOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgd29ya2Zsb3cgYnkgSUQgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpLlxuICAgKiBcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHN0YXJ0V29ya2Zsb3cgKyBleGVjdXRlVGFzayArIGNvbXBsZXRlVGFzayBwYXR0ZXJuIGluc3RlYWQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYnV0IHdpbGwgYmUgcmVtb3ZlZC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVXb3JrZmxvd0J5SWQoXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIC8vIEp1c3Qgc3RhcnQgd29ya2Zsb3cgLSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0YXNrIGV4ZWN1dGlvblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0YXJ0V29ya2Zsb3cod29ya2Zsb3dJZCwgaW5wdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VtZSBhIHN1c3BlbmRlZCB3b3JrZmxvdyAoZS5nLiwgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbikuXG4gICAqIFxuICAgKiBCYWNrZW5kIGRldGVybWluZXMgbmV4dFN0ZXAgYmFzZWQgb24gb3V0Y29tZSBhbmQgb3V0Y29tZUNvbm5lY3Rpb25zLlxuICAgKiBDbGllbnQgb25seSBwcm92aWRlcyBleGVjdXRpb25JZCwgc3RlcElkLCBvdXRjb21lLCBhbmQgb3B0aW9uYWwgdXNlcklucHV0LlxuICAgKiBcbiAgICogQHBhcmFtIGV4ZWN1dGlvbklkIC0gV29ya2Zsb3cgZXhlY3V0aW9uIElEXG4gICAqIEBwYXJhbSBzdGVwSWQgLSBTdGVwIElEIHRoYXQgd2FzIHdhaXRpbmcgZm9yIHVzZXIgaW5wdXRcbiAgICogQHBhcmFtIG91dGNvbWUgLSBVc2VyIGFjdGlvbiBvdXRjb21lIChlLmcuLCAnQ29uZmlybWVkJywgJ0NhbmNlbGxlZCcsICdTdWJtaXR0ZWQnKVxuICAgKiBAcGFyYW0gdXNlcklucHV0IC0gT3B0aW9uYWwgdXNlciBpbnB1dCBkYXRhXG4gICAqL1xuICBhc3luYyByZXN1bWVXb3JrZmxvdyhcbiAgICBleGVjdXRpb25JZDogc3RyaW5nLFxuICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgIG91dGNvbWU6IHN0cmluZyxcbiAgICB1c2VySW5wdXQ/OiBhbnksXG4gICAgdGFza1Rva2VuPzogc3RyaW5nXG4gICk6IFByb21pc2U8V29ya2Zsb3dFeGVjdXRpb25SZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gRW5zdXJlIHRhc2tUb2tlbiBpcyBwcm92aWRlZCBmb3Igc2VjdXJlIHJlc3VtcHRpb25cbiAgICAgIGlmICghdGFza1Rva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0YXNrVG9rZW4gZm9yIHJlc3VtZVdvcmtmbG93Jyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhY2tlbmQgaGFuZGxlcyBldmVyeXRoaW5nOiBjaGVja3Mgb3V0Y29tZUNvbm5lY3Rpb25zIGFuZCBkZXRlcm1pbmVzIG5leHRTdGVwXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlLnJlc3VtZUV4ZWN1dGlvbih7XG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGVwSWQsXG4gICAgICAgIHRhc2tUb2tlbixcbiAgICAgICAgb3V0Y29tZSxcbiAgICAgICAgdXNlcklucHV0XG4gICAgICB9KTtcblxuICAgICAgLy8gVXBkYXRlIGNhY2hlIHdpdGggc3RhdGUgZnJvbSBiYWNrZW5kXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgcmVzcG9uc2Uuc3RhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBvdXRwdXQ6IHJlc3BvbnNlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IHJlc3BvbnNlLm5leHRUYXNrIHx8IG51bGwsIC8vIEJhY2tlbmQgZGV0ZXJtaW5lcyB0aGlzIGZyb20gb3V0Y29tZUNvbm5lY3Rpb25zXG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGVcbiAgICAgIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byByZXN1bWUgd29ya2Zsb3cnLFxuICAgICAgICBuZXh0VGFzazogbnVsbFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGV4ZWN1dGlvbiBzdGF0ZSAoZnJvbSBjYWNoZSBvciBiYWNrZW5kKS5cbiAgICovXG4gIGFzeW5jIGdldFdvcmtmbG93U3RhdGUoZXhlY3V0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSB8IG51bGw+IHtcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuc3RhdGVDYWNoZS5nZXQoZXhlY3V0aW9uSWQpO1xuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIC8vIENhY2hlIGlzIHZhbGlkIGZvciA1IG1pbnV0ZXNcbiAgICAgIGNvbnN0IGNhY2hlQWdlID0gRGF0ZS5ub3coKSAtIGNhY2hlZC5sYXN0VXBkYXRlZC5nZXRUaW1lKCk7XG4gICAgICBpZiAoY2FjaGVBZ2UgPCA1ICogNjAgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmV0Y2ggZnJvbSBiYWNrZW5kXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgdGhpcy53b3JrZmxvd0V4ZWN1dGlvblNlcnZpY2UuZ2V0RXhlY3V0aW9uU3RhdGUoe1xuICAgICAgICBleGVjdXRpb25JZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBjYWNoZVxuICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgc3RhdGUpO1xuICAgICAgXG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIGZyb250ZW5kIGFjdGl2aXR5IHVzaW5nIENvbW1hbmRCdXMuXG4gICAqIFxuICAgKiBGcm9udGVuZCBhY3Rpdml0aWVzIGFyZSBleGVjdXRlZCBpbiB0aGUgYnJvd3NlciB1c2luZyBBWFBDb21tYW5kU2VydmljZS5cbiAgICogQWN0aXZpdGllcyBjYW4gYWxzbyBiZSBleGVjdXRlZCBpbiBib3RoIGZyb250ZW5kIGFuZCBiYWNrZW5kIChoeWJyaWQgbW9kZSkuXG4gICAqIFxuICAgKiBAcGFyYW0gdGFzayAtIEZyb250ZW5kIHRhc2sgdG8gZXhlY3V0ZVxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzdWx0IHdpdGggb3V0cHV0IGFuZCBvdXRjb21lXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVGcm9udGVuZEFjdGl2aXR5KFxuICAgIHRhc2s6IEFYUFdvcmtmbG93VGFza1xuICApOiBQcm9taXNlPHsgb3V0cHV0OiBhbnk7IG91dGNvbWU6IHN0cmluZyB9PiB7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhpc3RzXG4gICAgICBjb25zdCBjb21tYW5kRXhpc3RzID0gdGhpcy5jb21tYW5kU2VydmljZS5leGlzdHModGFzay5hY3Rpdml0eVR5cGUpO1xuICAgICAgXG4gICAgICBpZiAoIWNvbW1hbmRFeGlzdHMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBbV29ya2Zsb3dDb29yZGluYXRvcl0g4pqg77iPIEZyb250ZW5kIGFjdGl2aXR5ICcke3Rhc2suYWN0aXZpdHlUeXBlfScgaXMgbm90IHJlZ2lzdGVyZWQuIFNraXBwaW5nIGV4ZWN1dGlvbi5gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgb3V0Y29tZTogJ0RvbmUnXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEV4ZWN1dGUgYWN0aXZpdHkgdmlhIENvbW1hbmRCdXNcbiAgICAgIC8vIEFjdGl2aXRpZXMgcmVnaXN0ZXJlZCBhcyBBWFBDb21tYW5kIHJldHVybiB7b3V0cHV0LCBvdXRjb21lc31cbiAgICAgIFxuICAgICAgLy8g8J+OryBGbGF0dGVuIHByb3BlcnRpZXMgaWYgbmVzdGVkICh3b3JrZmxvdy1zdHVkaW8gZm9ybWF0KVxuICAgICAgbGV0IGNvbW1hbmRJbnB1dCA9IHRhc2suaW5wdXQgfHwgdGFzay5jb25maWcgfHwge307XG4gICAgICBpZiAoY29tbWFuZElucHV0Wydwcm9wZXJ0aWVzJ10gJiYgdHlwZW9mIGNvbW1hbmRJbnB1dFsncHJvcGVydGllcyddID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBGbGF0dGVuOiB7cHJvcGVydGllczoge3RleHQ6IFwiLi4uXCJ9fSAtPiB7dGV4dDogXCIuLi5cIn1cbiAgICAgICAgY29tbWFuZElucHV0ID0geyAuLi5jb21tYW5kSW5wdXRbJ3Byb3BlcnRpZXMnXSB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbW1hbmRTZXJ2aWNlLmV4ZWN1dGU8UmVjb3JkPHN0cmluZywgYW55Piwge1xuICAgICAgICBvdXRwdXQ6IGFueTtcbiAgICAgICAgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICB9Pih0YXNrLmFjdGl2aXR5VHlwZSwgY29tbWFuZElucHV0KTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgb3V0Y29tZTogJ0ZhaWxlZCcsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGVycm9yOiByZXN1bHQubWVzc2FnZT8udGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWU6ICdGYWlsZWQnLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21tYW5kUmVzdWx0ID0gcmVzdWx0LmRhdGE7XG4gICAgICBjb25zdCBvdXRjb21lcyA9IGNvbW1hbmRSZXN1bHQ/Lm91dGNvbWVzID8/IHt9O1xuICAgICAgXG4gICAgICBsZXQgb3V0Y29tZSA9ICdEb25lJztcbiAgICAgIGlmIChPYmplY3Qua2V5cyhvdXRjb21lcykubGVuZ3RoID4gMCkge1xuICAgICAgICBvdXRjb21lID0gb3V0Y29tZXNbJ0RvbmUnXSA/ICdEb25lJyA6IE9iamVjdC5rZXlzKG91dGNvbWVzKVswXSB8fCAnRG9uZSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG91dHB1dDogY29tbWFuZFJlc3VsdD8ub3V0cHV0ID8/IG51bGwsXG4gICAgICAgIG91dGNvbWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtXb3JrZmxvd0Nvb3JkaW5hdG9yXSDinYwgRXJyb3IgZXhlY3V0aW5nIGZyb250ZW5kIGFjdGl2aXR5ICcke3Rhc2suYWN0aXZpdHlUeXBlfSc6YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0cHV0OiB7IGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyB9LFxuICAgICAgICBvdXRjb21lOiAnRmFpbGVkJ1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd29ya2Zsb3cgZXhlY3V0aW9uIGluIGJhY2tlbmQuXG4gICAqIEJhY2tlbmQgcmV0dXJucyBleGVjdXRpb25JZCwgaW5pdGlhbCBzdGF0ZSwgYW5kIGZpcnN0IHRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRXb3JrZmxvd0V4ZWN1dGlvbihcbiAgICB3b3JrZmxvd0lkOiBzdHJpbmcsXG4gICAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTx7IGV4ZWN1dGlvbklkOiBzdHJpbmc7IHN0YXRlOiBBWFBXb3JrZmxvd0V4ZWN1dGlvblN0YXRlOyBwZW5kaW5nVGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGwgfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53b3JrZmxvd0V4ZWN1dGlvblNlcnZpY2Uuc3RhcnRFeGVjdXRpb24oe1xuICAgICAgd29ya2Zsb3dJZCxcbiAgICAgIGlucHV0XG4gICAgfSk7XG5cbiAgICAvLyBDYWNoZSBzdGF0ZVxuICAgIHRoaXMuc3RhdGVDYWNoZS5zZXQocmVzcG9uc2UuZXhlY3V0aW9uSWQsIHJlc3BvbnNlLnN0YXRlKTtcblxuICAgIHJldHVybiB7XG4gICAgICBleGVjdXRpb25JZDogcmVzcG9uc2UuZXhlY3V0aW9uSWQsXG4gICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGUsXG4gICAgICBwZW5kaW5nVGFzazogcmVzcG9uc2UucGVuZGluZ1Rhc2tcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ==","/**\n * Types and interfaces for Workflow Execution Service.\n */\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXhlY3V0aW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9ydW50aW1lL3dvcmtmbG93LWV4ZWN1dGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBUeXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgV29ya2Zsb3cgRXhlY3V0aW9uIFNlcnZpY2UuXG4gKi9cblxuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uIH0gZnJvbSBcIi4uL3dvcmtmbG93LWRlZmluaXRpb24udHlwZXNcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgd29ya2Zsb3cgdGFzayB0aGF0IG5lZWRzIHRvIGJlIGV4ZWN1dGVkLlxuICogSW5zcGlyZWQgYnkgVGVtcG9yYWwncyBBY3Rpdml0eSBUYXNrcyBhbmQgQ2FtdW5kYSdzIEV4dGVybmFsIFRhc2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93VGFzayB7XG4gIC8qKlxuICAgKiBVbmlxdWUgdG9rZW4gZm9yIHRoaXMgdGFzayAodXNlZCBmb3IgY29tcGxldGlvbi9zZWN1cml0eSkuXG4gICAqL1xuICB0YXNrVG9rZW46IHN0cmluZztcblxuICAvKipcbiAgICogQWN0aXZpdHkgSUQgZnJvbSB3b3JrZmxvdyBkZWZpbml0aW9uLlxuICAgKi9cbiAgYWN0aXZpdHlJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSB0eXBlIChlLmcuLCAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy10b2FzdCcpLlxuICAgKi9cbiAgYWN0aXZpdHlUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGFjdGl2aXR5IG5hbWUuXG4gICAqL1xuICBhY3Rpdml0eU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRoaXMgdGFzayBzaG91bGQgYmUgZXhlY3V0ZWQuXG4gICAqIC0gJ2Zyb250ZW5kJzogRXhlY3V0ZSBpbiBicm93c2VyIChVSSBhY3Rpdml0aWVzLCBjb25zb2xlLCBldmVudHMpXG4gICAqIC0gJ2JhY2tlbmQnOiBFeGVjdXRlIGluIGJhY2tlbmQgKGJ1c2luZXNzIGxvZ2ljLCBBUEkgY2FsbHMpXG4gICAqIC0gJ2JvdGgnOiBFeGVjdXRlIGluIGJvdGggZnJvbnRlbmQgYW5kIGJhY2tlbmQgKGh5YnJpZCBhY3Rpdml0aWVzKVxuICAgKi9cbiAgZXhlY3V0aW9uTW9kZTogJ2Zyb250ZW5kJyB8ICdiYWNrZW5kJyB8ICdib3RoJztcblxuICAvKipcbiAgICogSW5wdXQgZGF0YSBmb3IgdGhlIGFjdGl2aXR5IChmb3IgZnJvbnRlbmQgYWN0aXZpdGllcykuXG4gICAqL1xuICBpbnB1dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhY3Rpdml0eSAoZm9yIGZyb250ZW5kIGFjdGl2aXRpZXMpLlxuICAgKi9cbiAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIHN0YXJ0IGEgd29ya2Zsb3cgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFdvcmtmbG93IElEIHRvIGV4ZWN1dGUuXG4gICAqL1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgaW5wdXQgZGF0YSBmb3Igd29ya2Zsb3cuXG4gICAqL1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBhZnRlciBzdGFydGluZyB3b3JrZmxvdyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBleGVjdXRpb24gSUQgZm9yIHRoaXMgd29ya2Zsb3cgcnVuLlxuICAgKi9cbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VycmVudCB3b3JrZmxvdyBzdGF0ZS5cbiAgICovXG4gIHN0YXRlOiBBWFBXb3JrZmxvd0V4ZWN1dGlvblN0YXRlO1xuXG4gIC8qKlxuICAgKiBGaXJzdCB0YXNrIHRvIGV4ZWN1dGUgKGRldGVybWluZWQgYnkgYmFja2VuZCkuXG4gICAqIENsaWVudCBzaG91bGQgZXhlY3V0ZSB0aGlzIHRhc2sgYmFzZWQgb24gZXhlY3V0aW9uTW9kZS5cbiAgICovXG4gIHBlbmRpbmdUYXNrPzogQVhQV29ya2Zsb3dUYXNrIHwgbnVsbDtcbn1cblxuXG4vKipcbiAqIFJlcXVlc3QgdG8gcmVzdW1lIGEgc3VzcGVuZGVkIHdvcmtmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBFeGVjdXRpb24gSUQuXG4gICAqL1xuICBleGVjdXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGVwIElEIHRoYXQgd2FzIHdhaXRpbmcgZm9yIHVzZXIgaW5wdXQuXG4gICAqL1xuICBzdGVwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJlIHRhc2sgdG9rZW4gaXNzdWVkIHdpdGggdGhlIHBlbmRpbmcgdGFzay5cbiAgICogQmFja2VuZCB2YWxpZGF0ZXMgYW5kIHJlc29sdmVzIHRoZSBzdGVwIHVzaW5nIHRoaXMgdG9rZW4uXG4gICAqL1xuICB0YXNrVG9rZW46IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBhY3Rpb24gb3V0Y29tZSAoZS5nLiwgJ0NvbmZpcm1lZCcsICdDYW5jZWxsZWQnKS5cbiAgICovXG4gIG91dGNvbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBpbnB1dCBkYXRhLlxuICAgKi9cbiAgdXNlcklucHV0PzogYW55O1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGFmdGVyIHJlc3VtaW5nIHdvcmtmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2Uge1xuICAvKipcbiAgICogQWN0aXZpdHkgZXhlY3V0aW9uIG91dHB1dC5cbiAgICovXG4gIG91dHB1dDogYW55O1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSBleGVjdXRpb24gb3V0Y29tZXMuXG4gICAqL1xuICBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogTmV4dCB0YXNrIHRvIGV4ZWN1dGUgKGlmIGFueSkuXG4gICAqL1xuICBuZXh0VGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZWQgd29ya2Zsb3cgc3RhdGUuXG4gICAqL1xuICBzdGF0ZTogQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZTtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIGdldCB3b3JrZmxvdyBleGVjdXRpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQR2V0V29ya2Zsb3dFeGVjdXRpb25TdGF0ZVJlcXVlc3Qge1xuICAvKipcbiAgICogRXhlY3V0aW9uIElELlxuICAgKi9cbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIGdldCB3b3JrZmxvdyBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEdldFdvcmtmbG93RGVmaW5pdGlvblJlcXVlc3Qge1xuICAvKipcbiAgICogV29ya2Zsb3cgSUQgb3IgZGVmaW5pdGlvbiBJRC5cbiAgICovXG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSB3aXRoIHdvcmtmbG93IGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQR2V0V29ya2Zsb3dEZWZpbml0aW9uUmVzcG9uc2Uge1xuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbi5cbiAgICovXG4gIHdvcmtmbG93OiBBWFBXb3JrZmxvd0RlZmluaXRpb247XG59XG5cbi8qKlxuICogV29ya2Zsb3cgZXhlY3V0aW9uIHN0YXRlIChtYW5hZ2VkIGJ5IGJhY2tlbmQsIGNhY2hlZCBpbiBjbGllbnQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGUge1xuICAvKipcbiAgICogVW5pcXVlIGV4ZWN1dGlvbiBJRC5cbiAgICovXG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IElELlxuICAgKi9cbiAgd29ya2Zsb3dJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IGV4ZWN1dGlvbiBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM6ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ3N1c3BlbmRlZCcgfCAnZXJyb3InO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHN0ZXAgSUQgKGlmIHN1c3BlbmRlZCBvciBydW5uaW5nKS5cbiAgICovXG4gIGN1cnJlbnRTdGVwSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHZhcmlhYmxlcyAoc3RhdGUpLlxuICAgKi9cbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGlucHV0IGRhdGEuXG4gICAqL1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogRmluYWwgb3V0cHV0IGRhdGEgKGlmIGNvbXBsZXRlZCkuXG4gICAqL1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBMYXN0IHVwZGF0ZSB0aW1lc3RhbXAuXG4gICAqL1xuICBsYXN0VXBkYXRlZDogRGF0ZTtcbn1cblxuIl19","// Production Workflow Coordinator (Frontend/Backend Separation)\nexport * from './workflow-coordinator';\n// Workflow Execution Service (Interface & Types)\nexport * from './workflow-execution.service';\nexport * from './workflow-execution.types';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsaURBQWlEO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByb2R1Y3Rpb24gV29ya2Zsb3cgQ29vcmRpbmF0b3IgKEZyb250ZW5kL0JhY2tlbmQgU2VwYXJhdGlvbilcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctY29vcmRpbmF0b3InO1xuXG4vLyBXb3JrZmxvdyBFeGVjdXRpb24gU2VydmljZSAoSW50ZXJmYWNlICYgVHlwZXMpXG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LWV4ZWN1dGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctZXhlY3V0aW9uLnR5cGVzJzsiXX0=","import { Activity } from '../activity.types';\n/**\n * WriteLine Activity - Simple console logging activity.\n *\n * Usage:\n * ```typescript\n * const activity = new WriteLine();\n * await activity.execute({ text: 'Hello World' });\n * ```\n */\nexport class WriteLine extends Activity {\n constructor() {\n super('WriteLine');\n }\n async execute(input) {\n const text = input.text || '';\n if (text !== undefined && text !== null) {\n console.log(`[WriteLine] ${text}`);\n }\n return this.createResult(undefined, 'Done');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtbGluZS5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9lbmdpbmUvYWN0aXZpdGllcy93cml0ZS1saW5lLmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxTQUFVLFNBQVEsUUFBaUM7SUFDOUQ7UUFDRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBd0I7UUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFFOUIsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBXcml0ZUxpbmUgQWN0aXZpdHkgLSBTaW1wbGUgY29uc29sZSBsb2dnaW5nIGFjdGl2aXR5LlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGFjdGl2aXR5ID0gbmV3IFdyaXRlTGluZSgpO1xuICogYXdhaXQgYWN0aXZpdHkuZXhlY3V0ZSh7IHRleHQ6ICdIZWxsbyBXb3JsZCcgfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIFdyaXRlTGluZSBleHRlbmRzIEFjdGl2aXR5PHsgdGV4dD86IHN0cmluZyB9LCB2b2lkPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdXcml0ZUxpbmUnKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoaW5wdXQ6IHsgdGV4dD86IHN0cmluZyB9KSB7XG4gICAgY29uc3QgdGV4dCA9IGlucHV0LnRleHQgfHwgJyc7XG5cbiAgICBpZiAodGV4dCAhPT0gdW5kZWZpbmVkICYmIHRleHQgIT09IG51bGwpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbV3JpdGVMaW5lXSAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWx0KHVuZGVmaW5lZCwgJ0RvbmUnKTtcbiAgfVxufSJdfQ==","import { Activity } from '../activity.types';\n/**\n * Sequence Activity - Executes activities in sequential order.\n *\n * Usage:\n * ```typescript\n * const sequence = new Sequence();\n * sequence.activities = [activity1, activity2, activity3];\n * await sequence.execute({});\n * ```\n */\nexport class Sequence extends Activity {\n constructor() {\n super('Sequence');\n /**\n * Activities to execute in sequence.\n */\n this.activities = [];\n }\n async execute(input) {\n // Execute all activities in sequence\n for (const activity of this.activities) {\n const result = await activity.execute(input);\n if (!result.success) {\n return {\n success: false,\n message: result.message,\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n return this.createResult(undefined, 'Done');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VxdWVuY2UuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvc2VxdWVuY2UuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsUUFBa0I7SUFNOUM7UUFDRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFOcEI7O1dBRUc7UUFDSCxlQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUk3QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFTO1FBQ3JCLHFDQUFxQztRQUNyQyxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDcEIsT0FBTztvQkFDTCxPQUFPLEVBQUUsS0FBSztvQkFDZCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87b0JBQ3ZCLElBQUksRUFBRTt3QkFDSixNQUFNLEVBQUUsU0FBUzt3QkFDakIsUUFBUSxFQUFFOzRCQUNSLE1BQU0sRUFBRSxJQUFJO3lCQUNiO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHksIElBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBTZXF1ZW5jZSBBY3Rpdml0eSAtIEV4ZWN1dGVzIGFjdGl2aXRpZXMgaW4gc2VxdWVudGlhbCBvcmRlci5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzZXF1ZW5jZSA9IG5ldyBTZXF1ZW5jZSgpO1xuICogc2VxdWVuY2UuYWN0aXZpdGllcyA9IFthY3Rpdml0eTEsIGFjdGl2aXR5MiwgYWN0aXZpdHkzXTtcbiAqIGF3YWl0IHNlcXVlbmNlLmV4ZWN1dGUoe30pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXF1ZW5jZSBleHRlbmRzIEFjdGl2aXR5PHt9LCB2b2lkPiB7XG4gIC8qKlxuICAgKiBBY3Rpdml0aWVzIHRvIGV4ZWN1dGUgaW4gc2VxdWVuY2UuXG4gICAqL1xuICBhY3Rpdml0aWVzOiBJQWN0aXZpdHlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdTZXF1ZW5jZScpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge30pIHtcbiAgICAvLyBFeGVjdXRlIGFsbCBhY3Rpdml0aWVzIGluIHNlcXVlbmNlXG4gICAgZm9yIChjb25zdCBhY3Rpdml0eSBvZiB0aGlzLmFjdGl2aXRpZXMpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFjdGl2aXR5LmV4ZWN1dGUoaW5wdXQpO1xuICAgICAgaWYgKCFyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIG1lc3NhZ2U6IHJlc3VsdC5tZXNzYWdlLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIG91dHB1dDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICBcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQodW5kZWZpbmVkLCAnRG9uZScpO1xuICB9XG59Il19","import { inject } from '@angular/core';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Activity } from '../activity.types';\n/**\n * Show Confirm Dialog Activity - Displays confirmation dialog to user.\n *\n * Has two outcomes:\n * - 'Confirmed': User clicked confirm/yes\n * - 'Cancelled': User clicked cancel/no\n *\n * Usage:\n * ```typescript\n * const dialog = new ShowConfirmDialog();\n * await dialog.execute({\n * title: 'Confirm Delete',\n * message: 'Are you sure?',\n * color: 'danger'\n * });\n * ```\n */\nexport class ShowConfirmDialog extends Activity {\n //#endregion\n constructor() {\n super('ShowConfirmDialog');\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(input) {\n const { title = '', message = '', color = 'primary', defaultAction = 'cancel', align = 'horizontal', backdrop = false } = input;\n // Translate title and message only if they start with '@' (translation key)\n // Otherwise use the text as-is\n const translatedTitle = title\n ? (title.startsWith('@')\n ? await this.translationService.translateAsync(title) || title\n : title)\n : '';\n const translatedMessage = message\n ? (message.startsWith('@')\n ? await this.translationService.translateAsync(message) || message\n : message)\n : '';\n try {\n const confirmResult = await this.dialogService.confirm(translatedTitle, translatedMessage, color, align, backdrop, defaultAction);\n const result = confirmResult.result;\n const action = result ? 'confirm' : 'cancel';\n return this.createResult({\n result,\n action\n }, result ? 'Confirmed' : 'Cancelled');\n }\n catch (err) {\n console.error('[ShowConfirmDialog] Error showing dialog:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to show confirm dialog',\n },\n data: {\n output: {\n result: false,\n action: 'error',\n },\n outcomes: {\n Cancelled: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1jb25maXJtLWRpYWxvZy5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9lbmdpbmUvYWN0aXZpdGllcy9zaG93LWNvbmZpcm0tZGlhbG9nLmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3Qzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxRQVVyQztJQU1BLFlBQVk7SUFFWjtRQUNFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBUjdCLCtDQUErQztRQUU5QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQU1uRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQU9iO1FBQ0MsTUFBTSxFQUNKLEtBQUssR0FBRyxFQUFFLEVBQ1YsT0FBTyxHQUFHLEVBQUUsRUFDWixLQUFLLEdBQUcsU0FBUyxFQUNqQixhQUFhLEdBQUcsUUFBUSxFQUN4QixLQUFLLEdBQUcsWUFBWSxFQUNwQixRQUFRLEdBQUcsS0FBSyxFQUNqQixHQUFHLEtBQUssQ0FBQztRQUVWLDRFQUE0RTtRQUM1RSwrQkFBK0I7UUFDL0IsTUFBTSxlQUFlLEdBQUcsS0FBSztZQUMzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLO2dCQUM5RCxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0saUJBQWlCLEdBQUcsT0FBTztZQUMvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPO2dCQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksQ0FBQztZQUNILE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ3BELGVBQWUsRUFDZixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLEtBQUssRUFDTCxRQUFRLEVBQ1IsYUFBYSxDQUNkLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3BDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFFN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN2QixNQUFNO2dCQUNOLE1BQU07YUFDUCxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV6QyxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEUsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtpQkFDM0U7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsS0FBSzt3QkFDYixNQUFNLEVBQUUsT0FBTztxQkFDaEI7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLFNBQVMsRUFBRSxJQUFJO3FCQUNoQjtpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGlhbG9nJztcbmltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eS50eXBlcyc7XG5cbi8qKlxuICogU2hvdyBDb25maXJtIERpYWxvZyBBY3Rpdml0eSAtIERpc3BsYXlzIGNvbmZpcm1hdGlvbiBkaWFsb2cgdG8gdXNlci5cbiAqIFxuICogSGFzIHR3byBvdXRjb21lczpcbiAqIC0gJ0NvbmZpcm1lZCc6IFVzZXIgY2xpY2tlZCBjb25maXJtL3llc1xuICogLSAnQ2FuY2VsbGVkJzogVXNlciBjbGlja2VkIGNhbmNlbC9ub1xuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGRpYWxvZyA9IG5ldyBTaG93Q29uZmlybURpYWxvZygpO1xuICogYXdhaXQgZGlhbG9nLmV4ZWN1dGUoe1xuICogICB0aXRsZTogJ0NvbmZpcm0gRGVsZXRlJyxcbiAqICAgbWVzc2FnZTogJ0FyZSB5b3Ugc3VyZT8nLFxuICogICBjb2xvcjogJ2RhbmdlcidcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTaG93Q29uZmlybURpYWxvZyBleHRlbmRzIEFjdGl2aXR5PHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNvbG9yPzogQVhTdHlsZUNvbG9yVHlwZTtcbiAgZGVmYXVsdEFjdGlvbj86ICdjb25maXJtJyB8ICdjYW5jZWwnO1xuICBhbGlnbj86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG4gIGJhY2tkcm9wPzogYm9vbGVhbjtcbn0sIHtcbiAgcmVzdWx0OiBib29sZWFuO1xuICBhY3Rpb246IHN0cmluZztcbn0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoQVhEaWFsb2dTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdTaG93Q29uZmlybURpYWxvZycpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xuICAgIGRlZmF1bHRBY3Rpb24/OiAnY29uZmlybScgfCAnY2FuY2VsJztcbiAgICBhbGlnbj86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCc7XG4gICAgYmFja2Ryb3A/OiBib29sZWFuO1xuICB9KSB7XG4gICAgY29uc3Qge1xuICAgICAgdGl0bGUgPSAnJyxcbiAgICAgIG1lc3NhZ2UgPSAnJyxcbiAgICAgIGNvbG9yID0gJ3ByaW1hcnknLFxuICAgICAgZGVmYXVsdEFjdGlvbiA9ICdjYW5jZWwnLFxuICAgICAgYWxpZ24gPSAnaG9yaXpvbnRhbCcsXG4gICAgICBiYWNrZHJvcCA9IGZhbHNlXG4gICAgfSA9IGlucHV0O1xuXG4gICAgLy8gVHJhbnNsYXRlIHRpdGxlIGFuZCBtZXNzYWdlIG9ubHkgaWYgdGhleSBzdGFydCB3aXRoICdAJyAodHJhbnNsYXRpb24ga2V5KVxuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHRleHQgYXMtaXNcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aXRsZVxuICAgICAgPyAodGl0bGUuc3RhcnRzV2l0aCgnQCcpXG4gICAgICAgID8gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmModGl0bGUpIHx8IHRpdGxlXG4gICAgICAgIDogdGl0bGUpXG4gICAgICA6ICcnO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRNZXNzYWdlID0gbWVzc2FnZVxuICAgICAgPyAobWVzc2FnZS5zdGFydHNXaXRoKCdAJylcbiAgICAgICAgPyBhd2FpdCB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVBc3luYyhtZXNzYWdlKSB8fCBtZXNzYWdlXG4gICAgICAgIDogbWVzc2FnZSlcbiAgICAgIDogJyc7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29uZmlybVJlc3VsdCA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5jb25maXJtKFxuICAgICAgICB0cmFuc2xhdGVkVGl0bGUsXG4gICAgICAgIHRyYW5zbGF0ZWRNZXNzYWdlLFxuICAgICAgICBjb2xvcixcbiAgICAgICAgYWxpZ24sXG4gICAgICAgIGJhY2tkcm9wLFxuICAgICAgICBkZWZhdWx0QWN0aW9uXG4gICAgICApO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSBjb25maXJtUmVzdWx0LnJlc3VsdDtcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHJlc3VsdCA/ICdjb25maXJtJyA6ICdjYW5jZWwnO1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQoe1xuICAgICAgICByZXN1bHQsXG4gICAgICAgIGFjdGlvblxuICAgICAgfSwgcmVzdWx0ID8gJ0NvbmZpcm1lZCcgOiAnQ2FuY2VsbGVkJyk7XG5cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTaG93Q29uZmlybURpYWxvZ10gRXJyb3Igc2hvd2luZyBkaWFsb2c6JywgZXJyKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2hvdyBjb25maXJtIGRpYWxvZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIHJlc3VsdDogZmFsc2UsXG4gICAgICAgICAgICBhY3Rpb246ICdlcnJvcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgQ2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG4iXX0=","import { inject } from '@angular/core';\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Activity } from '../activity.types';\n/**\n * Show Alert Dialog Activity - Displays alert dialog to user.\n *\n * Has one outcome:\n * - 'Done': User clicked OK\n *\n * Usage:\n * ```typescript\n * const dialog = new ShowAlertDialog();\n * await dialog.execute({\n * title: 'Alert',\n * message: 'This is an alert',\n * color: 'info'\n * });\n * ```\n */\nexport class ShowAlertDialog extends Activity {\n //#endregion\n constructor() {\n super('ShowAlertDialog');\n //#region ---- Services & Dependencies ----\n this.dialogService = inject(AXDialogService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(input) {\n const { title = '', message = '', color = 'primary' } = input;\n // Translate title and message only if they start with '@' (translation key)\n // Otherwise use the text as-is\n const translatedTitle = title\n ? (title.startsWith('@')\n ? await this.translationService.translateAsync(title) || title\n : title)\n : '';\n const translatedMessage = message\n ? (message.startsWith('@')\n ? await this.translationService.translateAsync(message) || message\n : message)\n : '';\n try {\n await this.dialogService.alert(translatedTitle, translatedMessage, color);\n return this.createResult({\n result: true,\n action: 'ok'\n }, 'Done');\n }\n catch (err) {\n console.error('[ShowAlertDialog] Error showing dialog:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to show alert dialog',\n },\n data: {\n output: {\n result: false,\n action: 'error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1hbGVydC1kaWFsb2cuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvc2hvdy1hbGVydC1kaWFsb2cuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFFBT25DO0lBTUEsWUFBWTtJQUVaO1FBQ0UsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFSM0IsK0NBQStDO1FBRTlCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hDLHVCQUFrQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBTW5FLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBSWI7UUFDQyxNQUFNLEVBQ0osS0FBSyxHQUFHLEVBQUUsRUFDVixPQUFPLEdBQUcsRUFBRSxFQUNaLEtBQUssR0FBRyxTQUFTLEVBQ2xCLEdBQUcsS0FBSyxDQUFDO1FBRVYsNEVBQTRFO1FBQzVFLCtCQUErQjtRQUMvQixNQUFNLGVBQWUsR0FBRyxLQUFLO1lBQzNCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO2dCQUNwQixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUs7Z0JBQzlELENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDWixDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsTUFBTSxpQkFBaUIsR0FBRyxPQUFPO1lBQy9CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO2dCQUN0QixDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU87Z0JBQ2xFLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDZCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFMUUsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUN2QixNQUFNLEVBQUUsSUFBSTtnQkFDWixNQUFNLEVBQUUsSUFBSTthQUNiLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFYixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDZCQUE2QjtpQkFDekU7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRTt3QkFDTixNQUFNLEVBQUUsS0FBSzt3QkFDYixNQUFNLEVBQUUsT0FBTztxQkFDaEI7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYRGlhbG9nU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kaWFsb2cnO1xuaW1wb3J0IHsgQVhTdHlsZUNvbG9yVHlwZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBTaG93IEFsZXJ0IERpYWxvZyBBY3Rpdml0eSAtIERpc3BsYXlzIGFsZXJ0IGRpYWxvZyB0byB1c2VyLlxuICogXG4gKiBIYXMgb25lIG91dGNvbWU6XG4gKiAtICdEb25lJzogVXNlciBjbGlja2VkIE9LXG4gKiBcbiAqIFVzYWdlOlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZGlhbG9nID0gbmV3IFNob3dBbGVydERpYWxvZygpO1xuICogYXdhaXQgZGlhbG9nLmV4ZWN1dGUoe1xuICogICB0aXRsZTogJ0FsZXJ0JyxcbiAqICAgbWVzc2FnZTogJ1RoaXMgaXMgYW4gYWxlcnQnLFxuICogICBjb2xvcjogJ2luZm8nXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2hvd0FsZXJ0RGlhbG9nIGV4dGVuZHMgQWN0aXZpdHk8e1xuICB0aXRsZT86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xufSwge1xuICByZXN1bHQ6IGJvb2xlYW47XG4gIGFjdGlvbjogc3RyaW5nO1xufT4ge1xuICAvLyNyZWdpb24gLS0tLSAgIFNlcnZpY2VzICYgRGVwZW5kZW5jaWVzICAgLS0tLVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZSA9IGluamVjdChBWERpYWxvZ1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgLy8jZW5kcmVnaW9uXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1Nob3dBbGVydERpYWxvZycpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xuICB9KSB7XG4gICAgY29uc3Qge1xuICAgICAgdGl0bGUgPSAnJyxcbiAgICAgIG1lc3NhZ2UgPSAnJyxcbiAgICAgIGNvbG9yID0gJ3ByaW1hcnknXG4gICAgfSA9IGlucHV0O1xuXG4gICAgLy8gVHJhbnNsYXRlIHRpdGxlIGFuZCBtZXNzYWdlIG9ubHkgaWYgdGhleSBzdGFydCB3aXRoICdAJyAodHJhbnNsYXRpb24ga2V5KVxuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHRleHQgYXMtaXNcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aXRsZSBcbiAgICAgID8gKHRpdGxlLnN0YXJ0c1dpdGgoJ0AnKSBcbiAgICAgICAgICA/IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRpdGxlKSB8fCB0aXRsZVxuICAgICAgICAgIDogdGl0bGUpXG4gICAgICA6ICcnO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRNZXNzYWdlID0gbWVzc2FnZSBcbiAgICAgID8gKG1lc3NhZ2Uuc3RhcnRzV2l0aCgnQCcpIFxuICAgICAgICAgID8gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMobWVzc2FnZSkgfHwgbWVzc2FnZVxuICAgICAgICAgIDogbWVzc2FnZSlcbiAgICAgIDogJyc7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLmFsZXJ0KHRyYW5zbGF0ZWRUaXRsZSwgdHJhbnNsYXRlZE1lc3NhZ2UsIGNvbG9yKTtcblxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWx0KHtcbiAgICAgICAgcmVzdWx0OiB0cnVlLFxuICAgICAgICBhY3Rpb246ICdvaydcbiAgICAgIH0sICdEb25lJyk7XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTaG93QWxlcnREaWFsb2ddIEVycm9yIHNob3dpbmcgZGlhbG9nOicsIGVycik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIHNob3cgYWxlcnQgZGlhbG9nJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG91dHB1dDoge1xuICAgICAgICAgICAgcmVzdWx0OiBmYWxzZSxcbiAgICAgICAgICAgIGFjdGlvbjogJ2Vycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbiJdfQ==","import { inject } from '@angular/core';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { Activity } from '../activity.types';\n/**\n * Show Dialog Layout Builder Activity - Displays dialog using Layout Builder.\n *\n * This activity allows you to create custom dialogs using the Layout Builder API.\n * It accepts JSON-serializable content (AXPWidgetNode) and actions configuration.\n *\n * The content can be created using Layout Builder and then converted to JSON:\n * ```typescript\n * const builder = layoutBuilderService.create();\n * builder.flex(flex => {\n * flex.setDirection('column')\n * .formField('First Name', field => {\n * field.path('firstName');\n * field.textBox({ placeholder: 'Enter first name' });\n * });\n * });\n * const contentNode = builder.build();\n * ```\n *\n * Usage in Workflow:\n * ```typescript\n * const dialog = new ShowDialogLayoutBuilder();\n * await dialog.execute({\n * title: 'User Information',\n * size: 'md',\n * context: { firstName: '', lastName: '' },\n * content: {\n * type: 'flex-layout',\n * mode: 'edit',\n * options: {\n * flexDirection: 'column',\n * gap: '16px'\n * },\n * children: [\n * {\n * type: 'form-field',\n * mode: 'edit',\n * options: {\n * label: 'First Name',\n * showLabel: true\n * },\n * children: [{\n * type: 'text-editor',\n * path: 'firstName',\n * options: {\n * placeholder: 'Enter first name'\n * }\n * }]\n * }\n * ]\n * },\n * actions: {\n * cancel: '@general:actions.cancel.title',\n * submit: '@general:actions.submit.title',\n * custom: [{\n * title: 'Save Draft',\n * icon: 'fa-save',\n * color: 'secondary',\n * command: { name: 'save-draft' }\n * }]\n * }\n * });\n * ```\n *\n * Usage in JSON Workflow Definition:\n * ```json\n * {\n * \"type\": \"ShowDialogLayoutBuilder\",\n * \"properties\": {\n * \"title\": \"User Information\",\n * \"size\": \"md\",\n * \"context\": { \"firstName\": \"\", \"lastName\": \"\" },\n * \"content\": {\n * \"type\": \"flex-layout\",\n * \"mode\": \"edit\",\n * \"options\": {\n * \"flexDirection\": \"column\",\n * \"gap\": \"16px\"\n * },\n * \"children\": [\n * {\n * \"type\": \"form-field\",\n * \"mode\": \"edit\",\n * \"options\": {\n * \"label\": \"First Name\",\n * \"showLabel\": true\n * },\n * \"children\": [{\n * \"type\": \"text-editor\",\n * \"path\": \"firstName\",\n * \"options\": {\n * \"placeholder\": \"Enter first name\"\n * }\n * }]\n * }\n * ]\n * },\n * \"actions\": {\n * \"cancel\": \"@general:actions.cancel.title\",\n * \"submit\": \"@general:actions.submit.title\"\n * }\n * }\n * }\n * ```\n */\nexport class ShowDialogLayoutBuilder extends Activity {\n //#endregion\n constructor() {\n super('ShowDialogLayoutBuilder');\n //#region ---- Services & Dependencies ----\n this.layoutBuilder = inject(AXPLayoutBuilderService);\n }\n async execute(input) {\n const { title = '', size = 'md', context = {}, closeButton = false, message, content, actions } = input;\n try {\n // Create dialog using layout builder\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n // Set basic dialog options\n dialog\n .setTitle(title)\n .setSize(size)\n .setCloseButton(closeButton)\n .setContext(context);\n // Set message if provided\n if (message) {\n dialog.setMessage(message);\n }\n // Set content if provided\n if (content) {\n // If content is already a flex-layout, use it directly\n // Otherwise, wrap it in a flex container with column direction\n if (content.type === 'flex-layout') {\n // Set content layout directly (accessing internal state of DialogContainerBuilder)\n dialog.contentLayout = content;\n }\n else {\n // Wrap content in a flex container\n const wrappedContent = {\n type: 'flex-layout',\n mode: 'edit',\n options: {\n flexDirection: 'column',\n gap: '10px',\n },\n children: [content],\n };\n dialog.contentLayout = wrappedContent;\n }\n }\n // Set actions if provided\n if (actions) {\n dialog.setActions(actionBuilder => {\n if (actions.cancel) {\n actionBuilder.cancel(actions.cancel);\n }\n if (actions.submit) {\n actionBuilder.submit(actions.submit);\n }\n if (actions.custom) {\n actions.custom.forEach(action => {\n actionBuilder.custom(action);\n });\n }\n });\n }\n })\n .show();\n // Get user action and context\n const action = dialogRef.action() || 'cancel';\n const dialogContext = dialogRef.context();\n // Determine outcomes\n const cancelled = action === 'cancel';\n const confirmed = action === 'submit' || (!cancelled && action !== 'error');\n // Close dialog\n dialogRef.close();\n // Return result with appropriate outcome\n const outcome = cancelled ? 'Cancelled' : confirmed ? 'Confirmed' : 'Done';\n return this.createResult({\n context: dialogContext,\n action,\n cancelled,\n confirmed\n }, outcome);\n }\n catch (err) {\n console.error('[ShowDialogLayoutBuilder] Error showing dialog:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to show dialog',\n },\n data: {\n output: {\n context: {},\n action: 'error',\n cancelled: true,\n confirmed: false,\n },\n outcomes: {\n Error: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy1kaWFsb2ctbGF5b3V0LWJ1aWxkZXIuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvc2hvdy1kaWFsb2ctbGF5b3V0LWJ1aWxkZXIuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQWtCLE1BQU0saUNBQWlDLENBQUM7QUFLMUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdHRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxRQXVFM0M7SUFLQSxZQUFZO0lBRVo7UUFDRSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQVBuQywrQ0FBK0M7UUFFOUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQU1qRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQVliO1FBU0MsTUFBTSxFQUNKLEtBQUssR0FBRyxFQUFFLEVBQ1YsSUFBSSxHQUFHLElBQUksRUFDWCxPQUFPLEdBQUcsRUFBRSxFQUNaLFdBQVcsR0FBRyxLQUFLLEVBQ25CLE9BQU8sRUFDUCxPQUFPLEVBQ1AsT0FBTyxFQUNSLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSSxDQUFDO1lBQ0gscUNBQXFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWE7aUJBQ3ZDLE1BQU0sRUFBRTtpQkFDUixNQUFNLENBQUMsTUFBTSxDQUFD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QztZQUN0RSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCO2lCQUNuRTtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxFQUFFO3dCQUNYLE1BQU0sRUFBRSxPQUFPO3dCQUNmLFNBQVMsRUFBRSxJQUFJO3dCQUNmLFNBQVMsRUFBRSxLQUFLO3FCQUNqQjtvQkFDRCxRQUFRLEVBQUU7d0JBQ1IsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UsIElEaWFsb2dCdWlsZGVyIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBBWFBEaWFsb2dSZWYgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcbmltcG9ydCB7IEFYUG9wdXBTaXplVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFBFeGVjdXRlQ29tbWFuZFJlc3VsdCwgQVhQQWN0aW9uTWVudUl0ZW0gfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2NvcmUnO1xuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vbGF5b3V0L3dpZGdldC1jb3JlJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHkudHlwZXMnO1xuXG4vKipcbiAqIFNob3cgRGlhbG9nIExheW91dCBCdWlsZGVyIEFjdGl2aXR5IC0gRGlzcGxheXMgZGlhbG9nIHVzaW5nIExheW91dCBCdWlsZGVyLlxuICogXG4gKiBUaGlzIGFjdGl2aXR5IGFsbG93cyB5b3UgdG8gY3JlYXRlIGN1c3RvbSBkaWFsb2dzIHVzaW5nIHRoZSBMYXlvdXQgQnVpbGRlciBBUEkuXG4gKiBJdCBhY2NlcHRzIEpTT04tc2VyaWFsaXphYmxlIGNvbnRlbnQgKEFYUFdpZGdldE5vZGUpIGFuZCBhY3Rpb25zIGNvbmZpZ3VyYXRpb24uXG4gKiBcbiAqIFRoZSBjb250ZW50IGNhbiBiZSBjcmVhdGVkIHVzaW5nIExheW91dCBCdWlsZGVyIGFuZCB0aGVuIGNvbnZlcnRlZCB0byBKU09OOlxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgYnVpbGRlciA9IGxheW91dEJ1aWxkZXJTZXJ2aWNlLmNyZWF0ZSgpO1xuICogYnVpbGRlci5mbGV4KGZsZXggPT4ge1xuICogICBmbGV4LnNldERpcmVjdGlvbignY29sdW1uJylcbiAqICAgICAuZm9ybUZpZWxkKCdGaXJzdCBOYW1lJywgZmllbGQgPT4ge1xuICogICAgICAgZmllbGQucGF0aCgnZmlyc3ROYW1lJyk7XG4gKiAgICAgICBmaWVsZC50ZXh0Qm94KHsgcGxhY2Vob2xkZXI6ICdFbnRlciBmaXJzdCBuYW1lJyB9KTtcbiAqICAgICB9KTtcbiAqIH0pO1xuICogY29uc3QgY29udGVudE5vZGUgPSBidWlsZGVyLmJ1aWxkKCk7XG4gKiBgYGBcbiAqIFxuICogVXNhZ2UgaW4gV29ya2Zsb3c6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkaWFsb2cgPSBuZXcgU2hvd0RpYWxvZ0xheW91dEJ1aWxkZXIoKTtcbiAqIGF3YWl0IGRpYWxvZy5leGVjdXRlKHtcbiAqICAgdGl0bGU6ICdVc2VyIEluZm9ybWF0aW9uJyxcbiAqICAgc2l6ZTogJ21kJyxcbiAqICAgY29udGV4dDogeyBmaXJzdE5hbWU6ICcnLCBsYXN0TmFtZTogJycgfSxcbiAqICAgY29udGVudDoge1xuICogICAgIHR5cGU6ICdmbGV4LWxheW91dCcsXG4gKiAgICAgbW9kZTogJ2VkaXQnLFxuICogICAgIG9wdGlvbnM6IHtcbiAqICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICogICAgICAgZ2FwOiAnMTZweCdcbiAqICAgICB9LFxuICogICAgIGNoaWxkcmVuOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIHR5cGU6ICdmb3JtLWZpZWxkJyxcbiAqICAgICAgICAgbW9kZTogJ2VkaXQnLFxuICogICAgICAgICBvcHRpb25zOiB7IFxuICogICAgICAgICAgIGxhYmVsOiAnRmlyc3QgTmFtZScsXG4gKiAgICAgICAgICAgc2hvd0xhYmVsOiB0cnVlXG4gKiAgICAgICAgIH0sXG4gKiAgICAgICAgIGNoaWxkcmVuOiBbe1xuICogICAgICAgICAgIHR5cGU6ICd0ZXh0LWVkaXRvcicsXG4gKiAgICAgICAgICAgcGF0aDogJ2ZpcnN0TmFtZScsXG4gKiAgICAgICAgICAgb3B0aW9uczogeyBcbiAqICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRW50ZXIgZmlyc3QgbmFtZSdcbiAqICAgICAgICAgICB9XG4gKiAgICAgICAgIH1dXG4gKiAgICAgICB9XG4gKiAgICAgXVxuICogICB9LFxuICogICBhY3Rpb25zOiB7XG4gKiAgICAgY2FuY2VsOiAnQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGUnLFxuICogICAgIHN1Ym1pdDogJ0BnZW5lcmFsOmFjdGlvbnMuc3VibWl0LnRpdGxlJyxcbiAqICAgICBjdXN0b206IFt7XG4gKiAgICAgICB0aXRsZTogJ1NhdmUgRHJhZnQnLFxuICogICAgICAgaWNvbjogJ2ZhLXNhdmUnLFxuICogICAgICAgY29sb3I6ICdzZWNvbmRhcnknLFxuICogICAgICAgY29tbWFuZDogeyBuYW1lOiAnc2F2ZS1kcmFmdCcgfVxuICogICAgIH1dXG4gKiAgIH1cbiAqIH0pO1xuICogYGBgXG4gKiBcbiAqIFVzYWdlIGluIEpTT04gV29ya2Zsb3cgRGVmaW5pdGlvbjpcbiAqIGBgYGpzb25cbiAqIHtcbiAqICAgXCJ0eXBlXCI6IFwiU2hvd0RpYWxvZ0xheW91dEJ1aWxkZXJcIixcbiAqICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAqICAgICBcInRpdGxlXCI6IFwiVXNlciBJbmZvcm1hdGlvblwiLFxuICogICAgIFwic2l6ZVwiOiBcIm1kXCIsXG4gKiAgICAgXCJjb250ZXh0XCI6IHsgXCJmaXJzdE5hbWVcIjogXCJcIiwgXCJsYXN0TmFtZVwiOiBcIlwiIH0sXG4gKiAgICAgXCJjb250ZW50XCI6IHtcbiAqICAgICAgIFwidHlwZVwiOiBcImZsZXgtbGF5b3V0XCIsXG4gKiAgICAgICBcIm1vZGVcIjogXCJlZGl0XCIsXG4gKiAgICAgICBcIm9wdGlvbnNcIjoge1xuICogICAgICAgICBcImZsZXhEaXJlY3Rpb25cIjogXCJjb2x1bW5cIixcbiAqICAgICAgICAgXCJnYXBcIjogXCIxNnB4XCJcbiAqICAgICAgIH0sXG4gKiAgICAgICBcImNoaWxkcmVuXCI6IFtcbiAqICAgICAgICAge1xuICogICAgICAgICAgIFwidHlwZVwiOiBcImZvcm0tZmllbGRcIixcbiAqICAgICAgICAgICBcIm1vZGVcIjogXCJlZGl0XCIsXG4gKiAgICAgICAgICAgXCJvcHRpb25zXCI6IHtcbiAqICAgICAgICAgICAgIFwibGFiZWxcIjogXCJGaXJzdCBOYW1lXCIsXG4gKiAgICAgICAgICAgICBcInNob3dMYWJlbFwiOiB0cnVlXG4gKiAgICAgICAgICAgfSxcbiAqICAgICAgICAgICBcImNoaWxkcmVuXCI6IFt7XG4gKiAgICAgICAgICAgICBcInR5cGVcIjogXCJ0ZXh0LWVkaXRvclwiLFxuICogICAgICAgICAgICAgXCJwYXRoXCI6IFwiZmlyc3ROYW1lXCIsXG4gKiAgICAgICAgICAgICBcIm9wdGlvbnNcIjoge1xuICogICAgICAgICAgICAgICBcInBsYWNlaG9sZGVyXCI6IFwiRW50ZXIgZmlyc3QgbmFtZVwiXG4gKiAgICAgICAgICAgICB9XG4gKiAgICAgICAgICAgfV1cbiAqICAgICAgICAgfVxuICogICAgICAgXVxuICogICAgIH0sXG4gKiAgICAgXCJhY3Rpb25zXCI6IHtcbiAqICAgICAgIFwiY2FuY2VsXCI6IFwiQGdlbmVyYWw6YWN0aW9ucy5jYW5jZWwudGl0bGVcIixcbiAqICAgICAgIFwic3VibWl0XCI6IFwiQGdlbmVyYWw6YWN0aW9ucy5zdWJtaXQudGl0bGVcIlxuICogICAgIH1cbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTaG93RGlhbG9nTGF5b3V0QnVpbGRlciBleHRlbmRzIEFjdGl2aXR5PHtcbiAgLyoqXG4gICAqIERpYWxvZyB0aXRsZVxuICAgKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogRGlhbG9nIHNpemVcbiAgICovXG4gIHNpemU/OiBBWFBvcHVwU2l6ZVR5cGU7XG4gIFxuICAvKipcbiAgICogSW5pdGlhbCBkaWFsb2cgY29udGV4dC9kYXRhXG4gICAqL1xuICBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgXG4gIC8qKlxuICAgKiBTaG93IGNsb3NlIGJ1dHRvblxuICAgKi9cbiAgY2xvc2VCdXR0b24/OiBib29sZWFuO1xuICBcbiAgLyoqXG4gICAqIERpYWxvZyBtZXNzYWdlIChvcHRpb25hbCwgc2hvd24gYWJvdmUgY29udGVudClcbiAgICovXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG4gIFxuICAvKipcbiAgICogRGlhbG9nIGNvbnRlbnQgYXMgQVhQV2lkZ2V0Tm9kZSAoSlNPTi1zZXJpYWxpemFibGUpXG4gICAqIFRoaXMgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgTGF5b3V0IEJ1aWxkZXIgYW5kIHRoZW4gY29udmVydGVkIHRvIEpTT04uXG4gICAqL1xuICBjb250ZW50PzogQVhQV2lkZ2V0Tm9kZTtcbiAgXG4gIC8qKlxuICAgKiBEaWFsb2cgYWN0aW9ucyBjb25maWd1cmF0aW9uIChKU09OLXNlcmlhbGl6YWJsZSlcbiAgICovXG4gIGFjdGlvbnM/OiB7XG4gICAgLyoqXG4gICAgICogQ2FuY2VsIGJ1dHRvbiB0ZXh0IChvcHRpb25hbClcbiAgICAgKi9cbiAgICBjYW5jZWw/OiBzdHJpbmc7XG4gICAgXG4gICAgLyoqXG4gICAgICogU3VibWl0IGJ1dHRvbiB0ZXh0IChvcHRpb25hbClcbiAgICAgKi9cbiAgICBzdWJtaXQ/OiBzdHJpbmc7XG4gICAgXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGFjdGlvbnMgYXJyYXkgKG9wdGlvbmFsKVxuICAgICAqL1xuICAgIGN1c3RvbT86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gIH07XG59LCB7XG4gIC8qKlxuICAgKiBEaWFsb2cgY29udGV4dC9kYXRhIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb25cbiAgICovXG4gIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIFxuICAvKipcbiAgICogQWN0aW9uIHRoYXQgdXNlciBjbGlja2VkIChlLmcuLCAnc3VibWl0JywgJ2NhbmNlbCcsIG9yIGN1c3RvbSBhY3Rpb24gbmFtZSlcbiAgICovXG4gIGFjdGlvbjogc3RyaW5nO1xuICBcbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlciBjYW5jZWxsZWQgdGhlIGRpYWxvZ1xuICAgKi9cbiAgY2FuY2VsbGVkOiBib29sZWFuO1xuICBcbiAgLyoqXG4gICAqIFdoZXRoZXIgdXNlciBjb25maXJtZWQvc3VibWl0dGVkIHRoZSBkaWFsb2dcbiAgICovXG4gIGNvbmZpcm1lZDogYm9vbGVhbjtcbn0+IHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IGxheW91dEJ1aWxkZXIgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xuXG4gIC8vI2VuZHJlZ2lvblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdTaG93RGlhbG9nTGF5b3V0QnVpbGRlcicpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHNpemU/OiBBWFBvcHVwU2l6ZVR5cGU7XG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2xvc2VCdXR0b24/OiBib29sZWFuO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY29udGVudD86IEFYUFdpZGdldE5vZGU7XG4gICAgYWN0aW9ucz86IHtcbiAgICAgIGNhbmNlbD86IHN0cmluZztcbiAgICAgIHN1Ym1pdD86IHN0cmluZztcbiAgICAgIGN1c3RvbT86IEFYUEFjdGlvbk1lbnVJdGVtW107XG4gICAgfTtcbiAgfSk6IFByb21pc2U8QVhQRXhlY3V0ZUNvbW1hbmRSZXN1bHQ8eyBcbiAgICBvdXRwdXQ6IHsgXG4gICAgICBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyBcbiAgICAgIGFjdGlvbjogc3RyaW5nOyBcbiAgICAgIGNhbmNlbGxlZDogYm9vbGVhbjsgXG4gICAgICBjb25maXJtZWQ6IGJvb2xlYW47IFxuICAgIH07IFxuICAgIG91dGNvbWVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IFxuICB9Pj4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHRpdGxlID0gJycsXG4gICAgICBzaXplID0gJ21kJyxcbiAgICAgIGNvbnRleHQgPSB7fSxcbiAgICAgIGNsb3NlQnV0dG9uID0gZmFsc2UsXG4gICAgICBtZXNzYWdlLFxuICAgICAgY29udGVudCxcbiAgICAgIGFjdGlvbnNcbiAgICB9ID0gaW5wdXQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gQ3JlYXRlIGRpYWxvZyB1c2luZyBsYXlvdXQgYnVpbGRlclxuICAgICAgY29uc3QgZGlhbG9nUmVmID0gYXdhaXQgdGhpcy5sYXlvdXRCdWlsZGVyXG4gICAgICAgIC5jcmVhdGUoKVxuICAgICAgICAuZGlhbG9nKGRpYWxvZyA9PiB7XG4gICAgICAgICAgLy8gU2V0IGJhc2ljIGRpYWxvZyBvcHRpb25zXG4gICAgICAgICAgZGlhbG9nXG4gICAgICAgICAgICAuc2V0VGl0bGUodGl0bGUpXG4gICAgICAgICAgICAuc2V0U2l6ZShzaXplKVxuICAgICAgICAgICAgLnNldENsb3NlQnV0dG9uKGNsb3NlQnV0dG9uKVxuICAgICAgICAgICAgLnNldENvbnRleHQoY29udGV4dCk7XG5cbiAgICAgICAgICAvLyBTZXQgbWVzc2FnZSBpZiBwcm92aWRlZFxuICAgICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICBkaWFsb2cuc2V0TWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTZXQgY29udGVudCBpZiBwcm92aWRlZFxuICAgICAgICAgIGlmIChjb250ZW50KSB7XG4gICAgICAgICAgICAvLyBJZiBjb250ZW50IGlzIGFscmVhZHkgYSBmbGV4LWxheW91dCwgdXNlIGl0IGRpcmVjdGx5XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UsIHdyYXAgaXQgaW4gYSBmbGV4IGNvbnRhaW5lciB3aXRoIGNvbHVtbiBkaXJlY3Rpb25cbiAgICAgICAgICAgIGlmIChjb250ZW50LnR5cGUgPT09ICdmbGV4LWxheW91dCcpIHtcbiAgICAgICAgICAgICAgLy8gU2V0IGNvbnRlbnQgbGF5b3V0IGRpcmVjdGx5IChhY2Nlc3NpbmcgaW50ZXJuYWwgc3RhdGUgb2YgRGlhbG9nQ29udGFpbmVyQnVpbGRlcilcbiAgICAgICAgICAgICAgKGRpYWxvZyBhcyBhbnkpLmNvbnRlbnRMYXlvdXQgPSBjb250ZW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gV3JhcCBjb250ZW50IGluIGEgZmxleCBjb250YWluZXJcbiAgICAgICAgICAgICAgY29uc3Qgd3JhcHBlZENvbnRlbnQ6IEFYUFdpZGdldE5vZGUgPSB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2ZsZXgtbGF5b3V0JyxcbiAgICAgICAgICAgICAgICBtb2RlOiAnZWRpdCcsXG4gICAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgICAgICAgICAgICAgICBnYXA6ICcxMHB4JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbY29udGVudF0sXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIChkaWFsb2cgYXMgYW55KS5jb250ZW50TGF5b3V0ID0gd3JhcHBlZENvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU2V0IGFjdGlvbnMgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgZGlhbG9nLnNldEFjdGlvbnMoYWN0aW9uQnVpbGRlciA9PiB7XG4gICAgICAgICAgICAgIGlmIChhY3Rpb25zLmNhbmNlbCkge1xuICAgICAgICAgICAgICAgIGFjdGlvbkJ1aWxkZXIuY2FuY2VsKGFjdGlvbnMuY2FuY2VsKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoYWN0aW9ucy5zdWJtaXQpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25CdWlsZGVyLnN1Ym1pdChhY3Rpb25zLnN1Ym1pdCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGFjdGlvbnMuY3VzdG9tKSB7XG4gICAgICAgICAgICAgICAgYWN0aW9ucy5jdXN0b20uZm9yRWFjaChhY3Rpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgYWN0aW9uQnVpbGRlci5jdXN0b20oYWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuc2hvdygpO1xuXG4gICAgICAvLyBHZXQgdXNlciBhY3Rpb24gYW5kIGNvbnRleHRcbiAgICAgIGNvbnN0IGFjdGlvbiA9IGRpYWxvZ1JlZi5hY3Rpb24oKSB8fCAnY2FuY2VsJztcbiAgICAgIGNvbnN0IGRpYWxvZ0NvbnRleHQgPSBkaWFsb2dSZWYuY29udGV4dCgpIGFzIFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICBcbiAgICAgIC8vIERldGVybWluZSBvdXRjb21lc1xuICAgICAgY29uc3QgY2FuY2VsbGVkID0gYWN0aW9uID09PSAnY2FuY2VsJztcbiAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGFjdGlvbiA9PT0gJ3N1Ym1pdCcgfHwgKCFjYW5jZWxsZWQgJiYgYWN0aW9uICE9PSAnZXJyb3InKTtcblxuICAgICAgLy8gQ2xvc2UgZGlhbG9nXG4gICAgICBkaWFsb2dSZWYuY2xvc2UoKTtcblxuICAgICAgLy8gUmV0dXJuIHJlc3VsdCB3aXRoIGFwcHJvcHJpYXRlIG91dGNvbWVcbiAgICAgIGNvbnN0IG91dGNvbWUgPSBjYW5jZWxsZWQgPyAnQ2FuY2VsbGVkJyA6IGNvbmZpcm1lZCA/ICdDb25maXJtZWQnIDogJ0RvbmUnO1xuICAgICAgXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQoe1xuICAgICAgICBjb250ZXh0OiBkaWFsb2dDb250ZXh0LFxuICAgICAgICBhY3Rpb24sXG4gICAgICAgIGNhbmNlbGxlZCxcbiAgICAgICAgY29uZmlybWVkXG4gICAgICB9LCBvdXRjb21lKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW1Nob3dEaWFsb2dMYXlvdXRCdWlsZGVyXSBFcnJvciBzaG93aW5nIGRpYWxvZzonLCBlcnIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBzaG93IGRpYWxvZycsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgYWN0aW9uOiAnZXJyb3InLFxuICAgICAgICAgICAgY2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlybWVkOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBFcnJvcjogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuIl19","import { inject } from '@angular/core';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Activity } from '../activity.types';\n/**\n * Show Toast Activity - Displays toast notification to user.\n *\n * Usage:\n * ```typescript\n * const toast = new ShowToast();\n * await toast.execute({\n * color: 'success',\n * title: 'Success',\n * message: 'Operation completed successfully!'\n * });\n * ```\n */\nexport class ShowToast extends Activity {\n constructor() {\n super('ShowToast');\n this.toastService = inject(AXToastService);\n this.translationService = inject(AXTranslationService);\n }\n async execute(input) {\n const { color = 'primary', title = '', message = '', duration = 3000 } = input;\n // Translate title and message only if they start with '@' (translation key)\n // Otherwise use the text as-is\n const translatedTitle = title\n ? (title.startsWith('@')\n ? await this.translationService.translateAsync(title) || title\n : title)\n : '';\n const translatedMessage = message\n ? (message.startsWith('@')\n ? await this.translationService.translateAsync(message) || message\n : message)\n : '';\n try {\n await this.toastService.show({\n color: color,\n title: translatedTitle,\n content: translatedMessage,\n closeButton: true,\n timeOut: duration,\n timeOutProgress: true,\n });\n return this.createResult(undefined, 'Done');\n }\n catch (err) {\n console.error('[ShowToast] Error showing toast:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to show toast',\n },\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvdy10b2FzdC5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9lbmdpbmUvYWN0aXZpdGllcy9zaG93LXRvYXN0LmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQU8sU0FBVSxTQUFRLFFBS3ZCO0lBSU47UUFDRSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFKSixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0Qyx1QkFBa0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUluRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUtiO1FBQ0MsTUFBTSxFQUNKLEtBQUssR0FBRyxTQUFTLEVBQ2pCLEtBQUssR0FBRyxFQUFFLEVBQ1YsT0FBTyxHQUFHLEVBQUUsRUFDWixRQUFRLEdBQUcsSUFBSSxFQUNoQixHQUFHLEtBQUssQ0FBQztRQUVWLDRFQUE0RTtRQUM1RSwrQkFBK0I7UUFDL0IsTUFBTSxlQUFlLEdBQUcsS0FBSztZQUMzQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLO2dCQUM5RCxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1osQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE1BQU0saUJBQWlCLEdBQUcsT0FBTztZQUMvQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPO2dCQUNsRSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVQLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxLQUFLO2dCQUNaLEtBQUssRUFBRSxlQUFlO2dCQUN0QixPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLGVBQWUsRUFBRSxJQUFJO2FBQ3RCLENBQUMsQ0FBQztZQUVILE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7aUJBQ2xFO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsU0FBUztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVG9hc3RTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RvYXN0JztcbmltcG9ydCB7IEFYU3R5bGVDb2xvclR5cGUgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eS50eXBlcyc7XG5cbi8qKlxuICogU2hvdyBUb2FzdCBBY3Rpdml0eSAtIERpc3BsYXlzIHRvYXN0IG5vdGlmaWNhdGlvbiB0byB1c2VyLlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHRvYXN0ID0gbmV3IFNob3dUb2FzdCgpO1xuICogYXdhaXQgdG9hc3QuZXhlY3V0ZSh7XG4gKiAgIGNvbG9yOiAnc3VjY2VzcycsXG4gKiAgIHRpdGxlOiAnU3VjY2VzcycsXG4gKiAgIG1lc3NhZ2U6ICdPcGVyYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseSEnXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU2hvd1RvYXN0IGV4dGVuZHMgQWN0aXZpdHk8e1xuICBjb2xvcj86IEFYU3R5bGVDb2xvclR5cGU7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBkdXJhdGlvbj86IG51bWJlcjtcbn0sIHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoQVhUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChBWFRyYW5zbGF0aW9uU2VydmljZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1Nob3dUb2FzdCcpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIGNvbG9yPzogQVhTdHlsZUNvbG9yVHlwZTtcbiAgICB0aXRsZT86IHN0cmluZztcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xuICAgIGR1cmF0aW9uPzogbnVtYmVyO1xuICB9KSB7XG4gICAgY29uc3Qge1xuICAgICAgY29sb3IgPSAncHJpbWFyeScsXG4gICAgICB0aXRsZSA9ICcnLFxuICAgICAgbWVzc2FnZSA9ICcnLFxuICAgICAgZHVyYXRpb24gPSAzMDAwXG4gICAgfSA9IGlucHV0O1xuXG4gICAgLy8gVHJhbnNsYXRlIHRpdGxlIGFuZCBtZXNzYWdlIG9ubHkgaWYgdGhleSBzdGFydCB3aXRoICdAJyAodHJhbnNsYXRpb24ga2V5KVxuICAgIC8vIE90aGVyd2lzZSB1c2UgdGhlIHRleHQgYXMtaXNcbiAgICBjb25zdCB0cmFuc2xhdGVkVGl0bGUgPSB0aXRsZSBcbiAgICAgID8gKHRpdGxlLnN0YXJ0c1dpdGgoJ0AnKSBcbiAgICAgICAgICA/IGF3YWl0IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZUFzeW5jKHRpdGxlKSB8fCB0aXRsZVxuICAgICAgICAgIDogdGl0bGUpXG4gICAgICA6ICcnO1xuICAgIGNvbnN0IHRyYW5zbGF0ZWRNZXNzYWdlID0gbWVzc2FnZSBcbiAgICAgID8gKG1lc3NhZ2Uuc3RhcnRzV2l0aCgnQCcpIFxuICAgICAgICAgID8gYXdhaXQgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UudHJhbnNsYXRlQXN5bmMobWVzc2FnZSkgfHwgbWVzc2FnZVxuICAgICAgICAgIDogbWVzc2FnZSlcbiAgICAgIDogJyc7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy50b2FzdFNlcnZpY2Uuc2hvdyh7XG4gICAgICAgIGNvbG9yOiBjb2xvcixcbiAgICAgICAgdGl0bGU6IHRyYW5zbGF0ZWRUaXRsZSxcbiAgICAgICAgY29udGVudDogdHJhbnNsYXRlZE1lc3NhZ2UsXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0cnVlLFxuICAgICAgICB0aW1lT3V0OiBkdXJhdGlvbixcbiAgICAgICAgdGltZU91dFByb2dyZXNzOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdCh1bmRlZmluZWQsICdEb25lJyk7XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTaG93VG9hc3RdIEVycm9yIHNob3dpbmcgdG9hc3Q6JywgZXJyKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgdG8gc2hvdyB0b2FzdCcsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxufSJdfQ==","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Activity } from '../activity.types';\n/**\n * Navigate Activity - Navigates to different pages/routes.\n *\n * Usage:\n * ```typescript\n * const navigate = new Navigate();\n * await navigate.execute({\n * mode: 'route',\n * route: '/users',\n * params: { id: '123' }\n * });\n * ```\n */\nexport class Navigate extends Activity {\n constructor() {\n super('Navigate');\n this.router = inject(Router);\n }\n async execute(input) {\n const { mode = 'route', route = '', params = {}, queryParams = {}, entity = '', entityId = '', url = '' } = input;\n try {\n switch (mode) {\n case 'route':\n await this.router.navigate([route], { queryParams });\n break;\n case 'entity-details':\n const detailsRoute = `/entities/${entity}/details/${entityId}`;\n await this.router.navigate([detailsRoute], { queryParams });\n break;\n case 'entity-list':\n const listRoute = `/entities/${entity}`;\n await this.router.navigate([listRoute], { queryParams });\n break;\n case 'external':\n if (url) {\n window.open(url, '_blank');\n }\n break;\n default:\n console.error(`[Navigate] Unknown navigation mode: ${mode}`);\n return {\n success: false,\n message: {\n text: `Unknown navigation mode: ${mode}`,\n },\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n return this.createResult(undefined, 'Done');\n }\n catch (err) {\n console.error('[Navigate] Error navigating:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to navigate',\n },\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGUuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvbmF2aWdhdGUuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsUUFRdEI7SUFHTjtRQUNFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUhILFdBQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFJekMsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FRYjtRQUNDLE1BQU0sRUFDSixJQUFJLEdBQUcsT0FBTyxFQUNkLEtBQUssR0FBRyxFQUFFLEVBQ1YsTUFBTSxHQUFHLEVBQUUsRUFDWCxXQUFXLEdBQUcsRUFBRSxFQUNoQixNQUFNLEdBQUcsRUFBRSxFQUNYLFFBQVEsR0FBRyxFQUFFLEVBQ2IsR0FBRyxHQUFHLEVBQUUsRUFDVCxHQUFHLEtBQUssQ0FBQztRQUVWLElBQUksQ0FBQztZQUNILFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxPQUFPO29CQUNWLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBQ3JELE1BQU07Z0JBRVIsS0FBSyxnQkFBZ0I7b0JBQ25CLE1BQU0sWUFBWSxHQUFHLGFBQWEsTUFBTSxZQUFZLFFBQVEsRUFBRSxDQUFDO29CQUMvRCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM1RCxNQUFNO2dCQUVSLEtBQUssYUFBYTtvQkFDaEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxNQUFNLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztvQkFDekQsTUFBTTtnQkFFUixLQUFLLFVBQVU7b0JBQ2IsSUFBSSxHQUFHLEVBQUUsQ0FBQzt3QkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztvQkFDRCxNQUFNO2dCQUVSO29CQUNFLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzdELE9BQU87d0JBQ0wsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFOzRCQUNQLElBQUksRUFBRSw0QkFBNEIsSUFBSSxFQUFFO3lCQUN6Qzt3QkFDRCxJQUFJLEVBQUU7NEJBQ0osTUFBTSxFQUFFLFNBQVM7NEJBQ2pCLFFBQVEsRUFBRTtnQ0FDUixNQUFNLEVBQUUsSUFBSTs2QkFDYjt5QkFDRjtxQkFDRixDQUFDO1lBQ04sQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ25ELE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7aUJBQ2hFO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsU0FBUztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBOYXZpZ2F0ZSBBY3Rpdml0eSAtIE5hdmlnYXRlcyB0byBkaWZmZXJlbnQgcGFnZXMvcm91dGVzLlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IG5hdmlnYXRlID0gbmV3IE5hdmlnYXRlKCk7XG4gKiBhd2FpdCBuYXZpZ2F0ZS5leGVjdXRlKHtcbiAqICAgbW9kZTogJ3JvdXRlJyxcbiAqICAgcm91dGU6ICcvdXNlcnMnLFxuICogICBwYXJhbXM6IHsgaWQ6ICcxMjMnIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBOYXZpZ2F0ZSBleHRlbmRzIEFjdGl2aXR5PHtcbiAgbW9kZT86ICdyb3V0ZScgfCAnZW50aXR5LWRldGFpbHMnIHwgJ2VudGl0eS1saXN0JyB8ICdleHRlcm5hbCc7XG4gIHJvdXRlPzogc3RyaW5nO1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGVudGl0eT86IHN0cmluZztcbiAgZW50aXR5SWQ/OiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbn0sIHZvaWQ+IHtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignTmF2aWdhdGUnKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoaW5wdXQ6IHtcbiAgICBtb2RlPzogJ3JvdXRlJyB8ICdlbnRpdHktZGV0YWlscycgfCAnZW50aXR5LWxpc3QnIHwgJ2V4dGVybmFsJztcbiAgICByb3V0ZT86IHN0cmluZztcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHF1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICBlbnRpdHk/OiBzdHJpbmc7XG4gICAgZW50aXR5SWQ/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9KSB7XG4gICAgY29uc3Qge1xuICAgICAgbW9kZSA9ICdyb3V0ZScsXG4gICAgICByb3V0ZSA9ICcnLFxuICAgICAgcGFyYW1zID0ge30sXG4gICAgICBxdWVyeVBhcmFtcyA9IHt9LFxuICAgICAgZW50aXR5ID0gJycsXG4gICAgICBlbnRpdHlJZCA9ICcnLFxuICAgICAgdXJsID0gJydcbiAgICB9ID0gaW5wdXQ7XG5cbiAgICB0cnkge1xuICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgIGNhc2UgJ3JvdXRlJzpcbiAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm91dGVdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgICAgY2FzZSAnZW50aXR5LWRldGFpbHMnOlxuICAgICAgICAgIGNvbnN0IGRldGFpbHNSb3V0ZSA9IGAvZW50aXRpZXMvJHtlbnRpdHl9L2RldGFpbHMvJHtlbnRpdHlJZH1gO1xuICAgICAgICAgIGF3YWl0IHRoaXMucm91dGVyLm5hdmlnYXRlKFtkZXRhaWxzUm91dGVdLCB7IHF1ZXJ5UGFyYW1zIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBcbiAgICAgICAgY2FzZSAnZW50aXR5LWxpc3QnOlxuICAgICAgICAgIGNvbnN0IGxpc3RSb3V0ZSA9IGAvZW50aXRpZXMvJHtlbnRpdHl9YDtcbiAgICAgICAgICBhd2FpdCB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbGlzdFJvdXRlXSwgeyBxdWVyeVBhcmFtcyB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNhc2UgJ2V4dGVybmFsJzpcbiAgICAgICAgICBpZiAodXJsKSB7XG4gICAgICAgICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIFxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFtOYXZpZ2F0ZV0gVW5rbm93biBuYXZpZ2F0aW9uIG1vZGU6ICR7bW9kZX1gKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgICAgIHRleHQ6IGBVbmtub3duIG5hdmlnYXRpb24gbW9kZTogJHttb2RlfWAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdCh1bmRlZmluZWQsICdEb25lJyk7XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tOYXZpZ2F0ZV0gRXJyb3IgbmF2aWdhdGluZzonLCBlcnIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBuYXZpZ2F0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxufSJdfQ==","import { Activity } from '../activity.types';\n/**\n * Set Variable Activity - Sets a variable value in workflow context.\n *\n * Usage:\n * ```typescript\n * const setVar = new SetVariable();\n * await setVar.execute({\n * variableName: 'userId',\n * value: '12345'\n * });\n * ```\n */\nexport class SetVariable extends Activity {\n constructor() {\n super('workflow-activity:set-variable', 'Set Variable');\n }\n async execute(input) {\n const { variableName, value } = input;\n try {\n // In a real implementation, this would set the variable in workflow context\n // For now, we'll just log it\n console.log(`[SetVariable] Setting ${variableName} = ${JSON.stringify(value)}`);\n return this.createResult(undefined, 'Done');\n }\n catch (err) {\n console.error('[SetVariable] Error setting variable:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to set variable',\n },\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LXZhcmlhYmxlLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9hY3Rpdml0aWVzL3NldC12YXJpYWJsZS5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFFBR3pCO0lBQ047UUFDRSxLQUFLLENBQUMsZ0NBQWdDLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FHYjtRQUNDLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXRDLElBQUksQ0FBQztZQUNILDRFQUE0RTtZQUM1RSw2QkFBNkI7WUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsWUFBWSxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRWhGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVELE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7aUJBQ3BFO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsU0FBUztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBTZXQgVmFyaWFibGUgQWN0aXZpdHkgLSBTZXRzIGEgdmFyaWFibGUgdmFsdWUgaW4gd29ya2Zsb3cgY29udGV4dC5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzZXRWYXIgPSBuZXcgU2V0VmFyaWFibGUoKTtcbiAqIGF3YWl0IHNldFZhci5leGVjdXRlKHtcbiAqICAgdmFyaWFibGVOYW1lOiAndXNlcklkJyxcbiAqICAgdmFsdWU6ICcxMjM0NSdcbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBTZXRWYXJpYWJsZSBleHRlbmRzIEFjdGl2aXR5PHtcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59LCB2b2lkPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCd3b3JrZmxvdy1hY3Rpdml0eTpzZXQtdmFyaWFibGUnLCAnU2V0IFZhcmlhYmxlJyk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGlucHV0OiB7XG4gICAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IGFueTtcbiAgfSkge1xuICAgIGNvbnN0IHsgdmFyaWFibGVOYW1lLCB2YWx1ZSB9ID0gaW5wdXQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gSW4gYSByZWFsIGltcGxlbWVudGF0aW9uLCB0aGlzIHdvdWxkIHNldCB0aGUgdmFyaWFibGUgaW4gd29ya2Zsb3cgY29udGV4dFxuICAgICAgLy8gRm9yIG5vdywgd2UnbGwganVzdCBsb2cgaXRcbiAgICAgIGNvbnNvbGUubG9nKGBbU2V0VmFyaWFibGVdIFNldHRpbmcgJHt2YXJpYWJsZU5hbWV9ID0gJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgICBcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdCh1bmRlZmluZWQsICdEb25lJyk7XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tTZXRWYXJpYWJsZV0gRXJyb3Igc2V0dGluZyB2YXJpYWJsZTonLCBlcnIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBzZXQgdmFyaWFibGUnLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB1bmRlZmluZWQsXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIEZhaWxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn0iXX0=","import { Activity } from '../activity.types';\n/**\n * Dispatch Event Activity - Dispatches an event to the system.\n *\n * Usage:\n * ```typescript\n * const dispatch = new DispatchEvent();\n * await dispatch.execute({\n * eventName: 'user-created',\n * eventData: { userId: '123', name: 'John' }\n * });\n * ```\n */\nexport class DispatchEvent extends Activity {\n constructor() {\n super('DispatchEvent');\n }\n async execute(input) {\n const { eventName, eventData } = input;\n try {\n // In a real implementation, this would dispatch the event through an event bus\n // For now, we'll just log it\n console.log(`[DispatchEvent] Dispatching event: ${eventName}`, eventData);\n return this.createResult(undefined, 'Done');\n }\n catch (err) {\n console.error('[DispatchEvent] Error dispatching event:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to dispatch event',\n },\n data: {\n output: undefined,\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2gtZXZlbnQuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvZGlzcGF0Y2gtZXZlbnQuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUczQjtJQUNOO1FBQ0UsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBR2I7UUFDQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUV2QyxJQUFJLENBQUM7WUFDSCwrRUFBK0U7WUFDL0UsNkJBQTZCO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLFNBQVMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRTFFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQy9ELE9BQU87Z0JBQ0wsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLElBQUksRUFBRSxHQUFHLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7aUJBQ3RFO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUUsU0FBUztvQkFDakIsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBEaXNwYXRjaCBFdmVudCBBY3Rpdml0eSAtIERpc3BhdGNoZXMgYW4gZXZlbnQgdG8gdGhlIHN5c3RlbS5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBkaXNwYXRjaCA9IG5ldyBEaXNwYXRjaEV2ZW50KCk7XG4gKiBhd2FpdCBkaXNwYXRjaC5leGVjdXRlKHtcbiAqICAgZXZlbnROYW1lOiAndXNlci1jcmVhdGVkJyxcbiAqICAgZXZlbnREYXRhOiB7IHVzZXJJZDogJzEyMycsIG5hbWU6ICdKb2huJyB9XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRGlzcGF0Y2hFdmVudCBleHRlbmRzIEFjdGl2aXR5PHtcbiAgZXZlbnROYW1lOiBzdHJpbmc7XG4gIGV2ZW50RGF0YT86IGFueTtcbn0sIHZvaWQ+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ0Rpc3BhdGNoRXZlbnQnKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoaW5wdXQ6IHtcbiAgICBldmVudE5hbWU6IHN0cmluZztcbiAgICBldmVudERhdGE/OiBhbnk7XG4gIH0pIHtcbiAgICBjb25zdCB7IGV2ZW50TmFtZSwgZXZlbnREYXRhIH0gPSBpbnB1dDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBJbiBhIHJlYWwgaW1wbGVtZW50YXRpb24sIHRoaXMgd291bGQgZGlzcGF0Y2ggdGhlIGV2ZW50IHRocm91Z2ggYW4gZXZlbnQgYnVzXG4gICAgICAvLyBGb3Igbm93LCB3ZSdsbCBqdXN0IGxvZyBpdFxuICAgICAgY29uc29sZS5sb2coYFtEaXNwYXRjaEV2ZW50XSBEaXNwYXRjaGluZyBldmVudDogJHtldmVudE5hbWV9YCwgZXZlbnREYXRhKTtcbiAgICAgIFxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWx0KHVuZGVmaW5lZCwgJ0RvbmUnKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW0Rpc3BhdGNoRXZlbnRdIEVycm9yIGRpc3BhdGNoaW5nIGV2ZW50OicsIGVycik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIHRvIGRpc3BhdGNoIGV2ZW50JyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG91dHB1dDogdW5kZWZpbmVkLFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59Il19","import { Activity } from '../activity.types';\n/**\n * If Activity - Conditional execution based on a condition.\n *\n * Usage:\n * ```typescript\n * const ifActivity = new If();\n * ifActivity.condition = '{{user.isAdmin}}';\n * ifActivity.thenActivities = [activity1, activity2];\n * ifActivity.elseActivities = [activity3];\n * ```\n */\nexport class If extends Activity {\n constructor() {\n super('If');\n }\n async execute(input) {\n const { condition, thenActivities = [], elseActivities = [] } = input;\n try {\n // Evaluate condition (simplified - in real implementation, use expression evaluator)\n const conditionResult = this.evaluateCondition(condition);\n let result;\n let activities;\n if (conditionResult) {\n activities = thenActivities;\n result = { branch: 'then' };\n }\n else {\n activities = elseActivities;\n result = { branch: 'else' };\n }\n // Execute activities in the chosen branch\n for (const activity of activities) {\n const activityResult = await activity.execute(input);\n if (!activityResult.success) {\n return {\n success: false,\n message: activityResult.message,\n data: {\n output: { branch: conditionResult ? 'then' : 'else', failedActivity: activity },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n return this.createResult(result, conditionResult ? 'Then' : 'Else');\n }\n catch (err) {\n console.error('[If] Error evaluating condition:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed to evaluate condition',\n },\n data: {\n output: { branch: 'error' },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n evaluateCondition(condition) {\n if (typeof condition === 'boolean') {\n return condition;\n }\n if (typeof condition === 'string') {\n // Simple evaluation - in real implementation, use proper expression evaluator\n return condition === 'true' || condition === '1' || condition === 'yes';\n }\n return false;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWYuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvaWYuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRXhEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sRUFBRyxTQUFRLFFBSWpCO0lBQ0w7UUFDRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUliO1FBQ0MsTUFBTSxFQUFFLFNBQVMsRUFBRSxjQUFjLEdBQUcsRUFBRSxFQUFFLGNBQWMsR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFdEUsSUFBSSxDQUFDO1lBQ0gscUZBQXFGO1lBQ3JGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUxRCxJQUFJLE1BQVcsQ0FBQztZQUNoQixJQUFJLFVBQXVCLENBQUM7WUFFNUIsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsVUFBVSxHQUFHLGNBQWMsQ0FBQztnQkFDNUIsTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzlCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixVQUFVLEdBQUcsY0FBYyxDQUFDO2dCQUM1QixNQUFNLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDOUIsQ0FBQztZQUVELDBDQUEwQztZQUMxQyxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzVCLE9BQU87d0JBQ0wsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPO3dCQUMvQixJQUFJLEVBQUU7NEJBQ0osTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRTs0QkFDL0UsUUFBUSxFQUFFO2dDQUNSLE1BQU0sRUFBRSxJQUFJOzZCQUNiO3lCQUNGO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkQsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtpQkFDMUU7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7b0JBQzNCLFFBQVEsRUFBRTt3QkFDUixNQUFNLEVBQUUsSUFBSTtxQkFDYjtpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFNBQTJCO1FBQ25ELElBQUksT0FBTyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsOEVBQThFO1lBQzlFLE9BQU8sU0FBUyxLQUFLLE1BQU0sSUFBSSxTQUFTLEtBQUssR0FBRyxJQUFJLFNBQVMsS0FBSyxLQUFLLENBQUM7UUFDMUUsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHksIElBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBJZiBBY3Rpdml0eSAtIENvbmRpdGlvbmFsIGV4ZWN1dGlvbiBiYXNlZCBvbiBhIGNvbmRpdGlvbi5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBpZkFjdGl2aXR5ID0gbmV3IElmKCk7XG4gKiBpZkFjdGl2aXR5LmNvbmRpdGlvbiA9ICd7e3VzZXIuaXNBZG1pbn19JztcbiAqIGlmQWN0aXZpdHkudGhlbkFjdGl2aXRpZXMgPSBbYWN0aXZpdHkxLCBhY3Rpdml0eTJdO1xuICogaWZBY3Rpdml0eS5lbHNlQWN0aXZpdGllcyA9IFthY3Rpdml0eTNdO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBJZiBleHRlbmRzIEFjdGl2aXR5PHtcbiAgY29uZGl0aW9uOiBzdHJpbmcgfCBib29sZWFuO1xuICB0aGVuQWN0aXZpdGllcz86IElBY3Rpdml0eVtdO1xuICBlbHNlQWN0aXZpdGllcz86IElBY3Rpdml0eVtdO1xufSwgYW55PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdJZicpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIGNvbmRpdGlvbjogc3RyaW5nIHwgYm9vbGVhbjtcbiAgICB0aGVuQWN0aXZpdGllcz86IElBY3Rpdml0eVtdO1xuICAgIGVsc2VBY3Rpdml0aWVzPzogSUFjdGl2aXR5W107XG4gIH0pIHtcbiAgICBjb25zdCB7IGNvbmRpdGlvbiwgdGhlbkFjdGl2aXRpZXMgPSBbXSwgZWxzZUFjdGl2aXRpZXMgPSBbXSB9ID0gaW5wdXQ7XG5cbiAgICB0cnkge1xuICAgICAgLy8gRXZhbHVhdGUgY29uZGl0aW9uIChzaW1wbGlmaWVkIC0gaW4gcmVhbCBpbXBsZW1lbnRhdGlvbiwgdXNlIGV4cHJlc3Npb24gZXZhbHVhdG9yKVxuICAgICAgY29uc3QgY29uZGl0aW9uUmVzdWx0ID0gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb24pO1xuICAgICAgXG4gICAgICBsZXQgcmVzdWx0OiBhbnk7XG4gICAgICBsZXQgYWN0aXZpdGllczogSUFjdGl2aXR5W107XG5cbiAgICAgIGlmIChjb25kaXRpb25SZXN1bHQpIHtcbiAgICAgICAgYWN0aXZpdGllcyA9IHRoZW5BY3Rpdml0aWVzO1xuICAgICAgICByZXN1bHQgPSB7IGJyYW5jaDogJ3RoZW4nIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY3Rpdml0aWVzID0gZWxzZUFjdGl2aXRpZXM7XG4gICAgICAgIHJlc3VsdCA9IHsgYnJhbmNoOiAnZWxzZScgfTtcbiAgICAgIH1cblxuICAgICAgLy8gRXhlY3V0ZSBhY3Rpdml0aWVzIGluIHRoZSBjaG9zZW4gYnJhbmNoXG4gICAgICBmb3IgKGNvbnN0IGFjdGl2aXR5IG9mIGFjdGl2aXRpZXMpIHtcbiAgICAgICAgY29uc3QgYWN0aXZpdHlSZXN1bHQgPSBhd2FpdCBhY3Rpdml0eS5leGVjdXRlKGlucHV0KTtcbiAgICAgICAgaWYgKCFhY3Rpdml0eVJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgbWVzc2FnZTogYWN0aXZpdHlSZXN1bHQubWVzc2FnZSxcbiAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgb3V0cHV0OiB7IGJyYW5jaDogY29uZGl0aW9uUmVzdWx0ID8gJ3RoZW4nIDogJ2Vsc2UnLCBmYWlsZWRBY3Rpdml0eTogYWN0aXZpdHkgfSxcbiAgICAgICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWx0KHJlc3VsdCwgY29uZGl0aW9uUmVzdWx0ID8gJ1RoZW4nIDogJ0Vsc2UnKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW0lmXSBFcnJvciBldmFsdWF0aW5nIGNvbmRpdGlvbjonLCBlcnIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0ZhaWxlZCB0byBldmFsdWF0ZSBjb25kaXRpb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7IGJyYW5jaDogJ2Vycm9yJyB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb246IHN0cmluZyB8IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cbiAgICBcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIC8vIFNpbXBsZSBldmFsdWF0aW9uIC0gaW4gcmVhbCBpbXBsZW1lbnRhdGlvbiwgdXNlIHByb3BlciBleHByZXNzaW9uIGV2YWx1YXRvclxuICAgICAgcmV0dXJuIGNvbmRpdGlvbiA9PT0gJ3RydWUnIHx8IGNvbmRpdGlvbiA9PT0gJzEnIHx8IGNvbmRpdGlvbiA9PT0gJ3llcyc7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufSJdfQ==","import { Activity } from '../activity.types';\n/**\n * While Activity - Loop execution while condition is true.\n *\n * Usage:\n * ```typescript\n * const whileActivity = new While();\n * whileActivity.condition = '{{counter < 10}}';\n * whileActivity.activities = [incrementActivity, logActivity];\n * ```\n */\nexport class While extends Activity {\n constructor() {\n super('While');\n }\n async execute(input) {\n const { condition, activities = [], maxIterations = 1000 } = input;\n try {\n let iteration = 0;\n let conditionResult = this.evaluateCondition(condition);\n while (conditionResult && iteration < maxIterations) {\n // Execute activities in the loop\n for (const activity of activities) {\n const activityResult = await activity.execute(input);\n if (!activityResult.success) {\n return {\n success: false,\n message: activityResult.message,\n data: {\n output: {\n iterations: iteration,\n completed: false,\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n iteration++;\n conditionResult = this.evaluateCondition(condition);\n }\n const result = {\n iterations: iteration,\n completed: iteration < maxIterations\n };\n return this.createResult(result, 'Done');\n }\n catch (err) {\n console.error('[While] Error in loop execution:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed during loop execution',\n },\n data: {\n output: { iterations: 0, completed: false },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n evaluateCondition(condition) {\n if (typeof condition === 'boolean') {\n return condition;\n }\n if (typeof condition === 'string') {\n // Simple evaluation - in real implementation, use proper expression evaluator\n return condition === 'true' || condition === '1' || condition === 'yes';\n }\n return false;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2hpbGUuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvd2hpbGUuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sT0FBTyxLQUFNLFNBQVEsUUFJcEI7SUFDTDtRQUNFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUliO1FBQ0MsTUFBTSxFQUNKLFNBQVMsRUFDVCxVQUFVLEdBQUcsRUFBRSxFQUNmLGFBQWEsR0FBRyxJQUFJLEVBQ3JCLEdBQUcsS0FBSyxDQUFDO1FBRVYsSUFBSSxDQUFDO1lBQ0gsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV4RCxPQUFPLGVBQWUsSUFBSSxTQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7Z0JBQ3BELGlDQUFpQztnQkFDakMsS0FBSyxNQUFNLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxjQUFjLEdBQUcsTUFBTSxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNyRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUM1QixPQUFPOzRCQUNMLE9BQU8sRUFBRSxLQUFLOzRCQUNkLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTzs0QkFDL0IsSUFBSSxFQUFFO2dDQUNKLE1BQU0sRUFBRTtvQ0FDTixVQUFVLEVBQUUsU0FBUztvQ0FDckIsU0FBUyxFQUFFLEtBQUs7aUNBQ2pCO2dDQUNELFFBQVEsRUFBRTtvQ0FDUixNQUFNLEVBQUUsSUFBSTtpQ0FDYjs2QkFDRjt5QkFDRixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxTQUFTLEVBQUUsQ0FBQztnQkFDWixlQUFlLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRztnQkFDYixVQUFVLEVBQUUsU0FBUztnQkFDckIsU0FBUyxFQUFFLFNBQVMsR0FBRyxhQUFhO2FBQ3JDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRTtvQkFDUCxJQUFJLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQThCO2lCQUMxRTtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO29CQUMzQyxRQUFRLEVBQUU7d0JBQ1IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUEyQjtRQUNuRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLDhFQUE4RTtZQUM5RSxPQUFPLFNBQVMsS0FBSyxNQUFNLElBQUksU0FBUyxLQUFLLEdBQUcsSUFBSSxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQzFFLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2aXR5LCBJQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eS50eXBlcyc7XG5cbi8qKlxuICogV2hpbGUgQWN0aXZpdHkgLSBMb29wIGV4ZWN1dGlvbiB3aGlsZSBjb25kaXRpb24gaXMgdHJ1ZS5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB3aGlsZUFjdGl2aXR5ID0gbmV3IFdoaWxlKCk7XG4gKiB3aGlsZUFjdGl2aXR5LmNvbmRpdGlvbiA9ICd7e2NvdW50ZXIgPCAxMH19JztcbiAqIHdoaWxlQWN0aXZpdHkuYWN0aXZpdGllcyA9IFtpbmNyZW1lbnRBY3Rpdml0eSwgbG9nQWN0aXZpdHldO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBXaGlsZSBleHRlbmRzIEFjdGl2aXR5PHtcbiAgY29uZGl0aW9uOiBzdHJpbmcgfCBib29sZWFuO1xuICBhY3Rpdml0aWVzPzogSUFjdGl2aXR5W107XG4gIG1heEl0ZXJhdGlvbnM/OiBudW1iZXI7XG59LCBhbnk+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoJ1doaWxlJyk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGlucHV0OiB7XG4gICAgY29uZGl0aW9uOiBzdHJpbmcgfCBib29sZWFuO1xuICAgIGFjdGl2aXRpZXM/OiBJQWN0aXZpdHlbXTtcbiAgICBtYXhJdGVyYXRpb25zPzogbnVtYmVyO1xuICB9KSB7XG4gICAgY29uc3QgeyBcbiAgICAgIGNvbmRpdGlvbiwgXG4gICAgICBhY3Rpdml0aWVzID0gW10sIFxuICAgICAgbWF4SXRlcmF0aW9ucyA9IDEwMDAgXG4gICAgfSA9IGlucHV0O1xuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBpdGVyYXRpb24gPSAwO1xuICAgICAgbGV0IGNvbmRpdGlvblJlc3VsdCA9IHRoaXMuZXZhbHVhdGVDb25kaXRpb24oY29uZGl0aW9uKTtcblxuICAgICAgd2hpbGUgKGNvbmRpdGlvblJlc3VsdCAmJiBpdGVyYXRpb24gPCBtYXhJdGVyYXRpb25zKSB7XG4gICAgICAgIC8vIEV4ZWN1dGUgYWN0aXZpdGllcyBpbiB0aGUgbG9vcFxuICAgICAgICBmb3IgKGNvbnN0IGFjdGl2aXR5IG9mIGFjdGl2aXRpZXMpIHtcbiAgICAgICAgICBjb25zdCBhY3Rpdml0eVJlc3VsdCA9IGF3YWl0IGFjdGl2aXR5LmV4ZWN1dGUoaW5wdXQpO1xuICAgICAgICAgIGlmICghYWN0aXZpdHlSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGFjdGl2aXR5UmVzdWx0Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IGl0ZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGl0ZXJhdGlvbisrO1xuICAgICAgICBjb25kaXRpb25SZXN1bHQgPSB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgaXRlcmF0aW9uczogaXRlcmF0aW9uLFxuICAgICAgICBjb21wbGV0ZWQ6IGl0ZXJhdGlvbiA8IG1heEl0ZXJhdGlvbnNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdChyZXN1bHQsICdEb25lJyk7XG4gICAgICBcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tXaGlsZV0gRXJyb3IgaW4gbG9vcCBleGVjdXRpb246JywgZXJyKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgdGV4dDogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdGYWlsZWQgZHVyaW5nIGxvb3AgZXhlY3V0aW9uJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG91dHB1dDogeyBpdGVyYXRpb25zOiAwLCBjb21wbGV0ZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgIEZhaWxlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbjogc3RyaW5nIHwgYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuICAgIFxuICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgLy8gU2ltcGxlIGV2YWx1YXRpb24gLSBpbiByZWFsIGltcGxlbWVudGF0aW9uLCB1c2UgcHJvcGVyIGV4cHJlc3Npb24gZXZhbHVhdG9yXG4gICAgICByZXR1cm4gY29uZGl0aW9uID09PSAndHJ1ZScgfHwgY29uZGl0aW9uID09PSAnMScgfHwgY29uZGl0aW9uID09PSAneWVzJztcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59Il19","import { Activity } from '../activity.types';\n/**\n * ForEach Activity - Iterates over a collection of items.\n *\n * Usage:\n * ```typescript\n * const forEach = new ForEach();\n * await forEach.execute({\n * items: ['item1', 'item2', 'item3'],\n * activities: [processItemActivity]\n * });\n * ```\n */\nexport class ForEach extends Activity {\n constructor() {\n super('ForEach');\n }\n async execute(input) {\n const { items = [], activities = [], itemVariableName = 'currentItem', indexVariableName = 'currentIndex' } = input;\n try {\n const results = [];\n for (let index = 0; index < items.length; index++) {\n const currentItem = items[index];\n // Create context with current item and index\n const itemContext = {\n ...input,\n [itemVariableName]: currentItem,\n [indexVariableName]: index\n };\n // Execute activities for current item\n for (const activity of activities) {\n const activityResult = await activity.execute(itemContext);\n if (!activityResult.success) {\n return {\n success: false,\n message: activityResult.message,\n data: {\n output: {\n totalItems: items.length,\n processedItems: results.length,\n results,\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n results.push({\n item: currentItem,\n index,\n processed: true\n });\n }\n const result = {\n totalItems: items.length,\n processedItems: results.length,\n results\n };\n return this.createResult(result, 'Done');\n }\n catch (err) {\n console.error('[ForEach] Error in iteration:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Failed during iteration',\n },\n data: {\n output: { totalItems: 0, processedItems: 0, results: [] },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWVhY2guYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvZm9yLWVhY2guYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBYSxNQUFNLG1CQUFtQixDQUFDO0FBRXhEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLE9BQVEsU0FBUSxRQUt0QjtJQUNMO1FBQ0UsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBS2I7UUFDQyxNQUFNLEVBQ0osS0FBSyxHQUFHLEVBQUUsRUFDVixVQUFVLEdBQUcsRUFBRSxFQUNmLGdCQUFnQixHQUFHLGFBQWEsRUFDaEMsaUJBQWlCLEdBQUcsY0FBYyxFQUNuQyxHQUFHLEtBQUssQ0FBQztRQUVWLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFVLEVBQUUsQ0FBQztZQUUxQixLQUFLLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWpDLDZDQUE2QztnQkFDN0MsTUFBTSxXQUFXLEdBQUc7b0JBQ2xCLEdBQUcsS0FBSztvQkFDUixDQUFDLGdCQUFnQixDQUFDLEVBQUUsV0FBVztvQkFDL0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUs7aUJBQzNCLENBQUM7Z0JBRUYsc0NBQXNDO2dCQUN0QyxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNsQyxNQUFNLGNBQWMsR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzNELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7d0JBQzVCLE9BQU87NEJBQ0wsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsT0FBTyxFQUFFLGNBQWMsQ0FBQyxPQUFPOzRCQUMvQixJQUFJLEVBQUU7Z0NBQ0osTUFBTSxFQUFFO29DQUNOLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtvQ0FDeEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxNQUFNO29DQUM5QixPQUFPO2lDQUNSO2dDQUNELFFBQVEsRUFBRTtvQ0FDUixNQUFNLEVBQUUsSUFBSTtpQ0FDYjs2QkFDRjt5QkFDRixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLElBQUksRUFBRSxXQUFXO29CQUNqQixLQUFLO29CQUNMLFNBQVMsRUFBRSxJQUFJO2lCQUNoQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO2dCQUN4QixjQUFjLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQzlCLE9BQU87YUFDUixDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzQyxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEQsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtpQkFDckU7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO29CQUN6RCxRQUFRLEVBQUU7d0JBQ1IsTUFBTSxFQUFFLElBQUk7cUJBQ2I7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2aXR5LCBJQWN0aXZpdHkgfSBmcm9tICcuLi9hY3Rpdml0eS50eXBlcyc7XG5cbi8qKlxuICogRm9yRWFjaCBBY3Rpdml0eSAtIEl0ZXJhdGVzIG92ZXIgYSBjb2xsZWN0aW9uIG9mIGl0ZW1zLlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGZvckVhY2ggPSBuZXcgRm9yRWFjaCgpO1xuICogYXdhaXQgZm9yRWFjaC5leGVjdXRlKHtcbiAqICAgaXRlbXM6IFsnaXRlbTEnLCAnaXRlbTInLCAnaXRlbTMnXSxcbiAqICAgYWN0aXZpdGllczogW3Byb2Nlc3NJdGVtQWN0aXZpdHldXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgRm9yRWFjaCBleHRlbmRzIEFjdGl2aXR5PHtcbiAgaXRlbXM6IGFueVtdO1xuICBhY3Rpdml0aWVzPzogSUFjdGl2aXR5W107XG4gIGl0ZW1WYXJpYWJsZU5hbWU/OiBzdHJpbmc7XG4gIGluZGV4VmFyaWFibGVOYW1lPzogc3RyaW5nO1xufSwgYW55PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCdGb3JFYWNoJyk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGlucHV0OiB7XG4gICAgaXRlbXM6IGFueVtdO1xuICAgIGFjdGl2aXRpZXM/OiBJQWN0aXZpdHlbXTtcbiAgICBpdGVtVmFyaWFibGVOYW1lPzogc3RyaW5nO1xuICAgIGluZGV4VmFyaWFibGVOYW1lPzogc3RyaW5nO1xuICB9KSB7XG4gICAgY29uc3QgeyBcbiAgICAgIGl0ZW1zID0gW10sIFxuICAgICAgYWN0aXZpdGllcyA9IFtdLCBcbiAgICAgIGl0ZW1WYXJpYWJsZU5hbWUgPSAnY3VycmVudEl0ZW0nLFxuICAgICAgaW5kZXhWYXJpYWJsZU5hbWUgPSAnY3VycmVudEluZGV4J1xuICAgIH0gPSBpbnB1dDtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHRzOiBhbnlbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgaXRlbXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtID0gaXRlbXNbaW5kZXhdO1xuICAgICAgICBcbiAgICAgICAgLy8gQ3JlYXRlIGNvbnRleHQgd2l0aCBjdXJyZW50IGl0ZW0gYW5kIGluZGV4XG4gICAgICAgIGNvbnN0IGl0ZW1Db250ZXh0ID0ge1xuICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgIFtpdGVtVmFyaWFibGVOYW1lXTogY3VycmVudEl0ZW0sXG4gICAgICAgICAgW2luZGV4VmFyaWFibGVOYW1lXTogaW5kZXhcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBFeGVjdXRlIGFjdGl2aXRpZXMgZm9yIGN1cnJlbnQgaXRlbVxuICAgICAgICBmb3IgKGNvbnN0IGFjdGl2aXR5IG9mIGFjdGl2aXRpZXMpIHtcbiAgICAgICAgICBjb25zdCBhY3Rpdml0eVJlc3VsdCA9IGF3YWl0IGFjdGl2aXR5LmV4ZWN1dGUoaXRlbUNvbnRleHQpO1xuICAgICAgICAgIGlmICghYWN0aXZpdHlSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGFjdGl2aXR5UmVzdWx0Lm1lc3NhZ2UsXG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgICAgICAgIHRvdGFsSXRlbXM6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1zOiByZXN1bHRzLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgaXRlbTogY3VycmVudEl0ZW0sXG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgcHJvY2Vzc2VkOiB0cnVlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHRvdGFsSXRlbXM6IGl0ZW1zLmxlbmd0aCxcbiAgICAgICAgcHJvY2Vzc2VkSXRlbXM6IHJlc3VsdHMubGVuZ3RoLFxuICAgICAgICByZXN1bHRzXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQocmVzdWx0LCAnRG9uZScpO1xuICAgICAgXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbRm9yRWFjaF0gRXJyb3IgaW4gaXRlcmF0aW9uOicsIGVycik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnRmFpbGVkIGR1cmluZyBpdGVyYXRpb24nLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7IHRvdGFsSXRlbXM6IDAsIHByb2Nlc3NlZEl0ZW1zOiAwLCByZXN1bHRzOiBbXSB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59Il19","import { inject } from '@angular/core';\nimport { Activity } from '../activity.types';\nimport { AXPCommandService } from '@acorex/platform/runtime';\n/**\n * Execute Command Activity - Executes a command through Command Bus.\n *\n * Usage:\n * ```typescript\n * const executeCmd = new ExecuteCommand();\n * await executeCmd.execute({\n * commandKey: 'UserManagement.CreateUser',\n * input: { name: 'John', email: 'john@example.com' }\n * });\n * ```\n */\nexport class ExecuteCommand extends Activity {\n constructor() {\n super('workflow-activity:execute-command', 'Execute Command');\n this.commandService = inject(AXPCommandService);\n }\n async execute(input) {\n const { commandKey, input: commandInput = {} } = input;\n try {\n // Check if command exists\n if (!this.commandService.exists(commandKey)) {\n console.warn(`[ExecuteCommand] Command '${commandKey}' is not registered. Simulating execution.`);\n // Simulate command execution for unregistered commands\n const result = {\n commandKey,\n success: true,\n output: commandInput,\n executedAt: new Date().toISOString(),\n simulated: true\n };\n return this.createResult(result, 'Done');\n }\n // Execute command through Command Bus\n const result = await this.commandService.execute(commandKey, commandInput);\n if (!result) {\n return {\n success: false,\n message: {\n text: `Command '${commandKey}' returned no result`,\n },\n data: {\n output: {\n commandKey,\n success: false,\n executedAt: new Date().toISOString(),\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n if (!result.success) {\n return {\n success: false,\n message: result.message,\n data: {\n output: {\n commandKey,\n success: false,\n executedAt: new Date().toISOString(),\n error: result.message?.text,\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n return this.createResult({\n commandKey,\n success: true,\n output: result.data,\n executedAt: new Date().toISOString(),\n }, 'Done');\n }\n catch (err) {\n console.error('[ExecuteCommand] Error executing command:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Unknown error',\n },\n data: {\n output: {\n commandKey,\n success: false,\n error: err instanceof Error ? err.message : 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1jb21tYW5kLmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9hY3Rpdml0aWVzL2V4ZWN1dGUtY29tbWFuZC5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsUUFHN0I7SUFHTDtRQUNFLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBSC9DLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFJNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPLENBQUMsS0FHYjtRQUNDLE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFdkQsSUFBSSxDQUFDO1lBQ0gsMEJBQTBCO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLENBQUMsSUFBSSxDQUFDLDZCQUE2QixVQUFVLDRDQUE0QyxDQUFDLENBQUM7Z0JBRWxHLHVEQUF1RDtnQkFDdkQsTUFBTSxNQUFNLEdBQUc7b0JBQ2IsVUFBVTtvQkFDVixPQUFPLEVBQUUsSUFBSTtvQkFDYixNQUFNLEVBQUUsWUFBWTtvQkFDcEIsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO29CQUNwQyxTQUFTLEVBQUUsSUFBSTtpQkFDaEIsQ0FBQztnQkFFRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFFRCxzQ0FBc0M7WUFDdEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDM0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNaLE9BQU87b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxZQUFZLFVBQVUsc0JBQXNCO3FCQUNuRDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0osTUFBTSxFQUFFOzRCQUNOLFVBQVU7NEJBQ1YsT0FBTyxFQUFFLEtBQUs7NEJBQ2QsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO3lCQUNyQzt3QkFDRCxRQUFRLEVBQUU7NEJBQ1IsTUFBTSxFQUFFLElBQUk7eUJBQ2I7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFPO29CQUNMLE9BQU8sRUFBRSxLQUFLO29CQUNkLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDdkIsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRTs0QkFDTixVQUFVOzRCQUNWLE9BQU8sRUFBRSxLQUFLOzRCQUNkLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTs0QkFDcEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSTt5QkFDNUI7d0JBQ0QsUUFBUSxFQUFFOzRCQUNSLE1BQU0sRUFBRSxJQUFJO3lCQUNiO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUN0QjtnQkFDRSxVQUFVO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSTtnQkFDbkIsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3JDLEVBQ0QsTUFBTSxDQUNQLENBQUM7UUFFSixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEUsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWU7aUJBQzNEO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sVUFBVTt3QkFDVixPQUFPLEVBQUUsS0FBSzt3QkFDZCxLQUFLLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZTtxQkFDNUQ7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHkudHlwZXMnO1xuaW1wb3J0IHsgQVhQQ29tbWFuZFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuXG4vKipcbiAqIEV4ZWN1dGUgQ29tbWFuZCBBY3Rpdml0eSAtIEV4ZWN1dGVzIGEgY29tbWFuZCB0aHJvdWdoIENvbW1hbmQgQnVzLlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGV4ZWN1dGVDbWQgPSBuZXcgRXhlY3V0ZUNvbW1hbmQoKTtcbiAqIGF3YWl0IGV4ZWN1dGVDbWQuZXhlY3V0ZSh7XG4gKiAgIGNvbW1hbmRLZXk6ICdVc2VyTWFuYWdlbWVudC5DcmVhdGVVc2VyJyxcbiAqICAgaW5wdXQ6IHsgbmFtZTogJ0pvaG4nLCBlbWFpbDogJ2pvaG5AZXhhbXBsZS5jb20nIH1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBFeGVjdXRlQ29tbWFuZCBleHRlbmRzIEFjdGl2aXR5PHtcbiAgY29tbWFuZEtleTogc3RyaW5nO1xuICBpbnB1dD86IGFueTtcbn0sIGFueT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRTZXJ2aWNlID0gaW5qZWN0KEFYUENvbW1hbmRTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignd29ya2Zsb3ctYWN0aXZpdHk6ZXhlY3V0ZS1jb21tYW5kJywgJ0V4ZWN1dGUgQ29tbWFuZCcpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDoge1xuICAgIGNvbW1hbmRLZXk6IHN0cmluZztcbiAgICBpbnB1dD86IGFueTtcbiAgfSkge1xuICAgIGNvbnN0IHsgY29tbWFuZEtleSwgaW5wdXQ6IGNvbW1hbmRJbnB1dCA9IHt9IH0gPSBpbnB1dDtcblxuICAgIHRyeSB7XG4gICAgICAvLyBDaGVjayBpZiBjb21tYW5kIGV4aXN0c1xuICAgICAgaWYgKCF0aGlzLmNvbW1hbmRTZXJ2aWNlLmV4aXN0cyhjb21tYW5kS2V5KSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFtFeGVjdXRlQ29tbWFuZF0gQ29tbWFuZCAnJHtjb21tYW5kS2V5fScgaXMgbm90IHJlZ2lzdGVyZWQuIFNpbXVsYXRpbmcgZXhlY3V0aW9uLmApO1xuICAgICAgICBcbiAgICAgICAgLy8gU2ltdWxhdGUgY29tbWFuZCBleGVjdXRpb24gZm9yIHVucmVnaXN0ZXJlZCBjb21tYW5kc1xuICAgICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgICAgY29tbWFuZEtleSxcbiAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgIG91dHB1dDogY29tbWFuZElucHV0LFxuICAgICAgICAgIGV4ZWN1dGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICBzaW11bGF0ZWQ6IHRydWVcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQocmVzdWx0LCAnRG9uZScpO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGVjdXRlIGNvbW1hbmQgdGhyb3VnaCBDb21tYW5kIEJ1c1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jb21tYW5kU2VydmljZS5leGVjdXRlKGNvbW1hbmRLZXksIGNvbW1hbmRJbnB1dCk7XG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgIHRleHQ6IGBDb21tYW5kICcke2NvbW1hbmRLZXl9JyByZXR1cm5lZCBubyByZXN1bHRgLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRLZXksXG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICBleGVjdXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3V0Y29tZXM6IHtcbiAgICAgICAgICAgICAgRmFpbGVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgbWVzc2FnZTogcmVzdWx0Lm1lc3NhZ2UsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICAgIGNvbW1hbmRLZXksXG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICBleGVjdXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgIGVycm9yOiByZXN1bHQubWVzc2FnZT8udGV4dCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvdXRjb21lczoge1xuICAgICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdChcbiAgICAgICAge1xuICAgICAgICAgIGNvbW1hbmRLZXksXG4gICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICBvdXRwdXQ6IHJlc3VsdC5kYXRhLFxuICAgICAgICAgIGV4ZWN1dGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgJ0RvbmUnLFxuICAgICAgKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW0V4ZWN1dGVDb21tYW5kXSBFcnJvciBleGVjdXRpbmcgY29tbWFuZDonLCBlcnIpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICB0ZXh0OiBlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgICAgICB9LFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgb3V0cHV0OiB7XG4gICAgICAgICAgICBjb21tYW5kS2V5LFxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59Il19","import { inject } from '@angular/core';\nimport { Activity } from '../activity.types';\nimport { AXPQueryService } from '@acorex/platform/runtime';\n/**\n * Execute Query Activity - Executes a query through Query Bus.\n *\n * Usage:\n * ```typescript\n * const executeQuery = new ExecuteQuery();\n * await executeQuery.execute({\n * queryKey: 'UserManagement.GetUsers',\n * input: { page: 1, pageSize: 10 }\n * });\n * ```\n */\nexport class ExecuteQuery extends Activity {\n constructor() {\n super('workflow-activity:execute-query', 'Execute Query');\n this.queryService = inject(AXPQueryService);\n }\n async execute(input) {\n const { queryKey, input: queryInput = {} } = input;\n try {\n // Check if query exists\n if (!this.queryService.exists(queryKey)) {\n console.warn(`[ExecuteQuery] Query '${queryKey}' is not registered. Simulating execution.`);\n // Simulate query execution for unregistered queries\n const result = {\n queryKey,\n success: true,\n data: [],\n totalCount: 0,\n executedAt: new Date().toISOString(),\n simulated: true\n };\n return this.createResult(result, 'Done');\n }\n // Execute query through Query Bus\n const result = await this.queryService.fetch(queryKey, queryInput);\n return this.createResult({\n queryKey,\n success: true,\n data: result,\n totalCount: Array.isArray(result) ? result.length : (result?.totalCount || 0),\n executedAt: new Date().toISOString()\n }, 'Done');\n }\n catch (err) {\n console.error('[ExecuteQuery] Error executing query:', err);\n return {\n success: false,\n message: {\n text: err instanceof Error ? err.message : 'Unknown error',\n },\n data: {\n output: {\n queryKey,\n success: false,\n error: err instanceof Error ? err.message : 'Unknown error',\n },\n outcomes: {\n Failed: true,\n },\n },\n };\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9lbmdpbmUvYWN0aXZpdGllcy9leGVjdXRlLXF1ZXJ5LmFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsUUFHM0I7SUFHTDtRQUNFLEtBQUssQ0FBQyxpQ0FBaUMsRUFBRSxlQUFlLENBQUMsQ0FBQztRQUgzQyxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUl4RCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUdiO1FBQ0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVuRCxJQUFJLENBQUM7WUFDSCx3QkFBd0I7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLFFBQVEsNENBQTRDLENBQUMsQ0FBQztnQkFFNUYsb0RBQW9EO2dCQUNwRCxNQUFNLE1BQU0sR0FBRztvQkFDYixRQUFRO29CQUNSLE9BQU8sRUFBRSxJQUFJO29CQUNiLElBQUksRUFBRSxFQUFFO29CQUNSLFVBQVUsRUFBRSxDQUFDO29CQUNiLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtvQkFDcEMsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUM7Z0JBRUYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBRUQsa0NBQWtDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBRW5FLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsUUFBUTtnQkFDUixPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsTUFBTTtnQkFDWixVQUFVLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQztnQkFDN0UsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO2FBQ3JDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFYixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUNBQXVDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUQsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUU7b0JBQ1AsSUFBSSxFQUFFLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWU7aUJBQzNEO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sUUFBUTt3QkFDUixPQUFPLEVBQUUsS0FBSzt3QkFDZCxLQUFLLEVBQUUsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZTtxQkFDNUQ7b0JBQ0QsUUFBUSxFQUFFO3dCQUNSLE1BQU0sRUFBRSxJQUFJO3FCQUNiO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHkudHlwZXMnO1xuaW1wb3J0IHsgQVhQUXVlcnlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcblxuLyoqXG4gKiBFeGVjdXRlIFF1ZXJ5IEFjdGl2aXR5IC0gRXhlY3V0ZXMgYSBxdWVyeSB0aHJvdWdoIFF1ZXJ5IEJ1cy5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBleGVjdXRlUXVlcnkgPSBuZXcgRXhlY3V0ZVF1ZXJ5KCk7XG4gKiBhd2FpdCBleGVjdXRlUXVlcnkuZXhlY3V0ZSh7XG4gKiAgIHF1ZXJ5S2V5OiAnVXNlck1hbmFnZW1lbnQuR2V0VXNlcnMnLFxuICogICBpbnB1dDogeyBwYWdlOiAxLCBwYWdlU2l6ZTogMTAgfVxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEV4ZWN1dGVRdWVyeSBleHRlbmRzIEFjdGl2aXR5PHtcbiAgcXVlcnlLZXk6IHN0cmluZztcbiAgaW5wdXQ/OiBhbnk7XG59LCBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWVyeVNlcnZpY2UgPSBpbmplY3QoQVhQUXVlcnlTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignd29ya2Zsb3ctYWN0aXZpdHk6ZXhlY3V0ZS1xdWVyeScsICdFeGVjdXRlIFF1ZXJ5Jyk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlKGlucHV0OiB7XG4gICAgcXVlcnlLZXk6IHN0cmluZztcbiAgICBpbnB1dD86IGFueTtcbiAgfSkge1xuICAgIGNvbnN0IHsgcXVlcnlLZXksIGlucHV0OiBxdWVyeUlucHV0ID0ge30gfSA9IGlucHV0O1xuXG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGlmIHF1ZXJ5IGV4aXN0c1xuICAgICAgaWYgKCF0aGlzLnF1ZXJ5U2VydmljZS5leGlzdHMocXVlcnlLZXkpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgW0V4ZWN1dGVRdWVyeV0gUXVlcnkgJyR7cXVlcnlLZXl9JyBpcyBub3QgcmVnaXN0ZXJlZC4gU2ltdWxhdGluZyBleGVjdXRpb24uYCk7XG4gICAgICAgIFxuICAgICAgICAvLyBTaW11bGF0ZSBxdWVyeSBleGVjdXRpb24gZm9yIHVucmVnaXN0ZXJlZCBxdWVyaWVzXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgICAgICBxdWVyeUtleSxcbiAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgIGRhdGE6IFtdLFxuICAgICAgICAgIHRvdGFsQ291bnQ6IDAsXG4gICAgICAgICAgZXhlY3V0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgIHNpbXVsYXRlZDogdHJ1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlc3VsdChyZXN1bHQsICdEb25lJyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4ZWN1dGUgcXVlcnkgdGhyb3VnaCBRdWVyeSBCdXNcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucXVlcnlTZXJ2aWNlLmZldGNoKHF1ZXJ5S2V5LCBxdWVyeUlucHV0KTtcblxuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVzdWx0KHtcbiAgICAgICAgcXVlcnlLZXksXG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgdG90YWxDb3VudDogQXJyYXkuaXNBcnJheShyZXN1bHQpID8gcmVzdWx0Lmxlbmd0aCA6IChyZXN1bHQ/LnRvdGFsQ291bnQgfHwgMCksXG4gICAgICAgIGV4ZWN1dGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKVxuICAgICAgfSwgJ0RvbmUnKTtcbiAgICAgIFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcignW0V4ZWN1dGVRdWVyeV0gRXJyb3IgZXhlY3V0aW5nIHF1ZXJ5OicsIGVycik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZToge1xuICAgICAgICAgIHRleHQ6IGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicsXG4gICAgICAgIH0sXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIHF1ZXJ5S2V5LFxuICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICBlcnJvcjogZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWVzOiB7XG4gICAgICAgICAgICBGYWlsZWQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59Il19","import { Activity } from '../activity.types';\n/**\n * Start Activity - Marks the start point of a workflow.\n *\n * This is a visual marker activity that doesn't perform any actual work.\n * It's used in workflow designers to clearly indicate where a workflow begins.\n *\n * Usage:\n * ```typescript\n * const start = new StartActivity();\n * await start.execute({});\n * ```\n */\nexport class StartActivity extends Activity {\n constructor() {\n super('StartActivity');\n }\n async execute(input) {\n // This activity is a visual marker only\n // It immediately completes and allows workflow to proceed\n console.log('[StartActivity] Workflow started');\n return this.createResult(undefined, 'Done');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtYWN0aXZpdHkuYWN0aXZpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvc3RhcnQtYWN0aXZpdHkuYWN0aXZpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxRQUFxQztJQUN0RTtRQUNFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUE0QjtRQUN4Qyx3Q0FBd0M7UUFDeEMsMERBQTBEO1FBQzFELE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUVoRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2aXR5IH0gZnJvbSAnLi4vYWN0aXZpdHkudHlwZXMnO1xuXG4vKipcbiAqIFN0YXJ0IEFjdGl2aXR5IC0gTWFya3MgdGhlIHN0YXJ0IHBvaW50IG9mIGEgd29ya2Zsb3cuXG4gKiBcbiAqIFRoaXMgaXMgYSB2aXN1YWwgbWFya2VyIGFjdGl2aXR5IHRoYXQgZG9lc24ndCBwZXJmb3JtIGFueSBhY3R1YWwgd29yay5cbiAqIEl0J3MgdXNlZCBpbiB3b3JrZmxvdyBkZXNpZ25lcnMgdG8gY2xlYXJseSBpbmRpY2F0ZSB3aGVyZSBhIHdvcmtmbG93IGJlZ2lucy5cbiAqIFxuICogVXNhZ2U6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzdGFydCA9IG5ldyBTdGFydEFjdGl2aXR5KCk7XG4gKiBhd2FpdCBzdGFydC5leGVjdXRlKHt9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU3RhcnRBY3Rpdml0eSBleHRlbmRzIEFjdGl2aXR5PFJlY29yZDxzdHJpbmcsIG5ldmVyPiwgdm9pZD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignU3RhcnRBY3Rpdml0eScpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZShpbnB1dDogUmVjb3JkPHN0cmluZywgbmV2ZXI+KSB7XG4gICAgLy8gVGhpcyBhY3Rpdml0eSBpcyBhIHZpc3VhbCBtYXJrZXIgb25seVxuICAgIC8vIEl0IGltbWVkaWF0ZWx5IGNvbXBsZXRlcyBhbmQgYWxsb3dzIHdvcmtmbG93IHRvIHByb2NlZWRcbiAgICBjb25zb2xlLmxvZygnW1N0YXJ0QWN0aXZpdHldIFdvcmtmbG93IHN0YXJ0ZWQnKTtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQodW5kZWZpbmVkLCAnRG9uZScpO1xuICB9XG59XG5cbiJdfQ==","import { Activity } from '../activity.types';\n/**\n * End Activity - Marks the end point of a workflow.\n *\n * This is a visual marker activity that terminates the workflow execution.\n * When this activity is reached, the workflow completes successfully.\n *\n * Usage:\n * ```typescript\n * const end = new EndActivity();\n * await end.execute({});\n * ```\n */\nexport class EndActivity extends Activity {\n constructor() {\n super('EndActivity');\n }\n async execute(input) {\n // This activity marks the end of workflow execution\n console.log('[EndActivity] Workflow completed');\n return this.createResult(undefined, 'Done');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kLWFjdGl2aXR5LmFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9hY3Rpdml0aWVzL2VuZC1hY3Rpdml0eS5hY3Rpdml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFN0M7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFFBQXFDO0lBQ3BFO1FBQ0UsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQTRCO1FBQ3hDLG9EQUFvRDtRQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpdml0eSB9IGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJztcblxuLyoqXG4gKiBFbmQgQWN0aXZpdHkgLSBNYXJrcyB0aGUgZW5kIHBvaW50IG9mIGEgd29ya2Zsb3cuXG4gKiBcbiAqIFRoaXMgaXMgYSB2aXN1YWwgbWFya2VyIGFjdGl2aXR5IHRoYXQgdGVybWluYXRlcyB0aGUgd29ya2Zsb3cgZXhlY3V0aW9uLlxuICogV2hlbiB0aGlzIGFjdGl2aXR5IGlzIHJlYWNoZWQsIHRoZSB3b3JrZmxvdyBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LlxuICogXG4gKiBVc2FnZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IGVuZCA9IG5ldyBFbmRBY3Rpdml0eSgpO1xuICogYXdhaXQgZW5kLmV4ZWN1dGUoe30pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBFbmRBY3Rpdml0eSBleHRlbmRzIEFjdGl2aXR5PFJlY29yZDxzdHJpbmcsIG5ldmVyPiwgdm9pZD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignRW5kQWN0aXZpdHknKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUoaW5wdXQ6IFJlY29yZDxzdHJpbmcsIG5ldmVyPikge1xuICAgIC8vIFRoaXMgYWN0aXZpdHkgbWFya3MgdGhlIGVuZCBvZiB3b3JrZmxvdyBleGVjdXRpb25cbiAgICBjb25zb2xlLmxvZygnW0VuZEFjdGl2aXR5XSBXb3JrZmxvdyBjb21wbGV0ZWQnKTtcbiAgICBcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXN1bHQodW5kZWZpbmVkLCAnRG9uZScpO1xuICB9XG59XG5cbiJdfQ==","import { provideCommandSetups } from '@acorex/platform/runtime';\n/**\n * Command setups for all built-in workflow activities.\n * Registers activities as AXPCommand instances.\n */\nexport const provideWorkflowActivityCommands = () => provideCommandSetups([\n // Workflow Markers\n {\n key: 'workflow-activity:start',\n command: () => import('./start-activity.activity').then(m => m.StartActivity),\n },\n {\n key: 'workflow-activity:end',\n command: () => import('./end-activity.activity').then(m => m.EndActivity),\n },\n // Console Activities\n {\n key: 'workflow-activity:write-line',\n command: () => import('./write-line.activity').then(m => m.WriteLine),\n },\n // Control Flow Activities\n {\n key: 'workflow-activity:sequence',\n command: () => import('./sequence.activity').then(m => m.Sequence),\n },\n {\n key: 'workflow-activity:if',\n command: () => import('./if.activity').then(m => m.If),\n },\n {\n key: 'workflow-activity:while',\n command: () => import('./while.activity').then(m => m.While),\n },\n {\n key: 'workflow-activity:for-each',\n command: () => import('./for-each.activity').then(m => m.ForEach),\n },\n // Dialog Activities\n {\n key: 'workflow-activity:show-confirm-dialog',\n command: () => import('./show-confirm-dialog.activity').then(m => m.ShowConfirmDialog),\n },\n {\n key: 'workflow-activity:show-alert-dialog',\n command: () => import('./show-alert-dialog.activity').then(m => m.ShowAlertDialog),\n },\n // Notification Activities\n {\n key: 'workflow-activity:show-toast',\n command: () => import('./show-toast.activity').then(m => m.ShowToast),\n },\n // Event Activities\n {\n key: 'workflow-activity:dispatch-event',\n command: () => import('./dispatch-event.activity').then(m => m.DispatchEvent),\n },\n // Variable Activities\n {\n key: 'workflow-activity:set-variable',\n command: () => import('./set-variable.activity').then(m => m.SetVariable),\n },\n // Command & Query Activities\n {\n key: 'workflow-activity:execute-command',\n command: () => import('./execute-command.activity').then(m => m.ExecuteCommand),\n },\n {\n key: 'workflow-activity:execute-query',\n command: () => import('./execute-query.activity').then(m => m.ExecuteQuery),\n },\n // Navigation Activities\n {\n key: 'workflow-activity:navigate',\n command: () => import('./navigate.activity').then(m => m.Navigate),\n },\n]);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY29tbWFuZC1zZXR1cHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvYWN0aXZpdHktY29tbWFuZC1zZXR1cHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDeEUsbUJBQW1CO0lBQ25CO1FBQ0UsR0FBRyxFQUFFLHlCQUF5QjtRQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztLQUM5RTtJQUNEO1FBQ0UsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztLQUMxRTtJQUVELHFCQUFxQjtJQUNyQjtRQUNFLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDdEU7SUFFRCwwQkFBMEI7SUFDMUI7UUFDRSxHQUFHLEVBQUUsNEJBQTRCO1FBQ2pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQ25FO0lBQ0Q7UUFDRSxHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUN2RDtJQUNEO1FBQ0UsR0FBRyxFQUFFLHlCQUF5QjtRQUM5QixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztLQUM3RDtJQUNEO1FBQ0UsR0FBRyxFQUFFLDRCQUE0QjtRQUNqQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztLQUNsRTtJQUVELG9CQUFvQjtJQUNwQjtRQUNFLEdBQUcsRUFBRSx1Q0FBdUM7UUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztLQUN2RjtJQUNEO1FBQ0UsR0FBRyxFQUFFLHFDQUFxQztRQUMxQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztLQUNuRjtJQUVELDBCQUEwQjtJQUMxQjtRQUNFLEdBQUcsRUFBRSw4QkFBOEI7UUFDbkMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7S0FDdEU7SUFFRCxtQkFBbUI7SUFDbkI7UUFDRSxHQUFHLEVBQUUsa0NBQWtDO1FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO0tBQzlFO0lBRUQsc0JBQXNCO0lBQ3RCO1FBQ0UsR0FBRyxFQUFFLGdDQUFnQztRQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztLQUMxRTtJQUVELDZCQUE2QjtJQUM3QjtRQUNFLEdBQUcsRUFBRSxtQ0FBbUM7UUFDeEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7S0FDaEY7SUFDRDtRQUNFLEdBQUcsRUFBRSxpQ0FBaUM7UUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7S0FDNUU7SUFFRCx3QkFBd0I7SUFDeEI7UUFDRSxHQUFHLEVBQUUsNEJBQTRCO1FBQ2pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQ25FO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvdmlkZUNvbW1hbmRTZXR1cHMgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3J1bnRpbWUnO1xuXG4vKipcbiAqIENvbW1hbmQgc2V0dXBzIGZvciBhbGwgYnVpbHQtaW4gd29ya2Zsb3cgYWN0aXZpdGllcy5cbiAqIFJlZ2lzdGVycyBhY3Rpdml0aWVzIGFzIEFYUENvbW1hbmQgaW5zdGFuY2VzLlxuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZVdvcmtmbG93QWN0aXZpdHlDb21tYW5kcyA9ICgpID0+IHByb3ZpZGVDb21tYW5kU2V0dXBzKFtcbiAgLy8gV29ya2Zsb3cgTWFya2Vyc1xuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6c3RhcnQnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9zdGFydC1hY3Rpdml0eS5hY3Rpdml0eScpLnRoZW4obSA9PiBtLlN0YXJ0QWN0aXZpdHkpLFxuICB9LFxuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6ZW5kJyxcbiAgICBjb21tYW5kOiAoKSA9PiBpbXBvcnQoJy4vZW5kLWFjdGl2aXR5LmFjdGl2aXR5JykudGhlbihtID0+IG0uRW5kQWN0aXZpdHkpLFxuICB9LFxuXG4gIC8vIENvbnNvbGUgQWN0aXZpdGllc1xuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6d3JpdGUtbGluZScsXG4gICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL3dyaXRlLWxpbmUuYWN0aXZpdHknKS50aGVuKG0gPT4gbS5Xcml0ZUxpbmUpLFxuICB9LFxuXG4gIC8vIENvbnRyb2wgRmxvdyBBY3Rpdml0aWVzXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpzZXF1ZW5jZScsXG4gICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL3NlcXVlbmNlLmFjdGl2aXR5JykudGhlbihtID0+IG0uU2VxdWVuY2UpLFxuICB9LFxuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6aWYnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9pZi5hY3Rpdml0eScpLnRoZW4obSA9PiBtLklmKSxcbiAgfSxcbiAge1xuICAgIGtleTogJ3dvcmtmbG93LWFjdGl2aXR5OndoaWxlJyxcbiAgICBjb21tYW5kOiAoKSA9PiBpbXBvcnQoJy4vd2hpbGUuYWN0aXZpdHknKS50aGVuKG0gPT4gbS5XaGlsZSksXG4gIH0sXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpmb3ItZWFjaCcsXG4gICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL2Zvci1lYWNoLmFjdGl2aXR5JykudGhlbihtID0+IG0uRm9yRWFjaCksXG4gIH0sXG5cbiAgLy8gRGlhbG9nIEFjdGl2aXRpZXNcbiAge1xuICAgIGtleTogJ3dvcmtmbG93LWFjdGl2aXR5OnNob3ctY29uZmlybS1kaWFsb2cnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9zaG93LWNvbmZpcm0tZGlhbG9nLmFjdGl2aXR5JykudGhlbihtID0+IG0uU2hvd0NvbmZpcm1EaWFsb2cpLFxuICB9LFxuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy1hbGVydC1kaWFsb2cnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9zaG93LWFsZXJ0LWRpYWxvZy5hY3Rpdml0eScpLnRoZW4obSA9PiBtLlNob3dBbGVydERpYWxvZyksXG4gIH0sXG5cbiAgLy8gTm90aWZpY2F0aW9uIEFjdGl2aXRpZXNcbiAge1xuICAgIGtleTogJ3dvcmtmbG93LWFjdGl2aXR5OnNob3ctdG9hc3QnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9zaG93LXRvYXN0LmFjdGl2aXR5JykudGhlbihtID0+IG0uU2hvd1RvYXN0KSxcbiAgfSxcblxuICAvLyBFdmVudCBBY3Rpdml0aWVzXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpkaXNwYXRjaC1ldmVudCcsXG4gICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL2Rpc3BhdGNoLWV2ZW50LmFjdGl2aXR5JykudGhlbihtID0+IG0uRGlzcGF0Y2hFdmVudCksXG4gIH0sXG5cbiAgLy8gVmFyaWFibGUgQWN0aXZpdGllc1xuICB7XG4gICAga2V5OiAnd29ya2Zsb3ctYWN0aXZpdHk6c2V0LXZhcmlhYmxlJyxcbiAgICBjb21tYW5kOiAoKSA9PiBpbXBvcnQoJy4vc2V0LXZhcmlhYmxlLmFjdGl2aXR5JykudGhlbihtID0+IG0uU2V0VmFyaWFibGUpLFxuICB9LFxuXG4gIC8vIENvbW1hbmQgJiBRdWVyeSBBY3Rpdml0aWVzXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpleGVjdXRlLWNvbW1hbmQnLFxuICAgIGNvbW1hbmQ6ICgpID0+IGltcG9ydCgnLi9leGVjdXRlLWNvbW1hbmQuYWN0aXZpdHknKS50aGVuKG0gPT4gbS5FeGVjdXRlQ29tbWFuZCksXG4gIH0sXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpleGVjdXRlLXF1ZXJ5JyxcbiAgICBjb21tYW5kOiAoKSA9PiBpbXBvcnQoJy4vZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eScpLnRoZW4obSA9PiBtLkV4ZWN1dGVRdWVyeSksXG4gIH0sXG5cbiAgLy8gTmF2aWdhdGlvbiBBY3Rpdml0aWVzXG4gIHtcbiAgICBrZXk6ICd3b3JrZmxvdy1hY3Rpdml0eTpuYXZpZ2F0ZScsXG4gICAgY29tbWFuZDogKCkgPT4gaW1wb3J0KCcuL25hdmlnYXRlLmFjdGl2aXR5JykudGhlbihtID0+IG0uTmF2aWdhdGUpLFxuICB9LFxuXSk7XG4iXX0=","// Built-in Activities\nexport * from './write-line.activity';\nexport * from './sequence.activity';\nexport * from './show-confirm-dialog.activity';\nexport * from './show-alert-dialog.activity';\nexport * from './show-dialog-layout-builder.activity';\nexport * from './show-toast.activity';\nexport * from './navigate.activity';\nexport * from './set-variable.activity';\nexport * from './dispatch-event.activity';\nexport * from './if.activity';\nexport * from './while.activity';\nexport * from './for-each.activity';\nexport * from './execute-command.activity';\nexport * from './execute-query.activity';\nexport * from './start-activity.activity';\nexport * from './end-activity.activity';\n// Command Setups\nexport * from './activity-command-setups';\n// Re-export activity types\nexport * from '../activity.types';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXRpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0JBQXNCO0FBQ3RCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGlCQUFpQjtBQUNqQixjQUFjLDJCQUEyQixDQUFDO0FBRTFDLDJCQUEyQjtBQUMzQixjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQnVpbHQtaW4gQWN0aXZpdGllc1xuZXhwb3J0ICogZnJvbSAnLi93cml0ZS1saW5lLmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2VxdWVuY2UuYWN0aXZpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zaG93LWNvbmZpcm0tZGlhbG9nLmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc2hvdy1hbGVydC1kaWFsb2cuYWN0aXZpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9zaG93LWRpYWxvZy1sYXlvdXQtYnVpbGRlci5hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL3Nob3ctdG9hc3QuYWN0aXZpdHknO1xuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0ZS5hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL3NldC12YXJpYWJsZS5hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2Rpc3BhdGNoLWV2ZW50LmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vaWYuYWN0aXZpdHknO1xuZXhwb3J0ICogZnJvbSAnLi93aGlsZS5hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL2Zvci1lYWNoLmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0ZS1jb21tYW5kLmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vZXhlY3V0ZS1xdWVyeS5hY3Rpdml0eSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXJ0LWFjdGl2aXR5LmFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vZW5kLWFjdGl2aXR5LmFjdGl2aXR5JztcblxuLy8gQ29tbWFuZCBTZXR1cHNcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktY29tbWFuZC1zZXR1cHMnO1xuXG4vLyBSZS1leHBvcnQgYWN0aXZpdHkgdHlwZXNcbmV4cG9ydCAqIGZyb20gJy4uL2FjdGl2aXR5LnR5cGVzJzsiXX0=","// Workflow Definition Types (Storage/Database)\nexport * from './workflow-definition.types';\nexport * from './workflow-definition.config';\nexport * from './workflow-definition-registry.service';\n// Workflow Instance Types (Storage/Database)\nexport * from './workflow-instance.types';\n// Activity System Types (Simplified)\nexport * from './activity.types';\n// Activity Provider Infrastructure\nexport * from './activity-provider.service';\nexport * from './activity-category.provider';\n// Simple Runtime (Coordinator only)\nexport * from './runtime';\n// Built-in Activities\nexport * from './activities';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3Q0FBd0MsQ0FBQztBQUV2RCw2Q0FBNkM7QUFDN0MsY0FBYywyQkFBMkIsQ0FBQztBQTRDMUMscUNBQXFDO0FBQ3JDLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsbUNBQW1DO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxvQ0FBb0M7QUFDcEMsY0FBYyxXQUFXLENBQUM7QUFFMUIsc0JBQXNCO0FBQ3RCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gV29ya2Zsb3cgRGVmaW5pdGlvbiBUeXBlcyAoU3RvcmFnZS9EYXRhYmFzZSlcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctZGVmaW5pdGlvbi50eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctZGVmaW5pdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcblxuLy8gV29ya2Zsb3cgSW5zdGFuY2UgVHlwZXMgKFN0b3JhZ2UvRGF0YWJhc2UpXG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LWluc3RhbmNlLnR5cGVzJztcblxuLy8gUmUtZXhwb3J0IElBY3Rpdml0eSBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgSUFjdGl2aXR5IH0gZnJvbSAnLi9hY3Rpdml0eS50eXBlcyc7XG5cbi8vIFJlLWV4cG9ydCBXb3JrZmxvdyBEZWZpbml0aW9uIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEFYUFdvcmtmbG93RGVmaW5pdGlvbixcbiAgQVhQV29ya2Zsb3dEZWZpbml0aW9uSnNvbixcbiAgQVhQRmxvd2NoYXJ0LFxuICBBWFBBY3Rpdml0eSxcbiAgQVhQQ29ubmVjdGlvbixcbiAgQVhQRW5kcG9pbnQsXG4gIEFYUFBvc2l0aW9uLFxuICBBWFBWYXJpYWJsZURlZmluaXRpb24sXG4gIEFYUFdvcmtmbG93SW5wdXREZWZpbml0aW9uLFxuICBBWFBXb3JrZmxvd091dHB1dERlZmluaXRpb24sXG4gIEFYUEV4cHJlc3Npb24sXG4gIEFYUElucHV0VmFsdWUsXG4gIEFYUE91dHB1dFZhbHVlLFxuICBBWFBWYXJpYWJsZU1vZGVsLFxuICBBWFBNZXRhZGF0YSxcbiAgQVhQQ3VzdG9tUHJvcGVydGllcyxcbiAgQVhQV29ya2Zsb3dPcHRpb25zLFxuICBBWFBTdG9yZWRXb3JrZmxvd0RlZmluaXRpb24sXG4gIEFYUFZlcnNpb25lZEVudGl0eSxcbn0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnR5cGVzJztcblxuLy8gUmUtZXhwb3J0IFdvcmtmbG93IEluc3RhbmNlIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEFYUFdvcmtmbG93SW5zdGFuY2UsXG4gIEFYUFdvcmtmbG93U3RhdGUsXG4gIEFYUFdvcmtmbG93U3RhdHVzLFxuICBBWFBXb3JrZmxvd1N1YlN0YXR1cyxcbiAgQVhQQWN0aXZpdHlTdGF0dXMsXG4gIEFYUEV4Y2VwdGlvblN0YXRlLFxuICBBWFBBY3Rpdml0eUluY2lkZW50LFxuICBBWFBXb3JrZmxvd0ZhdWx0U3RhdGUsXG4gIEFYUEJvb2ttYXJrLFxuICBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZSxcbiAgQVhQQWN0aXZpdHlWYXJpYWJsZSxcbiAgQVhQQWN0aXZpdHlFeGVjdXRpb25Db250ZXh0U3RhdGUsXG59IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2UudHlwZXMnO1xuXG4vLyBBY3Rpdml0eSBTeXN0ZW0gVHlwZXMgKFNpbXBsaWZpZWQpXG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LnR5cGVzJztcblxuLy8gQWN0aXZpdHkgUHJvdmlkZXIgSW5mcmFzdHJ1Y3R1cmVcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHktcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LWNhdGVnb3J5LnByb3ZpZGVyJztcblxuLy8gU2ltcGxlIFJ1bnRpbWUgKENvb3JkaW5hdG9yIG9ubHkpXG5leHBvcnQgKiBmcm9tICcuL3J1bnRpbWUnO1xuXG4vLyBCdWlsdC1pbiBBY3Rpdml0aWVzXG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXRpZXMnOyJdfQ==","import { Inject, NgModule, Optional, inject } from '@angular/core';\nimport { AXPWorkflowDecideAction } from './actions/decide.action';\nimport { AXPStartWorkflowAction } from './actions/start-workflow.action';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport { provideWorkflowActivityCommands } from './engine';\nimport { AXP_COMMAND_SETUP } from '@acorex/platform/runtime';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowModule {\n static forRoot(config) {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n provideWorkflowActivityCommands(),\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry) => () => {\n registry.registerAction('start-workflow', AXPStartWorkflowAction);\n registry.registerAction('decide', AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true,\n },\n ...Object.values(config?.actions ?? { AXPStartWorkflowAction }),\n ...Object.values(config?.functions ?? {}),\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n // Built-in activities are already registered in forRoot via @NgModule providers\n // No need to register again in forChild\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry) => () => {\n registry.registerAction('start-workflow', AXPStartWorkflowAction);\n registry.registerAction('decide', AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true,\n },\n ...Object.values(config?.actions ?? {}),\n ...Object.values(config?.functions ?? {}),\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n // Inject AXP_COMMAND_SETUP to trigger command registration factory\n this._commandSetup = inject(AXP_COMMAND_SETUP, { optional: true });\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule, deps: [{ token: 'AXPWorkflowModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule, providers: [\n provideWorkflowActivityCommands(),\n ] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n provideWorkflowActivityCommands(),\n ],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPWorkflowModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL3dvcmtmbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBcUI3RCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBaUM7UUFDOUMsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULCtCQUErQixFQUFFO2dCQUNqQztvQkFDRSxPQUFPLEVBQUUsMEJBQTBCO29CQUNuQyxVQUFVLEVBQUUsQ0FBQyxRQUFvQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7d0JBQ3pELFFBQVEsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQzt3QkFDbEUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQzt3QkFDM0QsRUFBRTt3QkFDRixJQUFJLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQzs0QkFDdEIsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNB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WjtnQkFDRCxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ3ZDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLEVBQUUsQ0FBQzthQUMxQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUE0RCxTQUFnQjtRQW5GNUUsbUVBQW1FO1FBQzNELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFtRnBFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixDQUFDLEVBQUUsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4RlUsaUJBQWlCLGtCQW9GSSwwQkFBMEI7Z0hBcEYvQyxpQkFBaUI7Z0hBQWpCLGlCQUFpQixhQUpqQjtZQUNULCtCQUErQixFQUFFO1NBQ2xDOzs0RkFFVSxpQkFBaUI7a0JBUjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDVCwrQkFBK0IsRUFBRTtxQkFDbEM7aUJBQ0Y7OzBCQXFGYyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93RGVjaWRlQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL2RlY2lkZS5hY3Rpb24nO1xuaW1wb3J0IHsgQVhQU3RhcnRXb3JrZmxvd0FjdGlvbiB9IGZyb20gJy4vYWN0aW9ucy9zdGFydC13b3JrZmxvdy5hY3Rpb24nO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LXJlZ2lzdGVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dGdW5jdGlvbiB9IGZyb20gJy4vd29ya2Zsb3cudHlwZXMnO1xuaW1wb3J0IHsgcHJvdmlkZVdvcmtmbG93QWN0aXZpdHlDb21tYW5kcyB9IGZyb20gJy4vZW5naW5lJztcbmltcG9ydCB7IEFYUF9DT01NQU5EX1NFVFVQIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dNb2R1bGVDb25maWdzIHtcbiAgZnVuY3Rpb25zPzoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBUeXBlPEFYUFdvcmtmbG93RnVuY3Rpb24+O1xuICB9O1xuICBhY3Rpb25zPzoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPjtcbiAgfTtcbiAgd29ya2Zsb3dzPzoge1xuICAgIFtuYW1lOiBzdHJpbmddOiBBWFBXb3JrZmxvdztcbiAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW10sXG4gIGV4cG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBwcm92aWRlcnM6IFtcbiAgICBwcm92aWRlV29ya2Zsb3dBY3Rpdml0eUNvbW1hbmRzKCksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93TW9kdWxlIHtcbiAgLy8gSW5qZWN0IEFYUF9DT01NQU5EX1NFVFVQIHRvIHRyaWdnZXIgY29tbWFuZCByZWdpc3RyYXRpb24gZmFjdG9yeVxuICBwcml2YXRlIF9jb21tYW5kU2V0dXAgPSBpbmplY3QoQVhQX0NPTU1BTkRfU0VUVVAsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogQVhQV29ya2Zsb3dNb2R1bGVDb25maWdzKTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWFBXb3JrZmxvd01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogQVhQV29ya2Zsb3dNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZVdvcmtmbG93QWN0aXZpdHlDb21tYW5kcygpLFxuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYUFdvcmtmbG93TW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJBY3Rpb24oJ3N0YXJ0LXdvcmtmbG93JywgQVhQU3RhcnRXb3JrZmxvd0FjdGlvbik7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckFjdGlvbignZGVjaWRlJywgQVhQV29ya2Zsb3dEZWNpZGVBY3Rpb24pO1xuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIGlmIChjb25maWc/LmZ1bmN0aW9ucykge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHR5cGVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5mdW5jdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJGdW5jdGlvbihrZXksIHR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8uYWN0aW9ucykge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHR5cGVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy5hY3Rpb25zKSkge1xuICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQWN0aW9uKGtleSwgdHlwZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBpZiAoY29uZmlnPy53b3JrZmxvd3MpIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB0eXBlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcud29ya2Zsb3dzKSkge1xuICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyV29ya2Zsb3coa2V5LCB0eXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhjb25maWc/LmFjdGlvbnMgPz8geyBBWFBTdGFydFdvcmtmbG93QWN0aW9uIH0pLFxuICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbmZpZz8uZnVuY3Rpb25zID8/IHt9KSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc/OiBBWFBXb3JrZmxvd01vZHVsZUNvbmZpZ3MpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYUFdvcmtmbG93TW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWFBXb3JrZmxvd01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBCdWlsdC1pbiBhY3Rpdml0aWVzIGFyZSBhbHJlYWR5IHJlZ2lzdGVyZWQgaW4gZm9yUm9vdCB2aWEgQE5nTW9kdWxlIHByb3ZpZGVyc1xuICAgICAgICAvLyBObyBuZWVkIHRvIHJlZ2lzdGVyIGFnYWluIGluIGZvckNoaWxkXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQV29ya2Zsb3dNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckFjdGlvbignc3RhcnQtd29ya2Zsb3cnLCBBWFBTdGFydFdvcmtmbG93QWN0aW9uKTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQWN0aW9uKCdkZWNpZGUnLCBBWFBXb3JrZmxvd0RlY2lkZUFjdGlvbik7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8uZnVuY3Rpb25zKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLmZ1bmN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckZ1bmN0aW9uKGtleSwgdHlwZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBpZiAoY29uZmlnPy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLmFjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJBY3Rpb24oa2V5LCB0eXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIGlmIChjb25maWc/LndvcmtmbG93cykge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHR5cGVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy53b3JrZmxvd3MpKSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJXb3JrZmxvdyhrZXksIHR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbmZpZz8uYWN0aW9ucyA/PyB7fSksXG4gICAgICAgIC4uLk9iamVjdC52YWx1ZXMoY29uZmlnPy5mdW5jdGlvbnMgPz8ge30pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoJ0FYUFdvcmtmbG93TW9kdWxlRmFjdG9yeScpIGluc3RhbmNlczogYW55W10pIHtcbiAgICBpbnN0YW5jZXM/LmZvckVhY2goKGYpID0+IHtcbiAgICAgIGYoKTtcbiAgICB9KTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvYWNvcmV4LXBsYXRmb3JtLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.AXPWorkflowRegistryService"],"mappings":"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C,wBAAwB,MAAM,EAAE,OAAO;AACvC,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,MAAM,EAAE,IAAI;AACpC,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,uBAAuB,SAAS,QAAQ,CAAC;AACtD;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,yBAAyB,CAAC;AACxC;AACA,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC5D,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK;AAC/G,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;AACzC,iBAAiB,MAAM;AACvB,iBAAiB,MAAM,CAAC,MAAM,IAAI;AAClC;AACA,gBAAgB;AAChB,qBAAqB,QAAQ,CAAC,KAAK;AACnC,qBAAqB,OAAO,CAAC,I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"}
1
+ {"version":3,"file":"acorex-platform-workflow.mjs","sources":["../tmp-esm2022/workflow/lib/errors.types.js","../tmp-esm2022/workflow/lib/workflow-event-dispatcher.service.js","../tmp-esm2022/workflow/lib/workflow-registery.service.js","../tmp-esm2022/workflow/lib/workflow.types.js","../tmp-esm2022/workflow/lib/actions/decide.action.js","../tmp-esm2022/workflow/lib/workflow.service.js","../tmp-esm2022/workflow/lib/actions/start-workflow.action.js","../tmp-esm2022/workflow/lib/workflow.module.js","../tmp-esm2022/workflow/lib/engine/workflow-definition.config.js","../tmp-esm2022/workflow/lib/engine/workflow-definition-registry.service.js","../tmp-esm2022/workflow/lib/engine/workflow-instance.types.js","../tmp-esm2022/workflow/lib/engine/activity.provider.js","../tmp-esm2022/workflow/lib/engine/activity-definition.service.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-execution.service.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-coordinator.js","../tmp-esm2022/workflow/lib/engine/runtime/workflow-execution.types.js","../tmp-esm2022/workflow/lib/engine/runtime/index.js","../tmp-esm2022/workflow/lib/engine/index.js","../tmp-esm2022/workflow/acorex-platform-workflow.js"],"sourcesContent":["export class AXPWorkflowError extends Error {\n constructor(message, inner = null) {\n super(message);\n this.inner = inner;\n this.name = 'AXPWorkflowError';\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2Vycm9ycy50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsS0FBSztJQUN2QyxZQUFZLE9BQWUsRUFBUyxRQUFzQixJQUFJO1FBQzFELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURpQixVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUUxRCxJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAgIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgcHVibGljIGlubmVyOiBFcnJvciB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hbWUgPSAnQVhQV29ya2Zsb3dFcnJvcic7XG4gICAgfVxufSJdfQ==","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowEventService {\n constructor() {\n this.eventSubject = new Subject();\n }\n dispatch(event) {\n this.eventSubject.next(event);\n }\n get events$() {\n return this.eventSubject.asObservable();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowEventService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL3dvcmtmbG93LWV2ZW50LWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBTTNDLE1BQU0sT0FBTyx1QkFBdUI7SUFIcEM7UUFJVSxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFvQixDQUFDO0tBU3hEO0lBUEMsUUFBUSxDQUFDLEtBQXVCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQzsrR0FUVSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dFdmVudCB9IGZyb20gJy4vd29ya2Zsb3cudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dFdmVudFNlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PEFYUFdvcmtmbG93RXZlbnQ+KCk7XG5cbiAgZGlzcGF0Y2goZXZlbnQ6IEFYUFdvcmtmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGdldCBldmVudHMkKCk6IE9ic2VydmFibGU8QVhQV29ya2Zsb3dFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowRegistryService {\n constructor() {\n this.functionsMap = new Map();\n this.actionsMap = new Map();\n this.workflowsMap = new Map();\n }\n registerWorkflow(name, workflow) {\n this.workflowsMap.set(name, workflow);\n }\n getWorkflow(name) {\n return this.workflowsMap.get(name);\n }\n registerAction(name, action) {\n this.actionsMap.set(name, action);\n }\n getAction(name) {\n return this.actionsMap.get(name);\n }\n registerFunction(name, func) {\n this.functionsMap.set(name, func);\n }\n getFunction(name) {\n return this.functionsMap.get(name);\n }\n getFunctionNames() {\n return Array.from(this.functionsMap.keys());\n }\n getStep(workflowName, stepName) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n return steps[stepName];\n }\n return undefined;\n }\n updateStepInWorkflow(workflowName, stepName, step) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n if (steps[stepName]) {\n steps[stepName] = step;\n }\n else {\n throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);\n }\n }\n else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n addStepToWorkflow(workflowName, stepName, step) {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps;\n if (!steps[stepName]) {\n steps[stepName] = step;\n }\n else {\n throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);\n }\n }\n else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n addAfterStep(workflowId, stepId, newStepId, newStepAction, conditionExpression) {\n const step = this.getStep(workflowId, stepId);\n if (step != undefined) {\n this.addStepToWorkflow(workflowId, newStepId, {\n action: newStepAction,\n nextSteps: step.nextSteps,\n });\n this.updateStepInWorkflow(workflowId, stepId, {\n ...step,\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: conditionExpression }],\n nextStepId: newStepId,\n },\n ],\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUFNakQsTUFBTSxPQUFPLDBCQUEwQjtJQUh2QztRQUlVLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7UUFDNUQsZUFBVSxHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ3hELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7S0E0RnZEO0lBMUZDLGdCQUFnQixDQUFDLElBQVksRUFBRSxRQUFxQjtRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsTUFBK0I7UUFDMUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsSUFBK0I7UUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLElBQUksQ0FB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QUFDO0lBQ0gsQ0FBQzsrR0E5RlUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93LCBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dGdW5jdGlvbiwgQVhQV29ya2Zsb3dTdGVwIH0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZSB7XG4gIHByaXZhdGUgZnVuY3Rpb25zTWFwID0gbmV3IE1hcDxzdHJpbmcsIFR5cGU8QVhQV29ya2Zsb3dGdW5jdGlvbj4+KCk7XG4gIHByaXZhdGUgYWN0aW9uc01hcCA9IG5ldyBNYXA8c3RyaW5nLCBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPj4oKTtcbiAgcHJpdmF0ZSB3b3JrZmxvd3NNYXAgPSBuZXcgTWFwPHN0cmluZywgQVhQV29ya2Zsb3c+KCk7XG5cbiAgcmVnaXN0ZXJXb3JrZmxvdyhuYW1lOiBzdHJpbmcsIHdvcmtmbG93OiBBWFBXb3JrZmxvdyk6IHZvaWQge1xuICAgIHRoaXMud29ya2Zsb3dzTWFwLnNldChuYW1lLCB3b3JrZmxvdyk7XG4gIH1cblxuICBnZXRXb3JrZmxvdyhuYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMud29ya2Zsb3dzTWFwLmdldChuYW1lKTtcbiAgfVxuXG4gIHJlZ2lzdGVyQWN0aW9uKG5hbWU6IHN0cmluZywgYWN0aW9uOiBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuYWN0aW9uc01hcC5zZXQobmFtZSwgYWN0aW9uKTtcbiAgfVxuXG4gIGdldEFjdGlvbihuYW1lOiBzdHJpbmcpOiBUeXBlPEFYUFdvcmtmbG93QWN0aW9uPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aW9uc01hcC5nZXQobmFtZSk7XG4gIH1cblxuICByZWdpc3RlckZ1bmN0aW9uKG5hbWU6IHN0cmluZywgZnVuYzogVHlwZTxBWFBXb3JrZmxvd0Z1bmN0aW9uPik6IHZvaWQge1xuICAgIHRoaXMuZnVuY3Rpb25zTWFwLnNldChuYW1lLCBmdW5jKTtcbiAgfVxuXG4gIGdldEZ1bmN0aW9uKG5hbWU6IHN0cmluZyk6IFR5cGU8QVhQV29ya2Zsb3dGdW5jdGlvbj4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uc01hcC5nZXQobmFtZSk7XG4gIH1cblxuICBnZXRGdW5jdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZ1bmN0aW9uc01hcC5rZXlzKCkpO1xuICB9XG5cbiAgZ2V0U3RlcCh3b3JrZmxvd05hbWU6IHN0cmluZywgc3RlcE5hbWU6IHN0cmluZyk6IEFYUFdvcmtmbG93U3RlcCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB0aGlzLndvcmtmbG93c01hcC5nZXQod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAod29ya2Zsb3cpIHtcbiAgICAgIGNvbnN0IHN0ZXBzID0gd29ya2Zsb3cuc3RlcHMgYXMgeyBba2V5OiBzdHJpbmddOiBBWFBXb3JrZmxvd1N0ZXAgfTtcbiAgICAgIHJldHVybiBzdGVwc1tzdGVwTmFtZV07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICB1cGRhdGVTdGVwSW5Xb3JrZmxvdyh3b3JrZmxvd05hbWU6IHN0cmluZywgc3RlcE5hbWU6IHN0cmluZywgc3RlcDogQVhQV29ya2Zsb3dTdGVwKTogdm9pZCB7XG4gICAgY29uc3Qgd29ya2Zsb3cgPSB0aGlzLndvcmtmbG93c01hcC5nZXQod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAod29ya2Zsb3cpIHtcbiAgICAgIGNvbnN0IHN0ZXBzID0gd29ya2Zsb3cuc3RlcHMgYXMgeyBba2V5OiBzdHJpbmddOiBBWFBXb3JrZmxvd1N0ZXAgfTtcbiAgICAgIGlmIChzdGVwc1tzdGVwTmFtZV0pIHtcbiAgICAgICAgc3RlcHNbc3RlcE5hbWVdID0gc3RlcDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RlcCB3aXRoIG5hbWUgJHtzdGVwTmFtZX0gZG9lcyBub3QgZXhpc3QgaW4gd29ya2Zsb3cgJHt3b3JrZmxvd05hbWV9LmApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFdvcmtmbG93IHdpdGggbmFtZSAke3dvcmtmbG93TmFtZX0gZG9lcyBub3QgZXhpc3QuYCk7XG4gICAgfVxuICB9XG5cbiAgYWRkU3RlcFRvV29ya2Zsb3cod29ya2Zsb3dOYW1lOiBzdHJpbmcsIHN0ZXBOYW1lOiBzdHJpbmcsIHN0ZXA6IEFYUFdvcmtmbG93U3RlcCk6IHZvaWQge1xuICAgIGNvbnN0IHdvcmtmbG93ID0gdGhpcy53b3JrZmxvd3NNYXAuZ2V0KHdvcmtmbG93TmFtZSk7XG4gICAgaWYgKHdvcmtmbG93KSB7XG4gICAgICBjb25zdCBzdGVwcyA9IHdvcmtmbG93LnN0ZXBzIGFzIHsgW2tleTogc3RyaW5nXTogQVhQV29ya2Zsb3dTdGVwIH07XG4gICAgICBpZiAoIXN0ZXBzW3N0ZXBOYW1lXSkge1xuICAgICAgICBzdGVwc1tzdGVwTmFtZV0gPSBzdGVwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdGVwIHdpdGggbmFtZSAke3N0ZXBOYW1lfSBhbHJlYWR5IGV4aXN0cyBpbiB3b3JrZmxvdyAke3dvcmtmbG93TmFtZX0uYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgV29ya2Zsb3cgd2l0aCBuYW1lICR7d29ya2Zsb3dOYW1lfSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICB9XG4gIH1cblxuICBhZGRBZnRlclN0ZXAoXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgIG5ld1N0ZXBJZDogc3RyaW5nLFxuICAgIG5ld1N0ZXBBY3Rpb246IHN0cmluZyxcbiAgICBjb25kaXRpb25FeHByZXNzaW9uOiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgY29uc3Qgc3RlcCA9IHRoaXMuZ2V0U3RlcCh3b3JrZmxvd0lkLCBzdGVwSWQpO1xuICAgIGlmIChzdGVwICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5hZGRTdGVwVG9Xb3JrZmxvdyh3b3JrZmxvd0lkLCBuZXdTdGVwSWQsIHtcbiAgICAgICAgYWN0aW9uOiBuZXdTdGVwQWN0aW9uLFxuICAgICAgICBuZXh0U3RlcHM6IHN0ZXAubmV4dFN0ZXBzLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudXBkYXRlU3RlcEluV29ya2Zsb3cod29ya2Zsb3dJZCwgc3RlcElkLCB7XG4gICAgICAgIC4uLnN0ZXAsXG4gICAgICAgIG5leHRTdGVwczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IFt7IHR5cGU6ICdTSU5HTEUnLCBleHByZXNzaW9uOiBjb25kaXRpb25FeHByZXNzaW9uIH1dLFxuICAgICAgICAgICAgbmV4dFN0ZXBJZDogbmV3U3RlcElkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { filter } from 'rxjs';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { cloneDeep, get } from 'lodash-es';\nimport { setSmart } from '@acorex/platform/core';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowContext {\n constructor(initialData = {}) {\n this.variables = {};\n this.stepOutputs = new Map();\n this.variables = cloneDeep(initialData);\n }\n setVariable(key, value) {\n setSmart(this.variables, key, value);\n }\n setVariables(context = {}) {\n this.variables = { ...this.variables, ...context };\n }\n getVariable(key) {\n return !key ? this.variables : get(this.variables, key);\n }\n setOutput(key, output) {\n this.stepOutputs.set(key, output);\n }\n setOutputs(values) {\n this.stepOutputs = new Map([...this.stepOutputs, ...values]);\n }\n getOutput(key) {\n return this.stepOutputs.get(key);\n }\n}\nexport class AXPWorkflowAction {\n constructor() {\n this.eventService = inject(AXPWorkflowEventService);\n }\n dispatch(event) {\n this.eventService.dispatch(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowAction, decorators: [{\n type: Injectable\n }] });\nexport class AXPWorkflowFunction {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowFunction, decorators: [{\n type: Injectable\n }] });\nexport function createWorkFlowEvent(type) {\n const eventCreator = (payload) => ({ type, payload });\n eventCreator.type = type;\n return eventCreator;\n}\nexport function ofType(...allowedTypes) {\n return filter((event) => allowedTypes.some((type) => event.type === type.type));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvd29ya2Zsb3cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBUWpELE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsWUFBWSxjQUFtQixFQUFFO1FBSXpCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUpoRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBS0QsV0FBVyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBR0QsWUFBWSxDQUFDLFVBQWUsRUFBRTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBVSxHQUFtQjtRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxNQUFXO1FBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQXdCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQzlELENBQUM7SUFFRCxTQUFTLENBQVUsR0FBVztRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQXlCRCxNQUFNLE9BQWdCLGlCQUFpQjtJQUR2QztRQUVVLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FPeEQ7SUFMVyxRQUFRLENBQUMsS0FBdUI7UUFDeEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FMbUIsaUJBQWlCO21IQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRHRDLFVBQVU7O0FBWVgsTUFBTSxPQUFnQixtQkFBbUI7K0dBQW5CLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUR4QyxVQUFVOztBQVlYLE1BQU0sVUFBVSxtQkFBbUIsQ0FBSSxJQUFZO0lBQ2pELE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekQsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDekIsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQTZCLEdBQUcsWUFBcUM7SUFDekYsT0FBTyxNQUFNLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0V2ZW50U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IHNldFNtYXJ0IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvdyB7XG4gIHN0ZXBzOiB7IFtzdGVwTmFtZTogc3RyaW5nXTogQVhQV29ya2Zsb3dTdGVwIH07XG4gIHN0YXJ0U3RlcElkOiBzdHJpbmc7XG59XG5cblxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93Q29udGV4dCB7XG5cbiAgY29uc3RydWN0b3IoaW5pdGlhbERhdGE6IGFueSA9IHt9KSB7XG4gICAgdGhpcy52YXJpYWJsZXMgPSBjbG9uZURlZXAoaW5pdGlhbERhdGEpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YXJpYWJsZXM6IGFueSA9IHt9O1xuICBwcml2YXRlIHN0ZXBPdXRwdXRzOiBNYXA8c3RyaW5nLCBhbnk+ID0gbmV3IE1hcCgpO1xuXG4gIHNldFZhcmlhYmxlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgc2V0U21hcnQodGhpcy52YXJpYWJsZXMsIGtleSwgdmFsdWUpO1xuICB9XG5cblxuICBzZXRWYXJpYWJsZXMoY29udGV4dDogYW55ID0ge30pIHtcbiAgICB0aGlzLnZhcmlhYmxlcyA9IHsgLi4udGhpcy52YXJpYWJsZXMsIC4uLmNvbnRleHQgfTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlPFQgPSBhbnk+KGtleT86IHN0cmluZyB8IG51bGwpOiBUIHtcbiAgICByZXR1cm4gIWtleSA/IHRoaXMudmFyaWFibGVzIDogZ2V0KHRoaXMudmFyaWFibGVzLCBrZXkpO1xuICB9XG5cbiAgc2V0T3V0cHV0KGtleTogc3RyaW5nLCBvdXRwdXQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc3RlcE91dHB1dHMuc2V0KGtleSwgb3V0cHV0KTtcbiAgfVxuXG4gIHNldE91dHB1dHModmFsdWVzOiBNYXA8c3RyaW5nLCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5zdGVwT3V0cHV0cyA9IG5ldyBNYXAoWy4uLnRoaXMuc3RlcE91dHB1dHMsIC4uLnZhbHVlc10pXG4gIH1cblxuICBnZXRPdXRwdXQ8VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwT3V0cHV0cy5nZXQoa2V5KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd0FjdGlvbklucHV0ID0gYW55O1xuXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd0NvbmRpdGlvblR5cGUgPSAnQU5EJyB8ICdPUicgfCAnU0lOR0xFJztcblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0NvbmRpdGlvbiB7XG4gIHR5cGU6IEFYUFdvcmtmbG93Q29uZGl0aW9uVHlwZTtcbiAgY29uZGl0aW9ucz86IEFYUFdvcmtmbG93Q29uZGl0aW9uW107IC8vIE5lc3RlZCBjb25kaXRpb25zXG4gIGV4cHJlc3Npb24/OiBzdHJpbmc7IC8vIFVzZWQgaWYgdHlwZSBpcyAnU0lOR0xFJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93TmV4dFN0ZXAge1xuICBjb25kaXRpb25zOiBBWFBXb3JrZmxvd0NvbmRpdGlvbltdO1xuICBuZXh0U3RlcElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dTdGVwIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGFjdGlvbjogQVhQV29ya2Zsb3dBY3Rpb24gfCBzdHJpbmc7XG4gIGlucHV0PzogQVhQV29ya2Zsb3dBY3Rpb25JbnB1dDtcbiAgbmV4dFN0ZXBzPzogQVhQV29ya2Zsb3dOZXh0U3RlcFtdO1xuICBjb25kaXRpb25zPzogQVhQV29ya2Zsb3dDb25kaXRpb25bXTtcbn1cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gIHByaXZhdGUgZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEFYUFdvcmtmbG93RXZlbnRTZXJ2aWNlKTtcblxuICBwcm90ZWN0ZWQgZGlzcGF0Y2goZXZlbnQ6IEFYUFdvcmtmbG93RXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmV2ZW50U2VydmljZS5kaXNwYXRjaChldmVudCk7XG4gIH1cblxuICBhYnN0cmFjdCBleGVjdXRlKGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8dm9pZD47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcbiAgYWJzdHJhY3QgZXhlY3V0ZSguLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8YW55PiB8IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0V2ZW50PFQgPSBhbnk+IHtcbiAgdHlwZTogc3RyaW5nO1xuICBwYXlsb2FkPzogVDtcbn1cblxuXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVXb3JrRmxvd0V2ZW50PFQ+KHR5cGU6IHN0cmluZykge1xuICBjb25zdCBldmVudENyZWF0b3IgPSAocGF5bG9hZDogVCkgPT4gKHsgdHlwZSwgcGF5bG9hZCB9KTtcbiAgZXZlbnRDcmVhdG9yLnR5cGUgPSB0eXBlO1xuICByZXR1cm4gZXZlbnRDcmVhdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb2ZUeXBlPFQgZXh0ZW5kcyB7IHR5cGU6IHN0cmluZyB9PiguLi5hbGxvd2VkVHlwZXM6IEFycmF5PHsgdHlwZTogc3RyaW5nIH0+KSB7XG4gIHJldHVybiBmaWx0ZXIoKGV2ZW50OiBUKSA9PiBhbGxvd2VkVHlwZXMuc29tZSgodHlwZSkgPT4gZXZlbnQudHlwZSA9PT0gdHlwZS50eXBlKSk7XG59XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction } from \"../workflow.types\";\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowDecideAction extends AXPWorkflowAction {\n async execute(context) {\n // its a fake action\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaWRlLmFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi9hY3Rpb25zL2RlY2lkZS5hY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7O0FBTTFFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUNyQyxvQkFBb0I7SUFDeEIsQ0FBQzsrR0FIUSx1QkFBdUI7bUhBQXZCLHVCQUF1QixjQUZwQixNQUFNOzs0RkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0FjdGlvbiwgQVhQV29ya2Zsb3dDb250ZXh0IH0gZnJvbSBcIi4uL3dvcmtmbG93LnR5cGVzXCI7XG5cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dEZWNpZGVBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG4gICAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy8gaXRzIGEgZmFrZSBhY3Rpb25cbiAgICB9XG59Il19","import { Injectable, Injector, inject } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { AXPWorkflowError } from './errors.types';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport { AXPWorkflowContext, } from './workflow.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./workflow-registery.service\";\nexport class AXPWorkflowService {\n get events$() {\n return this.eventService.events$;\n }\n constructor(registryService, injector) {\n this.registryService = registryService;\n this.injector = injector;\n this.eventService = inject(AXPWorkflowEventService);\n }\n exists(name) {\n return !!this.registryService.getWorkflow(name);\n }\n async execute(workflow, initialContext = null) {\n // Instantiate or retrieve the workflow\n const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;\n let currentStepId = wk.startStepId;\n const context = initialContext instanceof AXPWorkflowContext\n ? initialContext\n : new AXPWorkflowContext(this.processData(initialContext) ?? {});\n // Initialize context with initial variables\n while (currentStepId) {\n const currentStep = wk.steps[currentStepId];\n if (!currentStep) {\n throw new AXPWorkflowError(`Step '${currentStepId}' not found in the workflow steps.`);\n }\n // Instantiate or retrieve the action\n const action = typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;\n //\n if (currentStep.input) {\n let inputs = {};\n await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);\n await new Promise((resolve) => setTimeout(async () => {\n Object.assign(action, inputs);\n resolve(0);\n }));\n }\n try {\n await new Promise((resolve) => setTimeout(async () => {\n await action.execute(context);\n resolve(0);\n }, 0));\n }\n catch (error) {\n console.error(error);\n throw new AXPWorkflowError('Workflow Error', error);\n }\n // Determine the next step based on the conditions\n const nextStepInfo = await this.determineNextStep(currentStep, context);\n if (nextStepInfo) {\n currentStepId = nextStepInfo.nextStepId;\n }\n else {\n break; // Exit the loop if no next step is determined\n }\n }\n return context;\n }\n processData(initialContext) {\n //TODO: update values with expressions and return new object\n return initialContext;\n }\n getActionInstance(actionName) {\n const actionType = this.registryService.getAction(actionName);\n if (!actionType) {\n throw new AXPWorkflowError(`Action type '${actionName}' not found in the registry.`);\n }\n return this.injector.get(actionType);\n }\n getWorkflowInstance(workflowName) {\n const workflowType = this.registryService.getWorkflow(workflowName);\n if (!workflowType) {\n throw new AXPWorkflowError(`Workflow type '${workflowName}' not found in the registry.`);\n }\n return workflowType;\n }\n async determineNextStep(currentStep, context) {\n if (!currentStep.nextSteps) {\n return null;\n }\n for (const nextStep of currentStep.nextSteps) {\n if (await this.evaluateCondition(nextStep.conditions, context)) {\n return nextStep;\n }\n }\n return null;\n }\n async evaluateCondition(conditions, context) {\n if (!conditions || conditions.length === 0) {\n return true; // If no conditions, the step proceeds\n }\n // Map each condition to a promise using evaluateSingleCondition\n const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));\n // Wait for all promises to resolve\n const results = await Promise.all(conditionPromises);\n // Check if every condition is true\n return results.every((result) => result);\n }\n async evaluateSingleCondition(condition, context) {\n switch (condition.type) {\n case 'SINGLE':\n return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context));\n case 'AND':\n // Evaluate all conditions with 'AND' logic\n const andConditions = condition.conditions ?? [];\n const andResults = await Promise.all(andConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return andResults.every((result) => result);\n case 'OR':\n // Evaluate all conditions with 'OR' logic\n const orConditions = condition.conditions ?? [];\n const orResults = await Promise.all(orConditions.map((cond) => this.evaluateSingleCondition(cond, context)));\n return orResults.some((result) => result);\n default:\n throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);\n }\n }\n //TODO: return any and recursively update object, update scopes\n async evaluateExpression(templateExpression, context) {\n try {\n let expression = '';\n if (typeof templateExpression === 'string' && templateExpression.trim().includes('{{')) {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n expression = expressionMatch[1];\n }\n else {\n expression = templateExpression;\n }\n // Create a scope that includes context and registered functions\n const scope = { context, ...this.createFunctionScope() };\n // Evaluating the expression within the created scope\n const sandbox = new Function('scope', `return (async function() { with (scope) { return ${expression}; } })();`);\n const result = await sandbox(scope);\n return result;\n }\n catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n async processInputs(obj, inputs, pathPrefix = '', context = {}) {\n if (!obj) {\n return;\n }\n for await (const i of Object.entries(obj)) {\n const key = i[0];\n const value = i[1];\n const currentPath = pathPrefix ? `${pathPrefix}.${key}` : key;\n if (typeof value === 'string' && value.trim().includes('{{')) {\n const expValue = await this.evaluateExpression(value, context);\n set(inputs, currentPath, expValue);\n }\n else if (typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))) {\n // Recursively handle nested objects\n this.processInputs(value, inputs, currentPath, context);\n }\n else {\n // Apply static values directly\n set(inputs, currentPath, value);\n }\n }\n }\n createFunctionScope() {\n const scope = {};\n this.registryService.getFunctionNames().forEach((name) => {\n scope[name] = this.getFunctionInstance(name).execute;\n });\n return { methods: { scope } };\n }\n getFunctionInstance(functionName) {\n const functionType = this.registryService.getFunction(functionName);\n if (!functionType) {\n throw new AXPWorkflowError(`Function type '${functionName}' not found in the registry.`);\n }\n return this.injector.get(functionType);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, deps: [{ token: i1.AXPWorkflowRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.AXPWorkflowRegistryService }, { type: i0.Injector }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd29ya2Zsb3cvc3JjL2xpYi93b3JrZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRSxPQUFPLEVBSUwsa0JBQWtCLEdBS25CLE1BQU0sa0JBQWtCLENBQUM7OztBQUsxQixNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQW9CLGVBQTJDLEVBQVUsUUFBa0I7UUFBdkUsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU5uRixpQkFBWSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBTXdDLENBQUM7SUFFaEcsTUFBTSxDQUFDLElBQVk7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUdELEtBQUssQ0FBQyxPQUFPLENBQ1gsUUFBOEIsRUFDOUIsaUJBQWtELElBQUk7UUFFdEQsdUNBQXVDO1FBQ3ZDLE1BQU0sRUFBRSxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFeEYsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUNuQyxNQUFNLE9BQU8sR0FDWCxjQUFjLFlBQVksa0JBQWtCO1lBQzFDLENBQUMsQ0FBQyxjQUFjO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDckUsNENBQTRDO1FBRTVDLE9BQU8sYUFBYSxFQUFFLENBQUM7WUFDckIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxTQUFTLGFBQWEsb0NBQW9DLENBQUMsQ0FBQztZQUN6RixDQUFDO1lBRUQscUNBQXFDO1lBQ3JDLE1BQU0sTUFBTSxHQUNWLE9BQU8sV0FBVyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDM0csRUFBRTtZQUNGLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QixJQUFJLE1BQU0sR0FBUSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzVFLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM1QixVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO29CQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzVCLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDcEIsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUM5QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNOLENBQUM7WUFDSixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQixNQUFNLElBQUksZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsS0FBYyxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELGtEQUFrRDtZQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDeEUsSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDakIsYUFBYSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyw4Q0FBOEM7WUFDdkQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sV0FBVyxDQUFDLGNBQW1CO1FBQ3JDLDREQUE0RDtRQUM1RCxPQUFPLGNBQWMsQ0FBQztJQUN4QixDQUFDO0lBSU8saUJBQWlCLENBQUMsVUFBa0I7UUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsVUFBVSw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxZQUFvQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixZQUFZLDhCQUE4QixDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQzdCLFdBQTRCLEVBQzVCLE9BQTJCO1FBRTNCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsS0FBSyxNQUFNLFFBQVEsSUFBSSxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0MsSUFBSSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQy9ELE9BQU8sUUFBUSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQWtDLEVBQUUsT0FBMkI7UUFDN0YsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNDLE9BQU8sSUFBSSxDQUFDLENBQUMsc0NBQXNDO1FBQ3JELENBQUM7UUFFRCxnRUFBZ0U7UUFDaEUsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFMUcsbUNBQW1DO1FBQ25DLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXJELG1DQUFtQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxLQUFLLENBQUMsdUJBQXVCLENBQ25DLFNBQStCLEVBQy9CLE9BQTJCO1FBRTNCLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUssUUFBUTtnQkFDWCxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQVksQ0FBQztZQUNsSCxLQUFLLEtBQUs7Z0JBQ1IsMkNBQTJDO2dCQUMzQyxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxVQUFVLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRyxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRTlDLEtBQUssSUFBSTtnQkFDUCwwQ0FBMEM7Z0JBQzFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUNoRCxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdHLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFNUM7Z0JBQ0UsTUFBTSxJQUFJLGdCQUFnQixDQUFDLCtCQUErQixTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDO0lBQ0gsQ0FBQztJQUVELCtEQUErRDtJQUN2RCxLQUFLLENBQUMsa0JBQWtCLENBQUMsa0JBQTBCLEVBQUUsT0FBMkI7UUFDdEYsSUFBSSxDQUFDO1lBQ0gsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksT0FBTyxrQkFBa0IsS0FBSyxRQUFRLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZGLE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sS0FBSyxDQUFDLGlDQUFpQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7Z0JBQ3RFLENBQUM7Z0JBQ0QsVUFBVSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sVUFBVSxHQUFHLGtCQUFrQixDQUFDO1lBQ2xDLENBQUM7WUFDRCxnRUFBZ0U7WUFDaEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQ3pELHFEQUFxRDtZQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsb0RBQW9ELFVBQVUsV0FBVyxDQUFDLENBQUM7WUFDakgsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQUUsYUFBcUIsRUFBRSxFQUFFLFVBQWUsRUFBRTtRQUMzRixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDL0QsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxJQUNMLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQ3pCLEtBQUssS0FBSyxJQUFJO2dCQUNkLENBQUMsS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUN0RCxDQUFDO2dCQUNELG9DQUFvQztnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sK0JBQStCO2dCQUMvQixHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxZQUFvQjtRQUM5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdCQUFnQixDQUFDLGtCQUFrQixZQUFZLDhCQUE4QixDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQzsrR0FwTlUsa0JBQWtCO21IQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7NEZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCwgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFYUFdvcmtmbG93RXJyb3IgfSBmcm9tICcuL2Vycm9ycy50eXBlcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0V2ZW50U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXZlbnQtZGlzcGF0Y2hlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy1yZWdpc3Rlcnkuc2VydmljZSc7XG5pbXBvcnQge1xuICBBWFBXb3JrZmxvdyxcbiAgQVhQV29ya2Zsb3dBY3Rpb24sXG4gIEFYUFdvcmtmbG93Q29uZGl0aW9uLFxuICBBWFBXb3JrZmxvd0NvbnRleHQsXG4gIEFYUFdvcmtmbG93RXZlbnQsXG4gIEFYUFdvcmtmbG93RnVuY3Rpb24sXG4gIEFYUFdvcmtmbG93TmV4dFN0ZXAsXG4gIEFYUFdvcmtmbG93U3RlcCxcbn0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWFBXb3JrZmxvd1NlcnZpY2Uge1xuICBwcml2YXRlIGV2ZW50U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd0V2ZW50U2VydmljZSk7XG5cbiAgZ2V0IGV2ZW50cyQoKTogT2JzZXJ2YWJsZTxBWFBXb3JrZmxvd0V2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRTZXJ2aWNlLmV2ZW50cyQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZ2lzdHJ5U2VydmljZTogQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UsIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cblxuICBleGlzdHMobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0V29ya2Zsb3cobmFtZSk7XG4gIH1cblxuXG4gIGFzeW5jIGV4ZWN1dGUoXG4gICAgd29ya2Zsb3c6IEFYUFdvcmtmbG93IHwgc3RyaW5nLFxuICAgIGluaXRpYWxDb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQgfCBhbnkgfCBudWxsID0gbnVsbFxuICApOiBQcm9taXNlPEFYUFdvcmtmbG93Q29udGV4dD4ge1xuICAgIC8vIEluc3RhbnRpYXRlIG9yIHJldHJpZXZlIHRoZSB3b3JrZmxvd1xuICAgIGNvbnN0IHdrID0gdHlwZW9mIHdvcmtmbG93ID09PSAnc3RyaW5nJyA/IHRoaXMuZ2V0V29ya2Zsb3dJbnN0YW5jZSh3b3JrZmxvdykgOiB3b3JrZmxvdztcblxuICAgIGxldCBjdXJyZW50U3RlcElkID0gd2suc3RhcnRTdGVwSWQ7XG4gICAgY29uc3QgY29udGV4dCA9XG4gICAgICBpbml0aWFsQ29udGV4dCBpbnN0YW5jZW9mIEFYUFdvcmtmbG93Q29udGV4dFxuICAgICAgICA/IGluaXRpYWxDb250ZXh0XG4gICAgICAgIDogbmV3IEFYUFdvcmtmbG93Q29udGV4dCh0aGlzLnByb2Nlc3NEYXRhKGluaXRpYWxDb250ZXh0KSA/PyB7fSk7XG4gICAgLy8gSW5pdGlhbGl6ZSBjb250ZXh0IHdpdGggaW5pdGlhbCB2YXJpYWJsZXNcblxuICAgIHdoaWxlIChjdXJyZW50U3RlcElkKSB7XG4gICAgICBjb25zdCBjdXJyZW50U3RlcCA9IHdrLnN0ZXBzW2N1cnJlbnRTdGVwSWRdO1xuICAgICAgaWYgKCFjdXJyZW50U3RlcCkge1xuICAgICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgU3RlcCAnJHtjdXJyZW50U3RlcElkfScgbm90IGZvdW5kIGluIHRoZSB3b3JrZmxvdyBzdGVwcy5gKTtcbiAgICAgIH1cblxuICAgICAgLy8gSW5zdGFudGlhdGUgb3IgcmV0cmlldmUgdGhlIGFjdGlvblxuICAgICAgY29uc3QgYWN0aW9uID1cbiAgICAgICAgdHlwZW9mIGN1cnJlbnRTdGVwLmFjdGlvbiA9PT0gJ3N0cmluZycgPyB0aGlzLmdldEFjdGlvbkluc3RhbmNlKGN1cnJlbnRTdGVwLmFjdGlvbikgOiBjdXJyZW50U3RlcC5hY3Rpb247XG4gICAgICAvL1xuICAgICAgaWYgKGN1cnJlbnRTdGVwLmlucHV0KSB7XG4gICAgICAgIGxldCBpbnB1dHM6IGFueSA9IHt9O1xuICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NJbnB1dHMoY2xvbmVEZWVwKGN1cnJlbnRTdGVwLmlucHV0KSwgaW5wdXRzLCAnJywgY29udGV4dCk7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PlxuICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIGlucHV0cyk7XG4gICAgICAgICAgICByZXNvbHZlKDApO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT5cbiAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbi5leGVjdXRlKGNvbnRleHQpO1xuICAgICAgICAgICAgcmVzb2x2ZSgwKTtcbiAgICAgICAgICB9LCAwKVxuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIHRocm93IG5ldyBBWFBXb3JrZmxvd0Vycm9yKCdXb3JrZmxvdyBFcnJvcicsIGVycm9yIGFzIEVycm9yKTtcbiAgICAgIH1cbiAgICAgIC8vIERldGVybWluZSB0aGUgbmV4dCBzdGVwIGJhc2VkIG9uIHRoZSBjb25kaXRpb25zXG4gICAgICBjb25zdCBuZXh0U3RlcEluZm8gPSBhd2FpdCB0aGlzLmRldGVybWluZU5leHRTdGVwKGN1cnJlbnRTdGVwLCBjb250ZXh0KTtcbiAgICAgIGlmIChuZXh0U3RlcEluZm8pIHtcbiAgICAgICAgY3VycmVudFN0ZXBJZCA9IG5leHRTdGVwSW5mby5uZXh0U3RlcElkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnJlYWs7IC8vIEV4aXQgdGhlIGxvb3AgaWYgbm8gbmV4dCBzdGVwIGlzIGRldGVybWluZWRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NEYXRhKGluaXRpYWxDb250ZXh0OiBhbnkpOiBhbnkge1xuICAgIC8vVE9ETzogdXBkYXRlIHZhbHVlcyB3aXRoIGV4cHJlc3Npb25zIGFuZCByZXR1cm4gbmV3IG9iamVjdFxuICAgIHJldHVybiBpbml0aWFsQ29udGV4dDtcbiAgfVxuXG5cblxuICBwcml2YXRlIGdldEFjdGlvbkluc3RhbmNlKGFjdGlvbk5hbWU6IHN0cmluZyk6IEFYUFdvcmtmbG93QWN0aW9uIHtcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0QWN0aW9uKGFjdGlvbk5hbWUpO1xuICAgIGlmICghYWN0aW9uVHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYEFjdGlvbiB0eXBlICcke2FjdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoYWN0aW9uVHlwZSk7XG4gIH1cblxuICBwcml2YXRlIGdldFdvcmtmbG93SW5zdGFuY2Uod29ya2Zsb3dOYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvdyB7XG4gICAgY29uc3Qgd29ya2Zsb3dUeXBlID0gdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0V29ya2Zsb3cod29ya2Zsb3dOYW1lKTtcbiAgICBpZiAoIXdvcmtmbG93VHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFdvcmtmbG93IHR5cGUgJyR7d29ya2Zsb3dOYW1lfScgbm90IGZvdW5kIGluIHRoZSByZWdpc3RyeS5gKTtcbiAgICB9XG4gICAgcmV0dXJuIHdvcmtmbG93VHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGV0ZXJtaW5lTmV4dFN0ZXAoXG4gICAgY3VycmVudFN0ZXA6IEFYUFdvcmtmbG93U3RlcCxcbiAgICBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHRcbiAgKTogUHJvbWlzZTxBWFBXb3JrZmxvd05leHRTdGVwIHwgbnVsbD4ge1xuICAgIGlmICghY3VycmVudFN0ZXAubmV4dFN0ZXBzKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBuZXh0U3RlcCBvZiBjdXJyZW50U3RlcC5uZXh0U3RlcHMpIHtcbiAgICAgIGlmIChhd2FpdCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKG5leHRTdGVwLmNvbmRpdGlvbnMsIGNvbnRleHQpKSB7XG4gICAgICAgIHJldHVybiBuZXh0U3RlcDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbnM6IEFYUFdvcmtmbG93Q29uZGl0aW9uW10sIGNvbnRleHQ6IEFYUFdvcmtmbG93Q29udGV4dCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7IC8vIElmIG5vIGNvbmRpdGlvbnMsIHRoZSBzdGVwIHByb2NlZWRzXG4gICAgfVxuXG4gICAgLy8gTWFwIGVhY2ggY29uZGl0aW9uIHRvIGEgcHJvbWlzZSB1c2luZyBldmFsdWF0ZVNpbmdsZUNvbmRpdGlvblxuICAgIGNvbnN0IGNvbmRpdGlvblByb21pc2VzID0gY29uZGl0aW9ucy5tYXAoKGNvbmRpdGlvbikgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kaXRpb24sIGNvbnRleHQpKTtcblxuICAgIC8vIFdhaXQgZm9yIGFsbCBwcm9taXNlcyB0byByZXNvbHZlXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKGNvbmRpdGlvblByb21pc2VzKTtcblxuICAgIC8vIENoZWNrIGlmIGV2ZXJ5IGNvbmRpdGlvbiBpcyB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdHMuZXZlcnkoKHJlc3VsdCkgPT4gcmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZXZhbHVhdGVTaW5nbGVDb25kaXRpb24oXG4gICAgY29uZGl0aW9uOiBBWFBXb3JrZmxvd0NvbmRpdGlvbixcbiAgICBjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHRcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgc3dpdGNoIChjb25kaXRpb24udHlwZSkge1xuICAgICAgY2FzZSAnU0lOR0xFJzpcbiAgICAgICAgcmV0dXJuICghY29uZGl0aW9uLmV4cHJlc3Npb24gPyB0cnVlIDogYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24oY29uZGl0aW9uLmV4cHJlc3Npb24sIGNvbnRleHQpKSBhcyBib29sZWFuO1xuICAgICAgY2FzZSAnQU5EJzpcbiAgICAgICAgLy8gRXZhbHVhdGUgYWxsIGNvbmRpdGlvbnMgd2l0aCAnQU5EJyBsb2dpY1xuICAgICAgICBjb25zdCBhbmRDb25kaXRpb25zID0gY29uZGl0aW9uLmNvbmRpdGlvbnMgPz8gW107XG4gICAgICAgIGNvbnN0IGFuZFJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChhbmRDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xuICAgICAgICByZXR1cm4gYW5kUmVzdWx0cy5ldmVyeSgocmVzdWx0KSA9PiByZXN1bHQpO1xuXG4gICAgICBjYXNlICdPUic6XG4gICAgICAgIC8vIEV2YWx1YXRlIGFsbCBjb25kaXRpb25zIHdpdGggJ09SJyBsb2dpY1xuICAgICAgICBjb25zdCBvckNvbmRpdGlvbnMgPSBjb25kaXRpb24uY29uZGl0aW9ucyA/PyBbXTtcbiAgICAgICAgY29uc3Qgb3JSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwob3JDb25kaXRpb25zLm1hcCgoY29uZCkgPT4gdGhpcy5ldmFsdWF0ZVNpbmdsZUNvbmRpdGlvbihjb25kLCBjb250ZXh0KSkpO1xuICAgICAgICByZXR1cm4gb3JSZXN1bHRzLnNvbWUoKHJlc3VsdCkgPT4gcmVzdWx0KTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEFYUFdvcmtmbG93RXJyb3IoYFVuc3VwcG9ydGVkIGNvbmRpdGlvbiB0eXBlOiAke2NvbmRpdGlvbi50eXBlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8vVE9ETzogcmV0dXJuIGFueSBhbmQgcmVjdXJzaXZlbHkgdXBkYXRlIG9iamVjdCwgdXBkYXRlIHNjb3Blc1xuICBwcml2YXRlIGFzeW5jIGV2YWx1YXRlRXhwcmVzc2lvbih0ZW1wbGF0ZUV4cHJlc3Npb246IHN0cmluZywgY29udGV4dDogQVhQV29ya2Zsb3dDb250ZXh0KTogUHJvbWlzZTxCb29sZWFuPiB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBleHByZXNzaW9uID0gJyc7XG4gICAgICBpZiAodHlwZW9mIHRlbXBsYXRlRXhwcmVzc2lvbiA9PT0gJ3N0cmluZycgJiYgdGVtcGxhdGVFeHByZXNzaW9uLnRyaW0oKS5pbmNsdWRlcygne3snKSkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uTWF0Y2ggPSB0ZW1wbGF0ZUV4cHJlc3Npb24ubWF0Y2goL1xce1xce1xccyooLio/KVxccypcXH1cXH0vKTtcbiAgICAgICAgaWYgKCFleHByZXNzaW9uTWF0Y2gpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gdmFsaWQgZXhwcmVzc2lvbiBmb3VuZCBpbiBcIiR7dGVtcGxhdGVFeHByZXNzaW9ufVwiYCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwcmVzc2lvbiA9IGV4cHJlc3Npb25NYXRjaFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGV4cHJlc3Npb24gPSB0ZW1wbGF0ZUV4cHJlc3Npb247XG4gICAgICB9XG4gICAgICAvLyBDcmVhdGUgYSBzY29wZSB0aGF0IGluY2x1ZGVzIGNvbnRleHQgYW5kIHJlZ2lzdGVyZWQgZnVuY3Rpb25zXG4gICAgICBjb25zdCBzY29wZSA9IHsgY29udGV4dCwgLi4udGhpcy5jcmVhdGVGdW5jdGlvblNjb3BlKCkgfTtcbiAgICAgIC8vIEV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb24gd2l0aGluIHRoZSBjcmVhdGVkIHNjb3BlXG4gICAgICBjb25zdCBzYW5kYm94ID0gbmV3IEZ1bmN0aW9uKCdzY29wZScsIGByZXR1cm4gKGFzeW5jIGZ1bmN0aW9uKCkgeyB3aXRoIChzY29wZSkgeyByZXR1cm4gJHtleHByZXNzaW9ufTsgfSB9KSgpO2ApO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgc2FuZGJveChzY29wZSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBldmFsdWF0aW5nIGV4cHJlc3Npb246JywgZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0lucHV0cyhvYmo6IGFueSwgaW5wdXRzOiBhbnksIHBhdGhQcmVmaXg6IHN0cmluZyA9ICcnLCBjb250ZXh0OiBhbnkgPSB7fSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghb2JqKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIGF3YWl0IChjb25zdCBpIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGNvbnN0IGtleSA9IGlbMF07XG4gICAgICBjb25zdCB2YWx1ZSA9IGlbMV07XG4gICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhdGhQcmVmaXggPyBgJHtwYXRoUHJlZml4fS4ke2tleX1gIDoga2V5O1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmluY2x1ZGVzKCd7eycpKSB7XG4gICAgICAgIGNvbnN0IGV4cFZhbHVlID0gYXdhaXQgdGhpcy5ldmFsdWF0ZUV4cHJlc3Npb24odmFsdWUsIGNvbnRleHQpO1xuICAgICAgICBzZXQoaW5wdXRzLCBjdXJyZW50UGF0aCwgZXhwVmFsdWUpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgICAgICAodmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICkge1xuICAgICAgICAvLyBSZWN1cnNpdmVseSBoYW5kbGUgbmVzdGVkIG9iamVjdHNcbiAgICAgICAgdGhpcy5wcm9jZXNzSW5wdXRzKHZhbHVlLCBpbnB1dHMsIGN1cnJlbnRQYXRoLCBjb250ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHN0YXRpYyB2YWx1ZXMgZGlyZWN0bHlcbiAgICAgICAgc2V0KGlucHV0cywgY3VycmVudFBhdGgsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uU2NvcGUoKTogYW55IHtcbiAgICBjb25zdCBzY29wZTogYW55ID0ge307XG4gICAgdGhpcy5yZWdpc3RyeVNlcnZpY2UuZ2V0RnVuY3Rpb25OYW1lcygpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIHNjb3BlW25hbWVdID0gdGhpcy5nZXRGdW5jdGlvbkluc3RhbmNlKG5hbWUpLmV4ZWN1dGU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgbWV0aG9kczogeyBzY29wZSB9IH07XG4gIH1cblxuICBwcml2YXRlIGdldEZ1bmN0aW9uSW5zdGFuY2UoZnVuY3Rpb25OYW1lOiBzdHJpbmcpOiBBWFBXb3JrZmxvd0Z1bmN0aW9uIHtcbiAgICBjb25zdCBmdW5jdGlvblR5cGUgPSB0aGlzLnJlZ2lzdHJ5U2VydmljZS5nZXRGdW5jdGlvbihmdW5jdGlvbk5hbWUpO1xuICAgIGlmICghZnVuY3Rpb25UeXBlKSB7XG4gICAgICB0aHJvdyBuZXcgQVhQV29ya2Zsb3dFcnJvcihgRnVuY3Rpb24gdHlwZSAnJHtmdW5jdGlvbk5hbWV9JyBub3QgZm91bmQgaW4gdGhlIHJlZ2lzdHJ5LmApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmplY3Rvci5nZXQoZnVuY3Rpb25UeXBlKTtcbiAgfVxufVxuIl19","import { inject, Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction } from \"../workflow.types\";\nimport { AXPWorkflowService } from \"../workflow.service\";\nimport * as i0 from \"@angular/core\";\nexport class AXPStartWorkflowAction extends AXPWorkflowAction {\n constructor() {\n super(...arguments);\n this.workflowService = inject(AXPWorkflowService);\n }\n async execute(context) {\n //console.log(\"start WK current context\", context);\n //console.log(\"start WK input context\", this.context);\n if (this.context)\n context.setVariables(this.context);\n //console.log(\"start WK merged context\", context);\n try {\n await this.workflowService.execute(this.workflow, context);\n }\n catch (e) {\n throw e;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnQtd29ya2Zsb3cuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2FjdGlvbnMvc3RhcnQtd29ya2Zsb3cuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGlCQUFpQjtJQUg3RDs7UUFLWSxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0tBa0J2RDtJQWRHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBMkI7UUFDckMsbURBQW1EO1FBQ25ELHNEQUFzRDtRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsa0RBQWtEO1FBQ2xELElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsQ0FBQztRQUNaLENBQUM7SUFFTCxDQUFDOytHQW5CUSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZuQixNQUFNOzs0RkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0NvbnRleHQgfSBmcm9tIFwiLi4vd29ya2Zsb3cudHlwZXNcIjtcbmltcG9ydCB7IEFYUFdvcmtmbG93U2VydmljZSB9IGZyb20gXCIuLi93b3JrZmxvdy5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFYUFN0YXJ0V29ya2Zsb3dBY3Rpb24gZXh0ZW5kcyBBWFBXb3JrZmxvd0FjdGlvbiB7XG5cbiAgICBwcml2YXRlIHdvcmtmbG93U2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd1NlcnZpY2UpXG4gICAgcHJpdmF0ZSB3b3JrZmxvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgY29udGV4dDogYW55O1xuXG4gICAgYXN5bmMgZXhlY3V0ZShjb250ZXh0OiBBWFBXb3JrZmxvd0NvbnRleHQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIGN1cnJlbnQgY29udGV4dFwiLCBjb250ZXh0KTtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIGlucHV0IGNvbnRleHRcIiwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dClcbiAgICAgICAgICAgIGNvbnRleHQuc2V0VmFyaWFibGVzKHRoaXMuY29udGV4dClcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcInN0YXJ0IFdLIG1lcmdlZCBjb250ZXh0XCIsIGNvbnRleHQpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy53b3JrZmxvd1NlcnZpY2UuZXhlY3V0ZSh0aGlzLndvcmtmbG93LCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG4iXX0=","import { Inject, NgModule, Optional } from '@angular/core';\nimport { AXPWorkflowDecideAction } from './actions/decide.action';\nimport { AXPStartWorkflowAction } from './actions/start-workflow.action';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport * as i0 from \"@angular/core\";\nexport class AXPWorkflowModule {\n static forRoot(config) {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry) => () => {\n registry.registerAction('start-workflow', AXPStartWorkflowAction);\n registry.registerAction('decide', AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true,\n },\n ...Object.values(config?.actions ?? { AXPStartWorkflowAction }),\n ...Object.values(config?.functions ?? {}),\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n // Built-in activities are already registered in forRoot via @NgModule providers\n // No need to register again in forChild\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry) => () => {\n registry.registerAction('start-workflow', AXPStartWorkflowAction);\n registry.registerAction('decide', AXPWorkflowDecideAction);\n //\n if (config?.functions) {\n for (const [key, type] of Object.entries(config.functions)) {\n registry.registerFunction(key, type);\n }\n }\n //\n if (config?.actions) {\n for (const [key, type] of Object.entries(config.actions)) {\n registry.registerAction(key, type);\n }\n }\n //\n if (config?.workflows) {\n for (const [key, type] of Object.entries(config.workflows)) {\n registry.registerWorkflow(key, type);\n }\n }\n },\n deps: [AXPWorkflowRegistryService],\n multi: true,\n },\n ...Object.values(config?.actions ?? {}),\n ...Object.values(config?.functions ?? {}),\n ],\n };\n }\n /**\n * @ignore\n */\n constructor(instances) {\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule, deps: [{ token: 'AXPWorkflowModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n exports: [],\n declarations: [],\n providers: [],\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['AXPWorkflowModuleFactory']\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL3dvcmtmbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUF1QixRQUFRLEVBQUUsUUFBUSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFvQjFFLE1BQU0sT0FBTyxpQkFBaUI7SUFFNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFpQztRQUM5QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLDBCQUEwQjtvQkFDbkMsVUFBVSxFQUFFLENBQUMsUUFBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO3dCQUN6RCxRQUFRLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixDQUFDLENBQUM7d0JBQ2xFLFFBQVEsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7d0JBQzNELEVBQUU7d0JBQ0YsSUFBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7NEJBQ3RCLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dDQUMzRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOzRCQUN2QyxDQUFDO3dCQUNILENBQUM7d0JBQ0QsRUFBRTt3QkFDRixJQUFJ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QUFFLENBQUM7YUFDMUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBNEQsU0FBZ0I7UUFDMUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXJGVSxpQkFBaUIsa0JBaUZJLDBCQUEwQjtnSEFqRi9DLGlCQUFpQjtnSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQU43QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxFQUFFO29CQUNYLE9BQU8sRUFBRSxFQUFFO29CQUNYLFlBQVksRUFBRSxFQUFFO29CQUNoQixTQUFTLEVBQUUsRUFBRTtpQkFDZDs7MEJBa0ZjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFR5cGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWNpZGVBY3Rpb24gfSBmcm9tICcuL2FjdGlvbnMvZGVjaWRlLmFjdGlvbic7XG5pbXBvcnQgeyBBWFBTdGFydFdvcmtmbG93QWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL3N0YXJ0LXdvcmtmbG93LmFjdGlvbic7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctcmVnaXN0ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3csIEFYUFdvcmtmbG93QWN0aW9uLCBBWFBXb3JrZmxvd0Z1bmN0aW9uIH0gZnJvbSAnLi93b3JrZmxvdy50eXBlcyc7XG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93TW9kdWxlQ29uZmlncyB7XG4gIGZ1bmN0aW9ucz86IHtcbiAgICBbbmFtZTogc3RyaW5nXTogVHlwZTxBWFBXb3JrZmxvd0Z1bmN0aW9uPjtcbiAgfTtcbiAgYWN0aW9ucz86IHtcbiAgICBbbmFtZTogc3RyaW5nXTogVHlwZTxBWFBXb3JrZmxvd0FjdGlvbj47XG4gIH07XG4gIHdvcmtmbG93cz86IHtcbiAgICBbbmFtZTogc3RyaW5nXTogQVhQV29ya2Zsb3c7XG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBleHBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dNb2R1bGUge1xuXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYUFdvcmtmbG93TW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhQV29ya2Zsb3dNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUFdvcmtmbG93TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhQV29ya2Zsb3dNb2R1bGVGYWN0b3J5JyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAocmVnaXN0cnk6IEFYUFdvcmtmbG93UmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckFjdGlvbignc3RhcnQtd29ya2Zsb3cnLCBBWFBTdGFydFdvcmtmbG93QWN0aW9uKTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQWN0aW9uKCdkZWNpZGUnLCBBWFBXb3JrZmxvd0RlY2lkZUFjdGlvbik7XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8uZnVuY3Rpb25zKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLmZ1bmN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckZ1bmN0aW9uKGtleSwgdHlwZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBpZiAoY29uZmlnPy5hY3Rpb25zKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLmFjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJBY3Rpb24oa2V5LCB0eXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIGlmIChjb25maWc/LndvcmtmbG93cykge1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHR5cGVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZy53b3JrZmxvd3MpKSB7XG4gICAgICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJXb3JrZmxvdyhrZXksIHR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXBzOiBbQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbmZpZz8uYWN0aW9ucyA/PyB7IEFYUFN0YXJ0V29ya2Zsb3dBY3Rpb24gfSksXG4gICAgICAgIC4uLk9iamVjdC52YWx1ZXMoY29uZmlnPy5mdW5jdGlvbnMgPz8ge30pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKGNvbmZpZz86IEFYUFdvcmtmbG93TW9kdWxlQ29uZmlncyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhQV29ya2Zsb3dNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYUFdvcmtmbG93TW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIC8vIEJ1aWx0LWluIGFjdGl2aXRpZXMgYXJlIGFscmVhZHkgcmVnaXN0ZXJlZCBpbiBmb3JSb290IHZpYSBATmdNb2R1bGUgcHJvdmlkZXJzXG4gICAgICAgIC8vIE5vIG5lZWQgdG8gcmVnaXN0ZXIgYWdhaW4gaW4gZm9yQ2hpbGRcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6ICdBWFBXb3JrZmxvd01vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhQV29ya2Zsb3dSZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyQWN0aW9uKCdzdGFydC13b3JrZmxvdycsIEFYUFN0YXJ0V29ya2Zsb3dBY3Rpb24pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXJBY3Rpb24oJ2RlY2lkZScsIEFYUFdvcmtmbG93RGVjaWRlQWN0aW9uKTtcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBpZiAoY29uZmlnPy5mdW5jdGlvbnMpIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB0eXBlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcuZnVuY3Rpb25zKSkge1xuICAgICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyRnVuY3Rpb24oa2V5LCB0eXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIGlmIChjb25maWc/LmFjdGlvbnMpIHtcbiAgICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB0eXBlXSBvZiBPYmplY3QuZW50cmllcyhjb25maWcuYWN0aW9ucykpIHtcbiAgICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlckFjdGlvbihrZXksIHR5cGUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8ud29ya2Zsb3dzKSB7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdHlwZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLndvcmtmbG93cykpIHtcbiAgICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlcldvcmtmbG93KGtleSwgdHlwZSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWFBXb3JrZmxvd1JlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLk9iamVjdC52YWx1ZXMoY29uZmlnPy5hY3Rpb25zID8/IHt9KSxcbiAgICAgICAgLi4uT2JqZWN0LnZhbHVlcyhjb25maWc/LmZ1bmN0aW9ucyA/PyB7fSksXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnQVhQV29ya2Zsb3dNb2R1bGVGYWN0b3J5JykgaW5zdGFuY2VzOiBhbnlbXSkge1xuICAgIGluc3RhbmNlcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=","import { InjectionToken, inject, Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Injection token for workflow definition loaders.\n * Multiple loaders can be provided (multi: true).\n */\nexport const AXP_WORKFLOW_DEFINITION_LOADER = new InjectionToken('AXP_WORKFLOW_DEFINITION_LOADER');\n/**\n * Resolver service for workflow definitions.\n * Aggregates all registered loaders and resolves workflow definitions.\n */\nexport class AXPWorkflowDefinitionResolver {\n constructor() {\n this.loaders = inject(AXP_WORKFLOW_DEFINITION_LOADER, { optional: true });\n }\n /**\n * Get workflow definition by name (unique key).\n * Tries all registered loaders until one returns a definition.\n * @param name - The workflow name (unique key)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n const loaderArray = Array.isArray(this.loaders) ? this.loaders : this.loaders ? [this.loaders] : [];\n for (const loader of loaderArray) {\n try {\n const definition = await loader.get(name);\n if (definition) {\n return definition;\n }\n }\n catch (error) {\n console.warn(`[AXPWorkflowDefinitionResolver] Loader failed for ${name}:`, error);\n }\n }\n return null;\n }\n /**\n * Get all available workflow names from all loaders.\n * @returns Array of unique workflow names\n */\n async getAllNames() {\n const loaderArray = Array.isArray(this.loaders) ? this.loaders : this.loaders ? [this.loaders] : [];\n const allNames = new Set();\n for (const loader of loaderArray) {\n if (loader.getAllNames) {\n try {\n const names = await loader.getAllNames();\n names.forEach((name) => allNames.add(name));\n }\n catch (error) {\n console.warn('[AXPWorkflowDefinitionResolver] Failed to get names from loader:', error);\n }\n }\n }\n return Array.from(allNames);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionResolver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFtQ25FOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLElBQUksY0FBYyxDQUM5RCxnQ0FBZ0MsQ0FDakMsQ0FBQztBQUVGOzs7R0FHRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFEMUM7UUFFVSxZQUFPLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0E4QzlFO0lBNUNDOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFZO1FBQ3BCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBHLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDO2dCQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixPQUFPLFVBQVUsQ0FBQztnQkFDcEIsQ0FBQztZQUNILENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMscURBQXFELElBQUksR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BGLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVc7UUFDZixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwRyxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRW5DLEtBQUssTUFBTSxNQUFNLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQztvQkFDSCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN0RCxDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxrRUFBa0UsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDMUYsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBOUNVLDZCQUE2QjttSEFBN0IsNkJBQTZCLGNBRGhCLE1BQU07OzRGQUNuQiw2QkFBNkI7a0JBRHpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uIH0gZnJvbSAnLi93b3JrZmxvdy1kZWZpbml0aW9uLnR5cGVzJztcblxuLyoqXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIGxvYWRlciBpbnRlcmZhY2UuXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIHdvcmtmbG93IGRlZmluaXRpb25zIGZyb20gdmFyaW91cyBzb3VyY2VzIChKU09OIGZpbGVzLCBkYXRhYmFzZSwgZXRjLikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dEZWZpbml0aW9uTG9hZGVyIHtcbiAgLyoqXG4gICAqIEdldCB3b3JrZmxvdyBkZWZpbml0aW9uIGJ5IG5hbWUgKHVuaXF1ZSBrZXkpLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lICh1bmlxdWUga2V5KVxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb24gfCBudWxsPjtcblxuICAvKipcbiAgICogR2V0IGFsbCBhdmFpbGFibGUgd29ya2Zsb3cgbmFtZXMuXG4gICAqIFVzZWQgZm9yIHByZWxvYWRpbmcgYW5kIGRpc2NvdmVyeS5cbiAgICogQHJldHVybnMgQXJyYXkgb2Ygd29ya2Zsb3cgbmFtZXNcbiAgICovXG4gIGdldEFsbE5hbWVzPygpOiBQcm9taXNlPHN0cmluZ1tdPjtcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBkZWZpbml0aW9uIHByZWxvYWRlciBpbnRlcmZhY2UuXG4gKiBJbXBsZW1lbnQgdGhpcyB0byBwcm92aWRlIGEgbGlzdCBvZiB3b3JrZmxvdyBkZWZpbml0aW9ucyB0aGF0IHNob3VsZCBiZSBwcmVsb2FkZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dEZWZpbml0aW9uUHJlbG9hZGVyIHtcbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIHdvcmtmbG93IGRlZmluaXRpb24gSURzIHRvIHByZWxvYWQuXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGRlZmluaXRpb24gSURzXG4gICAqL1xuICBwcmVsb2FkKCk6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEluamVjdGlvbiB0b2tlbiBmb3Igd29ya2Zsb3cgZGVmaW5pdGlvbiBsb2FkZXJzLlxuICogTXVsdGlwbGUgbG9hZGVycyBjYW4gYmUgcHJvdmlkZWQgKG11bHRpOiB0cnVlKS5cbiAqL1xuZXhwb3J0IGNvbnN0IEFYUF9XT1JLRkxPV19ERUZJTklUSU9OX0xPQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBXb3JrZmxvd0RlZmluaXRpb25Mb2FkZXI+KFxuICAnQVhQX1dPUktGTE9XX0RFRklOSVRJT05fTE9BREVSJyxcbik7XG5cbi8qKlxuICogUmVzb2x2ZXIgc2VydmljZSBmb3Igd29ya2Zsb3cgZGVmaW5pdGlvbnMuXG4gKiBBZ2dyZWdhdGVzIGFsbCByZWdpc3RlcmVkIGxvYWRlcnMgYW5kIHJlc29sdmVzIHdvcmtmbG93IGRlZmluaXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYUFdvcmtmbG93RGVmaW5pdGlvblJlc29sdmVyIHtcbiAgcHJpdmF0ZSBsb2FkZXJzID0gaW5qZWN0KEFYUF9XT1JLRkxPV19ERUZJTklUSU9OX0xPQURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGRlZmluaXRpb24gYnkgbmFtZSAodW5pcXVlIGtleSkuXG4gICAqIFRyaWVzIGFsbCByZWdpc3RlcmVkIGxvYWRlcnMgdW50aWwgb25lIHJldHVybnMgYSBkZWZpbml0aW9uLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB3b3JrZmxvdyBuYW1lICh1bmlxdWUga2V5KVxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIG9yIG51bGwgaWYgbm90IGZvdW5kXG4gICAqL1xuICBhc3luYyBnZXQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBXb3JrZmxvd0RlZmluaXRpb24gfCBudWxsPiB7XG4gICAgY29uc3QgbG9hZGVyQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMubG9hZGVycykgPyB0aGlzLmxvYWRlcnMgOiB0aGlzLmxvYWRlcnMgPyBbdGhpcy5sb2FkZXJzXSA6IFtdO1xuXG4gICAgZm9yIChjb25zdCBsb2FkZXIgb2YgbG9hZGVyQXJyYXkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBhd2FpdCBsb2FkZXIuZ2V0KG5hbWUpO1xuICAgICAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLndhcm4oYFtBWFBXb3JrZmxvd0RlZmluaXRpb25SZXNvbHZlcl0gTG9hZGVyIGZhaWxlZCBmb3IgJHtuYW1lfTpgLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBhdmFpbGFibGUgd29ya2Zsb3cgbmFtZXMgZnJvbSBhbGwgbG9hZGVycy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgdW5pcXVlIHdvcmtmbG93IG5hbWVzXG4gICAqL1xuICBhc3luYyBnZXRBbGxOYW1lcygpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgbG9hZGVyQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMubG9hZGVycykgPyB0aGlzLmxvYWRlcnMgOiB0aGlzLmxvYWRlcnMgPyBbdGhpcy5sb2FkZXJzXSA6IFtdO1xuICAgIGNvbnN0IGFsbE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBmb3IgKGNvbnN0IGxvYWRlciBvZiBsb2FkZXJBcnJheSkge1xuICAgICAgaWYgKGxvYWRlci5nZXRBbGxOYW1lcykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG5hbWVzID0gYXdhaXQgbG9hZGVyLmdldEFsbE5hbWVzKCk7XG4gICAgICAgICAgbmFtZXMuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiBhbGxOYW1lcy5hZGQobmFtZSkpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW0FYUFdvcmtmbG93RGVmaW5pdGlvblJlc29sdmVyXSBGYWlsZWQgdG8gZ2V0IG5hbWVzIGZyb20gbG9hZGVyOicsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKGFsbE5hbWVzKTtcbiAgfVxufVxuXG4iXX0=","import { Injectable, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXPWorkflowDefinitionResolver } from './workflow-definition.config';\nimport * as i0 from \"@angular/core\";\n/**\n * Registry service for workflow definitions.\n * Caches loaded definitions and provides change notifications.\n */\nexport class AXPWorkflowDefinitionRegistryService {\n constructor() {\n this.resolver = inject(AXPWorkflowDefinitionResolver);\n this.cache = new Map();\n this.onChanged = new Subject();\n }\n /**\n * Observable for workflow definition changes.\n */\n get onChanged$() {\n return this.onChanged.asObservable();\n }\n /**\n * Get workflow definition by name (unique key).\n * Uses cache if available, otherwise loads from resolver.\n * @param name - The workflow name (unique key)\n * @returns Workflow definition or null if not found\n */\n async get(name) {\n // Check cache first\n if (this.cache.has(name)) {\n return this.cache.get(name);\n }\n // Load from resolver\n const definition = await this.resolver.get(name);\n if (definition) {\n this.cache.set(name, definition);\n this.onChanged.next({ name, action: 'registered' });\n }\n return definition;\n }\n /**\n * Register a workflow definition in the cache.\n * @param definition - The workflow definition to register\n */\n register(definition) {\n this.cache.set(definition.name, definition);\n this.onChanged.next({ name: definition.name, action: 'registered' });\n }\n /**\n * Update a workflow definition in the cache.\n * @param definition - The updated workflow definition\n */\n update(definition) {\n if (this.cache.has(definition.name)) {\n this.cache.set(definition.name, definition);\n this.onChanged.next({ name: definition.name, action: 'updated' });\n }\n }\n /**\n * Remove a workflow definition from the cache.\n * @param name - The workflow name to remove\n */\n remove(name) {\n if (this.cache.has(name)) {\n this.cache.delete(name);\n this.onChanged.next({ name, action: 'removed' });\n }\n }\n /**\n * Clear all cached workflow definitions.\n */\n clear() {\n this.cache.clear();\n }\n /**\n * Check if a workflow definition is cached.\n * @param definitionId - The workflow definition ID\n * @returns True if cached, false otherwise\n */\n has(definitionId) {\n return this.cache.has(definitionId);\n }\n /**\n * Get all cached workflow definition IDs.\n * @returns Array of definition IDs (only those that have been loaded)\n */\n getAllIds() {\n return Array.from(this.cache.keys());\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowDefinitionRegistryService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZGVmaW5pdGlvbi1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS93b3JrZmxvdy1kZWZpbml0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFN0U7OztHQUdHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQUhqRDtRQUlVLGFBQVEsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNqRCxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFDakQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFrRSxDQUFDO0tBcUZuRztJQW5GQzs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDcEIsb0JBQW9CO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1FBQy9CLENBQUM7UUFFRCxxQkFBcUI7UUFDckIsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLFVBQWlDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFVBQWlDO1FBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQVk7UUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxZQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDOytHQXZGVSxvQ0FBb0M7bUhBQXBDLG9DQUFvQyxjQUZuQyxNQUFNOzs0RkFFUCxvQ0FBb0M7a0JBSGhELFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBWFBXb3JrZmxvd0RlZmluaXRpb24gfSBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uUmVzb2x2ZXIgfSBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnJztcblxuLyoqXG4gKiBSZWdpc3RyeSBzZXJ2aWNlIGZvciB3b3JrZmxvdyBkZWZpbml0aW9ucy5cbiAqIENhY2hlcyBsb2FkZWQgZGVmaW5pdGlvbnMgYW5kIHByb3ZpZGVzIGNoYW5nZSBub3RpZmljYXRpb25zLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQV29ya2Zsb3dEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZXNvbHZlciA9IGluamVjdChBWFBXb3JrZmxvd0RlZmluaXRpb25SZXNvbHZlcik7XG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgQVhQV29ya2Zsb3dEZWZpbml0aW9uPigpO1xuICBwcml2YXRlIG9uQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PHsgbmFtZTogc3RyaW5nOyBhY3Rpb246ICdyZWdpc3RlcmVkJyB8ICd1cGRhdGVkJyB8ICdyZW1vdmVkJyB9PigpO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGZvciB3b3JrZmxvdyBkZWZpbml0aW9uIGNoYW5nZXMuXG4gICAqL1xuICBnZXQgb25DaGFuZ2VkJCgpIHtcbiAgICByZXR1cm4gdGhpcy5vbkNoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGRlZmluaXRpb24gYnkgbmFtZSAodW5pcXVlIGtleSkuXG4gICAqIFVzZXMgY2FjaGUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgbG9hZHMgZnJvbSByZXNvbHZlci5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgd29ya2Zsb3cgbmFtZSAodW5pcXVlIGtleSlcbiAgICogQHJldHVybnMgV29ya2Zsb3cgZGVmaW5pdGlvbiBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgYXN5bmMgZ2V0KG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dEZWZpbml0aW9uIHwgbnVsbD4ge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKG5hbWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQobmFtZSkhO1xuICAgIH1cblxuICAgIC8vIExvYWQgZnJvbSByZXNvbHZlclxuICAgIGNvbnN0IGRlZmluaXRpb24gPSBhd2FpdCB0aGlzLnJlc29sdmVyLmdldChuYW1lKTtcbiAgICBpZiAoZGVmaW5pdGlvbikge1xuICAgICAgdGhpcy5jYWNoZS5zZXQobmFtZSwgZGVmaW5pdGlvbik7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZSwgYWN0aW9uOiAncmVnaXN0ZXJlZCcgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSB3b3JrZmxvdyBkZWZpbml0aW9uIGluIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSBUaGUgd29ya2Zsb3cgZGVmaW5pdGlvbiB0byByZWdpc3RlclxuICAgKi9cbiAgcmVnaXN0ZXIoZGVmaW5pdGlvbjogQVhQV29ya2Zsb3dEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5zZXQoZGVmaW5pdGlvbi5uYW1lLCBkZWZpbml0aW9uKTtcbiAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZTogZGVmaW5pdGlvbi5uYW1lLCBhY3Rpb246ICdyZWdpc3RlcmVkJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSB3b3JrZmxvdyBkZWZpbml0aW9uIGluIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSBUaGUgdXBkYXRlZCB3b3JrZmxvdyBkZWZpbml0aW9uXG4gICAqL1xuICB1cGRhdGUoZGVmaW5pdGlvbjogQVhQV29ya2Zsb3dEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGRlZmluaXRpb24ubmFtZSkpIHtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGRlZmluaXRpb24ubmFtZSwgZGVmaW5pdGlvbik7XG4gICAgICB0aGlzLm9uQ2hhbmdlZC5uZXh0KHsgbmFtZTogZGVmaW5pdGlvbi5uYW1lLCBhY3Rpb246ICd1cGRhdGVkJyB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgd29ya2Zsb3cgZGVmaW5pdGlvbiBmcm9tIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgd29ya2Zsb3cgbmFtZSB0byByZW1vdmVcbiAgICovXG4gIHJlbW92ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYWNoZS5oYXMobmFtZSkpIHtcbiAgICAgIHRoaXMuY2FjaGUuZGVsZXRlKG5hbWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZWQubmV4dCh7IG5hbWUsIGFjdGlvbjogJ3JlbW92ZWQnIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhbGwgY2FjaGVkIHdvcmtmbG93IGRlZmluaXRpb25zLlxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgd29ya2Zsb3cgZGVmaW5pdGlvbiBpcyBjYWNoZWQuXG4gICAqIEBwYXJhbSBkZWZpbml0aW9uSWQgLSBUaGUgd29ya2Zsb3cgZGVmaW5pdGlvbiBJRFxuICAgKiBAcmV0dXJucyBUcnVlIGlmIGNhY2hlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBoYXMoZGVmaW5pdGlvbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYWNoZS5oYXMoZGVmaW5pdGlvbklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNhY2hlZCB3b3JrZmxvdyBkZWZpbml0aW9uIElEcy5cbiAgICogQHJldHVybnMgQXJyYXkgb2YgZGVmaW5pdGlvbiBJRHMgKG9ubHkgdGhvc2UgdGhhdCBoYXZlIGJlZW4gbG9hZGVkKVxuICAgKi9cbiAgZ2V0QWxsSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmNhY2hlLmtleXMoKSk7XG4gIH1cbn1cblxuIl19","// ============================================\n// WORKFLOW INSTANCE v3.0.0 TYPES\n// Based on Elsa Workflow Instance schema: https://elsaworkflows.io/schemas/workflow-instance/v3.0.0/schema.json\n// Compatible with Elsa backend while using ACoreX naming conventions\n// ============================================\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctaW5zdGFuY2UudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3dvcmtmbG93LWluc3RhbmNlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxpQ0FBaUM7QUFDakMsZ0hBQWdIO0FBQ2hILHFFQUFxRTtBQUNyRSwrQ0FBK0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gV09SS0ZMT1cgSU5TVEFOQ0UgdjMuMC4wIFRZUEVTXG4vLyBCYXNlZCBvbiBFbHNhIFdvcmtmbG93IEluc3RhbmNlIHNjaGVtYTogaHR0cHM6Ly9lbHNhd29ya2Zsb3dzLmlvL3NjaGVtYXMvd29ya2Zsb3ctaW5zdGFuY2UvdjMuMC4wL3NjaGVtYS5qc29uXG4vLyBDb21wYXRpYmxlIHdpdGggRWxzYSBiYWNrZW5kIHdoaWxlIHVzaW5nIEFDb3JlWCBuYW1pbmcgY29udmVudGlvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogV29ya2Zsb3cgc3RhdHVzLlxuICovXG5leHBvcnQgdHlwZSBBWFBXb3JrZmxvd1N0YXR1cyA9ICdSdW5uaW5nJyB8ICdGaW5pc2hlZCc7XG5cbi8qKlxuICogV29ya2Zsb3cgc3ViLXN0YXR1cy5cbiAqL1xuZXhwb3J0IHR5cGUgQVhQV29ya2Zsb3dTdWJTdGF0dXMgPSAnUGVuZGluZycgfCAnRXhlY3V0aW5nJyB8ICdTdXNwZW5kZWQnIHwgJ0ZpbmlzaGVkJyB8ICdDYW5jZWxsZWQnIHwgJ0ZhdWx0ZWQnO1xuXG4vKipcbiAqIEFjdGl2aXR5IHN0YXR1cy5cbiAqL1xuZXhwb3J0IHR5cGUgQVhQQWN0aXZpdHlTdGF0dXMgPSAnUnVubmluZycgfCAnQ29tcGxldGVkJyB8ICdDYW5jZWxlZCcgfCAnRmF1bHRlZCc7XG5cbi8qKlxuICogRXhjZXB0aW9uIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEV4Y2VwdGlvblN0YXRlIHtcbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiB0eXBlIG5hbWUuXG4gICAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGFjayB0cmFjZSAobnVsbGFibGUpLlxuICAgKi9cbiAgc3RhY2tUcmFjZT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElubmVyIGV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgaW5uZXJFeGNlcHRpb24/OiBBWFBFeGNlcHRpb25TdGF0ZSB8IG51bGw7XG59XG5cbi8qKlxuICogQWN0aXZpdHkgaW5jaWRlbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlJbmNpZGVudCB7XG4gIC8qKlxuICAgKiBBY3Rpdml0eSBJRCB0aGF0IGNhdXNlZCB0aGUgaW5jaWRlbnQuXG4gICAqL1xuICBhY3Rpdml0eUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IG5vZGUgSUQuXG4gICAqL1xuICBhY3Rpdml0eU5vZGVJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSB0eXBlLlxuICAgKi9cbiAgYWN0aXZpdHlUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluY2lkZW50IG1lc3NhZ2UuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgZXhjZXB0aW9uPzogQVhQRXhjZXB0aW9uU3RhdGUgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUaW1lc3RhbXAgKElTTyBkYXRlLXRpbWUpLlxuICAgKi9cbiAgdGltZXN0YW1wOiBzdHJpbmc7XG59XG5cbi8qKlxuICogV29ya2Zsb3cgZmF1bHQgc3RhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dGYXVsdFN0YXRlIHtcbiAgLyoqXG4gICAqIEV4Y2VwdGlvbiAobnVsbGFibGUpLlxuICAgKi9cbiAgZXhjZXB0aW9uPzogQVhQRXhjZXB0aW9uU3RhdGUgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBGYXVsdCBtZXNzYWdlLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGYXVsdGVkIGFjdGl2aXR5IElEIChudWxsYWJsZSkuXG4gICAqL1xuICBmYXVsdGVkQWN0aXZpdHlJZD86IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKlxuICogQm9va21hcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQm9va21hcmsge1xuICAvKipcbiAgICogQm9va21hcmsgSUQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBuYW1lLlxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBoYXNoLlxuICAgKi9cbiAgaGFzaDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCb29rbWFyayBwYXlsb2FkIChudWxsYWJsZSkuXG4gICAqL1xuICBwYXlsb2FkPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogQWN0aXZpdHkgbm9kZSBJRC5cbiAgICovXG4gIGFjdGl2aXR5Tm9kZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IGluc3RhbmNlIElELlxuICAgKi9cbiAgYWN0aXZpdHlJbnN0YW5jZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEF1dG8gYnVybiBmbGFnLlxuICAgKi9cbiAgYXV0b0J1cm4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBtZXRob2QgbmFtZSAobnVsbGFibGUpLlxuICAgKi9cbiAgY2FsbGJhY2tNZXRob2ROYW1lPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKipcbiAgICogTWV0YWRhdGEgKG51bGxhYmxlKS5cbiAgICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IG51bGw7XG59XG5cbi8qKlxuICogQ29tcGxldGlvbiBjYWxsYmFjayBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZSB7XG4gIC8qKlxuICAgKiBPd25lciBhY3Rpdml0eSBpbnN0YW5jZSBJRC5cbiAgICovXG4gIG93bmVySW5zdGFuY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGlsZCBhY3Rpdml0eSBub2RlIElELlxuICAgKi9cbiAgY2hpbGROb2RlSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIG5hbWUgKG51bGxhYmxlKS5cbiAgICovXG4gIG1ldGhvZE5hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFZhcmlhYmxlIChmb3IgYWN0aXZpdHkgY29udGV4dCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlWYXJpYWJsZSB7XG4gIC8qKlxuICAgKiBWYXJpYWJsZSBJRC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcmlhYmxlIG5hbWUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFR5cGUgbmFtZS5cbiAgICovXG4gIHR5cGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElzIGFycmF5IGZsYWcuXG4gICAqL1xuICBpc0FycmF5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFyaWFibGUgdmFsdWUgKG51bGxhYmxlKS5cbiAgICovXG4gIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU3RvcmFnZSBkcml2ZXIgdHlwZSBuYW1lIChudWxsYWJsZSkuXG4gICAqL1xuICBzdG9yYWdlRHJpdmVyVHlwZU5hbWU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIEFjdGl2aXR5IGV4ZWN1dGlvbiBjb250ZXh0IHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFjdGl2aXR5RXhlY3V0aW9uQ29udGV4dFN0YXRlIHtcbiAgLyoqXG4gICAqIENvbnRleHQgSUQgKGFjdGl2aXR5IGluc3RhbmNlIElEKS5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmVudCBjb250ZXh0IElEIChudWxsYWJsZSkuXG4gICAqL1xuICBwYXJlbnRDb250ZXh0SWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBTY2hlZHVsZWQgYWN0aXZpdHkgbm9kZSBJRC5cbiAgICovXG4gIHNjaGVkdWxlZEFjdGl2aXR5Tm9kZUlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE93bmVyIGFjdGl2aXR5IG5vZGUgSUQgKG51bGxhYmxlKS5cbiAgICovXG4gIG93bmVyQWN0aXZpdHlOb2RlSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGJhZy5cbiAgICovXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IHN0YXRlIChldmFsdWF0ZWQgcHJvcGVydGllcykgKG51bGxhYmxlKS5cbiAgICovXG4gIGFjdGl2aXR5U3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbDtcblxuICAvKipcbiAgICogRHluYW1pYyB2YXJpYWJsZXMuXG4gICAqL1xuICBkeW5hbWljVmFyaWFibGVzOiBBWFBBY3Rpdml0eVZhcmlhYmxlW107XG5cbiAgLyoqXG4gICAqIEFjdGl2aXR5IHN0YXR1cy5cbiAgICovXG4gIHN0YXR1czogQVhQQWN0aXZpdHlTdGF0dXM7XG5cbiAgLyoqXG4gICAqIElzIGV4ZWN1dGluZyBmbGFnLlxuICAgKi9cbiAgaXNFeGVjdXRpbmc6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZhdWx0IGNvdW50LlxuICAgKi9cbiAgZmF1bHRDb3VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdGFydGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSkuXG4gICAqL1xuICBzdGFydGVkQXQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcGxldGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSwgbnVsbGFibGUpLlxuICAgKi9cbiAgY29tcGxldGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBUYWcgKG51bGxhYmxlKS5cbiAgICovXG4gIHRhZz86IGFueSB8IG51bGw7XG59XG5cbi8qKlxuICogV29ya2Zsb3cgc3RhdGUgKGludGVybmFsIGV4ZWN1dGlvbiBzdGF0ZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQV29ya2Zsb3dTdGF0ZSB7XG4gIC8qKlxuICAgKiBTdGF0ZSBJRC5cbiAgICovXG4gIGlkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IGRlZmluaXRpb24gSUQuXG4gICAqL1xuICBkZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbiB2ZXJzaW9uLlxuICAgKi9cbiAgZGVmaW5pdGlvblZlcnNpb246IG51bWJlcjtcblxuICAvKipcbiAgICogQ29ycmVsYXRpb24gSUQgKG51bGxhYmxlKS5cbiAgICovXG4gIGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM6IEFYUFdvcmtmbG93U3RhdHVzO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdWItc3RhdHVzLlxuICAgKi9cbiAgc3ViU3RhdHVzOiBBWFBXb3JrZmxvd1N1YlN0YXR1cztcblxuICAvKipcbiAgICogQm9va21hcmtzLlxuICAgKi9cbiAgYm9va21hcmtzOiBBWFBCb29rbWFya1tdO1xuXG4gIC8qKlxuICAgKiBJbmNpZGVudHMuXG4gICAqL1xuICBpbmNpZGVudHM6IEFYUEFjdGl2aXR5SW5jaWRlbnRbXTtcblxuICAvKipcbiAgICogRmF1bHQgKG51bGxhYmxlKS5cbiAgICovXG4gIGZhdWx0PzogQVhQV29ya2Zsb3dGYXVsdFN0YXRlIHwgbnVsbDtcblxuICAvKipcbiAgICogQ29tcGxldGlvbiBjYWxsYmFja3MuXG4gICAqL1xuICBjb21wbGV0aW9uQ2FsbGJhY2tzOiBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSBleGVjdXRpb24gY29udGV4dHMuXG4gICAqL1xuICBhY3Rpdml0eUV4ZWN1dGlvbkNvbnRleHRzOiBBWFBBY3Rpdml0eUV4ZWN1dGlvbkNvbnRleHRTdGF0ZVtdO1xuXG4gIC8qKlxuICAgKiBJbnB1dCBkYXRhLlxuICAgKi9cbiAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIE91dHB1dCBkYXRhLlxuICAgKi9cbiAgb3V0cHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIGJhZy5cbiAgICovXG4gIHByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIENyZWF0ZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lKS5cbiAgICovXG4gIGNyZWF0ZWRBdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVcGRhdGVkIGF0IHRpbWVzdGFtcCAoSVNPIGRhdGUtdGltZSkuXG4gICAqL1xuICB1cGRhdGVkQXQ6IHN0cmluZztcblxuICAvKipcbiAgICogRmluaXNoZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lLCBudWxsYWJsZSkuXG4gICAqL1xuICBmaW5pc2hlZEF0Pzogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBXb3JrZmxvdyBpbnN0YW5jZSAoc3RvcmVkIGluIGRhdGFiYXNlKS5cbiAqIFRoaXMgbWF0Y2hlcyB0aGUgRWxzYSBXb3JrZmxvdyBJbnN0YW5jZSBzY2hlbWEgZm9yIGJhY2tlbmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBWFBXb3JrZmxvd0luc3RhbmNlIHtcbiAgLyoqXG4gICAqIFNjaGVtYSByZWZlcmVuY2UuXG4gICAqL1xuICAkc2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVbmlxdWUgaW5zdGFuY2UgSUQuXG4gICAqL1xuICBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBkZWZpbml0aW9uIElELlxuICAgKi9cbiAgZGVmaW5pdGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IGRlZmluaXRpb24gdmVyc2lvbiBJRC5cbiAgICovXG4gIGRlZmluaXRpb25WZXJzaW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbiB2ZXJzaW9uIG51bWJlci5cbiAgICovXG4gIHZlcnNpb246IG51bWJlcjtcblxuICAvKipcbiAgICogUGFyZW50IHdvcmtmbG93IGluc3RhbmNlIElEIChudWxsYWJsZSwgZm9yIGNoaWxkIHdvcmtmbG93cykuXG4gICAqL1xuICBwYXJlbnRXb3JrZmxvd0luc3RhbmNlSWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBXb3JrZmxvdyBzdGF0ZSAoaW50ZXJuYWwgZXhlY3V0aW9uIHN0YXRlKS5cbiAgICovXG4gIHdvcmtmbG93U3RhdGU6IEFYUFdvcmtmbG93U3RhdGU7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHN0YXR1cy5cbiAgICovXG4gIHN0YXR1czogQVhQV29ya2Zsb3dTdGF0dXM7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHN1Yi1zdGF0dXMuXG4gICAqL1xuICBzdWJTdGF0dXM6IEFYUFdvcmtmbG93U3ViU3RhdHVzO1xuXG4gIC8qKlxuICAgKiBDb3JyZWxhdGlvbiBJRCAobnVsbGFibGUpLlxuICAgKi9cbiAgY29ycmVsYXRpb25JZD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIG5hbWUgKG51bGxhYmxlKS5cbiAgICovXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKlxuICAgKiBJbmNpZGVudCBjb3VudC5cbiAgICovXG4gIGluY2lkZW50Q291bnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQ3JlYXRlZCBhdCB0aW1lc3RhbXAgKElTTyBkYXRlLXRpbWUpLlxuICAgKi9cbiAgY3JlYXRlZEF0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZWQgYXQgdGltZXN0YW1wIChJU08gZGF0ZS10aW1lKS5cbiAgICovXG4gIHVwZGF0ZWRBdDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGaW5pc2hlZCBhdCB0aW1lc3RhbXAgKElTTyBkYXRlLXRpbWUsIG51bGxhYmxlKS5cbiAgICovXG4gIGZpbmlzaGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG4iXX0=","import { InjectionToken } from '@angular/core';\nexport const AXP_ACTIVITY_PROVIDER = new InjectionToken('AXP_ACTIVITY_PROVIDER', {\n factory: () => [],\n});\nexport const AXP_ACTIVITY_CATEGORY_PROVIDER = new InjectionToken('AXP_ACTIVITY_CATEGORY_PROVIDER', {\n factory: () => [],\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2FjdGl2aXR5LnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQTZCLHVCQUF1QixFQUFFO0lBQ3pHLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0NBQ3BCLENBQUMsQ0FBQztBQXVCSCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxJQUFJLGNBQWMsQ0FBcUMsZ0NBQWdDLEVBQUU7SUFDbkksT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7Q0FDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5Q2F0ZWdvcnksIEFYUEFjdGl2aXR5RGVmaW5pdGlvbiB9IGZyb20gJy4vYWN0aXZpdHkudHlwZXMnO1xuXG5leHBvcnQgdHlwZSBBWFBBY3Rpdml0eVByb3ZpZGVyVG9rZW4gPVxuICAgIHwgQVhQQWN0aXZpdHlQcm92aWRlclxuICAgIHwgUHJvbWlzZTxBWFBBY3Rpdml0eVByb3ZpZGVyPjtcblxuZXhwb3J0IGNvbnN0IEFYUF9BQ1RJVklUWV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eVByb3ZpZGVyVG9rZW5bXT4oJ0FYUF9BQ1RJVklUWV9QUk9WSURFUicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PiBbXSxcbn0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYUEFjdGl2aXR5UHJvdmlkZXIge1xuICAgIC8qKlxuICAgICAqIEdldCBsaXN0IG9mIGFjdGl2aXR5IGRlZmluaXRpb25zIGZvciBhIGNhdGVnb3J5LlxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkIC0gQ2F0ZWdvcnkgSUQgdG8gZmlsdGVyIGFjdGl2aXRpZXNcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIGFjdGl2aXR5IGRlZmluaXRpb25zIGFycmF5XG4gICAgICovXG4gICAgZ2V0TGlzdChjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdPjtcbiAgICBcbiAgICAvKipcbiAgICAgKiBHZXQgYWN0aXZpdHkgZGVmaW5pdGlvbiBieSBuYW1lICh1bmlxdWUgaWRlbnRpZmllcikuXG4gICAgICogVGhlIG5hbWUgaXMgdXNlZCBhcyB0aGUgY29tbWFuZCBrZXkgZm9yIGV4ZWN1dGlvbi5cbiAgICAgKiBAcGFyYW0gbmFtZSAtIEFjdGl2aXR5IG5hbWUgKHVuaXF1ZSBpZGVudGlmaWVyIGFuZCBjb21tYW5kIGtleSlcbiAgICAgKiBAcmV0dXJucyBQcm9taXNlIG9mIGFjdGl2aXR5IGRlZmluaXRpb24gb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZFxuICAgICAqL1xuICAgIGdldEJ5SWQobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eURlZmluaXRpb24gfCB1bmRlZmluZWQ+O1xufVxuXG5leHBvcnQgdHlwZSBBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXJUb2tlbiA9XG4gICAgfCBBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXJcbiAgICB8IFByb21pc2U8QVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyPjtcblxuZXhwb3J0IGNvbnN0IEFYUF9BQ1RJVklUWV9DQVRFR09SWV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWFBBY3Rpdml0eUNhdGVnb3J5UHJvdmlkZXJUb2tlbltdPignQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSJywge1xuICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxufSk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhQQWN0aXZpdHlDYXRlZ29yeVByb3ZpZGVyIHtcbiAgICBnZXRMaXN0KHBhcmVudElkPzogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5W10+O1xuICAgIGdldEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlDYXRlZ29yeSB8IHVuZGVmaW5lZD47XG59XG5cbiJdfQ==","//#region ---- Imports ----\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER } from './activity.provider';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * Optimized Activity Definition Service\n *\n * Manages activity definitions (metadata) for UI and tooling.\n * Similar to AXPReportDefinitionService - only handles metadata, not execution.\n *\n * Performance optimizations:\n * 1. Uses childrenCount to determine if category has children (no query needed)\n * 2. Uses itemsCount to determine if category has activities (no query needed)\n * 3. Aggressive caching prevents duplicate API calls\n * 4. Single pending request per resource prevents race conditions\n * 5. Lazy loading - only loads data when needed\n */\nexport class AXPActivityDefinitionService {\n constructor() {\n //#region ---- Providers & Caches ----\n this.categoryProviders = inject(AXP_ACTIVITY_CATEGORY_PROVIDER, { optional: true }) || [];\n this.activityProviders = inject(AXP_ACTIVITY_PROVIDER, { optional: true }) || [];\n //#endregion\n //#region ---- Cache Storage ----\n /** Cache for categories by id - O(1) lookup */\n this.categoriesById = new Map();\n /** Cache for categories by parentId - O(1) lookup */\n this.categoriesByParentId = new Map();\n /** Cache for activity definitions by categoryId - O(1) lookup */\n this.activitiesByCategory = new Map();\n /** Cache for individual activity definitions by name - O(1) lookup */\n this.activitiesByName = new Map();\n /** Track which provider index owns each category (by category ID) */\n this.categoryOwnership = new Map(); // Maps categoryId → provider index\n /** Pending API requests to prevent duplicate calls */\n this.pendingCategoriesRequests = new Map();\n this.pendingActivitiesRequests = new Map();\n this.pendingActivityRequests = new Map();\n }\n //#endregion\n //#region ---- Initialization ----\n //#endregion\n //#region ---- Public API: Categories ----\n /**\n * Get categories by parentId with aggressive caching\n *\n * Optimization: Returns cached result immediately if available,\n * preventing unnecessary API calls during navigation\n *\n * @param parentId - Parent category ID (undefined = root categories)\n * @returns Array of categories with count metadata (childrenCount, itemsCount)\n */\n async getCategories(parentId) {\n // ✅ Fast path: Return cached result\n if (this.categoriesByParentId.has(parentId)) {\n return this.categoriesByParentId.get(parentId);\n }\n // ✅ Prevent duplicate requests: Return pending promise\n if (this.pendingCategoriesRequests.has(parentId)) {\n return this.pendingCategoriesRequests.get(parentId);\n }\n // ✅ Create single request and cache it\n const requestPromise = this.loadCategoriesFromProviders(parentId);\n this.pendingCategoriesRequests.set(parentId, requestPromise);\n return requestPromise;\n }\n /**\n * Get single category by ID with O(1) lookup\n *\n * Optimization: Uses Map for instant retrieval, falls back to\n * searching cache, then providers if not found\n */\n async getCategoryById(categoryId) {\n // ✅ Fast path: O(1) lookup in cache\n if (this.categoriesById.has(categoryId)) {\n return this.categoriesById.get(categoryId);\n }\n // ✅ Search in cached parent-child lists\n for (const categories of this.categoriesByParentId.values()) {\n const found = categories.find(cat => cat.id === categoryId);\n if (found) {\n this.categoriesById.set(categoryId, found);\n return found;\n }\n }\n // ✅ Load root categories if not loaded\n if (!this.categoriesByParentId.has(undefined)) {\n await this.getCategories();\n if (this.categoriesById.has(categoryId)) {\n return this.categoriesById.get(categoryId);\n }\n }\n // ✅ Breadth-first search through hierarchy\n return this.searchCategoryInHierarchy(categoryId);\n }\n /**\n * Get category path from root to specified category\n *\n * Optimization: Builds path using cached categories only\n */\n async getCategoriesPathById(categoryId) {\n const path = [];\n let currentCategoryId = categoryId;\n while (currentCategoryId) {\n const category = await this.getCategoryById(currentCategoryId);\n if (!category) {\n throw new Error(`Category '${currentCategoryId}' not found`);\n }\n path.unshift(category);\n currentCategoryId = category.parentId;\n }\n return path;\n }\n //#endregion\n //#region ---- Public API: Activity Definitions ----\n /**\n * Get activity definitions for a category with smart caching\n *\n * Optimization: Checks itemsCount before querying\n * - If itemsCount = 0, returns empty array (no API call)\n * - If itemsCount > 0, loads and caches activity definitions\n * - Returns cached result on subsequent calls\n *\n * @param categoryId - Category ID to get activity definitions from\n * @returns Array of activity definitions\n */\n async getActivitiesByCategoryId(categoryId) {\n // ✅ Fast path: Return cached result\n if (this.activitiesByCategory.has(categoryId)) {\n return this.activitiesByCategory.get(categoryId);\n }\n // ✅ Smart optimization: Check itemsCount before querying\n const category = await this.getCategoryById(categoryId);\n if (category && category.itemsCount !== undefined && category.itemsCount === 0) {\n // Category has no activities - cache empty array and skip API call\n const emptyArray = [];\n this.activitiesByCategory.set(categoryId, emptyArray);\n return emptyArray;\n }\n // ✅ Prevent duplicate requests\n if (this.pendingActivitiesRequests.has(categoryId)) {\n return this.pendingActivitiesRequests.get(categoryId);\n }\n // ✅ Load from providers\n const requestPromise = this.loadActivitiesFromProviders(categoryId);\n this.pendingActivitiesRequests.set(categoryId, requestPromise);\n return requestPromise;\n }\n /**\n * Get single activity definition by name with O(1) lookup\n *\n * Optimization: Uses Map for instant retrieval\n *\n * @param name - Activity name (unique identifier and command key)\n * @returns Activity definition or undefined if not found\n */\n async getActivityByName(name) {\n // ✅ Fast path: O(1) lookup in cache\n if (this.activitiesByName.has(name)) {\n return this.activitiesByName.get(name);\n }\n // ✅ Prevent duplicate requests\n if (this.pendingActivityRequests.has(name)) {\n return this.pendingActivityRequests.get(name);\n }\n // ✅ Load from providers\n const requestPromise = this.loadActivityFromProviders(name);\n this.pendingActivityRequests.set(name, requestPromise);\n return requestPromise;\n }\n /**\n * Get category ID containing a specific activity definition\n *\n * Optimization: Searches cache first, loads on-demand if needed\n */\n async getCategoryIdByActivityName(activityName) {\n // ✅ Search in cached activity definitions\n for (const [categoryId, definitions] of this.activitiesByCategory.entries()) {\n if (definitions.some(def => def.name === activityName)) {\n return categoryId;\n }\n }\n // ✅ Try loading the activity definition to find its category\n const definition = await this.getActivityByName(activityName);\n if (definition && definition.category) {\n // Try to find category by name/id\n const categories = await this.getCategories();\n const found = categories.find(cat => cat.id === definition.category || cat.title === definition.category);\n if (found) {\n return found.id;\n }\n }\n return undefined;\n }\n /**\n * Get category path for an activity\n */\n async getCategoriesPathByActivityName(activityName) {\n const categoryId = await this.getCategoryIdByActivityName(activityName);\n if (!categoryId) {\n throw new Error(`Activity '${activityName}' not found in any category`);\n }\n return this.getCategoriesPathById(categoryId);\n }\n //#endregion\n //#region ---- Private: Data Loading ----\n /**\n * Load categories from providers and cache results\n *\n * Optimization: Tracks provider ownership to avoid unnecessary API calls\n * - For root (parentId = undefined): Query ALL providers\n * - For children: Only query the provider that owns the parent\n */\n async loadCategoriesFromProviders(parentId) {\n try {\n const resolvedProviders = await Promise.allSettled(this.categoryProviders);\n const categories = [];\n // Determine which provider(s) to query\n const providerIndicesToQuery = parentId\n ? this.getProviderIndexForCategory(parentId)\n : null; // Root: query all providers\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n // Skip if we have a specific provider index and this isn't it\n if (providerIndicesToQuery !== null && !providerIndicesToQuery.includes(i)) {\n continue;\n }\n if (p.status === 'fulfilled' && p.value && typeof p.value.getList === 'function') {\n try {\n const cats = await p.value.getList(parentId);\n if (Array.isArray(cats) && cats.length > 0) {\n categories.push(...cats);\n // ✅ Track ownership: This provider INDEX owns these categories\n cats.forEach(cat => this.categoryOwnership.set(cat.id, i));\n }\n }\n catch {\n // Continue on error - try other providers\n }\n }\n }\n // ✅ Cache results for fast subsequent access\n this.categoriesByParentId.set(parentId, categories);\n categories.forEach(cat => this.categoriesById.set(cat.id, cat));\n return categories;\n }\n finally {\n this.pendingCategoriesRequests.delete(parentId);\n }\n }\n /**\n * Get the provider index that owns a specific category\n *\n * @returns Array with provider index, or null if ownership unknown (query all)\n */\n getProviderIndexForCategory(categoryId) {\n const ownerIndex = this.categoryOwnership.get(categoryId);\n if (ownerIndex !== undefined) {\n return [ownerIndex];\n }\n // Ownership unknown - will query all providers (fallback)\n return null;\n }\n /**\n * Load activity definitions from providers and cache results\n *\n * Optimization: Only queries the provider that owns the category\n * Uses provider INDEX to match category provider with activity provider\n */\n async loadActivitiesFromProviders(categoryId) {\n try {\n const resolvedProviders = await Promise.allSettled(this.activityProviders);\n const definitions = [];\n // ✅ Smart routing: Get provider INDEX that owns this category\n const ownerIndex = this.categoryOwnership.get(categoryId);\n const providerIndicesToQuery = ownerIndex !== undefined ? [ownerIndex] : null;\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n // Skip if we have a specific provider index and this isn't it\n if (providerIndicesToQuery !== null && !providerIndicesToQuery.includes(i)) {\n continue;\n }\n if (p.status === 'fulfilled' && p.value && typeof p.value.getList === 'function') {\n try {\n const defs = await p.value.getList(categoryId);\n if (Array.isArray(defs)) {\n definitions.push(...defs);\n }\n }\n catch {\n // Continue on error - try other providers\n }\n }\n }\n // ✅ Cache results for fast subsequent access\n this.activitiesByCategory.set(categoryId, definitions);\n definitions.forEach(def => {\n if (def.name) {\n this.activitiesByName.set(def.name, def);\n }\n });\n return definitions;\n }\n finally {\n this.pendingActivitiesRequests.delete(categoryId);\n }\n }\n /**\n * Load single activity definition from providers and cache result\n */\n async loadActivityFromProviders(name) {\n try {\n const resolvedProviders = await Promise.allSettled(this.activityProviders);\n // Try providers first\n for (const p of resolvedProviders) {\n if (p.status === 'fulfilled' && p.value && typeof p.value.getById === 'function') {\n try {\n const result = await p.value.getById(name);\n if (result) {\n this.activitiesByName.set(name, result);\n return result;\n }\n }\n catch {\n // Continue on error\n }\n }\n }\n // Fallback: Search in cached activity definitions\n for (const definitions of this.activitiesByCategory.values()) {\n const found = definitions.find(def => def.name === name);\n if (found) {\n this.activitiesByName.set(name, found);\n return found;\n }\n }\n return undefined;\n }\n finally {\n this.pendingActivityRequests.delete(name);\n }\n }\n /**\n * Breadth-first search through category hierarchy\n */\n async searchCategoryInHierarchy(categoryId) {\n const searchQueue = [undefined];\n const searched = new Set();\n while (searchQueue.length > 0) {\n const parentId = searchQueue.shift();\n if (searched.has(parentId))\n continue;\n searched.add(parentId);\n const categories = await this.getCategories(parentId);\n const found = categories.find(cat => cat.id === categoryId);\n if (found) {\n return found;\n }\n // ✅ Optimization: Only search children if childrenCount > 0\n for (const category of categories) {\n if (category.childrenCount > 0 && !searched.has(category.id)) {\n searchQueue.push(category.id);\n }\n }\n }\n return undefined;\n }\n //#endregion\n //#region ---- Cache Management ----\n /**\n * Check if category has children (uses cached count)\n */\n categoryHasChildren(categoryId) {\n const category = this.categoriesById.get(categoryId);\n return category ? category.childrenCount > 0 : false;\n }\n /**\n * Check if category has activities (uses cached count)\n */\n categoryHasActivities(categoryId) {\n const category = this.categoriesById.get(categoryId);\n return category ? (category.itemsCount ?? 0) > 0 : false;\n }\n /**\n * Clear all caches\n */\n clearAllCache() {\n this.categoriesById.clear();\n this.categoriesByParentId.clear();\n this.activitiesByCategory.clear();\n this.activitiesByName.clear();\n this.categoryOwnership.clear();\n this.pendingCategoriesRequests.clear();\n this.pendingActivitiesRequests.clear();\n this.pendingActivityRequests.clear();\n }\n /**\n * Clear categories cache only\n */\n clearCategoriesCache() {\n this.categoriesById.clear();\n this.categoriesByParentId.clear();\n this.categoryOwnership.clear();\n this.pendingCategoriesRequests.clear();\n }\n /**\n * Clear activities cache only\n */\n clearActivitiesCache() {\n this.activitiesByCategory.clear();\n this.activitiesByName.clear();\n this.pendingActivitiesRequests.clear();\n this.pendingActivityRequests.clear();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityDefinitionService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPActivityDefinitionService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktZGVmaW5pdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9hY3Rpdml0eS1kZWZpbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBRS9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUU1RixZQUFZO0FBRVo7Ozs7Ozs7Ozs7OztHQVlHO0FBSUgsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQUlJLDBDQUEwQztRQUV6QixzQkFBaUIsR0FBRyxNQUFNLENBQUMsOEJBQThCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckYsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdGLFlBQVk7UUFFWixxQ0FBcUM7UUFFckMsK0NBQStDO1FBQ3ZDLG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFFaEUscURBQXFEO1FBQzdDLHlCQUFvQixHQUFHLElBQUksR0FBRyxFQUE2QyxDQUFDO1FBRXBGLGlFQUFpRTtRQUN6RCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUUxRSxzRUFBc0U7UUFDOUQscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWlDLENBQUM7UUFFcEUscUVBQXFFO1FBQzdELHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUMsbUNBQW1DO1FBRTFGLHNEQUFzRDtRQUM5Qyw4QkFBeUIsR0FBRyxJQUFJLEdBQUcsRUFBc0Qs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RSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOytHQWhkUSw0QkFBNEI7bUhBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzs0RkFFVCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIC0tLS0gICBJbXBvcnRzICAgLS0tLVxuXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUEFjdGl2aXR5Q2F0ZWdvcnksIEFYUEFjdGl2aXR5RGVmaW5pdGlvbiB9IGZyb20gJy4vYWN0aXZpdHkudHlwZXMnO1xuaW1wb3J0IHsgQVhQX0FDVElWSVRZX0NBVEVHT1JZX1BST1ZJREVSLCBBWFBfQUNUSVZJVFlfUFJPVklERVIgfSBmcm9tICcuL2FjdGl2aXR5LnByb3ZpZGVyJztcblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogT3B0aW1pemVkIEFjdGl2aXR5IERlZmluaXRpb24gU2VydmljZVxuICogXG4gKiBNYW5hZ2VzIGFjdGl2aXR5IGRlZmluaXRpb25zIChtZXRhZGF0YSkgZm9yIFVJIGFuZCB0b29saW5nLlxuICogU2ltaWxhciB0byBBWFBSZXBvcnREZWZpbml0aW9uU2VydmljZSAtIG9ubHkgaGFuZGxlcyBtZXRhZGF0YSwgbm90IGV4ZWN1dGlvbi5cbiAqIFxuICogUGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uczpcbiAqIDEuIFVzZXMgY2hpbGRyZW5Db3VudCB0byBkZXRlcm1pbmUgaWYgY2F0ZWdvcnkgaGFzIGNoaWxkcmVuIChubyBxdWVyeSBuZWVkZWQpXG4gKiAyLiBVc2VzIGl0ZW1zQ291bnQgdG8gZGV0ZXJtaW5lIGlmIGNhdGVnb3J5IGhhcyBhY3Rpdml0aWVzIChubyBxdWVyeSBuZWVkZWQpXG4gKiAzLiBBZ2dyZXNzaXZlIGNhY2hpbmcgcHJldmVudHMgZHVwbGljYXRlIEFQSSBjYWxsc1xuICogNC4gU2luZ2xlIHBlbmRpbmcgcmVxdWVzdCBwZXIgcmVzb3VyY2UgcHJldmVudHMgcmFjZSBjb25kaXRpb25zXG4gKiA1LiBMYXp5IGxvYWRpbmcgLSBvbmx5IGxvYWRzIGRhdGEgd2hlbiBuZWVkZWRcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhQQWN0aXZpdHlEZWZpbml0aW9uU2VydmljZSB7XG4gICAgLy8jcmVnaW9uIC0tLS0gICBQcm92aWRlcnMgJiBDYWNoZXMgICAtLS0tXG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhdGVnb3J5UHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9DQVRFR09SWV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5UHJvdmlkZXJzID0gaW5qZWN0KEFYUF9BQ1RJVklUWV9QUk9WSURFUiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBTdG9yYWdlICAgLS0tLVxuXG4gICAgLyoqIENhY2hlIGZvciBjYXRlZ29yaWVzIGJ5IGlkIC0gTygxKSBsb29rdXAgKi9cbiAgICBwcml2YXRlIGNhdGVnb3JpZXNCeUlkID0gbmV3IE1hcDxzdHJpbmcsIEFYUEFjdGl2aXR5Q2F0ZWdvcnk+KCk7XG5cbiAgICAvKiogQ2FjaGUgZm9yIGNhdGVnb3JpZXMgYnkgcGFyZW50SWQgLSBPKDEpIGxvb2t1cCAqL1xuICAgIHByaXZhdGUgY2F0ZWdvcmllc0J5UGFyZW50SWQgPSBuZXcgTWFwPHN0cmluZyB8IHVuZGVmaW5lZCwgQVhQQWN0aXZpdHlDYXRlZ29yeVtdPigpO1xuXG4gICAgLyoqIENhY2hlIGZvciBhY3Rpdml0eSBkZWZpbml0aW9ucyBieSBjYXRlZ29yeUlkIC0gTygxKSBsb29rdXAgKi9cbiAgICBwcml2YXRlIGFjdGl2aXRpZXNCeUNhdGVnb3J5ID0gbmV3IE1hcDxzdHJpbmcsIEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdPigpO1xuXG4gICAgLyoqIENhY2hlIGZvciBpbmRpdmlkdWFsIGFjdGl2aXR5IGRlZmluaXRpb25zIGJ5IG5hbWUgLSBPKDEpIGxvb2t1cCAqL1xuICAgIHByaXZhdGUgYWN0aXZpdGllc0J5TmFtZSA9IG5ldyBNYXA8c3RyaW5nLCBBWFBBY3Rpdml0eURlZmluaXRpb24+KCk7XG5cbiAgICAvKiogVHJhY2sgd2hpY2ggcHJvdmlkZXIgaW5kZXggb3ducyBlYWNoIGNhdGVnb3J5IChieSBjYXRlZ29yeSBJRCkgKi9cbiAgICBwcml2YXRlIGNhdGVnb3J5T3duZXJzaGlwID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTsgLy8gTWFwcyBjYXRlZ29yeUlkIOKGkiBwcm92aWRlciBpbmRleFxuXG4gICAgLyoqIFBlbmRpbmcgQVBJIHJlcXVlc3RzIHRvIHByZXZlbnQgZHVwbGljYXRlIGNhbGxzICovXG4gICAgcHJpdmF0ZSBwZW5kaW5nQ2F0ZWdvcmllc1JlcXVlc3RzID0gbmV3IE1hcDxzdHJpbmcgfCB1bmRlZmluZWQsIFByb21pc2U8QVhQQWN0aXZpdHlDYXRlZ29yeVtdPj4oKTtcbiAgICBwcml2YXRlIHBlbmRpbmdBY3Rpdml0aWVzUmVxdWVzdHMgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxBWFBBY3Rpdml0eURlZmluaXRpb25bXT4+KCk7XG4gICAgcHJpdmF0ZSBwZW5kaW5nQWN0aXZpdHlSZXF1ZXN0cyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPEFYUEFjdGl2aXR5RGVmaW5pdGlvbiB8IHVuZGVmaW5lZD4+KCk7XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgSW5pdGlhbGl6YXRpb24gICAtLS0tXG5cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBQdWJsaWMgQVBJOiBDYXRlZ29yaWVzICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNhdGVnb3JpZXMgYnkgcGFyZW50SWQgd2l0aCBhZ2dyZXNzaXZlIGNhY2hpbmdcbiAgICAgKiBcbiAgICAgKiBPcHRpbWl6YXRpb246IFJldHVybnMgY2FjaGVkIHJlc3VsdCBpbW1lZGlhdGVseSBpZiBhdmFpbGFibGUsXG4gICAgICogcHJldmVudGluZyB1bm5lY2Vzc2FyeSBBUEkgY2FsbHMgZHVyaW5nIG5hdmlnYXRpb25cbiAgICAgKiBcbiAgICAgKiBAcGFyYW0gcGFyZW50SWQgLSBQYXJlbnQgY2F0ZWdvcnkgSUQgKHVuZGVmaW5lZCA9IHJvb3QgY2F0ZWdvcmllcylcbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBjYXRlZ29yaWVzIHdpdGggY291bnQgbWV0YWRhdGEgKGNoaWxkcmVuQ291bnQsIGl0ZW1zQ291bnQpXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Q2F0ZWdvcmllcyhwYXJlbnRJZD86IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlDYXRlZ29yeVtdPiB7XG4gICAgICAgIC8vIOKchSBGYXN0IHBhdGg6IFJldHVybiBjYWNoZWQgcmVzdWx0XG4gICAgICAgIGlmICh0aGlzLmNhdGVnb3JpZXNCeVBhcmVudElkLmhhcyhwYXJlbnRJZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNhdGVnb3JpZXNCeVBhcmVudElkLmdldChwYXJlbnRJZCkhO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIFByZXZlbnQgZHVwbGljYXRlIHJlcXVlc3RzOiBSZXR1cm4gcGVuZGluZyBwcm9taXNlXG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdDYXRlZ29yaWVzUmVxdWVzdHMuaGFzKHBhcmVudElkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGVuZGluZ0NhdGVnb3JpZXNSZXF1ZXN0cy5nZXQocGFyZW50SWQpITtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOKchSBDcmVhdGUgc2luZ2xlIHJlcXVlc3QgYW5kIGNhY2hlIGl0XG4gICAgICAgIGNvbnN0IHJlcXVlc3RQcm9taXNlID0gdGhpcy5sb2FkQ2F0ZWdvcmllc0Zyb21Qcm92aWRlcnMocGFyZW50SWQpO1xuICAgICAgICB0aGlzLnBlbmRpbmdDYXRlZ29yaWVzUmVxdWVzdHMuc2V0KHBhcmVudElkLCByZXF1ZXN0UHJvbWlzZSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3RQcm9taXNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBzaW5nbGUgY2F0ZWdvcnkgYnkgSUQgd2l0aCBPKDEpIGxvb2t1cFxuICAgICAqIFxuICAgICAqIE9wdGltaXphdGlvbjogVXNlcyBNYXAgZm9yIGluc3RhbnQgcmV0cmlldmFsLCBmYWxscyBiYWNrIHRvXG4gICAgICogc2VhcmNoaW5nIGNhY2hlLCB0aGVuIHByb3ZpZGVycyBpZiBub3QgZm91bmRcbiAgICAgKi9cbiAgICBhc3luYyBnZXRDYXRlZ29yeUJ5SWQoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5IHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIC8vIOKchSBGYXN0IHBhdGg6IE8oMSkgbG9va3VwIGluIGNhY2hlXG4gICAgICAgIGlmICh0aGlzLmNhdGVnb3JpZXNCeUlkLmhhcyhjYXRlZ29yeUlkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2F0ZWdvcmllc0J5SWQuZ2V0KGNhdGVnb3J5SWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIFNlYXJjaCBpbiBjYWNoZWQgcGFyZW50LWNoaWxkIGxpc3RzXG4gICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcmllcyBvZiB0aGlzLmNhdGVnb3JpZXNCeVBhcmVudElkLnZhbHVlcygpKSB7XG4gICAgICAgICAgICBjb25zdCBmb3VuZCA9IGNhdGVnb3JpZXMuZmluZChjYXQgPT4gY2F0LmlkID09PSBjYXRlZ29yeUlkKTtcbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllc0J5SWQuc2V0KGNhdGVnb3J5SWQsIGZvdW5kKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyDinIUgTG9hZCByb290IGNhdGVnb3JpZXMgaWYgbm90IGxvYWRlZFxuICAgICAgICBpZiAoIXRoaXMuY2F0ZWdvcmllc0J5UGFyZW50SWQuaGFzKHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0Q2F0ZWdvcmllcygpO1xuICAgICAgICAgICAgaWYgKHRoaXMuY2F0ZWdvcmllc0J5SWQuaGFzKGNhdGVnb3J5SWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2F0ZWdvcmllc0J5SWQuZ2V0KGNhdGVnb3J5SWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIEJyZWFkdGgtZmlyc3Qgc2VhcmNoIHRocm91Z2ggaGllcmFyY2h5XG4gICAgICAgIHJldHVybiB0aGlzLnNlYXJjaENhdGVnb3J5SW5IaWVyYXJjaHkoY2F0ZWdvcnlJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNhdGVnb3J5IHBhdGggZnJvbSByb290IHRvIHNwZWNpZmllZCBjYXRlZ29yeVxuICAgICAqIFxuICAgICAqIE9wdGltaXphdGlvbjogQnVpbGRzIHBhdGggdXNpbmcgY2FjaGVkIGNhdGVnb3JpZXMgb25seVxuICAgICAqL1xuICAgIGFzeW5jIGdldENhdGVnb3JpZXNQYXRoQnlJZChjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEFjdGl2aXR5Q2F0ZWdvcnlbXT4ge1xuICAgICAgICBjb25zdCBwYXRoOiBBWFBBY3Rpdml0eUNhdGVnb3J5W10gPSBbXTtcbiAgICAgICAgbGV0IGN1cnJlbnRDYXRlZ29yeUlkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBjYXRlZ29yeUlkO1xuXG4gICAgICAgIHdoaWxlIChjdXJyZW50Q2F0ZWdvcnlJZCkge1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSBhd2FpdCB0aGlzLmdldENhdGVnb3J5QnlJZChjdXJyZW50Q2F0ZWdvcnlJZCk7XG4gICAgICAgICAgICBpZiAoIWNhdGVnb3J5KSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYXRlZ29yeSAnJHtjdXJyZW50Q2F0ZWdvcnlJZH0nIG5vdCBmb3VuZGApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcGF0aC51bnNoaWZ0KGNhdGVnb3J5KTtcbiAgICAgICAgICAgIGN1cnJlbnRDYXRlZ29yeUlkID0gY2F0ZWdvcnkucGFyZW50SWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aDtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHVibGljIEFQSTogQWN0aXZpdHkgRGVmaW5pdGlvbnMgICAtLS0tXG5cbiAgICAvKipcbiAgICAgKiBHZXQgYWN0aXZpdHkgZGVmaW5pdGlvbnMgZm9yIGEgY2F0ZWdvcnkgd2l0aCBzbWFydCBjYWNoaW5nXG4gICAgICogXG4gICAgICogT3B0aW1pemF0aW9uOiBDaGVja3MgaXRlbXNDb3VudCBiZWZvcmUgcXVlcnlpbmdcbiAgICAgKiAtIElmIGl0ZW1zQ291bnQgPSAwLCByZXR1cm5zIGVtcHR5IGFycmF5IChubyBBUEkgY2FsbClcbiAgICAgKiAtIElmIGl0ZW1zQ291bnQgPiAwLCBsb2FkcyBhbmQgY2FjaGVzIGFjdGl2aXR5IGRlZmluaXRpb25zXG4gICAgICogLSBSZXR1cm5zIGNhY2hlZCByZXN1bHQgb24gc3Vic2VxdWVudCBjYWxsc1xuICAgICAqIFxuICAgICAqIEBwYXJhbSBjYXRlZ29yeUlkIC0gQ2F0ZWdvcnkgSUQgdG8gZ2V0IGFjdGl2aXR5IGRlZmluaXRpb25zIGZyb21cbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBhY3Rpdml0eSBkZWZpbml0aW9uc1xuICAgICAqL1xuICAgIGFzeW5jIGdldEFjdGl2aXRpZXNCeUNhdGVnb3J5SWQoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eURlZmluaXRpb25bXT4ge1xuICAgICAgICAvLyDinIUgRmFzdCBwYXRoOiBSZXR1cm4gY2FjaGVkIHJlc3VsdFxuICAgICAgICBpZiAodGhpcy5hY3Rpdml0aWVzQnlDYXRlZ29yeS5oYXMoY2F0ZWdvcnlJZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2aXRpZXNCeUNhdGVnb3J5LmdldChjYXRlZ29yeUlkKSE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDinIUgU21hcnQgb3B0aW1pemF0aW9uOiBDaGVjayBpdGVtc0NvdW50IGJlZm9yZSBxdWVyeWluZ1xuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGF3YWl0IHRoaXMuZ2V0Q2F0ZWdvcnlCeUlkKGNhdGVnb3J5SWQpO1xuICAgICAgICBpZiAoY2F0ZWdvcnkgJiYgY2F0ZWdvcnkuaXRlbXNDb3VudCAhPT0gdW5kZWZpbmVkICYmIGNhdGVnb3J5Lml0ZW1zQ291bnQgPT09IDApIHtcbiAgICAgICAgICAgIC8vIENhdGVnb3J5IGhhcyBubyBhY3Rpdml0aWVzIC0gY2FjaGUgZW1wdHkgYXJyYXkgYW5kIHNraXAgQVBJIGNhbGxcbiAgICAgICAgICAgIGNvbnN0IGVtcHR5QXJyYXk6IEFYUEFjdGl2aXR5RGVmaW5pdGlvbltdID0gW107XG4gICAgICAgICAgICB0aGlzLmFjdGl2aXRpZXNCeUNhdGVnb3J5LnNldChjYXRlZ29yeUlkLCBlbXB0eUFycmF5KTtcbiAgICAgICAgICAgIHJldHVybiBlbXB0eUFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIFByZXZlbnQgZHVwbGljYXRlIHJlcXVlc3RzXG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdBY3Rpdml0aWVzUmVxdWVzdHMuaGFzKGNhdGVnb3J5SWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wZW5kaW5nQWN0aXZpdGllc1JlcXVlc3RzLmdldChjYXRlZ29yeUlkKSE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDinIUgTG9hZCBmcm9tIHByb3ZpZGVyc1xuICAgICAgICBjb25zdCByZXF1ZXN0UHJvbWlzZSA9IHRoaXMubG9hZEFjdGl2aXRpZXNGcm9tUHJvdmlkZXJzKGNhdGVnb3J5SWQpO1xuICAgICAgICB0aGlzLnBlbmRpbmdBY3Rpdml0aWVzUmVxdWVzdHMuc2V0KGNhdGVnb3J5SWQsIHJlcXVlc3RQcm9taXNlKTtcblxuICAgICAgICByZXR1cm4gcmVxdWVzdFByb21pc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHNpbmdsZSBhY3Rpdml0eSBkZWZpbml0aW9uIGJ5IG5hbWUgd2l0aCBPKDEpIGxvb2t1cFxuICAgICAqIFxuICAgICAqIE9wdGltaXphdGlvbjogVXNlcyBNYXAgZm9yIGluc3RhbnQgcmV0cmlldmFsXG4gICAgICogXG4gICAgICogQHBhcmFtIG5hbWUgLSBBY3Rpdml0eSBuYW1lICh1bmlxdWUgaWRlbnRpZmllciBhbmQgY29tbWFuZCBrZXkpXG4gICAgICogQHJldHVybnMgQWN0aXZpdHkgZGVmaW5pdGlvbiBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kXG4gICAgICovXG4gICAgYXN5bmMgZ2V0QWN0aXZpdHlCeU5hbWUobmFtZTogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eURlZmluaXRpb24gfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgLy8g4pyFIEZhc3QgcGF0aDogTygxKSBsb29rdXAgaW4gY2FjaGVcbiAgICAgICAgaWYgKHRoaXMuYWN0aXZpdGllc0J5TmFtZS5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFjdGl2aXRpZXNCeU5hbWUuZ2V0KG5hbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIFByZXZlbnQgZHVwbGljYXRlIHJlcXVlc3RzXG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdBY3Rpdml0eVJlcXVlc3RzLmhhcyhuYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGVuZGluZ0FjdGl2aXR5UmVxdWVzdHMuZ2V0KG5hbWUpITtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOKchSBMb2FkIGZyb20gcHJvdmlkZXJzXG4gICAgICAgIGNvbnN0IHJlcXVlc3RQcm9taXNlID0gdGhpcy5sb2FkQWN0aXZpdHlGcm9tUHJvdmlkZXJzKG5hbWUpO1xuICAgICAgICB0aGlzLnBlbmRpbmdBY3Rpdml0eVJlcXVlc3RzLnNldChuYW1lLCByZXF1ZXN0UHJvbWlzZSk7XG5cbiAgICAgICAgcmV0dXJuIHJlcXVlc3RQcm9taXNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCBjYXRlZ29yeSBJRCBjb250YWluaW5nIGEgc3BlY2lmaWMgYWN0aXZpdHkgZGVmaW5pdGlvblxuICAgICAqIFxuICAgICAqIE9wdGltaXphdGlvbjogU2VhcmNoZXMgY2FjaGUgZmlyc3QsIGxvYWRzIG9uLWRlbWFuZCBpZiBuZWVkZWRcbiAgICAgKi9cbiAgICBhc3luYyBnZXRDYXRlZ29yeUlkQnlBY3Rpdml0eU5hbWUoYWN0aXZpdHlOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICAvLyDinIUgU2VhcmNoIGluIGNhY2hlZCBhY3Rpdml0eSBkZWZpbml0aW9uc1xuICAgICAgICBmb3IgKGNvbnN0IFtjYXRlZ29yeUlkLCBkZWZpbml0aW9uc10gb2YgdGhpcy5hY3Rpdml0aWVzQnlDYXRlZ29yeS5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGlmIChkZWZpbml0aW9ucy5zb21lKGRlZiA9PiBkZWYubmFtZSA9PT0gYWN0aXZpdHlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYXRlZ29yeUlkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g4pyFIFRyeSBsb2FkaW5nIHRoZSBhY3Rpdml0eSBkZWZpbml0aW9uIHRvIGZpbmQgaXRzIGNhdGVnb3J5XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSBhd2FpdCB0aGlzLmdldEFjdGl2aXR5QnlOYW1lKGFjdGl2aXR5TmFtZSk7XG4gICAgICAgIGlmIChkZWZpbml0aW9uICYmIGRlZmluaXRpb24uY2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIC8vIFRyeSB0byBmaW5kIGNhdGVnb3J5IGJ5IG5hbWUvaWRcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmdldENhdGVnb3JpZXMoKTtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kID0gY2F0ZWdvcmllcy5maW5kKGNhdCA9PiBjYXQuaWQgPT09IGRlZmluaXRpb24uY2F0ZWdvcnkgfHwgY2F0LnRpdGxlID09PSBkZWZpbml0aW9uLmNhdGVnb3J5KTtcbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZC5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGNhdGVnb3J5IHBhdGggZm9yIGFuIGFjdGl2aXR5XG4gICAgICovXG4gICAgYXN5bmMgZ2V0Q2F0ZWdvcmllc1BhdGhCeUFjdGl2aXR5TmFtZShhY3Rpdml0eU5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlDYXRlZ29yeVtdPiB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5SWQgPSBhd2FpdCB0aGlzLmdldENhdGVnb3J5SWRCeUFjdGl2aXR5TmFtZShhY3Rpdml0eU5hbWUpO1xuICAgICAgICBpZiAoIWNhdGVnb3J5SWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWN0aXZpdHkgJyR7YWN0aXZpdHlOYW1lfScgbm90IGZvdW5kIGluIGFueSBjYXRlZ29yeWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldENhdGVnb3JpZXNQYXRoQnlJZChjYXRlZ29yeUlkKTtcbiAgICB9XG5cbiAgICAvLyNlbmRyZWdpb25cblxuICAgIC8vI3JlZ2lvbiAtLS0tICAgUHJpdmF0ZTogRGF0YSBMb2FkaW5nICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogTG9hZCBjYXRlZ29yaWVzIGZyb20gcHJvdmlkZXJzIGFuZCBjYWNoZSByZXN1bHRzXG4gICAgICogXG4gICAgICogT3B0aW1pemF0aW9uOiBUcmFja3MgcHJvdmlkZXIgb3duZXJzaGlwIHRvIGF2b2lkIHVubmVjZXNzYXJ5IEFQSSBjYWxsc1xuICAgICAqIC0gRm9yIHJvb3QgKHBhcmVudElkID0gdW5kZWZpbmVkKTogUXVlcnkgQUxMIHByb3ZpZGVyc1xuICAgICAqIC0gRm9yIGNoaWxkcmVuOiBPbmx5IHF1ZXJ5IHRoZSBwcm92aWRlciB0aGF0IG93bnMgdGhlIHBhcmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgbG9hZENhdGVnb3JpZXNGcm9tUHJvdmlkZXJzKHBhcmVudElkPzogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eUNhdGVnb3J5W10+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkUHJvdmlkZXJzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKHRoaXMuY2F0ZWdvcnlQcm92aWRlcnMpO1xuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcmllczogQVhQQWN0aXZpdHlDYXRlZ29yeVtdID0gW107XG5cbiAgICAgICAgICAgIC8vIERldGVybWluZSB3aGljaCBwcm92aWRlcihzKSB0byBxdWVyeVxuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJJbmRpY2VzVG9RdWVyeSA9IHBhcmVudElkXG4gICAgICAgICAgICAgICAgPyB0aGlzLmdldFByb3ZpZGVySW5kZXhGb3JDYXRlZ29yeShwYXJlbnRJZClcbiAgICAgICAgICAgICAgICA6IG51bGw7IC8vIFJvb3Q6IHF1ZXJ5IGFsbCBwcm92aWRlcnNcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNvbHZlZFByb3ZpZGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHAgPSByZXNvbHZlZFByb3ZpZGVyc1tpXTtcblxuICAgICAgICAgICAgICAgIC8vIFNraXAgaWYgd2UgaGF2ZSBhIHNwZWNpZmljIHByb3ZpZGVyIGluZGV4IGFuZCB0aGlzIGlzbid0IGl0XG4gICAgICAgICAgICAgICAgaWYgKHByb3ZpZGVySW5kaWNlc1RvUXVlcnkgIT09IG51bGwgJiYgIXByb3ZpZGVySW5kaWNlc1RvUXVlcnkuaW5jbHVkZXMoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHAuc3RhdHVzID09PSAnZnVsZmlsbGVkJyAmJiBwLnZhbHVlICYmIHR5cGVvZiBwLnZhbHVlLmdldExpc3QgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhdHMgPSBhd2FpdCBwLnZhbHVlLmdldExpc3QocGFyZW50SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2F0cykgJiYgY2F0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcmllcy5wdXNoKC4uLmNhdHMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g4pyFIFRyYWNrIG93bmVyc2hpcDogVGhpcyBwcm92aWRlciBJTkRFWCBvd25zIHRoZXNlIGNhdGVnb3JpZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRzLmZvckVhY2goY2F0ID0+IHRoaXMuY2F0ZWdvcnlPd25lcnNoaXAuc2V0KGNhdC5pZCwgaSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnRpbnVlIG9uIGVycm9yIC0gdHJ5IG90aGVyIHByb3ZpZGVyc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDinIUgQ2FjaGUgcmVzdWx0cyBmb3IgZmFzdCBzdWJzZXF1ZW50IGFjY2Vzc1xuICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzQnlQYXJlbnRJZC5zZXQocGFyZW50SWQsIGNhdGVnb3JpZXMpO1xuICAgICAgICAgICAgY2F0ZWdvcmllcy5mb3JFYWNoKGNhdCA9PiB0aGlzLmNhdGVnb3JpZXNCeUlkLnNldChjYXQuaWQsIGNhdCkpO1xuXG4gICAgICAgICAgICByZXR1cm4gY2F0ZWdvcmllcztcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NhdGVnb3JpZXNSZXF1ZXN0cy5kZWxldGUocGFyZW50SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBwcm92aWRlciBpbmRleCB0aGF0IG93bnMgYSBzcGVjaWZpYyBjYXRlZ29yeVxuICAgICAqIFxuICAgICAqIEByZXR1cm5zIEFycmF5IHdpdGggcHJvdmlkZXIgaW5kZXgsIG9yIG51bGwgaWYgb3duZXJzaGlwIHVua25vd24gKHF1ZXJ5IGFsbClcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFByb3ZpZGVySW5kZXhGb3JDYXRlZ29yeShjYXRlZ29yeUlkOiBzdHJpbmcpOiBudW1iZXJbXSB8IG51bGwge1xuICAgICAgICBjb25zdCBvd25lckluZGV4ID0gdGhpcy5jYXRlZ29yeU93bmVyc2hpcC5nZXQoY2F0ZWdvcnlJZCk7XG5cbiAgICAgICAgaWYgKG93bmVySW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtvd25lckluZGV4XTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE93bmVyc2hpcCB1bmtub3duIC0gd2lsbCBxdWVyeSBhbGwgcHJvdmlkZXJzIChmYWxsYmFjaylcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZCBhY3Rpdml0eSBkZWZpbml0aW9ucyBmcm9tIHByb3ZpZGVycyBhbmQgY2FjaGUgcmVzdWx0c1xuICAgICAqIFxuICAgICAqIE9wdGltaXphdGlvbjogT25seSBxdWVyaWVzIHRoZSBwcm92aWRlciB0aGF0IG93bnMgdGhlIGNhdGVnb3J5XG4gICAgICogVXNlcyBwcm92aWRlciBJTkRFWCB0byBtYXRjaCBjYXRlZ29yeSBwcm92aWRlciB3aXRoIGFjdGl2aXR5IHByb3ZpZGVyXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQWN0aXZpdGllc0Zyb21Qcm92aWRlcnMoY2F0ZWdvcnlJZDogc3RyaW5nKTogUHJvbWlzZTxBWFBBY3Rpdml0eURlZmluaXRpb25bXT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRQcm92aWRlcnMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQodGhpcy5hY3Rpdml0eVByb3ZpZGVycyk7XG4gICAgICAgICAgICBjb25zdCBkZWZpbml0aW9uczogQVhQQWN0aXZpdHlEZWZpbml0aW9uW10gPSBbXTtcblxuICAgICAgICAgICAgLy8g4pyFIFNtYXJ0IHJvdXRpbmc6IEdldCBwcm92aWRlciBJTkRFWCB0aGF0IG93bnMgdGhpcyBjYXRlZ29yeVxuICAgICAgICAgICAgY29uc3Qgb3duZXJJbmRleCA9IHRoaXMuY2F0ZWdvcnlPd25lcnNoaXAuZ2V0KGNhdGVnb3J5SWQpO1xuICAgICAgICAgICAgY29uc3QgcHJvdmlkZXJJbmRpY2VzVG9RdWVyeSA9IG93bmVySW5kZXggIT09IHVuZGVmaW5lZCA/IFtvd25lckluZGV4XSA6IG51bGw7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVzb2x2ZWRQcm92aWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gcmVzb2x2ZWRQcm92aWRlcnNbaV07XG5cbiAgICAgICAgICAgICAgICAvLyBTa2lwIGlmIHdlIGhhdmUgYSBzcGVjaWZpYyBwcm92aWRlciBpbmRleCBhbmQgdGhpcyBpc24ndCBpdFxuICAgICAgICAgICAgICAgIGlmIChwcm92aWRlckluZGljZXNUb1F1ZXJ5ICE9PSBudWxsICYmICFwcm92aWRlckluZGljZXNUb1F1ZXJ5LmluY2x1ZGVzKGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChwLnN0YXR1cyA9PT0gJ2Z1bGZpbGxlZCcgJiYgcC52YWx1ZSAmJiB0eXBlb2YgcC52YWx1ZS5nZXRMaXN0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWZzID0gYXdhaXQgcC52YWx1ZS5nZXRMaXN0KGNhdGVnb3J5SWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbml0aW9ucy5wdXNoKC4uLmRlZnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENvbnRpbnVlIG9uIGVycm9yIC0gdHJ5IG90aGVyIHByb3ZpZGVyc1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDinIUgQ2FjaGUgcmVzdWx0cyBmb3IgZmFzdCBzdWJzZXF1ZW50IGFjY2Vzc1xuICAgICAgICAgICAgdGhpcy5hY3Rpdml0aWVzQnlDYXRlZ29yeS5zZXQoY2F0ZWdvcnlJZCwgZGVmaW5pdGlvbnMpO1xuICAgICAgICAgICAgZGVmaW5pdGlvbnMuZm9yRWFjaChkZWYgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkZWYubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXRpZXNCeU5hbWUuc2V0KGRlZi5uYW1lLCBkZWYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZGVmaW5pdGlvbnM7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdBY3Rpdml0aWVzUmVxdWVzdHMuZGVsZXRlKGNhdGVnb3J5SWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZCBzaW5nbGUgYWN0aXZpdHkgZGVmaW5pdGlvbiBmcm9tIHByb3ZpZGVycyBhbmQgY2FjaGUgcmVzdWx0XG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkQWN0aXZpdHlGcm9tUHJvdmlkZXJzKG5hbWU6IHN0cmluZyk6IFByb21pc2U8QVhQQWN0aXZpdHlEZWZpbml0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZFByb3ZpZGVycyA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZCh0aGlzLmFjdGl2aXR5UHJvdmlkZXJzKTtcblxuICAgICAgICAgICAgLy8gVHJ5IHByb3ZpZGVycyBmaXJzdFxuICAgICAgICAgICAgZm9yIChjb25zdCBwIG9mIHJlc29sdmVkUHJvdmlkZXJzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHAuc3RhdHVzID09PSAnZnVsZmlsbGVkJyAmJiBwLnZhbHVlICYmIHR5cGVvZiBwLnZhbHVlLmdldEJ5SWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHAudmFsdWUuZ2V0QnlJZChuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFjdGl2aXRpZXNCeU5hbWUuc2V0KG5hbWUsIHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBDb250aW51ZSBvbiBlcnJvclxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBGYWxsYmFjazogU2VhcmNoIGluIGNhY2hlZCBhY3Rpdml0eSBkZWZpbml0aW9uc1xuICAgICAgICAgICAgZm9yIChjb25zdCBkZWZpbml0aW9ucyBvZiB0aGlzLmFjdGl2aXRpZXNCeUNhdGVnb3J5LnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZm91bmQgPSBkZWZpbml0aW9ucy5maW5kKGRlZiA9PiBkZWYubmFtZSA9PT0gbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZpdGllc0J5TmFtZS5zZXQobmFtZSwgZm91bmQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQWN0aXZpdHlSZXF1ZXN0cy5kZWxldGUobmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCcmVhZHRoLWZpcnN0IHNlYXJjaCB0aHJvdWdoIGNhdGVnb3J5IGhpZXJhcmNoeVxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgc2VhcmNoQ2F0ZWdvcnlJbkhpZXJhcmNoeShjYXRlZ29yeUlkOiBzdHJpbmcpOiBQcm9taXNlPEFYUEFjdGl2aXR5Q2F0ZWdvcnkgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoUXVldWU6IChzdHJpbmcgfCB1bmRlZmluZWQpW10gPSBbdW5kZWZpbmVkXTtcbiAgICAgICAgY29uc3Qgc2VhcmNoZWQgPSBuZXcgU2V0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcblxuICAgICAgICB3aGlsZSAoc2VhcmNoUXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50SWQgPSBzZWFyY2hRdWV1ZS5zaGlmdCgpITtcbiAgICAgICAgICAgIGlmIChzZWFyY2hlZC5oYXMocGFyZW50SWQpKSBjb250aW51ZTtcbiAgICAgICAgICAgIHNlYXJjaGVkLmFkZChwYXJlbnRJZCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmdldENhdGVnb3JpZXMocGFyZW50SWQpO1xuICAgICAgICAgICAgY29uc3QgZm91bmQgPSBjYXRlZ29yaWVzLmZpbmQoY2F0ID0+IGNhdC5pZCA9PT0gY2F0ZWdvcnlJZCk7XG5cbiAgICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmb3VuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8g4pyFIE9wdGltaXphdGlvbjogT25seSBzZWFyY2ggY2hpbGRyZW4gaWYgY2hpbGRyZW5Db3VudCA+IDBcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllcykge1xuICAgICAgICAgICAgICAgIGlmIChjYXRlZ29yeS5jaGlsZHJlbkNvdW50ID4gMCAmJiAhc2VhcmNoZWQuaGFzKGNhdGVnb3J5LmlkKSkge1xuICAgICAgICAgICAgICAgICAgICBzZWFyY2hRdWV1ZS5wdXNoKGNhdGVnb3J5LmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vI2VuZHJlZ2lvblxuXG4gICAgLy8jcmVnaW9uIC0tLS0gICBDYWNoZSBNYW5hZ2VtZW50ICAgLS0tLVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgY2F0ZWdvcnkgaGFzIGNoaWxkcmVuICh1c2VzIGNhY2hlZCBjb3VudClcbiAgICAgKi9cbiAgICBjYXRlZ29yeUhhc0NoaWxkcmVuKGNhdGVnb3J5SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllc0J5SWQuZ2V0KGNhdGVnb3J5SWQpO1xuICAgICAgICByZXR1cm4gY2F0ZWdvcnkgPyBjYXRlZ29yeS5jaGlsZHJlbkNvdW50ID4gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIGNhdGVnb3J5IGhhcyBhY3Rpdml0aWVzICh1c2VzIGNhY2hlZCBjb3VudClcbiAgICAgKi9cbiAgICBjYXRlZ29yeUhhc0FjdGl2aXRpZXMoY2F0ZWdvcnlJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yaWVzQnlJZC5nZXQoY2F0ZWdvcnlJZCk7XG4gICAgICAgIHJldHVybiBjYXRlZ29yeSA/IChjYXRlZ29yeS5pdGVtc0NvdW50ID8/IDApID4gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIGFsbCBjYWNoZXNcbiAgICAgKi9cbiAgICBjbGVhckFsbENhY2hlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXNCeUlkLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllc0J5UGFyZW50SWQuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzQnlDYXRlZ29yeS5jbGVhcigpO1xuICAgICAgICB0aGlzLmFjdGl2aXRpZXNCeU5hbWUuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jYXRlZ29yeU93bmVyc2hpcC5jbGVhcigpO1xuICAgICAgICB0aGlzLnBlbmRpbmdDYXRlZ29yaWVzUmVxdWVzdHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nQWN0aXZpdGllc1JlcXVlc3RzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucGVuZGluZ0FjdGl2aXR5UmVxdWVzdHMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhciBjYXRlZ29yaWVzIGNhY2hlIG9ubHlcbiAgICAgKi9cbiAgICBjbGVhckNhdGVnb3JpZXNDYWNoZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXRlZ29yaWVzQnlJZC5jbGVhcigpO1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXNCeVBhcmVudElkLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuY2F0ZWdvcnlPd25lcnNoaXAuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5wZW5kaW5nQ2F0ZWdvcmllc1JlcXVlc3RzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXIgYWN0aXZpdGllcyBjYWNoZSBvbmx5XG4gICAgICovXG4gICAgY2xlYXJBY3Rpdml0aWVzQ2FjaGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZpdGllc0J5Q2F0ZWdvcnkuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5hY3Rpdml0aWVzQnlOYW1lLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucGVuZGluZ0FjdGl2aXRpZXNSZXF1ZXN0cy5jbGVhcigpO1xuICAgICAgICB0aGlzLnBlbmRpbmdBY3Rpdml0eVJlcXVlc3RzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Abstract service for workflow execution operations.\n *\n * This service handles communication with backend for workflow execution.\n *\n * Implementation should be provided in connectivity layer:\n * - Mock implementation: @acorex/connectivity/mock\n * - API implementation: @acorex/connectivity/api\n *\n * @example\n * ```typescript\n * // In connectivity/mock\n * @Injectable()\n * export class AXCWorkflowExecutionService implements AXPWorkflowExecutionService {\n * async startExecution(request: AXPStartWorkflowExecutionRequest): Promise<AXPStartWorkflowExecutionResponse> {\n * // Mock implementation\n * }\n * }\n *\n * // In connectivity/api\n * @Injectable()\n * export class AXCWorkflowExecutionService implements AXPWorkflowExecutionService {\n * constructor(private http: HttpClient) {}\n *\n * async startExecution(request: AXPStartWorkflowExecutionRequest): Promise<AXPStartWorkflowExecutionResponse> {\n * return firstValueFrom(\n * this.http.post<AXPStartWorkflowExecutionResponse>(\n * `${this.config.baseUrl}/api/workflows/${request.workflowId}/start`,\n * { input: request.input }\n * )\n * );\n * }\n * }\n * ```\n */\nexport class AXPWorkflowExecutionService {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: AXPWorkflowExecutionService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvd29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFFSCxNQUFNLE9BQWdCLDJCQUEyQjsrR0FBM0IsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRGhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdCxcbiAgQVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlLFxuICBBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3QsXG4gIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2UsXG4gIEFYUEdldFdvcmtmbG93RXhlY3V0aW9uU3RhdGVSZXF1ZXN0LFxuICBBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXF1ZXN0LFxuICBBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXNwb25zZSxcbiAgQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSxcbn0gZnJvbSAnLi93b3JrZmxvdy1leGVjdXRpb24udHlwZXMnO1xuXG4vKipcbiAqIEFic3RyYWN0IHNlcnZpY2UgZm9yIHdvcmtmbG93IGV4ZWN1dGlvbiBvcGVyYXRpb25zLlxuICogXG4gKiBUaGlzIHNlcnZpY2UgaGFuZGxlcyBjb21tdW5pY2F0aW9uIHdpdGggYmFja2VuZCBmb3Igd29ya2Zsb3cgZXhlY3V0aW9uLlxuICogXG4gKiBJbXBsZW1lbnRhdGlvbiBzaG91bGQgYmUgcHJvdmlkZWQgaW4gY29ubmVjdGl2aXR5IGxheWVyOlxuICogLSBNb2NrIGltcGxlbWVudGF0aW9uOiBAYWNvcmV4L2Nvbm5lY3Rpdml0eS9tb2NrXG4gKiAtIEFQSSBpbXBsZW1lbnRhdGlvbjogQGFjb3JleC9jb25uZWN0aXZpdHkvYXBpXG4gKiBcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBjb25uZWN0aXZpdHkvbW9ja1xuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFYQ1dvcmtmbG93RXhlY3V0aW9uU2VydmljZSBpbXBsZW1lbnRzIEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB7XG4gKiAgIGFzeW5jIHN0YXJ0RXhlY3V0aW9uKHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0KTogUHJvbWlzZTxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+IHtcbiAqICAgICAvLyBNb2NrIGltcGxlbWVudGF0aW9uXG4gKiAgIH1cbiAqIH1cbiAqIFxuICogLy8gSW4gY29ubmVjdGl2aXR5L2FwaVxuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFYQ1dvcmtmbG93RXhlY3V0aW9uU2VydmljZSBpbXBsZW1lbnRzIEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB7XG4gKiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cbiAqICAgXG4gKiAgIGFzeW5jIHN0YXJ0RXhlY3V0aW9uKHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0KTogUHJvbWlzZTxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+IHtcbiAqICAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gKiAgICAgICB0aGlzLmh0dHAucG9zdDxBWFBTdGFydFdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2U+KFxuICogICAgICAgICBgJHt0aGlzLmNvbmZpZy5iYXNlVXJsfS9hcGkvd29ya2Zsb3dzLyR7cmVxdWVzdC53b3JrZmxvd0lkfS9zdGFydGAsXG4gKiAgICAgICAgIHsgaW5wdXQ6IHJlcXVlc3QuaW5wdXQgfVxuICogICAgICAgKVxuICogICAgICk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhQV29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFN0YXJ0IGEgbmV3IHdvcmtmbG93IGV4ZWN1dGlvbi5cbiAgICogXG4gICAqIENyZWF0ZXMgYSBuZXcgd29ya2Zsb3cgZXhlY3V0aW9uIGluc3RhbmNlIGluIGJhY2tlbmQgYW5kIHJldHVybnMgZXhlY3V0aW9uIElELlxuICAgKiBcbiAgICogQHBhcmFtIHJlcXVlc3QgLSBTdGFydCBleGVjdXRpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzcG9uc2Ugd2l0aCBleGVjdXRpb25JZCBhbmQgaW5pdGlhbCBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5zdGFydEV4ZWN1dGlvbih7XG4gICAqICAgd29ya2Zsb3dJZDogJ215LXdvcmtmbG93JyxcbiAgICogICBpbnB1dDogeyB1c2VySWQ6ICcxMjMnLCBhY3Rpb246ICdjcmVhdGUnIH1cbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnRXhlY3V0aW9uIElEOicsIHJlc3BvbnNlLmV4ZWN1dGlvbklkKTtcbiAgICogY29uc29sZS5sb2coJ0luaXRpYWwgU3RhdGU6JywgcmVzcG9uc2Uuc3RhdGUpO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHN0YXJ0RXhlY3V0aW9uKFxuICAgIHJlcXVlc3Q6IEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0XG4gICk6IFByb21pc2U8QVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlPjtcblxuICAvKipcbiAgICogUmVzdW1lIGEgc3VzcGVuZGVkIHdvcmtmbG93IGV4ZWN1dGlvbi5cbiAgICogXG4gICAqIFJlc3VtZXMgd29ya2Zsb3cgZXhlY3V0aW9uIGFmdGVyIHVzZXIgaW50ZXJhY3Rpb24gKGUuZy4sIGFmdGVyIHNob3ctZGlhbG9nKS5cbiAgICogXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gUmVzdW1lIGV4ZWN1dGlvbiByZXF1ZXN0XG4gICAqIEByZXR1cm5zIFJlc3VtZSByZXNwb25zZSB3aXRoIG5leHQgc3RlcCBhbmQgdXBkYXRlZCBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByZXNwb25zZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5yZXN1bWVFeGVjdXRpb24oe1xuICAgKiAgIGV4ZWN1dGlvbklkOiAnZXhlYy0xMjMnLFxuICAgKiAgIHN0ZXBJZDogJ3N0ZXAtZGlhbG9nLTEnLFxuICAgKiAgIHRhc2tUb2tlbjogJ3NlYy10YXNrLXRva2VuJyxcbiAgICogICBvdXRjb21lOiAnQ29uZmlybWVkJyxcbiAgICogICB1c2VySW5wdXQ6IHsgY29uZmlybWVkOiB0cnVlIH1cbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnTmV4dCBTdGVwOicsIHJlc3BvbnNlLm5leHRTdGVwKTtcbiAgICogY29uc29sZS5sb2coJ1VwZGF0ZWQgU3RhdGU6JywgcmVzcG9uc2Uuc3RhdGUpO1xuICAgKiBgYGBcbiAgICovXG4gIGFic3RyYWN0IHJlc3VtZUV4ZWN1dGlvbihcbiAgICByZXF1ZXN0OiBBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlcXVlc3RcbiAgKTogUHJvbWlzZTxBWFBSZXN1bWVXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlPjtcblxuICAvKipcbiAgICogR2V0IGN1cnJlbnQgd29ya2Zsb3cgZXhlY3V0aW9uIHN0YXRlLlxuICAgKiBcbiAgICogUmV0cmlldmVzIGN1cnJlbnQgc3RhdGUgb2YgYSB3b3JrZmxvdyBleGVjdXRpb24gZnJvbSBiYWNrZW5kLlxuICAgKiBcbiAgICogQHBhcmFtIHJlcXVlc3QgLSBHZXQgc3RhdGUgcmVxdWVzdFxuICAgKiBAcmV0dXJucyBDdXJyZW50IHdvcmtmbG93IGV4ZWN1dGlvbiBzdGF0ZVxuICAgKiBcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBzdGF0ZSA9IGF3YWl0IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZS5nZXRFeGVjdXRpb25TdGF0ZSh7XG4gICAqICAgZXhlY3V0aW9uSWQ6ICdleGVjLTEyMydcbiAgICogfSk7XG4gICAqIFxuICAgKiBjb25zb2xlLmxvZygnU3RhdHVzOicsIHN0YXRlLnN0YXR1cyk7XG4gICAqIGNvbnNvbGUubG9nKCdWYXJpYWJsZXM6Jywgc3RhdGUudmFyaWFibGVzKTtcbiAgICogYGBgXG4gICAqL1xuICBhYnN0cmFjdCBnZXRFeGVjdXRpb25TdGF0ZShcbiAgICByZXF1ZXN0OiBBWFBHZXRXb3JrZmxvd0V4ZWN1dGlvblN0YXRlUmVxdWVzdFxuICApOiBQcm9taXNlPEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU+O1xuXG4gIC8qKlxuICAgKiBHZXQgd29ya2Zsb3cgZGVmaW5pdGlvbiBieSBJRC5cbiAgICogXG4gICAqIFJldHJpZXZlcyB3b3JrZmxvdyBkZWZpbml0aW9uIGZyb20gYmFja2VuZC5cbiAgICogXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gR2V0IHdvcmtmbG93IGRlZmluaXRpb24gcmVxdWVzdFxuICAgKiBAcmV0dXJucyBXb3JrZmxvdyBkZWZpbml0aW9uIGluIGV4ZWN1dGFibGUgZm9ybWF0XG4gICAqIFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgd29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlLmdldFdvcmtmbG93RGVmaW5pdGlvbih7XG4gICAqICAgd29ya2Zsb3dJZDogJ215LXdvcmtmbG93J1xuICAgKiB9KTtcbiAgICogXG4gICAqIGNvbnNvbGUubG9nKCdXb3JrZmxvdzonLCByZXNwb25zZS53b3JrZmxvdyk7XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0V29ya2Zsb3dEZWZpbml0aW9uKFxuICAgIHJlcXVlc3Q6IEFYUEdldFdvcmtmbG93RGVmaW5pdGlvblJlcXVlc3RcbiAgKTogUHJvbWlzZTxBWFBHZXRXb3JrZmxvd0RlZmluaXRpb25SZXNwb25zZT47XG59XG5cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPWorkflowExecutionService } from './workflow-execution.service';\nimport * as i0 from \"@angular/core\";\n//#endregion\n/**\n * Production Workflow Coordinator.\n *\n * Separates frontend/backend execution:\n * - Frontend activities: Execute with AXPCommand in browser\n * - Backend activities: Execute via API calls to backend\n * - State caching: Caches workflow state in client for performance\n *\n */\nexport class WorkflowCoordinator {\n constructor() {\n //#region ---- Services & Dependencies ----\n this.workflowExecutionService = inject(AXPWorkflowExecutionService);\n this.commandService = inject(AXPCommandService);\n //#endregion\n //#region ---- State Cache (Client-side for Performance) ----\n /**\n * Cache workflow states in memory for quick access.\n * Key: executionId\n * Value: AXPWorkflowExecutionState\n */\n this.stateCache = new Map();\n }\n //#endregion\n //#region ---- Public Methods ----\n /**\n * Start workflow execution in backend.\n *\n * Backend decides what to do: returns pendingTask or indicates completion.\n * Frontend only calls API - no business logic here.\n *\n * @param workflowId - Workflow ID\n * @param input - Initial input data\n * @returns Execution result with pendingTask (if any)\n *\n * @example\n * ```typescript\n * const result = await coordinator.startWorkflow('my-workflow', { userId: '123' });\n *\n * if (result.pendingTask) {\n * // Execute task if frontend, or wait for backend to complete\n * if (result.pendingTask.executionMode === 'frontend') {\n * await coordinator.executeTask(result.pendingTask);\n * await coordinator.completeTask(result.executionId, result.pendingTask, outcome, output);\n * }\n * }\n * ```\n */\n async startWorkflow(workflowId, input = {}) {\n try {\n const execution = await this.startWorkflowExecution(workflowId, input);\n const result = {\n success: true,\n output: execution.state.output,\n nextTask: execution.pendingTask || null,\n executionId: execution.executionId,\n state: execution.state\n };\n return result;\n }\n catch (error) {\n console.error('[WorkflowCoordinator] ❌ Error in startWorkflow', error);\n return {\n success: false,\n error: error.message || 'Failed to start workflow',\n nextTask: null\n };\n }\n }\n /**\n * Execute a frontend task using AXPCommand.\n *\n * Only executes if task.executionMode is 'frontend' or 'both'.\n * Backend tasks are handled automatically by backend.\n *\n * @param task - Task to execute\n * @returns Execution result with output and outcome\n */\n async executeTask(task) {\n // Only execute frontend tasks\n if (task.executionMode !== 'frontend' && task.executionMode !== 'both') {\n throw new Error(`Task '${task.activityId}' is not a frontend task. Backend handles it automatically.`);\n }\n return await this.executeFrontendActivity(task);\n }\n /**\n * Complete a task and get next task from backend.\n *\n * Sends task result to backend API.\n * Backend decides: next task, fail, or complete workflow.\n *\n * @param executionId - Execution ID\n * @param task - Completed task\n * @param outcome - Task outcome (e.g., 'Done', 'Confirmed', 'Cancelled')\n * @param output - Task output/result\n * @returns Next task from backend (if any)\n */\n async completeTask(executionId, task, outcome, output) {\n try {\n // Send result to backend - backend decides next step\n const response = await this.workflowExecutionService.resumeExecution({\n executionId,\n stepId: task.activityId,\n taskToken: task.taskToken,\n outcome,\n userInput: output\n });\n // Update cache\n if (response.state) {\n this.stateCache.set(executionId, response.state);\n }\n return {\n success: true,\n output: response.output,\n nextTask: response.nextTask || null,\n executionId,\n state: response.state\n };\n }\n catch (error) {\n return {\n success: false,\n error: error.message || 'Failed to complete task',\n nextTask: null\n };\n }\n }\n /**\n * Execute workflow by ID (backward compatibility).\n *\n * @deprecated Use startWorkflow + executeTask + completeTask pattern instead.\n * This method is kept for backward compatibility but will be removed.\n */\n async executeWorkflowById(workflowId, input = {}) {\n // Just start workflow - caller should handle task execution\n return await this.startWorkflow(workflowId, input);\n }\n /**\n * Resume a suspended workflow (e.g., after user interaction).\n *\n * Backend determines nextStep based on outcome and outcomeConnections.\n * Client only provides executionId, stepId, outcome, and optional userInput.\n *\n * @param executionId - Workflow execution ID\n * @param stepId - Step ID that was waiting for user input\n * @param outcome - User action outcome (e.g., 'Confirmed', 'Cancelled', 'Submitted')\n * @param userInput - Optional user input data\n */\n async resumeWorkflow(executionId, stepId, outcome, userInput, taskToken) {\n try {\n // Ensure taskToken is provided for secure resumption\n if (!taskToken) {\n throw new Error('Missing taskToken for resumeWorkflow');\n }\n // Backend handles everything: checks outcomeConnections and determines nextStep\n const response = await this.workflowExecutionService.resumeExecution({\n executionId,\n stepId,\n taskToken,\n outcome,\n userInput\n });\n // Update cache with state from backend\n if (response.state) {\n this.stateCache.set(executionId, response.state);\n }\n return {\n success: true,\n output: response.output,\n nextTask: response.nextTask || null, // Backend determines this from outcomeConnections\n executionId,\n state: response.state\n };\n }\n catch (error) {\n return {\n success: false,\n error: error.message || 'Failed to resume workflow',\n nextTask: null\n };\n }\n }\n /**\n * Get workflow execution state (from cache or backend).\n */\n async getWorkflowState(executionId) {\n // Check cache first\n const cached = this.stateCache.get(executionId);\n if (cached) {\n // Cache is valid for 5 minutes\n const cacheAge = Date.now() - cached.lastUpdated.getTime();\n if (cacheAge < 5 * 60 * 1000) {\n return cached;\n }\n }\n // Fetch from backend\n try {\n const state = await this.workflowExecutionService.getExecutionState({\n executionId\n });\n // Update cache\n this.stateCache.set(executionId, state);\n return state;\n }\n catch {\n return null;\n }\n }\n //#endregion\n //#region ---- Private Methods ----\n /**\n * Execute a frontend activity using CommandBus.\n *\n * Frontend activities are executed in the browser using AXPCommandService.\n * Activities can also be executed in both frontend and backend (hybrid mode).\n *\n * @param task - Frontend task to execute\n * @returns Execution result with output and outcome\n */\n async executeFrontendActivity(task) {\n try {\n // Check if command exists\n const commandExists = this.commandService.exists(task.activityType);\n if (!commandExists) {\n console.warn(`[WorkflowCoordinator] ⚠️ Frontend activity '${task.activityType}' is not registered. Skipping execution.`);\n return {\n output: null,\n outcome: 'Done'\n };\n }\n // Execute activity via CommandBus\n // Activities registered as AXPCommand return {output, outcomes}\n // 🎯 Flatten properties if nested (workflow-studio format)\n let commandInput = task.input || task.config || {};\n if (commandInput['properties'] && typeof commandInput['properties'] === 'object') {\n // Flatten: {properties: {text: \"...\"}} -> {text: \"...\"}\n commandInput = { ...commandInput['properties'] };\n }\n const result = await this.commandService.execute(task.activityType, commandInput);\n if (!result) {\n return {\n output: null,\n outcome: 'Failed',\n };\n }\n if (!result.success) {\n return {\n output: {\n error: result.message?.text,\n },\n outcome: 'Failed',\n };\n }\n const commandResult = result.data;\n const outcomes = commandResult?.outcomes ?? {};\n let outcome = 'Done';\n if (Object.keys(outcomes).length > 0) {\n outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';\n }\n return {\n output: commandResult?.output ?? null,\n outcome,\n };\n }\n catch (error) {\n console.error(`[WorkflowCoordinator] ❌ Error executing frontend activity '${task.activityType}':`, error);\n return {\n output: { error: error.message || 'Unknown error' },\n outcome: 'Failed'\n };\n }\n }\n /**\n * Start workflow execution in backend.\n * Backend returns executionId, initial state, and first task to execute.\n */\n async startWorkflowExecution(workflowId, input) {\n const response = await this.workflowExecutionService.startExecution({\n workflowId,\n input\n });\n // Cache state\n this.stateCache.set(response.executionId, response.state);\n return {\n executionId: response.executionId,\n state: response.state,\n pendingTask: response.pendingTask\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.12\", ngImport: i0, type: WorkflowCoordinator, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctY29vcmRpbmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvd29ya2Zsb3ctY29vcmRpbmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBcUIzRSxZQUFZO0FBRVo7Ozs7Ozs7O0dBUUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBSUUsK0NBQStDO1FBRTlCLDZCQUF3QixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQy9ELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFNUQsWUFBWTtRQUVaLGlFQUFpRTtRQUVqRTs7OztXQUlHO1FBQ0ssZUFBVSxHQUFHLElBQUksR0FBRyxFQUFxQyxDQUFDO0tBeVVuRTtJQXRVQyxZQUFZO0lBRVosc0NBQXNDO0lBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsS0FBSyxDQUFDLGFBQWEsQ0FDakIsVUFBa0IsRUFDbEIsUUFBNkIsRUFBRTtRQUUvQixJQUFJLENBQUM7WUFDSCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFdkUsTUFBTSxNQUFNLEdBQUc7Z0JBQ2IsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtnQkFDOUIsUUFBUSxFQUFFLFNBQVMsQ0FBQyxXQUFXLElBQUksSUFBSTtnQkFDdkMsV0FB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QUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsc0JBQXNCLENBQ2xDLFVBQWtCLEVBQ2xCLEtBQTBCO1FBRTFCLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLGNBQWMsQ0FBQztZQUNsRSxVQUFVO1lBQ1YsS0FBSztTQUNOLENBQUMsQ0FBQztRQUVILGNBQWM7UUFDZCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRCxPQUFPO1lBQ0wsV0FBVyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1lBQ2pDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztZQUNyQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7U0FDbEMsQ0FBQztJQUNKLENBQUM7K0dBclZVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUENvbW1hbmRTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9ydW50aW1lJztcbmltcG9ydCB7IEFYUFdvcmtmbG93RXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3ctZXhlY3V0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSxcbiAgQVhQV29ya2Zsb3dUYXNrLFxufSBmcm9tICcuL3dvcmtmbG93LWV4ZWN1dGlvbi50eXBlcyc7XG5cbi8vI3JlZ2lvbiAtLS0tICAgVHlwZXMgJiBJbnRlcmZhY2VzICAgLS0tLVxuXG4vKipcbiAqIFdvcmtmbG93IGV4ZWN1dGlvbiByZXN1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dFeGVjdXRpb25SZXN1bHQge1xuICBzdWNjZXNzOiBib29sZWFuO1xuICBvdXRwdXQ/OiBhbnk7XG4gIGVycm9yPzogc3RyaW5nO1xuICBuZXh0VGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGw7XG4gIGV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICBzdGF0ZT86IEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU7XG59XG5cblxuLy8jZW5kcmVnaW9uXG5cbi8qKlxuICogUHJvZHVjdGlvbiBXb3JrZmxvdyBDb29yZGluYXRvci5cbiAqIFxuICogU2VwYXJhdGVzIGZyb250ZW5kL2JhY2tlbmQgZXhlY3V0aW9uOlxuICogLSBGcm9udGVuZCBhY3Rpdml0aWVzOiBFeGVjdXRlIHdpdGggQVhQQ29tbWFuZCBpbiBicm93c2VyXG4gKiAtIEJhY2tlbmQgYWN0aXZpdGllczogRXhlY3V0ZSB2aWEgQVBJIGNhbGxzIHRvIGJhY2tlbmRcbiAqIC0gU3RhdGUgY2FjaGluZzogQ2FjaGVzIHdvcmtmbG93IHN0YXRlIGluIGNsaWVudCBmb3IgcGVyZm9ybWFuY2VcbiAqIFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXb3JrZmxvd0Nvb3JkaW5hdG9yIHtcbiAgLy8jcmVnaW9uIC0tLS0gICBTZXJ2aWNlcyAmIERlcGVuZGVuY2llcyAgIC0tLS1cblxuICBwcml2YXRlIHJlYWRvbmx5IHdvcmtmbG93RXhlY3V0aW9uU2VydmljZSA9IGluamVjdChBWFBXb3JrZmxvd0V4ZWN1dGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRTZXJ2aWNlID0gaW5qZWN0KEFYUENvbW1hbmRTZXJ2aWNlKTtcbiAgXG4gIC8vI2VuZHJlZ2lvblxuXG4gIC8vI3JlZ2lvbiAtLS0tICAgU3RhdGUgQ2FjaGUgKENsaWVudC1zaWRlIGZvciBQZXJmb3JtYW5jZSkgICAtLS0tXG5cbiAgLyoqXG4gICAqIENhY2hlIHdvcmtmbG93IHN0YXRlcyBpbiBtZW1vcnkgZm9yIHF1aWNrIGFjY2Vzcy5cbiAgICogS2V5OiBleGVjdXRpb25JZFxuICAgKiBWYWx1ZTogQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0ZUNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGU+KCk7XG5cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFB1YmxpYyBNZXRob2RzICAgLS0tLVxuXG4gIC8qKlxuICAgKiBTdGFydCB3b3JrZmxvdyBleGVjdXRpb24gaW4gYmFja2VuZC5cbiAgICogXG4gICAqIEJhY2tlbmQgZGVjaWRlcyB3aGF0IHRvIGRvOiByZXR1cm5zIHBlbmRpbmdUYXNrIG9yIGluZGljYXRlcyBjb21wbGV0aW9uLlxuICAgKiBGcm9udGVuZCBvbmx5IGNhbGxzIEFQSSAtIG5vIGJ1c2luZXNzIGxvZ2ljIGhlcmUuXG4gICAqIFxuICAgKiBAcGFyYW0gd29ya2Zsb3dJZCAtIFdvcmtmbG93IElEXG4gICAqIEBwYXJhbSBpbnB1dCAtIEluaXRpYWwgaW5wdXQgZGF0YVxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzdWx0IHdpdGggcGVuZGluZ1Rhc2sgKGlmIGFueSlcbiAgICogXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgcmVzdWx0ID0gYXdhaXQgY29vcmRpbmF0b3Iuc3RhcnRXb3JrZmxvdygnbXktd29ya2Zsb3cnLCB7IHVzZXJJZDogJzEyMycgfSk7XG4gICAqIFxuICAgKiBpZiAocmVzdWx0LnBlbmRpbmdUYXNrKSB7XG4gICAqICAgLy8gRXhlY3V0ZSB0YXNrIGlmIGZyb250ZW5kLCBvciB3YWl0IGZvciBiYWNrZW5kIHRvIGNvbXBsZXRlXG4gICAqICAgaWYgKHJlc3VsdC5wZW5kaW5nVGFzay5leGVjdXRpb25Nb2RlID09PSAnZnJvbnRlbmQnKSB7XG4gICAqICAgICBhd2FpdCBjb29yZGluYXRvci5leGVjdXRlVGFzayhyZXN1bHQucGVuZGluZ1Rhc2spO1xuICAgKiAgICAgYXdhaXQgY29vcmRpbmF0b3IuY29tcGxldGVUYXNrKHJlc3VsdC5leGVjdXRpb25JZCwgcmVzdWx0LnBlbmRpbmdUYXNrLCBvdXRjb21lLCBvdXRwdXQpO1xuICAgKiAgIH1cbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHN0YXJ0V29ya2Zsb3coXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBleGVjdXRpb24gPSBhd2FpdCB0aGlzLnN0YXJ0V29ya2Zsb3dFeGVjdXRpb24od29ya2Zsb3dJZCwgaW5wdXQpO1xuXG4gICAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgIG91dHB1dDogZXhlY3V0aW9uLnN0YXRlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IGV4ZWN1dGlvbi5wZW5kaW5nVGFzayB8fCBudWxsLFxuICAgICAgICBleGVjdXRpb25JZDogZXhlY3V0aW9uLmV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogZXhlY3V0aW9uLnN0YXRlXG4gICAgICB9O1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbV29ya2Zsb3dDb29yZGluYXRvcl0g4p2MIEVycm9yIGluIHN0YXJ0V29ya2Zsb3cnLCBlcnJvcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byBzdGFydCB3b3JrZmxvdycsXG4gICAgICAgIG5leHRUYXNrOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgZnJvbnRlbmQgdGFzayB1c2luZyBBWFBDb21tYW5kLlxuICAgKiBcbiAgICogT25seSBleGVjdXRlcyBpZiB0YXNrLmV4ZWN1dGlvbk1vZGUgaXMgJ2Zyb250ZW5kJyBvciAnYm90aCcuXG4gICAqIEJhY2tlbmQgdGFza3MgYXJlIGhhbmRsZWQgYXV0b21hdGljYWxseSBieSBiYWNrZW5kLlxuICAgKiBcbiAgICogQHBhcmFtIHRhc2sgLSBUYXNrIHRvIGV4ZWN1dGVcbiAgICogQHJldHVybnMgRXhlY3V0aW9uIHJlc3VsdCB3aXRoIG91dHB1dCBhbmQgb3V0Y29tZVxuICAgKi9cbiAgYXN5bmMgZXhlY3V0ZVRhc2soXG4gICAgdGFzazogQVhQV29ya2Zsb3dUYXNrXG4gICk6IFByb21pc2U8eyBvdXRwdXQ6IGFueTsgb3V0Y29tZTogc3RyaW5nIH0+IHtcbiAgICBcbiAgICAvLyBPbmx5IGV4ZWN1dGUgZnJvbnRlbmQgdGFza3NcbiAgICBpZiAodGFzay5leGVjdXRpb25Nb2RlICE9PSAnZnJvbnRlbmQnICYmIHRhc2suZXhlY3V0aW9uTW9kZSAhPT0gJ2JvdGgnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRhc2sgJyR7dGFzay5hY3Rpdml0eUlkfScgaXMgbm90IGEgZnJvbnRlbmQgdGFzay4gQmFja2VuZCBoYW5kbGVzIGl0IGF1dG9tYXRpY2FsbHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZUZyb250ZW5kQWN0aXZpdHkodGFzayk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGUgYSB0YXNrIGFuZCBnZXQgbmV4dCB0YXNrIGZyb20gYmFja2VuZC5cbiAgICogXG4gICAqIFNlbmRzIHRhc2sgcmVzdWx0IHRvIGJhY2tlbmQgQVBJLlxuICAgKiBCYWNrZW5kIGRlY2lkZXM6IG5leHQgdGFzaywgZmFpbCwgb3IgY29tcGxldGUgd29ya2Zsb3cuXG4gICAqIFxuICAgKiBAcGFyYW0gZXhlY3V0aW9uSWQgLSBFeGVjdXRpb24gSURcbiAgICogQHBhcmFtIHRhc2sgLSBDb21wbGV0ZWQgdGFza1xuICAgKiBAcGFyYW0gb3V0Y29tZSAtIFRhc2sgb3V0Y29tZSAoZS5nLiwgJ0RvbmUnLCAnQ29uZmlybWVkJywgJ0NhbmNlbGxlZCcpXG4gICAqIEBwYXJhbSBvdXRwdXQgLSBUYXNrIG91dHB1dC9yZXN1bHRcbiAgICogQHJldHVybnMgTmV4dCB0YXNrIGZyb20gYmFja2VuZCAoaWYgYW55KVxuICAgKi9cbiAgYXN5bmMgY29tcGxldGVUYXNrKFxuICAgIGV4ZWN1dGlvbklkOiBzdHJpbmcsXG4gICAgdGFzazogQVhQV29ya2Zsb3dUYXNrLFxuICAgIG91dGNvbWU6IHN0cmluZyxcbiAgICBvdXRwdXQ/OiBhbnlcbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIHRyeSB7XG4gICAgICAvLyBTZW5kIHJlc3VsdCB0byBiYWNrZW5kIC0gYmFja2VuZCBkZWNpZGVzIG5leHQgc3RlcFxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLndvcmtmbG93RXhlY3V0aW9uU2VydmljZS5yZXN1bWVFeGVjdXRpb24oe1xuICAgICAgICBleGVjdXRpb25JZCxcbiAgICAgICAgc3RlcElkOiB0YXNrLmFjdGl2aXR5SWQsXG4gICAgICAgIHRhc2tUb2tlbjogdGFzay50YXNrVG9rZW4sXG4gICAgICAgIG91dGNvbWUsXG4gICAgICAgIHVzZXJJbnB1dDogb3V0cHV0XG4gICAgICB9KTtcblxuICAgICAgLy8gVXBkYXRlIGNhY2hlXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgcmVzcG9uc2Uuc3RhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBvdXRwdXQ6IHJlc3BvbnNlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IHJlc3BvbnNlLm5leHRUYXNrIHx8IG51bGwsXG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGVcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgIGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gY29tcGxldGUgdGFzaycsXG4gICAgICAgIG5leHRUYXNrOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgd29ya2Zsb3cgYnkgSUQgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpLlxuICAgKiBcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHN0YXJ0V29ya2Zsb3cgKyBleGVjdXRlVGFzayArIGNvbXBsZXRlVGFzayBwYXR0ZXJuIGluc3RlYWQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYnV0IHdpbGwgYmUgcmVtb3ZlZC5cbiAgICovXG4gIGFzeW5jIGV4ZWN1dGVXb3JrZmxvd0J5SWQoXG4gICAgd29ya2Zsb3dJZDogc3RyaW5nLFxuICAgIGlucHV0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge31cbiAgKTogUHJvbWlzZTxXb3JrZmxvd0V4ZWN1dGlvblJlc3VsdD4ge1xuICAgIC8vIEp1c3Qgc3RhcnQgd29ya2Zsb3cgLSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0YXNrIGV4ZWN1dGlvblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnN0YXJ0V29ya2Zsb3cod29ya2Zsb3dJZCwgaW5wdXQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VtZSBhIHN1c3BlbmRlZCB3b3JrZmxvdyAoZS5nLiwgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbikuXG4gICAqIFxuICAgKiBCYWNrZW5kIGRldGVybWluZXMgbmV4dFN0ZXAgYmFzZWQgb24gb3V0Y29tZSBhbmQgb3V0Y29tZUNvbm5lY3Rpb25zLlxuICAgKiBDbGllbnQgb25seSBwcm92aWRlcyBleGVjdXRpb25JZCwgc3RlcElkLCBvdXRjb21lLCBhbmQgb3B0aW9uYWwgdXNlcklucHV0LlxuICAgKiBcbiAgICogQHBhcmFtIGV4ZWN1dGlvbklkIC0gV29ya2Zsb3cgZXhlY3V0aW9uIElEXG4gICAqIEBwYXJhbSBzdGVwSWQgLSBTdGVwIElEIHRoYXQgd2FzIHdhaXRpbmcgZm9yIHVzZXIgaW5wdXRcbiAgICogQHBhcmFtIG91dGNvbWUgLSBVc2VyIGFjdGlvbiBvdXRjb21lIChlLmcuLCAnQ29uZmlybWVkJywgJ0NhbmNlbGxlZCcsICdTdWJtaXR0ZWQnKVxuICAgKiBAcGFyYW0gdXNlcklucHV0IC0gT3B0aW9uYWwgdXNlciBpbnB1dCBkYXRhXG4gICAqL1xuICBhc3luYyByZXN1bWVXb3JrZmxvdyhcbiAgICBleGVjdXRpb25JZDogc3RyaW5nLFxuICAgIHN0ZXBJZDogc3RyaW5nLFxuICAgIG91dGNvbWU6IHN0cmluZyxcbiAgICB1c2VySW5wdXQ/OiBhbnksXG4gICAgdGFza1Rva2VuPzogc3RyaW5nXG4gICk6IFByb21pc2U8V29ya2Zsb3dFeGVjdXRpb25SZXN1bHQ+IHtcbiAgICB0cnkge1xuICAgICAgLy8gRW5zdXJlIHRhc2tUb2tlbiBpcyBwcm92aWRlZCBmb3Igc2VjdXJlIHJlc3VtcHRpb25cbiAgICAgIGlmICghdGFza1Rva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyB0YXNrVG9rZW4gZm9yIHJlc3VtZVdvcmtmbG93Jyk7XG4gICAgICB9XG5cbiAgICAgIC8vIEJhY2tlbmQgaGFuZGxlcyBldmVyeXRoaW5nOiBjaGVja3Mgb3V0Y29tZUNvbm5lY3Rpb25zIGFuZCBkZXRlcm1pbmVzIG5leHRTdGVwXG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMud29ya2Zsb3dFeGVjdXRpb25TZXJ2aWNlLnJlc3VtZUV4ZWN1dGlvbih7XG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGVwSWQsXG4gICAgICAgIHRhc2tUb2tlbixcbiAgICAgICAgb3V0Y29tZSxcbiAgICAgICAgdXNlcklucHV0XG4gICAgICB9KTtcblxuICAgICAgLy8gVXBkYXRlIGNhY2hlIHdpdGggc3RhdGUgZnJvbSBiYWNrZW5kXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdGUpIHtcbiAgICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgcmVzcG9uc2Uuc3RhdGUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBvdXRwdXQ6IHJlc3BvbnNlLm91dHB1dCxcbiAgICAgICAgbmV4dFRhc2s6IHJlc3BvbnNlLm5leHRUYXNrIHx8IG51bGwsIC8vIEJhY2tlbmQgZGV0ZXJtaW5lcyB0aGlzIGZyb20gb3V0Y29tZUNvbm5lY3Rpb25zXG4gICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGVcbiAgICAgIH07XG5cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfHwgJ0ZhaWxlZCB0byByZXN1bWUgd29ya2Zsb3cnLFxuICAgICAgICBuZXh0VGFzazogbnVsbFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHdvcmtmbG93IGV4ZWN1dGlvbiBzdGF0ZSAoZnJvbSBjYWNoZSBvciBiYWNrZW5kKS5cbiAgICovXG4gIGFzeW5jIGdldFdvcmtmbG93U3RhdGUoZXhlY3V0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8QVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZSB8IG51bGw+IHtcbiAgICAvLyBDaGVjayBjYWNoZSBmaXJzdFxuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMuc3RhdGVDYWNoZS5nZXQoZXhlY3V0aW9uSWQpO1xuICAgIGlmIChjYWNoZWQpIHtcbiAgICAgIC8vIENhY2hlIGlzIHZhbGlkIGZvciA1IG1pbnV0ZXNcbiAgICAgIGNvbnN0IGNhY2hlQWdlID0gRGF0ZS5ub3coKSAtIGNhY2hlZC5sYXN0VXBkYXRlZC5nZXRUaW1lKCk7XG4gICAgICBpZiAoY2FjaGVBZ2UgPCA1ICogNjAgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiBjYWNoZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRmV0Y2ggZnJvbSBiYWNrZW5kXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgdGhpcy53b3JrZmxvd0V4ZWN1dGlvblNlcnZpY2UuZ2V0RXhlY3V0aW9uU3RhdGUoe1xuICAgICAgICBleGVjdXRpb25JZFxuICAgICAgfSk7XG4gICAgICBcbiAgICAgIC8vIFVwZGF0ZSBjYWNoZVxuICAgICAgdGhpcy5zdGF0ZUNhY2hlLnNldChleGVjdXRpb25JZCwgc3RhdGUpO1xuICAgICAgXG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvLyNlbmRyZWdpb25cblxuICAvLyNyZWdpb24gLS0tLSAgIFByaXZhdGUgTWV0aG9kcyAgIC0tLS1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIGZyb250ZW5kIGFjdGl2aXR5IHVzaW5nIENvbW1hbmRCdXMuXG4gICAqIFxuICAgKiBGcm9udGVuZCBhY3Rpdml0aWVzIGFyZSBleGVjdXRlZCBpbiB0aGUgYnJvd3NlciB1c2luZyBBWFBDb21tYW5kU2VydmljZS5cbiAgICogQWN0aXZpdGllcyBjYW4gYWxzbyBiZSBleGVjdXRlZCBpbiBib3RoIGZyb250ZW5kIGFuZCBiYWNrZW5kIChoeWJyaWQgbW9kZSkuXG4gICAqIFxuICAgKiBAcGFyYW0gdGFzayAtIEZyb250ZW5kIHRhc2sgdG8gZXhlY3V0ZVxuICAgKiBAcmV0dXJucyBFeGVjdXRpb24gcmVzdWx0IHdpdGggb3V0cHV0IGFuZCBvdXRjb21lXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGV4ZWN1dGVGcm9udGVuZEFjdGl2aXR5KFxuICAgIHRhc2s6IEFYUFdvcmtmbG93VGFza1xuICApOiBQcm9taXNlPHsgb3V0cHV0OiBhbnk7IG91dGNvbWU6IHN0cmluZyB9PiB7XG4gICAgXG4gICAgdHJ5IHtcbiAgICAgIC8vIENoZWNrIGlmIGNvbW1hbmQgZXhpc3RzXG4gICAgICBjb25zdCBjb21tYW5kRXhpc3RzID0gdGhpcy5jb21tYW5kU2VydmljZS5leGlzdHModGFzay5hY3Rpdml0eVR5cGUpO1xuICAgICAgXG4gICAgICBpZiAoIWNvbW1hbmRFeGlzdHMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBbV29ya2Zsb3dDb29yZGluYXRvcl0g4pqg77iPIEZyb250ZW5kIGFjdGl2aXR5ICcke3Rhc2suYWN0aXZpdHlUeXBlfScgaXMgbm90IHJlZ2lzdGVyZWQuIFNraXBwaW5nIGV4ZWN1dGlvbi5gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgb3V0Y29tZTogJ0RvbmUnXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIC8vIEV4ZWN1dGUgYWN0aXZpdHkgdmlhIENvbW1hbmRCdXNcbiAgICAgIC8vIEFjdGl2aXRpZXMgcmVnaXN0ZXJlZCBhcyBBWFBDb21tYW5kIHJldHVybiB7b3V0cHV0LCBvdXRjb21lc31cbiAgICAgIFxuICAgICAgLy8g8J+OryBGbGF0dGVuIHByb3BlcnRpZXMgaWYgbmVzdGVkICh3b3JrZmxvdy1zdHVkaW8gZm9ybWF0KVxuICAgICAgbGV0IGNvbW1hbmRJbnB1dCA9IHRhc2suaW5wdXQgfHwgdGFzay5jb25maWcgfHwge307XG4gICAgICBpZiAoY29tbWFuZElucHV0Wydwcm9wZXJ0aWVzJ10gJiYgdHlwZW9mIGNvbW1hbmRJbnB1dFsncHJvcGVydGllcyddID09PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBGbGF0dGVuOiB7cHJvcGVydGllczoge3RleHQ6IFwiLi4uXCJ9fSAtPiB7dGV4dDogXCIuLi5cIn1cbiAgICAgICAgY29tbWFuZElucHV0ID0geyAuLi5jb21tYW5kSW5wdXRbJ3Byb3BlcnRpZXMnXSB9O1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbW1hbmRTZXJ2aWNlLmV4ZWN1dGU8UmVjb3JkPHN0cmluZywgYW55Piwge1xuICAgICAgICBvdXRwdXQ6IGFueTtcbiAgICAgICAgb3V0Y29tZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICB9Pih0YXNrLmFjdGl2aXR5VHlwZSwgY29tbWFuZElucHV0KTtcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IG51bGwsXG4gICAgICAgICAgb3V0Y29tZTogJ0ZhaWxlZCcsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBvdXRwdXQ6IHtcbiAgICAgICAgICAgIGVycm9yOiByZXN1bHQubWVzc2FnZT8udGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dGNvbWU6ICdGYWlsZWQnLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjb21tYW5kUmVzdWx0ID0gcmVzdWx0LmRhdGE7XG4gICAgICBjb25zdCBvdXRjb21lcyA9IGNvbW1hbmRSZXN1bHQ/Lm91dGNvbWVzID8/IHt9O1xuICAgICAgXG4gICAgICBsZXQgb3V0Y29tZSA9ICdEb25lJztcbiAgICAgIGlmIChPYmplY3Qua2V5cyhvdXRjb21lcykubGVuZ3RoID4gMCkge1xuICAgICAgICBvdXRjb21lID0gb3V0Y29tZXNbJ0RvbmUnXSA/ICdEb25lJyA6IE9iamVjdC5rZXlzKG91dGNvbWVzKVswXSB8fCAnRG9uZSc7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG91dHB1dDogY29tbWFuZFJlc3VsdD8ub3V0cHV0ID8/IG51bGwsXG4gICAgICAgIG91dGNvbWUsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFtXb3JrZmxvd0Nvb3JkaW5hdG9yXSDinYwgRXJyb3IgZXhlY3V0aW5nIGZyb250ZW5kIGFjdGl2aXR5ICcke3Rhc2suYWN0aXZpdHlUeXBlfSc6YCwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb3V0cHV0OiB7IGVycm9yOiBlcnJvci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJyB9LFxuICAgICAgICBvdXRjb21lOiAnRmFpbGVkJ1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgd29ya2Zsb3cgZXhlY3V0aW9uIGluIGJhY2tlbmQuXG4gICAqIEJhY2tlbmQgcmV0dXJucyBleGVjdXRpb25JZCwgaW5pdGlhbCBzdGF0ZSwgYW5kIGZpcnN0IHRhc2sgdG8gZXhlY3V0ZS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgc3RhcnRXb3JrZmxvd0V4ZWN1dGlvbihcbiAgICB3b3JrZmxvd0lkOiBzdHJpbmcsXG4gICAgaW5wdXQ6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUHJvbWlzZTx7IGV4ZWN1dGlvbklkOiBzdHJpbmc7IHN0YXRlOiBBWFBXb3JrZmxvd0V4ZWN1dGlvblN0YXRlOyBwZW5kaW5nVGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGwgfT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy53b3JrZmxvd0V4ZWN1dGlvblNlcnZpY2Uuc3RhcnRFeGVjdXRpb24oe1xuICAgICAgd29ya2Zsb3dJZCxcbiAgICAgIGlucHV0XG4gICAgfSk7XG5cbiAgICAvLyBDYWNoZSBzdGF0ZVxuICAgIHRoaXMuc3RhdGVDYWNoZS5zZXQocmVzcG9uc2UuZXhlY3V0aW9uSWQsIHJlc3BvbnNlLnN0YXRlKTtcblxuICAgIHJldHVybiB7XG4gICAgICBleGVjdXRpb25JZDogcmVzcG9uc2UuZXhlY3V0aW9uSWQsXG4gICAgICBzdGF0ZTogcmVzcG9uc2Uuc3RhdGUsXG4gICAgICBwZW5kaW5nVGFzazogcmVzcG9uc2UucGVuZGluZ1Rhc2tcbiAgICB9O1xuICB9XG5cbiAgLy8jZW5kcmVnaW9uXG59XG5cbiJdfQ==","/**\n * Types and interfaces for Workflow Execution Service.\n */\nexport {};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZXhlY3V0aW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvbGliL2VuZ2luZS9ydW50aW1lL3dvcmtmbG93LWV4ZWN1dGlvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIlxuLyoqXG4gKiBUeXBlcyBhbmQgaW50ZXJmYWNlcyBmb3IgV29ya2Zsb3cgRXhlY3V0aW9uIFNlcnZpY2UuXG4gKi9cblxuaW1wb3J0IHsgQVhQV29ya2Zsb3dEZWZpbml0aW9uIH0gZnJvbSBcIi4uL3dvcmtmbG93LWRlZmluaXRpb24udHlwZXNcIjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgd29ya2Zsb3cgdGFzayB0aGF0IG5lZWRzIHRvIGJlIGV4ZWN1dGVkLlxuICogSW5zcGlyZWQgYnkgVGVtcG9yYWwncyBBY3Rpdml0eSBUYXNrcyBhbmQgQ2FtdW5kYSdzIEV4dGVybmFsIFRhc2tzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93VGFzayB7XG4gIC8qKlxuICAgKiBVbmlxdWUgdG9rZW4gZm9yIHRoaXMgdGFzayAodXNlZCBmb3IgY29tcGxldGlvbi9zZWN1cml0eSkuXG4gICAqL1xuICB0YXNrVG9rZW46IHN0cmluZztcblxuICAvKipcbiAgICogQWN0aXZpdHkgSUQgZnJvbSB3b3JrZmxvdyBkZWZpbml0aW9uLlxuICAgKi9cbiAgYWN0aXZpdHlJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSB0eXBlIChlLmcuLCAnd29ya2Zsb3ctYWN0aXZpdHk6c2hvdy10b2FzdCcpLlxuICAgKi9cbiAgYWN0aXZpdHlUeXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGFjdGl2aXR5IG5hbWUuXG4gICAqL1xuICBhY3Rpdml0eU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRoaXMgdGFzayBzaG91bGQgYmUgZXhlY3V0ZWQuXG4gICAqIC0gJ2Zyb250ZW5kJzogRXhlY3V0ZSBpbiBicm93c2VyIChVSSBhY3Rpdml0aWVzLCBjb25zb2xlLCBldmVudHMpXG4gICAqIC0gJ2JhY2tlbmQnOiBFeGVjdXRlIGluIGJhY2tlbmQgKGJ1c2luZXNzIGxvZ2ljLCBBUEkgY2FsbHMpXG4gICAqIC0gJ2JvdGgnOiBFeGVjdXRlIGluIGJvdGggZnJvbnRlbmQgYW5kIGJhY2tlbmQgKGh5YnJpZCBhY3Rpdml0aWVzKVxuICAgKi9cbiAgZXhlY3V0aW9uTW9kZTogJ2Zyb250ZW5kJyB8ICdiYWNrZW5kJyB8ICdib3RoJztcblxuICAvKipcbiAgICogSW5wdXQgZGF0YSBmb3IgdGhlIGFjdGl2aXR5IChmb3IgZnJvbnRlbmQgYWN0aXZpdGllcykuXG4gICAqL1xuICBpbnB1dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBhY3Rpdml0eSAoZm9yIGZyb250ZW5kIGFjdGl2aXRpZXMpLlxuICAgKi9cbiAgY29uZmlnPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIHN0YXJ0IGEgd29ya2Zsb3cgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFN0YXJ0V29ya2Zsb3dFeGVjdXRpb25SZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFdvcmtmbG93IElEIHRvIGV4ZWN1dGUuXG4gICAqL1xuICB3b3JrZmxvd0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgaW5wdXQgZGF0YSBmb3Igd29ya2Zsb3cuXG4gICAqL1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuLyoqXG4gKiBSZXNwb25zZSBhZnRlciBzdGFydGluZyB3b3JrZmxvdyBleGVjdXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQU3RhcnRXb3JrZmxvd0V4ZWN1dGlvblJlc3BvbnNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBleGVjdXRpb24gSUQgZm9yIHRoaXMgd29ya2Zsb3cgcnVuLlxuICAgKi9cbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VycmVudCB3b3JrZmxvdyBzdGF0ZS5cbiAgICovXG4gIHN0YXRlOiBBWFBXb3JrZmxvd0V4ZWN1dGlvblN0YXRlO1xuXG4gIC8qKlxuICAgKiBGaXJzdCB0YXNrIHRvIGV4ZWN1dGUgKGRldGVybWluZWQgYnkgYmFja2VuZCkuXG4gICAqIENsaWVudCBzaG91bGQgZXhlY3V0ZSB0aGlzIHRhc2sgYmFzZWQgb24gZXhlY3V0aW9uTW9kZS5cbiAgICovXG4gIHBlbmRpbmdUYXNrPzogQVhQV29ya2Zsb3dUYXNrIHwgbnVsbDtcbn1cblxuXG4vKipcbiAqIFJlcXVlc3QgdG8gcmVzdW1lIGEgc3VzcGVuZGVkIHdvcmtmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBFeGVjdXRpb24gSUQuXG4gICAqL1xuICBleGVjdXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdGVwIElEIHRoYXQgd2FzIHdhaXRpbmcgZm9yIHVzZXIgaW5wdXQuXG4gICAqL1xuICBzdGVwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogU2VjdXJlIHRhc2sgdG9rZW4gaXNzdWVkIHdpdGggdGhlIHBlbmRpbmcgdGFzay5cbiAgICogQmFja2VuZCB2YWxpZGF0ZXMgYW5kIHJlc29sdmVzIHRoZSBzdGVwIHVzaW5nIHRoaXMgdG9rZW4uXG4gICAqL1xuICB0YXNrVG9rZW46IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBhY3Rpb24gb3V0Y29tZSAoZS5nLiwgJ0NvbmZpcm1lZCcsICdDYW5jZWxsZWQnKS5cbiAgICovXG4gIG91dGNvbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBpbnB1dCBkYXRhLlxuICAgKi9cbiAgdXNlcklucHV0PzogYW55O1xufVxuXG4vKipcbiAqIFJlc3BvbnNlIGFmdGVyIHJlc3VtaW5nIHdvcmtmbG93LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFJlc3VtZVdvcmtmbG93RXhlY3V0aW9uUmVzcG9uc2Uge1xuICAvKipcbiAgICogQWN0aXZpdHkgZXhlY3V0aW9uIG91dHB1dC5cbiAgICovXG4gIG91dHB1dDogYW55O1xuXG4gIC8qKlxuICAgKiBBY3Rpdml0eSBleGVjdXRpb24gb3V0Y29tZXMuXG4gICAqL1xuICBvdXRjb21lczogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogTmV4dCB0YXNrIHRvIGV4ZWN1dGUgKGlmIGFueSkuXG4gICAqL1xuICBuZXh0VGFzaz86IEFYUFdvcmtmbG93VGFzayB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFVwZGF0ZWQgd29ya2Zsb3cgc3RhdGUuXG4gICAqL1xuICBzdGF0ZTogQVhQV29ya2Zsb3dFeGVjdXRpb25TdGF0ZTtcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIGdldCB3b3JrZmxvdyBleGVjdXRpb24gc3RhdGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQR2V0V29ya2Zsb3dFeGVjdXRpb25TdGF0ZVJlcXVlc3Qge1xuICAvKipcbiAgICogRXhlY3V0aW9uIElELlxuICAgKi9cbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXF1ZXN0IHRvIGdldCB3b3JrZmxvdyBkZWZpbml0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUEdldFdvcmtmbG93RGVmaW5pdGlvblJlcXVlc3Qge1xuICAvKipcbiAgICogV29ya2Zsb3cgSUQgb3IgZGVmaW5pdGlvbiBJRC5cbiAgICovXG4gIHdvcmtmbG93SWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBSZXNwb25zZSB3aXRoIHdvcmtmbG93IGRlZmluaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQVhQR2V0V29ya2Zsb3dEZWZpbml0aW9uUmVzcG9uc2Uge1xuICAvKipcbiAgICogV29ya2Zsb3cgZGVmaW5pdGlvbi5cbiAgICovXG4gIHdvcmtmbG93OiBBWFBXb3JrZmxvd0RlZmluaXRpb247XG59XG5cbi8qKlxuICogV29ya2Zsb3cgZXhlY3V0aW9uIHN0YXRlIChtYW5hZ2VkIGJ5IGJhY2tlbmQsIGNhY2hlZCBpbiBjbGllbnQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFYUFdvcmtmbG93RXhlY3V0aW9uU3RhdGUge1xuICAvKipcbiAgICogVW5pcXVlIGV4ZWN1dGlvbiBJRC5cbiAgICovXG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IElELlxuICAgKi9cbiAgd29ya2Zsb3dJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IGV4ZWN1dGlvbiBzdGF0dXMuXG4gICAqL1xuICBzdGF0dXM6ICdydW5uaW5nJyB8ICdjb21wbGV0ZWQnIHwgJ3N1c3BlbmRlZCcgfCAnZXJyb3InO1xuXG4gIC8qKlxuICAgKiBDdXJyZW50IHN0ZXAgSUQgKGlmIHN1c3BlbmRlZCBvciBydW5uaW5nKS5cbiAgICovXG4gIGN1cnJlbnRTdGVwSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93IHZhcmlhYmxlcyAoc3RhdGUpLlxuICAgKi9cbiAgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIGlucHV0IGRhdGEuXG4gICAqL1xuICBpbnB1dDogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogRmluYWwgb3V0cHV0IGRhdGEgKGlmIGNvbXBsZXRlZCkuXG4gICAqL1xuICBvdXRwdXQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG4gIC8qKlxuICAgKiBMYXN0IHVwZGF0ZSB0aW1lc3RhbXAuXG4gICAqL1xuICBsYXN0VXBkYXRlZDogRGF0ZTtcbn1cblxuIl19","// Production Workflow Coordinator (Frontend/Backend Separation)\nexport * from './workflow-coordinator';\n// Workflow Execution Service (Interface & Types)\nexport * from './workflow-execution.service';\nexport * from './workflow-execution.types';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL3J1bnRpbWUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0VBQWdFO0FBQ2hFLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsaURBQWlEO0FBQ2pELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFByb2R1Y3Rpb24gV29ya2Zsb3cgQ29vcmRpbmF0b3IgKEZyb250ZW5kL0JhY2tlbmQgU2VwYXJhdGlvbilcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctY29vcmRpbmF0b3InO1xuXG4vLyBXb3JrZmxvdyBFeGVjdXRpb24gU2VydmljZSAoSW50ZXJmYWNlICYgVHlwZXMpXG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LWV4ZWN1dGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctZXhlY3V0aW9uLnR5cGVzJzsiXX0=","// Workflow Definition Types (Storage/Database)\nexport * from './workflow-definition.config';\nexport * from './workflow-definition-registry.service';\n// Workflow Instance Types (Storage/Database)\nexport * from './workflow-instance.types';\n// Activity System Types (Simplified)\nexport * from './activity.types';\n// Activity Provider Infrastructure\nexport * from './activity.provider';\nexport * from './activity-definition.service';\n// Simple Runtime (Coordinator only)\nexport * from './runtime';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dvcmtmbG93L3NyYy9saWIvZW5naW5lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUF3QnZELDZDQUE2QztBQUM3QyxjQUFjLDJCQUEyQixDQUFDO0FBbUIxQyxxQ0FBcUM7QUFDckMsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxtQ0FBbUM7QUFDbkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtCQUErQixDQUFDO0FBRTlDLG9DQUFvQztBQUNwQyxjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdvcmtmbG93IERlZmluaXRpb24gVHlwZXMgKFN0b3JhZ2UvRGF0YWJhc2UpXG5leHBvcnQgKiBmcm9tICcuL3dvcmtmbG93LWRlZmluaXRpb24uY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya2Zsb3ctZGVmaW5pdGlvbi1yZWdpc3RyeS5zZXJ2aWNlJztcbi8vIEV4cG9ydCB3b3JrZmxvdyBkZWZpbml0aW9uIHR5cGVzIChleGNsdWRpbmcgQVhQQWN0aXZpdHkgdG8gYXZvaWQgY29uZmxpY3Qgd2l0aCBhY3Rpdml0eS50eXBlcylcbmV4cG9ydCB0eXBlIHtcbiAgQVhQV29ya2Zsb3dEZWZpbml0aW9uLFxuICBBWFBXb3JrZmxvd0RlZmluaXRpb25Kc29uLFxuICBBWFBGbG93Y2hhcnQsXG4gIEFYUEFjdGl2aXR5IGFzIEFYUFdvcmtmbG93QWN0aXZpdHksXG4gIEFYUENvbm5lY3Rpb24sXG4gIEFYUEVuZHBvaW50LFxuICBBWFBQb3NpdGlvbixcbiAgQVhQVmFyaWFibGVEZWZpbml0aW9uLFxuICBBWFBXb3JrZmxvd0lucHV0RGVmaW5pdGlvbixcbiAgQVhQV29ya2Zsb3dPdXRwdXREZWZpbml0aW9uLFxuICBBWFBFeHByZXNzaW9uLFxuICBBWFBJbnB1dFZhbHVlLFxuICBBWFBPdXRwdXRWYWx1ZSxcbiAgQVhQVmFyaWFibGVNb2RlbCxcbiAgQVhQTWV0YWRhdGEsXG4gIEFYUEN1c3RvbVByb3BlcnRpZXMsXG4gIEFYUFdvcmtmbG93T3B0aW9ucyxcbiAgQVhQU3RvcmVkV29ya2Zsb3dEZWZpbml0aW9uLFxuICBBWFBWZXJzaW9uZWRFbnRpdHksXG59IGZyb20gJy4vd29ya2Zsb3ctZGVmaW5pdGlvbi50eXBlcyc7XG5cbi8vIFdvcmtmbG93IEluc3RhbmNlIFR5cGVzIChTdG9yYWdlL0RhdGFiYXNlKVxuZXhwb3J0ICogZnJvbSAnLi93b3JrZmxvdy1pbnN0YW5jZS50eXBlcyc7XG5cblxuLy8gUmUtZXhwb3J0IFdvcmtmbG93IEluc3RhbmNlIHR5cGVzXG5leHBvcnQgdHlwZSB7XG4gIEFYUFdvcmtmbG93SW5zdGFuY2UsXG4gIEFYUFdvcmtmbG93U3RhdGUsXG4gIEFYUFdvcmtmbG93U3RhdHVzLFxuICBBWFBXb3JrZmxvd1N1YlN0YXR1cyxcbiAgQVhQQWN0aXZpdHlTdGF0dXMsXG4gIEFYUEV4Y2VwdGlvblN0YXRlLFxuICBBWFBBY3Rpdml0eUluY2lkZW50LFxuICBBWFBXb3JrZmxvd0ZhdWx0U3RhdGUsXG4gIEFYUEJvb2ttYXJrLFxuICBBWFBDb21wbGV0aW9uQ2FsbGJhY2tTdGF0ZSxcbiAgQVhQQWN0aXZpdHlWYXJpYWJsZSxcbiAgQVhQQWN0aXZpdHlFeGVjdXRpb25Db250ZXh0U3RhdGUsXG59IGZyb20gJy4vd29ya2Zsb3ctaW5zdGFuY2UudHlwZXMnO1xuXG4vLyBBY3Rpdml0eSBTeXN0ZW0gVHlwZXMgKFNpbXBsaWZpZWQpXG5leHBvcnQgKiBmcm9tICcuL2FjdGl2aXR5LnR5cGVzJztcblxuLy8gQWN0aXZpdHkgUHJvdmlkZXIgSW5mcmFzdHJ1Y3R1cmVcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZpdHkucHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpdml0eS1kZWZpbml0aW9uLnNlcnZpY2UnO1xuXG4vLyBTaW1wbGUgUnVudGltZSAoQ29vcmRpbmF0b3Igb25seSlcbmV4cG9ydCAqIGZyb20gJy4vcnVudGltZSc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LXBsYXRmb3JtLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93b3JrZmxvdy9zcmMvYWNvcmV4LXBsYXRmb3JtLXdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.AXPWorkflowRegistryService"],"mappings":";;;;;;;AAAO,MAAM,gBAAgB,SAAS,KAAK,CAAC;AAC5C,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,QAAQ,KAAK,CAAC,OAAO,CAAC;AACtB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,kBAAkB;AACtC,IAAI;AACJ;;ACHO,MAAM,uBAAuB,CAAC;AACrC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE;AACzC,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACrC,IAAI;AACJ,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC/C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC3L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAClK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACnBN,MAAM,0BAA0B,CAAC;AACxC,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;AACrC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE;AACnC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,EAAE;AACrC,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE;AACrC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC7C,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,IAAI;AACJ,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,IAAI;AACJ,IAAI,SAAS,CAAC,IAAI,EAAE;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACxC,IAAI;AACJ,IAAI,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;AACjC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AACzC,IAAI;AACJ,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1C,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACnD,IAAI;AACJ,IAAI,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE;AACpC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;AACxC,YAAY,OAAO,KAAK,CAAC,QAAQ,CAAC;AAClC,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ,IAAI,oBAAoB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;AACvD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;AACxC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;AACjC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;AACtC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACzG,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACjF,QAAQ;AACR,IAAI;AACJ,IAAI,iBAAiB,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;AACpD,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC;AAC5D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK;AACxC,YAAY,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AAClC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;AACtC,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,4BAA4B,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;AACzG,YAAY;AACZ,QAAQ;AACR,aAAa;AACb,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACjF,QAAQ;AACR,IAAI;AACJ,IAAI,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE;AACpF,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;AACrD,QAAQ,IAAI,IAAI,IAAI,SAAS,EAAE;AAC/B,YAAY,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE;AAC1D,gBAAgB,MAAM,EAAE,aAAa;AACrC,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS;AACzC,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE;AAC1D,gBAAgB,GAAG,IAAI;AACvB,gBAAgB,SAAS,EAAE;AAC3B,oBAAoB;AACpB,wBAAwB,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;AACzF,wBAAwB,UAAU,EAAE,SAAS;AAC7C,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC;AACd,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACrK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,0BAA0B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACvFN,MAAM,kBAAkB,CAAC;AAChC,IAAI,WAAW,CAAC,WAAW,GAAG,EAAE,EAAE;AAClC,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE;AAC3B,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE;AACpC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;AAC/C,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;AAC5B,QAAQ,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC;AAC5C,IAAI;AACJ,IAAI,YAAY,CAAC,OAAO,GAAG,EAAE,EAAE;AAC/B,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,OAAO,EAAE;AAC1D,IAAI;AACJ,IAAI,WAAW,CAAC,GAAG,EAAE;AACrB,QAAQ,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC;AAC/D,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAC3B,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AACzC,IAAI;AACJ,IAAI,UAAU,CAAC,MAAM,EAAE;AACvB,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;AACpE,IAAI;AACJ,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACxC,IAAI;AACJ;AACO,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC3D,IAAI;AACJ,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;AACzC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACxI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,MAAM,mBAAmB,CAAC;AACjC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAC1I;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;AACN,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,IAAI,MAAM,YAAY,GAAG,CAAC,OAAO,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACzD,IAAI,YAAY,CAAC,IAAI,GAAG,IAAI;AAC5B,IAAI,OAAO,YAAY;AACvB;AACO,SAAS,MAAM,CAAC,GAAG,YAAY,EAAE;AACxC,IAAI,OAAO,MAAM,CAAC,CAAC,KAAK,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AACnF;;ACvDO,MAAM,uBAAuB,SAAS,iBAAiB,CAAC;AAC/D,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B;AACA,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAClK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACPN,MAAM,kBAAkB,CAAC;AAChC,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO;AACxC,IAAI;AACJ,IAAI,WAAW,CAAC,eAAe,EAAE,QAAQ,EAAE;AAC3C,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe;AAC9C,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ;AAChC,QAAQ,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC3D,IAAI;AACJ,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC;AACvD,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE;AACnD;AACA,QAAQ,MAAM,EAAE,GAAG,OAAO,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,GAAG,QAAQ;AAC/F,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC,WAAW;AAC1C,QAAQ,MAAM,OAAO,GAAG,cAAc,YAAY;AAClD,cAAc;AACd,cAAc,IAAI,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AAC5E;AACA,QAAQ,OAAO,aAAa,EAAE;AAC9B,YAAY,MAAM,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;AACvD,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B,gBAAgB,MAAM,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,kCAAkC,CAAC,CAAC;AACtG,YAAY;AACZ;AACA,YAAY,MAAM,MAAM,GAAG,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM;AACnI;AACA,YAAY,IAAI,WAAW,CAAC,KAAK,EAAE;AACnC,gBAAgB,IAAI,MAAM,GAAG,EAAE;AAC/B,gBAAgB,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC;AAC3F,gBAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,YAAY;AACtE,oBAAoB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;AACjD,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,gBAAgB,CAAC,CAAC,CAAC;AACnB,YAAY;AACZ,YAAY,IAAI;AAChB,gBAAgB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,YAAY;AACtE,oBAAoB,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;AACjD,oBAAoB,OAAO,CAAC,CAAC,CAAC;AAC9B,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpC,gBAAgB,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACnE,YAAY;AACZ;AACA,YAAY,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC;AACnF,YAAY,IAAI,YAAY,EAAE;AAC9B,gBAAgB,aAAa,GAAG,YAAY,CAAC,UAAU;AACvD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,MAAM;AACtB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,WAAW,CAAC,cAAc,EAAE;AAChC;AACA,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAClC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC;AACrE,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,MAAM,IAAI,gBAAgB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,4BAA4B,CAAC,CAAC;AAChG,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5C,IAAI;AACJ,IAAI,mBAAmB,CAAC,YAAY,EAAE;AACtC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC;AAC3E,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,gBAAgB,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACpG,QAAQ;AACR,QAAQ,OAAO,YAAY;AAC3B,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE;AAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACpC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE;AACtD,YAAY,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE;AAC5E,gBAAgB,OAAO,QAAQ;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE;AACjD,QAAQ,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AACpD,YAAY,OAAO,IAAI,CAAC;AACxB,QAAQ;AACR;AACA,QAAQ,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjH;AACA,QAAQ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC5D;AACA,QAAQ,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AAChD,IAAI;AACJ,IAAI,MAAM,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE;AACtD,QAAQ,QAAQ,SAAS,CAAC,IAAI;AAC9B,YAAY,KAAK,QAAQ;AACzB,gBAAgB,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC;AACnH,YAAY,KAAK,KAAK;AACtB;AACA,gBAAgB,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE;AAChE,gBAAgB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9H,gBAAgB,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AAC3D,YAAY,KAAK,IAAI;AACrB;AACA,gBAAgB,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,IAAI,EAAE;AAC/D,gBAAgB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5H,gBAAgB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC;AACzD,YAAY;AACZ,gBAAgB,MAAM,IAAI,gBAAgB,CAAC,CAAC,4BAA4B,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3F;AACA,IAAI;AACJ;AACA,IAAI,MAAM,kBAAkB,CAAC,kBAAkB,EAAE,OAAO,EAAE;AAC1D,QAAQ,IAAI;AACZ,YAAY,IAAI,UAAU,GAAG,EAAE;AAC/B,YAAY,IAAI,OAAO,kBAAkB,KAAK,QAAQ,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACpG,gBAAgB,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC;AACvF,gBAAgB,IAAI,CAAC,eAAe,EAAE;AACtC,oBAAoB,MAAM,KAAK,CAAC,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACvF,gBAAgB;AAChB,gBAAgB,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC;AAC/C,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,GAAG,kBAAkB;AAC/C,YAAY;AACZ;AACA,YAAY,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,EAAE;AACpE;AACA,YAAY,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,iDAAiD,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AAC5H,YAAY,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;AAC/C,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC;AAChE,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,MAAM,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE;AACpE,QAAQ,IAAI,CAAC,GAAG,EAAE;AAClB,YAAY;AACZ,QAAQ;AACR,QAAQ,WAAW,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACnD,YAAY,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5B,YAAY,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAY,MAAM,WAAW,GAAG,UAAU,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG;AACzE,YAAY,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1E,gBAAgB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC;AAC9E,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;AAClD,YAAY;AACZ,iBAAiB,IAAI,OAAO,KAAK,KAAK,QAAQ;AAC9C,gBAAgB,KAAK,KAAK,IAAI;AAC9B,iBAAiB,KAAK,CAAC,WAAW,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;AACxE;AACA,gBAAgB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC;AACvE,YAAY;AACZ,iBAAiB;AACjB;AACA,gBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC;AAC/C,YAAY;AACZ,QAAQ;AACR,IAAI;AACJ,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,MAAM,KAAK,GAAG,EAAE;AACxB,QAAQ,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AAClE,YAAY,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO;AAChE,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE;AACrC,IAAI;AACJ,IAAI,mBAAmB,CAAC,YAAY,EAAE;AACtC,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC;AAC3E,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,MAAM,IAAI,gBAAgB,CAAC,CAAC,eAAe,EAAE,YAAY,CAAC,4BAA4B,CAAC,CAAC;AACpG,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;AAC9C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEA,0BAA6B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtP,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAEA,0BAA6B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;;AC/L9F,MAAM,sBAAsB,SAAS,iBAAiB,CAAC;AAC9D,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD,IAAI;AACJ,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;AAC3B;AACA;AACA,QAAQ,IAAI,IAAI,CAAC,OAAO;AACxB,YAAY,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9C;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;AACtE,QAAQ;AACR,QAAQ,OAAO,CAAC,EAAE;AAClB,YAAY,MAAM,CAAC;AACnB,QAAQ;AACR,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC5L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACjK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AACjI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACzBN,MAAM,iBAAiB,CAAC;AAC/B,IAAI,OAAO,OAAO,CAAC,MAAM,EAAE;AAC3B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,iBAAiB;AACvC,YAAY,SAAS,EAAE;AACvB,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,0BAA0B;AACvD,oBAAoB,UAAU,EAAE,CAAC,QAAQ,KAAK,MAAM;AACpD,wBAAwB,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;AACzF,wBAAwB,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,uBAAuB,CAAC;AAClF;AACA,wBAAwB,IAAI,MAAM,EAAE,SAAS,EAAE;AAC/C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACxF,gCAAgC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC;AACpE,4BAA4B;AAC5B,wBAAwB;AACxB;AACA,wBAAwB,IAAI,MAAM,EAAE,OAAO,EAAE;AAC7C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACtF,gCAAgC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;AAClE,4BAA4B;AAC5B,wBAAwB;AACxB;AACA,wBAAwB,IAAI,MAAM,EAAE,SAAS,EAAE;AAC/C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACxF,gCAAgC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC;AACpE,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB,CAAC;AACrB,oBAAoB,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACtD,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB;AACjB,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,sBAAsB,EAAE,CAAC;AAC/E,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;AACzD,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,QAAQ,CAAC,MAAM,EAAE;AAC5B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,iBAAiB;AACvC,YAAY,SAAS,EAAE;AACvB;AACA;AACA,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,0BAA0B;AACvD,oBAAoB,UAAU,EAAE,CAAC,QAAQ,KAAK,MAAM;AACpD,wBAAwB,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;AACzF,wBAAwB,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,uBAAuB,CAAC;AAClF;AACA,wBAAwB,IAAI,MAAM,EAAE,SAAS,EAAE;AAC/C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACxF,gCAAgC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC;AACpE,4BAA4B;AAC5B,wBAAwB;AACxB;AACA,wBAAwB,IAAI,MAAM,EAAE,OAAO,EAAE;AAC7C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;AACtF,gCAAgC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC;AAClE,4BAA4B;AAC5B,wBAAwB;AACxB;AACA,wBAAwB,IAAI,MAAM,EAAE,SAAS,EAAE;AAC/C,4BAA4B,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;AACxF,gCAAgC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC;AACpE,4BAA4B;AAC5B,wBAAwB;AACxB,oBAAoB,CAAC;AACrB,oBAAoB,IAAI,EAAE,CAAC,0BAA0B,CAAC;AACtD,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB;AACjB,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;AACvD,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;AACzD,aAAa;AACb,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,EAAE;AAC3B,QAAQ,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;AAClC,YAAY,CAAC,EAAE;AACf,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxO,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACrI,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACrI;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,OAAO,EAAE,EAAE;AAC/B,oBAAoB,YAAY,EAAE,EAAE;AACpC,oBAAoB,SAAS,EAAE,EAAE;AACjC,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AACnE,oBAAoB,IAAI,EAAE;AAC1B,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,0BAA0B;AACrD,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;;ACvGxB;AACA;AACA;AACA;AACY,MAAC,8BAA8B,GAAG,IAAI,cAAc,CAAC,gCAAgC;AACjG;AACA;AACA;AACA;AACO,MAAM,6BAA6B,CAAC;AAC3C,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACjF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE;AACpB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC3G,QAAQ,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;AAC1C,YAAY,IAAI;AAChB,gBAAgB,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,gBAAgB,IAAI,UAAU,EAAE;AAChC,oBAAoB,OAAO,UAAU;AACrC,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;AACjG,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,GAAG;AACxB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC3G,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AAClC,QAAQ,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;AAC1C,YAAY,IAAI,MAAM,CAAC,WAAW,EAAE;AACpC,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE;AAC5D,oBAAoB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/D,gBAAgB;AAChB,gBAAgB,OAAO,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,IAAI,CAAC,kEAAkE,EAAE,KAAK,CAAC;AAC3G,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACjM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACxK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE;AACzC,SAAS,CAAC,EAAE,CAAC;;AC1Db;AACA;AACA;AACA;AACO,MAAM,oCAAoC,CAAC;AAClD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,6BAA6B,CAAC;AAC7D,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,OAAO,EAAE;AACtC,IAAI;AACJ;AACA;AACA;AACA,IAAI,IAAI,UAAU,GAAG;AACrB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC5C,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,CAAC,IAAI,EAAE;AACpB;AACA,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AACvC,QAAQ;AACR;AACA,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACxD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;AAC5C,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC/D,QAAQ;AACR,QAAQ,OAAO,UAAU;AACzB,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC,UAAU,EAAE;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;AACnD,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC5E,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,UAAU,EAAE;AACvB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC;AACvD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC7E,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACnC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC5D,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAC1B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,CAAC,YAAY,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;AAC3C,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AAC5C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACxM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AChGb;AACA;AACA;AACA;AACA;;ACHY,MAAC,qBAAqB,GAAG,IAAI,cAAc,CAAC,uBAAuB,EAAE;AACjF,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,CAAC;AACW,MAAC,8BAA8B,GAAG,IAAI,cAAc,CAAC,gCAAgC,EAAE;AACnG,IAAI,OAAO,EAAE,MAAM,EAAE;AACrB,CAAC;;ACND;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,4BAA4B,CAAC;AAC1C,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,8BAA8B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;AACjG,QAAQ,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;AACxF;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,EAAE;AACvC;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE;AAC7C;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE;AAC7C;AACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAE;AACzC;AACA,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;AAC3C;AACA,QAAQ,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE;AAClD,QAAQ,IAAI,CAAC,yBAAyB,GAAG,IAAI,GAAG,EAAE;AAClD,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAAE;AAChD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,QAAQ,EAAE;AAClC;AACA,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACrD,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1D,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AAC1D,YAAY,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/D,QAAQ;AACR;AACA,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,QAAQ,CAAC;AACzE,QAAQ,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC;AACpE,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,eAAe,CAAC,UAAU,EAAE;AACtC;AACA,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACjD,YAAY,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AACtD,QAAQ;AACR;AACA,QAAQ,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE;AACrE,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC;AACvE,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC;AAC1D,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACvD,YAAY,MAAM,IAAI,CAAC,aAAa,EAAE;AACtC,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACrD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AAC1D,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,qBAAqB,CAAC,UAAU,EAAE;AAC5C,QAAQ,MAAM,IAAI,GAAG,EAAE;AACvB,QAAQ,IAAI,iBAAiB,GAAG,UAAU;AAC1C,QAAQ,OAAO,iBAAiB,EAAE;AAClC,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC;AAC1E,YAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAC5E,YAAY;AACZ,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAClC,YAAY,iBAAiB,GAAG,QAAQ,CAAC,QAAQ;AACjD,QAAQ;AACR,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,yBAAyB,CAAC,UAAU,EAAE;AAChD;AACA,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACvD,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5D,QAAQ;AACR;AACA,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;AAC/D,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,KAAK,CAAC,EAAE;AACxF;AACA,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;AACjE,YAAY,OAAO,UAAU;AAC7B,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AAC5D,YAAY,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC;AACjE,QAAQ;AACR;AACA,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC;AAC3E,QAAQ,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC;AACtE,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,iBAAiB,CAAC,IAAI,EAAE;AAClC;AACA,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC7C,YAAY,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAClD,QAAQ;AACR;AACA,QAAQ,IAAI,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACpD,YAAY,OAAO,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,QAAQ;AACR;AACA,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;AACnE,QAAQ,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC;AAC9D,QAAQ,OAAO,cAAc;AAC7B,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,2BAA2B,CAAC,YAAY,EAAE;AACpD;AACA,QAAQ,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,EAAE;AACrF,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE;AACpE,gBAAgB,OAAO,UAAU;AACjC,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;AACrE,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC/C;AACA,YAAY,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE;AACzD,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,QAAQ,CAAC;AACrH,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,KAAK,CAAC,EAAE;AAC/B,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,+BAA+B,CAAC,YAAY,EAAE;AACxD,QAAQ,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC;AAC/E,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,UAAU,EAAE,YAAY,CAAC,2BAA2B,CAAC,CAAC;AACnF,QAAQ;AACR,QAAQ,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC;AACrD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,2BAA2B,CAAC,QAAQ,EAAE;AAChD,QAAQ,IAAI;AACZ,YAAY,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACtF,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC;AACA,YAAY,MAAM,sBAAsB,GAAG;AAC3C,kBAAkB,IAAI,CAAC,2BAA2B,CAAC,QAAQ;AAC3D,kBAAkB,IAAI,CAAC;AACvB,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,gBAAgB,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAC9C;AACA,gBAAgB,IAAI,sBAAsB,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;AAClG,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AACpE,wBAAwB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACpE,4BAA4B,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACpD;AACA,4BAA4B,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM;AAC1B;AACA,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC;AAC/D,YAAY,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC3E,YAAY,OAAO,UAAU;AAC7B,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC3D,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,2BAA2B,CAAC,UAAU,EAAE;AAC5C,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;AACjE,QAAQ,IAAI,UAAU,KAAK,SAAS,EAAE;AACtC,YAAY,OAAO,CAAC,UAAU,CAAC;AAC/B,QAAQ;AACR;AACA,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,2BAA2B,CAAC,UAAU,EAAE;AAClD,QAAQ,IAAI;AACZ,YAAY,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACtF,YAAY,MAAM,WAAW,GAAG,EAAE;AAClC;AACA,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;AACrE,YAAY,MAAM,sBAAsB,GAAG,UAAU,KAAK,SAAS,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI;AACzF,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/D,gBAAgB,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;AAC9C;AACA,gBAAgB,IAAI,sBAAsB,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5F,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;AAClG,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AACtE,wBAAwB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACjD,4BAA4B,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACrD,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM;AAC1B;AACA,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC;AAClE,YAAY,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;AACvC,gBAAgB,IAAI,GAAG,CAAC,IAAI,EAAE;AAC9B,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC5D,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,OAAO,WAAW;AAC9B,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7D,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,yBAAyB,CAAC,IAAI,EAAE;AAC1C,QAAQ,IAAI;AACZ,YAAY,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;AACtF;AACA,YAAY,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE;AAC/C,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE;AAClG,oBAAoB,IAAI;AACxB,wBAAwB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAClE,wBAAwB,IAAI,MAAM,EAAE;AACpC,4BAA4B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC;AACnE,4BAA4B,OAAO,MAAM;AACzC,wBAAwB;AACxB,oBAAoB;AACpB,oBAAoB,MAAM;AAC1B;AACA,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ;AACA,YAAY,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,EAAE;AAC1E,gBAAgB,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC;AACxE,gBAAgB,IAAI,KAAK,EAAE;AAC3B,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,oBAAoB,OAAO,KAAK;AAChC,gBAAgB;AAChB,YAAY;AACZ,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,gBAAgB;AAChB,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC;AACrD,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,yBAAyB,CAAC,UAAU,EAAE;AAChD,QAAQ,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC;AACvC,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE;AAClC,QAAQ,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAY,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE;AAChD,YAAY,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AACtC,gBAAgB;AAChB,YAAY,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAClC,YAAY,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;AACjE,YAAY,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC;AACvE,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ;AACA,YAAY,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AAC/C,gBAAgB,IAAI,QAAQ,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AAC9E,oBAAoB,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjD,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,QAAQ,OAAO,SAAS;AACxB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,UAAU,EAAE;AACpC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5D,QAAQ,OAAO,QAAQ,GAAG,QAAQ,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK;AAC5D,IAAI;AACJ;AACA;AACA;AACA,IAAI,qBAAqB,CAAC,UAAU,EAAE;AACtC,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC;AAC5D,QAAQ,OAAO,QAAQ,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK;AAChE,IAAI;AACJ;AACA;AACA;AACA,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;AACzC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;AACzC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AACtC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;AAC9C,QAAQ,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;AAC9C,QAAQ,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;AAC5C,IAAI;AACJ;AACA;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACnC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;AACzC,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AACtC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;AAC9C,IAAI;AACJ;AACA;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE;AACzC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE;AAC9C,QAAQ,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;AAC5C,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAChM,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACvK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE,UAAU,EAAE,CAAC;AACvI,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACrab;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,2BAA2B,CAAC;AACzC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/L,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;AAClJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACtI,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC,EAAE,CAAC;;ACvCb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,mBAAmB,CAAC;AACjC,IAAI,WAAW,GAAG;AAClB;AACA,QAAQ,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,2BAA2B,CAAC;AAC3E,QAAQ,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE;AACnC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,aAAa,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE;AAChD,QAAQ,IAAI;AACZ,YAAY,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,KAAK,CAAC;AAClF,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;AAC9C,gBAAgB,QAAQ,EAAE,SAAS,CAAC,WAAW,IAAI,IAAI;AACvD,gBAAgB,WAAW,EAAE,SAAS,CAAC,WAAW;AAClD,gBAAgB,KAAK,EAAE,SAAS,CAAC;AACjC,aAAa;AACb,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC;AAClF,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,0BAA0B;AAClE,gBAAgB,QAAQ,EAAE;AAC1B,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,WAAW,CAAC,IAAI,EAAE;AAC5B;AACA,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,IAAI,IAAI,CAAC,aAAa,KAAK,MAAM,EAAE;AAChF,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,2DAA2D,CAAC,CAAC;AAClH,QAAQ;AACR,QAAQ,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;AACvD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,YAAY,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE;AAC3D,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;AACjF,gBAAgB,WAAW;AAC3B,gBAAgB,MAAM,EAAE,IAAI,CAAC,UAAU;AACvC,gBAAgB,SAAS,EAAE,IAAI,CAAC,SAAS;AACzC,gBAAgB,OAAO;AACvB,gBAAgB,SAAS,EAAE;AAC3B,aAAa,CAAC;AACd;AACA,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;AAChE,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvC,gBAAgB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI;AACnD,gBAAgB,WAAW;AAC3B,gBAAgB,KAAK,EAAE,QAAQ,CAAC;AAChC,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,yBAAyB;AACjE,gBAAgB,QAAQ,EAAE;AAC1B,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,mBAAmB,CAAC,UAAU,EAAE,KAAK,GAAG,EAAE,EAAE;AACtD;AACA,QAAQ,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC;AAC1D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;AAC7E,QAAQ,IAAI;AACZ;AACA,YAAY,IAAI,CAAC,SAAS,EAAE;AAC5B,gBAAgB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;AACvE,YAAY;AACZ;AACA,YAAY,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC;AACjF,gBAAgB,WAAW;AAC3B,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB;AAChB,aAAa,CAAC;AACd;AACA,YAAY,IAAI,QAAQ,CAAC,KAAK,EAAE;AAChC,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;AAChE,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,MAAM,EAAE,QAAQ,CAAC,MAAM;AACvC,gBAAgB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI;AACnD,gBAAgB,WAAW;AAC3B,gBAAgB,KAAK,EAAE,QAAQ,CAAC;AAChC,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO;AACnB,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,2BAA2B;AACnE,gBAAgB,QAAQ,EAAE;AAC1B,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,WAAW,EAAE;AACxC;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;AACvD,QAAQ,IAAI,MAAM,EAAE;AACpB;AACA,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;AACtE,YAAY,IAAI,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;AAC1C,gBAAgB,OAAO,MAAM;AAC7B,YAAY;AACZ,QAAQ;AACR;AACA,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAAC;AAChF,gBAAgB;AAChB,aAAa,CAAC;AACd;AACA,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC;AACnD,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,MAAM;AACd,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,uBAAuB,CAAC,IAAI,EAAE;AACxC,QAAQ,IAAI;AACZ;AACA,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/E,YAAY,IAAI,CAAC,aAAa,EAAE;AAChC,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,4CAA4C,EAAE,IAAI,CAAC,YAAY,CAAC,wCAAwC,CAAC,CAAC;AACxI,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,IAAI;AAChC,oBAAoB,OAAO,EAAE;AAC7B,iBAAiB;AACjB,YAAY;AACZ;AACA;AACA;AACA,YAAY,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE;AAC9D,YAAY,IAAI,YAAY,CAAC,YAAY,CAAC,IAAI,OAAO,YAAY,CAAC,YAAY,CAAC,KAAK,QAAQ,EAAE;AAC9F;AACA,gBAAgB,YAAY,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,CAAC,EAAE;AAChE,YAAY;AACZ,YAAY,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC;AAC7F,YAAY,IAAI,CAAC,MAAM,EAAE;AACzB,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE,IAAI;AAChC,oBAAoB,OAAO,EAAE,QAAQ;AACrC,iBAAiB;AACjB,YAAY;AACZ,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjC,gBAAgB,OAAO;AACvB,oBAAoB,MAAM,EAAE;AAC5B,wBAAwB,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI;AACnD,qBAAqB;AACrB,oBAAoB,OAAO,EAAE,QAAQ;AACrC,iBAAiB;AACjB,YAAY;AACZ,YAAY,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI;AAC7C,YAAY,MAAM,QAAQ,GAAG,aAAa,EAAE,QAAQ,IAAI,EAAE;AAC1D,YAAY,IAAI,OAAO,GAAG,MAAM;AAChC,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,gBAAgB,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM;AACxF,YAAY;AACZ,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,IAAI;AACrD,gBAAgB,OAAO;AACvB,aAAa;AACb,QAAQ;AACR,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,2DAA2D,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;AACrH,YAAY,OAAO;AACnB,gBAAgB,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE;AACnE,gBAAgB,OAAO,EAAE;AACzB,aAAa;AACb,QAAQ;AACR,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE;AACpD,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC;AAC5E,YAAY,UAAU;AACtB,YAAY;AACZ,SAAS,CAAC;AACV;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC;AACjE,QAAQ,OAAO;AACf,YAAY,WAAW,EAAE,QAAQ,CAAC,WAAW;AAC7C,YAAY,KAAK,EAAE,QAAQ,CAAC,KAAK;AACjC,YAAY,WAAW,EAAE,QAAQ,CAAC;AAClC,SAAS;AACT,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC9Sb;AACA;AACA;;ACFA;;ACAA;;ACAA;AACA;AACA;;;;"}