@acorex/platform 21.0.0-next.3 → 21.0.0-next.33

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 (117) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +295 -45
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-zhqNP3xb.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +60 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +960 -319
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1352 -832
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +530 -154
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +5969 -2347
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +15380 -9274
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +393 -110
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +511 -450
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +39 -16
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +6 -6
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +7865 -4026
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +18 -25
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1717 -66
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +11 -11
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +563 -561
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +1735 -1750
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +31 -31
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +247 -10
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +492 -31
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +606 -392
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +128 -56
  81. package/types/acorex-platform-layout-components.d.ts +2927 -0
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +1133 -237
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +90 -31
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +206 -102
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +942 -137
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +113 -5
  90. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +1 -1
  91. package/types/acorex-platform-workflow.d.ts +1806 -0
  92. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  101. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs +0 -1542
  103. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DyDa_hyd.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  105. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  110. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  115. package/layout/components/index.d.ts +0 -1669
  116. package/workflow/index.d.ts +0 -2443
  117. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -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":["../../../../libs/platform/workflow/src/lib/errors.types.ts","../../../../libs/platform/workflow/src/lib/workflow-event-dispatcher.service.ts","../../../../libs/platform/workflow/src/lib/workflow-registery.service.ts","../../../../libs/platform/workflow/src/lib/workflow.types.ts","../../../../libs/platform/workflow/src/lib/actions/decide.action.ts","../../../../libs/platform/workflow/src/lib/workflow.service.ts","../../../../libs/platform/workflow/src/lib/actions/start-workflow.action.ts","../../../../libs/platform/workflow/src/lib/engine/workflow-instance.types.ts","../../../../libs/platform/workflow/src/lib/engine/activity/activity.types.ts","../../../../libs/platform/workflow/src/lib/engine/activity/activity-definition.provider.ts","../../../../libs/platform/workflow/src/lib/engine/activity/activity-definition.service.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/workflow-engine.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/workflow-expression-scope.service.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/activity-executor.service.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/workflow-manager.service.ts","../../../../libs/platform/workflow/src/lib/engine/workflow/workflow-definition.provider.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/workflow-local-engine.ts","../../../../libs/platform/workflow/src/lib/engine/runtime/index.ts","../../../../libs/platform/workflow/src/lib/engine/workflow/workflow-definition.service.ts","../../../../libs/platform/workflow/src/lib/engine/index.ts","../../../../libs/platform/workflow/src/lib/workflow.module.ts","../../../../libs/platform/workflow/src/acorex-platform-workflow.ts"],"sourcesContent":["export class AXPWorkflowError extends Error {\n constructor(message: string, public inner: Error | null = null) {\n super(message);\n this.name = 'AXPWorkflowError';\n }\n}","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { AXPWorkflowEvent } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowEventService {\n private eventSubject = new Subject<AXPWorkflowEvent>();\n\n dispatch(event: AXPWorkflowEvent): void {\n this.eventSubject.next(event);\n }\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventSubject.asObservable();\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction, AXPWorkflowStep } from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowRegistryService {\n private functionsMap = new Map<string, Type<AXPWorkflowFunction>>();\n private actionsMap = new Map<string, Type<AXPWorkflowAction>>();\n private workflowsMap = new Map<string, AXPWorkflow>();\n\n registerWorkflow(name: string, workflow: AXPWorkflow): void {\n this.workflowsMap.set(name, workflow);\n }\n\n getWorkflow(name: string): AXPWorkflow | undefined {\n return this.workflowsMap.get(name);\n }\n\n registerAction(name: string, action: Type<AXPWorkflowAction>): void {\n this.actionsMap.set(name, action);\n }\n\n getAction(name: string): Type<AXPWorkflowAction> | undefined {\n return this.actionsMap.get(name);\n }\n\n registerFunction(name: string, func: Type<AXPWorkflowFunction>): void {\n this.functionsMap.set(name, func);\n }\n\n getFunction(name: string): Type<AXPWorkflowFunction> | undefined {\n return this.functionsMap.get(name);\n }\n\n getFunctionNames(): string[] {\n return Array.from(this.functionsMap.keys());\n }\n\n getStep(workflowName: string, stepName: string): AXPWorkflowStep | undefined {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n return steps[stepName];\n }\n return undefined;\n }\n\n updateStepInWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} does not exist in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addStepToWorkflow(workflowName: string, stepName: string, step: AXPWorkflowStep): void {\n const workflow = this.workflowsMap.get(workflowName);\n if (workflow) {\n const steps = workflow.steps as { [key: string]: AXPWorkflowStep };\n if (!steps[stepName]) {\n steps[stepName] = step;\n } else {\n throw new Error(`Step with name ${stepName} already exists in workflow ${workflowName}.`);\n }\n } else {\n throw new Error(`Workflow with name ${workflowName} does not exist.`);\n }\n }\n\n addAfterStep(\n workflowId: string,\n stepId: string,\n newStepId: string,\n newStepAction: string,\n conditionExpression: string\n ): void {\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\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}\n","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';\n\nexport interface AXPWorkflow {\n steps: { [stepName: string]: AXPWorkflowStep };\n startStepId: string;\n}\n\n\nexport class AXPWorkflowContext {\n\n constructor(initialData: any = {}) {\n this.variables = cloneDeep(initialData);\n }\n\n private variables: any = {};\n private stepOutputs: Map<string, any> = new Map();\n\n setVariable(key: string, value: any): void {\n setSmart(this.variables, key, value);\n }\n\n\n setVariables(context: any = {}) {\n this.variables = { ...this.variables, ...context };\n }\n\n getVariable<T = any>(key?: string | null): T {\n return !key ? this.variables : get(this.variables, key);\n }\n\n setOutput(key: string, output: any): void {\n this.stepOutputs.set(key, output);\n }\n\n setOutputs(values: Map<string, any>): void {\n this.stepOutputs = new Map([...this.stepOutputs, ...values])\n }\n\n getOutput<T = any>(key: string): T {\n return this.stepOutputs.get(key);\n }\n}\n\nexport type AXPWorkflowActionInput = any;\n\nexport type AXPWorkflowConditionType = 'AND' | 'OR' | 'SINGLE';\n\nexport interface AXPWorkflowCondition {\n type: AXPWorkflowConditionType;\n conditions?: AXPWorkflowCondition[]; // Nested conditions\n expression?: string; // Used if type is 'SINGLE'\n}\n\nexport interface AXPWorkflowNextStep {\n conditions: AXPWorkflowCondition[];\n nextStepId: string;\n}\n\nexport interface AXPWorkflowStep {\n id?: string;\n action: AXPWorkflowAction | string;\n input?: AXPWorkflowActionInput;\n nextSteps?: AXPWorkflowNextStep[];\n conditions?: AXPWorkflowCondition[];\n}\n@Injectable()\nexport abstract class AXPWorkflowAction {\n private eventService = inject(AXPWorkflowEventService);\n\n protected dispatch(event: AXPWorkflowEvent): void {\n this.eventService.dispatch(event);\n }\n\n abstract execute(context: AXPWorkflowContext): Promise<void>;\n}\n\n@Injectable()\nexport abstract class AXPWorkflowFunction {\n abstract execute(...args: any[]): Promise<any> | any;\n}\n\nexport interface AXPWorkflowEvent<T = any> {\n type: string;\n payload?: T;\n}\n\n\n\nexport function createWorkFlowEvent<T>(type: string) {\n const eventCreator = (payload: T) => ({ type, payload });\n eventCreator.type = type;\n return eventCreator;\n}\n\nexport function ofType<T extends { type: string }>(...allowedTypes: Array<{ type: string }>) {\n return filter((event: T) => allowedTypes.some((type) => event.type === type.type));\n}\n","import { Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowDecideAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n // its a fake action\n }\n}","import { Injectable, Injector, inject } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Observable } from 'rxjs';\nimport { AXPWorkflowError } from './errors.types';\nimport { AXPWorkflowEventService } from './workflow-event-dispatcher.service';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport {\n AXPWorkflow,\n AXPWorkflowAction,\n AXPWorkflowCondition,\n AXPWorkflowContext,\n AXPWorkflowEvent,\n AXPWorkflowFunction,\n AXPWorkflowNextStep,\n AXPWorkflowStep,\n} from './workflow.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowService {\n private eventService = inject(AXPWorkflowEventService);\n\n get events$(): Observable<AXPWorkflowEvent> {\n return this.eventService.events$;\n }\n\n constructor(private registryService: AXPWorkflowRegistryService, private injector: Injector) { }\n\n exists(name: string): boolean {\n return !!this.registryService.getWorkflow(name);\n }\n\n\n async execute(\n workflow: AXPWorkflow | string,\n initialContext: AXPWorkflowContext | any | null = null\n ): Promise<AXPWorkflowContext> {\n // Instantiate or retrieve the workflow\n const wk = typeof workflow === 'string' ? this.getWorkflowInstance(workflow) : workflow;\n\n let currentStepId = wk.startStepId;\n const context =\n initialContext instanceof AXPWorkflowContext\n ? initialContext\n : new AXPWorkflowContext(this.processData(initialContext) ?? {});\n // Initialize context with initial variables\n\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\n // Instantiate or retrieve the action\n const action =\n typeof currentStep.action === 'string' ? this.getActionInstance(currentStep.action) : currentStep.action;\n //\n if (currentStep.input) {\n let inputs: any = {};\n await this.processInputs(cloneDeep(currentStep.input), inputs, '', context);\n await new Promise((resolve) =>\n setTimeout(async () => {\n Object.assign(action, inputs);\n resolve(0);\n })\n );\n }\n try {\n await new Promise((resolve) =>\n 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 as 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 } else {\n break; // Exit the loop if no next step is determined\n }\n }\n return context;\n }\n\n private processData(initialContext: any): any {\n //TODO: update values with expressions and return new object\n return initialContext;\n }\n\n\n\n private getActionInstance(actionName: string): AXPWorkflowAction {\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\n private getWorkflowInstance(workflowName: string): AXPWorkflow {\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\n private async determineNextStep(\n currentStep: AXPWorkflowStep,\n context: AXPWorkflowContext\n ): Promise<AXPWorkflowNextStep | null> {\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\n private async evaluateCondition(conditions: AXPWorkflowCondition[], context: AXPWorkflowContext): Promise<boolean> {\n if (!conditions || conditions.length === 0) {\n return true; // If no conditions, the step proceeds\n }\n\n // Map each condition to a promise using evaluateSingleCondition\n const conditionPromises = conditions.map((condition) => this.evaluateSingleCondition(condition, context));\n\n // Wait for all promises to resolve\n const results = await Promise.all(conditionPromises);\n\n // Check if every condition is true\n return results.every((result) => result);\n }\n\n private async evaluateSingleCondition(\n condition: AXPWorkflowCondition,\n context: AXPWorkflowContext\n ): Promise<boolean> {\n switch (condition.type) {\n case 'SINGLE':\n return (!condition.expression ? true : await this.evaluateExpression(condition.expression, context)) as boolean;\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\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\n default:\n throw new AXPWorkflowError(`Unsupported condition type: ${condition.type}`);\n }\n }\n\n //TODO: return any and recursively update object, update scopes\n private async evaluateExpression(templateExpression: string, context: AXPWorkflowContext): Promise<Boolean> {\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 } 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 } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private async processInputs(obj: any, inputs: any, pathPrefix: string = '', context: any = {}): Promise<void> {\n if (!obj) {\n return;\n }\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 } else if (\n typeof value === 'object' &&\n value !== null &&\n (value.constructor === Object || Array.isArray(value))\n ) {\n // Recursively handle nested objects\n this.processInputs(value, inputs, currentPath, context);\n } else {\n // Apply static values directly\n set(inputs, currentPath, value);\n }\n }\n }\n\n private createFunctionScope(): any {\n const scope: any = {};\n this.registryService.getFunctionNames().forEach((name) => {\n scope[name] = this.getFunctionInstance(name).execute;\n });\n return { methods: { scope } };\n }\n\n private getFunctionInstance(functionName: string): AXPWorkflowFunction {\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}\n","import { inject, Injectable } from \"@angular/core\";\nimport { AXPWorkflowAction, AXPWorkflowContext } from \"../workflow.types\";\nimport { AXPWorkflowService } from \"../workflow.service\";\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPStartWorkflowAction extends AXPWorkflowAction {\n\n private workflowService = inject(AXPWorkflowService)\n private workflow: string;\n private context: any;\n\n async execute(context: AXPWorkflowContext): Promise<void> {\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: unknown) {\n throw e;\n }\n\n }\n}\n\n","// ============================================\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// ============================================\n\n/**\n * Workflow status.\n */\nexport type AXPWorkflowStatus = 'Running' | 'Finished';\n\n/**\n * Workflow sub-status.\n */\nexport type AXPWorkflowSubStatus = 'Pending' | 'Executing' | 'Suspended' | 'Finished' | 'Cancelled' | 'Faulted';\n\n/**\n * Activity status.\n */\nexport type AXPActivityStatus = 'Running' | 'Completed' | 'Canceled' | 'Faulted';\n\n/**\n * Exception state.\n */\nexport interface AXPExceptionState {\n /**\n * Exception type name.\n */\n type: string;\n\n /**\n * Exception message.\n */\n message: string;\n\n /**\n * Stack trace (nullable).\n */\n stackTrace?: string | null;\n\n /**\n * Inner exception (nullable).\n */\n innerException?: AXPExceptionState | null;\n}\n\n/**\n * Activity incident.\n */\nexport interface AXPActivityIncident {\n /**\n * Activity ID that caused the incident.\n */\n activityId: string;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity type.\n */\n activityType: string;\n\n /**\n * Incident message.\n */\n message: string;\n\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Timestamp (ISO date-time).\n */\n timestamp: string;\n}\n\n/**\n * Workflow fault state.\n */\nexport interface AXPWorkflowFaultState {\n /**\n * Exception (nullable).\n */\n exception?: AXPExceptionState | null;\n\n /**\n * Fault message.\n */\n message: string;\n\n /**\n * Faulted activity ID (nullable).\n */\n faultedActivityId?: string | null;\n}\n\n/**\n * Bookmark.\n */\nexport interface AXPBookmark {\n /**\n * Bookmark ID.\n */\n id: string;\n\n /**\n * Bookmark name.\n */\n name: string;\n\n /**\n * Bookmark hash.\n */\n hash: string;\n\n /**\n * Bookmark payload (nullable).\n */\n payload?: any | null;\n\n /**\n * Activity node ID.\n */\n activityNodeId: string;\n\n /**\n * Activity instance ID.\n */\n activityInstanceId: string;\n\n /**\n * Auto burn flag.\n */\n autoBurn?: boolean;\n\n /**\n * Callback method name (nullable).\n */\n callbackMethodName?: string | null;\n\n /**\n * Metadata (nullable).\n */\n metadata?: Record<string, string> | null;\n}\n\n/**\n * Completion callback state.\n */\nexport interface AXPCompletionCallbackState {\n /**\n * Owner activity instance ID.\n */\n ownerInstanceId: string;\n\n /**\n * Child activity node ID.\n */\n childNodeId: string;\n\n /**\n * Method name (nullable).\n */\n methodName?: string | null;\n}\n\n/**\n * Variable (for activity context).\n */\nexport interface AXPActivityVariable {\n /**\n * Variable ID.\n */\n id: string;\n\n /**\n * Variable name.\n */\n name: string;\n\n /**\n * Type name.\n */\n typeName: string;\n\n /**\n * Is array flag.\n */\n isArray?: boolean;\n\n /**\n * Variable value (nullable).\n */\n value?: any | null;\n\n /**\n * Storage driver type name (nullable).\n */\n storageDriverTypeName?: string | null;\n}\n\n/**\n * Activity execution context state.\n */\nexport interface AXPActivityExecutionContextState {\n /**\n * Context ID (activity instance ID).\n */\n id: string;\n\n /**\n * Parent context ID (nullable).\n */\n parentContextId?: string | null;\n\n /**\n * Scheduled activity node ID.\n */\n scheduledActivityNodeId: string;\n\n /**\n * Owner activity node ID (nullable).\n */\n ownerActivityNodeId?: string | null;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Activity state (evaluated properties) (nullable).\n */\n activityState?: Record<string, any> | null;\n\n /**\n * Dynamic variables.\n */\n dynamicVariables: AXPActivityVariable[];\n\n /**\n * Activity status.\n */\n status: AXPActivityStatus;\n\n /**\n * Is executing flag.\n */\n isExecuting: boolean;\n\n /**\n * Fault count.\n */\n faultCount: number;\n\n /**\n * Started at timestamp (ISO date-time).\n */\n startedAt: string;\n\n /**\n * Completed at timestamp (ISO date-time, nullable).\n */\n completedAt?: string | null;\n\n /**\n * Tag (nullable).\n */\n tag?: any | null;\n}\n\n/**\n * Workflow state (internal execution state).\n */\nexport interface AXPWorkflowState {\n /**\n * State ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version.\n */\n definitionVersion: number;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Bookmarks.\n */\n bookmarks: AXPBookmark[];\n\n /**\n * Incidents.\n */\n incidents: AXPActivityIncident[];\n\n /**\n * Fault (nullable).\n */\n fault?: AXPWorkflowFaultState | null;\n\n /**\n * Completion callbacks.\n */\n completionCallbacks: AXPCompletionCallbackState[];\n\n /**\n * Activity execution contexts.\n */\n activityExecutionContexts: AXPActivityExecutionContextState[];\n\n /**\n * Input data.\n */\n input: Record<string, any>;\n\n /**\n * Output data.\n */\n output: Record<string, any>;\n\n /**\n * Properties bag.\n */\n properties: Record<string, any>;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Total number of activities/steps in the workflow (for progress display).\n */\n totalSteps?: number;\n}\n\n/**\n * Workflow instance (stored in database).\n * This matches the Elsa Workflow Instance schema for backend compatibility.\n */\nexport interface AXPWorkflowInstance {\n /**\n * Schema reference.\n */\n $schema?: string;\n\n /**\n * Unique instance ID.\n */\n id: string;\n\n /**\n * Workflow definition ID.\n */\n definitionId: string;\n\n /**\n * Workflow definition version ID.\n */\n definitionVersionId: string;\n\n /**\n * Workflow definition version number.\n */\n version: number;\n\n /**\n * Parent workflow instance ID (nullable, for child workflows).\n */\n parentWorkflowInstanceId?: string | null;\n\n /**\n * Workflow state (internal execution state).\n */\n workflowState: AXPWorkflowState;\n\n /**\n * Workflow status.\n */\n status: AXPWorkflowStatus;\n\n /**\n * Workflow sub-status.\n */\n subStatus: AXPWorkflowSubStatus;\n\n /**\n * Correlation ID (nullable).\n */\n correlationId?: string | null;\n\n /**\n * Instance name (nullable).\n */\n name?: string | null;\n\n /**\n * Incident count.\n */\n incidentCount: number;\n\n /**\n * Created at timestamp (ISO date-time).\n */\n createdAt: string;\n\n /**\n * Updated at timestamp (ISO date-time).\n */\n updatedAt: string;\n\n /**\n * Finished at timestamp (ISO date-time, nullable).\n */\n finishedAt?: string | null;\n\n /**\n * Entity reference ID (for linking workflow instances to business entities).\n */\n entityRefId?: string | null;\n\n /**\n * Entity reference type (e.g., 'HumanCapitalManagement.LeaveRequest').\n */\n entityRefType?: string | null;\n}\n\n","import { AXPCategoryEntity } from \"@acorex/platform/core\";\nimport { AXPWidgetTypesMap } from \"@acorex/platform/layout/widget-core\";\nimport { AXPWorkflowInputDescriptor, AXPWorkflowOutputDescriptor } from \"../workflow-definition.types\";\n\n// ============================================\n// SIMPLIFIED ACTIVITY SYSTEM\n// ============================================\n\n/**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n */\nexport type AXPTaskType = 'human-task' | 'ui-activity' | 'system-activity';\n\n/**\n * Activity Category - Extends AXPCategoryEntity for consistency and performance\n * \n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct activities count\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total activities in tree (optional, for analytics)\n */\nexport interface AXPActivityCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasActivity\n}\n\n/**\n * Activity Definition - Metadata for UI and tooling.\n * Contains all metadata needed for displaying activities in toolbox and designer.\n * The `name` property is used as the command key for execution.\n */\nexport interface AXPActivityDefinition {\n /**\n * Activity name - used as command key for execution.\n * This is the unique identifier for the activity.\n */\n name: string;\n \n /**\n * Activity type (e.g., \"workflow-activity:check-permission\").\n */\n type: string;\n \n /**\n * Display name for UI.\n */\n title?: string;\n \n /**\n * Description of what the activity does.\n */\n description?: string;\n \n /**\n * Category for grouping in toolbox.\n */\n category?: string;\n \n /**\n * Icon name or class.\n */\n icon?: string;\n \n /**\n * Where this activity should be executed.\n * - 'frontend': Execute in browser (UI activities, console, events)\n * - 'backend': Execute in backend (business logic, API calls)\n * - 'both': Execute in both frontend and backend (hybrid activities)\n * \n * Default: 'frontend'\n */\n executionMode?: 'frontend' | 'backend' | 'both';\n \n /**\n * Type of task for inbox handling.\n * - 'human-task': Requires inbox - needs human interaction\n * - 'ui-activity': UI-only activity (no inbox) - immediate execution\n * - 'system-activity': System/backend activity (no inbox) - automated execution\n * \n * Default: 'ui-activity' (for backward compatibility)\n */\n taskType?: AXPTaskType;\n \n /**\n * Input descriptors.\n */\n inputs?: AXPWorkflowInputDescriptor[];\n \n /**\n * Output descriptors.\n */\n outputs?: AXPWorkflowOutputDescriptor[];\n \n /**\n * Static outcomes (exit points).\n * Example: ['Done', 'Success', 'Failed']\n */\n outcomes?: string[];\n\n /**\n * Whether this activity is browsable in the toolbox.\n * Default: true\n */\n isBrowsable?: boolean;\n \n /**\n * Whether this activity is a container (can have children).\n * Default: false\n */\n isContainer?: boolean;\n}\n\n// Note:\n// Previous versions defined dedicated activity result/command types here\n// (AXPActivityResult / AXPActivity) that wrapped output and outcome.\n// Activities are now modeled directly as AXPCommand with outcome stored in\n// AXPExecuteCommandResult.metadata.outcome.\n\n","import { InjectionToken } from '@angular/core';\nimport { AXPActivityCategory, AXPActivityDefinition } from './activity.types';\n\nexport type AXPActivityProviderToken =\n | AXPActivityProvider\n | Promise<AXPActivityProvider>;\n\nexport const AXP_ACTIVITY_PROVIDER = new InjectionToken<AXPActivityProviderToken[]>('AXP_ACTIVITY_PROVIDER', {\n factory: () => [],\n});\n\nexport interface AXPActivityProvider {\n /**\n * Get list of activity definitions for a category.\n * @param categoryId - Category ID to filter activities\n * @returns Promise of activity definitions array\n */\n getList(categoryId: string): Promise<AXPActivityDefinition[]>;\n \n /**\n * Get activity definition by name (unique identifier).\n * The name is used as the command key for execution.\n * @param name - Activity name (unique identifier and command key)\n * @returns Promise of activity definition or undefined if not found\n */\n getById(name: string): Promise<AXPActivityDefinition | undefined>;\n}\n\nexport type AXPActivityCategoryProviderToken =\n | AXPActivityCategoryProvider\n | Promise<AXPActivityCategoryProvider>;\n\nexport const AXP_ACTIVITY_CATEGORY_PROVIDER = new InjectionToken<AXPActivityCategoryProviderToken[]>('AXP_ACTIVITY_CATEGORY_PROVIDER', {\n factory: () => [],\n});\n\nexport interface AXPActivityCategoryProvider {\n getList(parentId?: string): Promise<AXPActivityCategory[]>;\n getById(id: string): Promise<AXPActivityCategory | undefined>;\n}\n\n","//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPActivityCategory, AXPActivityDefinition } from './activity.types';\nimport { AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER } from './activity-definition.provider';\n\n//#endregion\n\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 */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPActivityDefinitionService {\n //#region ---- Providers & Caches ----\n\n private readonly categoryProviders = inject(AXP_ACTIVITY_CATEGORY_PROVIDER, { optional: true }) || [];\n private readonly activityProviders = inject(AXP_ACTIVITY_PROVIDER, { optional: true }) || [];\n\n //#endregion\n\n //#region ---- Cache Storage ----\n\n /** Cache for categories by id - O(1) lookup */\n private categoriesById = new Map<string, AXPActivityCategory>();\n\n /** Cache for categories by parentId - O(1) lookup */\n private categoriesByParentId = new Map<string | undefined, AXPActivityCategory[]>();\n\n /** Cache for activity definitions by categoryId - O(1) lookup */\n private activitiesByCategory = new Map<string, AXPActivityDefinition[]>();\n\n /** Cache for individual activity definitions by name - O(1) lookup */\n private activitiesByName = new Map<string, AXPActivityDefinition>();\n\n /** Track which provider index owns each category (by category ID) */\n private categoryOwnership = new Map<string, number>(); // Maps categoryId → provider index\n\n /** Pending API requests to prevent duplicate calls */\n private pendingCategoriesRequests = new Map<string | undefined, Promise<AXPActivityCategory[]>>();\n private pendingActivitiesRequests = new Map<string, Promise<AXPActivityDefinition[]>>();\n private pendingActivityRequests = new Map<string, Promise<AXPActivityDefinition | undefined>>();\n\n //#endregion\n\n //#region ---- Initialization ----\n\n\n //#endregion\n\n //#region ---- Public API: Categories ----\n\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?: string): Promise<AXPActivityCategory[]> {\n // ✅ Fast path: Return cached result\n if (this.categoriesByParentId.has(parentId)) {\n return this.categoriesByParentId.get(parentId)!;\n }\n\n // ✅ Prevent duplicate requests: Return pending promise\n if (this.pendingCategoriesRequests.has(parentId)) {\n return this.pendingCategoriesRequests.get(parentId)!;\n }\n\n // ✅ Create single request and cache it\n const requestPromise = this.loadCategoriesFromProviders(parentId);\n this.pendingCategoriesRequests.set(parentId, requestPromise);\n\n return requestPromise;\n }\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: string): Promise<AXPActivityCategory | undefined> {\n // ✅ Fast path: O(1) lookup in cache\n if (this.categoriesById.has(categoryId)) {\n return this.categoriesById.get(categoryId);\n }\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\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\n // ✅ Breadth-first search through hierarchy\n return this.searchCategoryInHierarchy(categoryId);\n }\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: string): Promise<AXPActivityCategory[]> {\n const path: AXPActivityCategory[] = [];\n let currentCategoryId: string | undefined = categoryId;\n\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\n return path;\n }\n\n //#endregion\n\n //#region ---- Public API: Activity Definitions ----\n\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: string): Promise<AXPActivityDefinition[]> {\n // ✅ Fast path: Return cached result\n if (this.activitiesByCategory.has(categoryId)) {\n return this.activitiesByCategory.get(categoryId)!;\n }\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: AXPActivityDefinition[] = [];\n this.activitiesByCategory.set(categoryId, emptyArray);\n return emptyArray;\n }\n\n // ✅ Prevent duplicate requests\n if (this.pendingActivitiesRequests.has(categoryId)) {\n return this.pendingActivitiesRequests.get(categoryId)!;\n }\n\n // ✅ Load from providers\n const requestPromise = this.loadActivitiesFromProviders(categoryId);\n this.pendingActivitiesRequests.set(categoryId, requestPromise);\n\n return requestPromise;\n }\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: string): Promise<AXPActivityDefinition | undefined> {\n // ✅ Fast path: O(1) lookup in cache\n if (this.activitiesByName.has(name)) {\n return this.activitiesByName.get(name);\n }\n\n // ✅ Prevent duplicate requests\n if (this.pendingActivityRequests.has(name)) {\n return this.pendingActivityRequests.get(name)!;\n }\n\n // ✅ Load from providers\n const requestPromise = this.loadActivityFromProviders(name);\n this.pendingActivityRequests.set(name, requestPromise);\n\n return requestPromise;\n }\n\n /**\n * Get all activity definitions (flat list) by loading root categories and their activities.\n * Used by activity selector UIs (e.g. automation command configurator).\n */\n async getAllActivities(): Promise<AXPActivityDefinition[]> {\n const categories = await this.getCategories(undefined);\n const all: AXPActivityDefinition[] = [];\n for (const cat of categories) {\n const activities = await this.getActivitiesByCategoryId(cat.id);\n all.push(...activities);\n }\n return all;\n }\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: string): Promise<string | undefined> {\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\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\n return undefined;\n }\n\n /**\n * Get category path for an activity\n */\n async getCategoriesPathByActivityName(activityName: string): Promise<AXPActivityCategory[]> {\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\n //#endregion\n\n //#region ---- Private: Data Loading ----\n\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 private async loadCategoriesFromProviders(parentId?: string): Promise<AXPActivityCategory[]> {\n try {\n const resolvedProviders = await Promise.allSettled(this.categoryProviders);\n const categories: AXPActivityCategory[] = [];\n\n // Determine which provider(s) to query\n const providerIndicesToQuery = parentId\n ? this.getProviderIndexForCategory(parentId)\n : null; // Root: query all providers\n\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n\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\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\n // ✅ Track ownership: This provider INDEX owns these categories\n cats.forEach(cat => this.categoryOwnership.set(cat.id, i));\n }\n } catch {\n // Continue on error - try other providers\n }\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\n return categories;\n } finally {\n this.pendingCategoriesRequests.delete(parentId);\n }\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 private getProviderIndexForCategory(categoryId: string): number[] | null {\n const ownerIndex = this.categoryOwnership.get(categoryId);\n\n if (ownerIndex !== undefined) {\n return [ownerIndex];\n }\n\n // Ownership unknown - will query all providers (fallback)\n return null;\n }\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 private async loadActivitiesFromProviders(categoryId: string): Promise<AXPActivityDefinition[]> {\n try {\n const resolvedProviders = await Promise.allSettled(this.activityProviders);\n const definitions: AXPActivityDefinition[] = [];\n\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\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n\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\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 } catch {\n // Continue on error - try other providers\n }\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\n return definitions;\n } finally {\n this.pendingActivitiesRequests.delete(categoryId);\n }\n }\n\n /**\n * Load single activity definition from providers and cache result\n */\n private async loadActivityFromProviders(name: string): Promise<AXPActivityDefinition | undefined> {\n try {\n const resolvedProviders = await Promise.allSettled(this.activityProviders);\n\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 } catch {\n // Continue on error\n }\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\n return undefined;\n } finally {\n this.pendingActivityRequests.delete(name);\n }\n }\n\n /**\n * Breadth-first search through category hierarchy\n */\n private async searchCategoryInHierarchy(categoryId: string): Promise<AXPActivityCategory | undefined> {\n const searchQueue: (string | undefined)[] = [undefined];\n const searched = new Set<string | undefined>();\n\n while (searchQueue.length > 0) {\n const parentId = searchQueue.shift()!;\n if (searched.has(parentId)) continue;\n searched.add(parentId);\n\n const categories = await this.getCategories(parentId);\n const found = categories.find(cat => cat.id === categoryId);\n\n if (found) {\n return found;\n }\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\n return undefined;\n }\n\n //#endregion\n\n //#region ---- Cache Management ----\n\n /**\n * Check if category has children (uses cached count)\n */\n categoryHasChildren(categoryId: string): boolean {\n const category = this.categoriesById.get(categoryId);\n return category ? category.childrenCount > 0 : false;\n }\n\n /**\n * Check if category has activities (uses cached count)\n */\n categoryHasActivities(categoryId: string): boolean {\n const category = this.categoriesById.get(categoryId);\n return category ? (category.itemsCount ?? 0) > 0 : false;\n }\n\n /**\n * Clear all caches\n */\n clearAllCache(): void {\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 /**\n * Clear categories cache only\n */\n clearCategoriesCache(): void {\n this.categoriesById.clear();\n this.categoriesByParentId.clear();\n this.categoryOwnership.clear();\n this.pendingCategoriesRequests.clear();\n }\n\n /**\n * Clear activities cache only\n */\n clearActivitiesCache(): void {\n this.activitiesByCategory.clear();\n this.activitiesByName.clear();\n this.pendingActivitiesRequests.clear();\n this.pendingActivityRequests.clear();\n }\n\n //#endregion\n}\n\n","import { InjectionToken } from '@angular/core';\nimport {\n AXPFrontActivityCompleteRequest,\n AXPFrontActivityCompleteResponse,\n AXPGetWorkflowStateRequest,\n AXPResumeWorkflowRequest,\n AXPResumeWorkflowResponse,\n AXPStartWorkflowRequest,\n AXPStartWorkflowResponse,\n AXPWorkflowInstanceState,\n} from './workflow-runtime.types';\n\n/**\n * Interface for workflow engine operations.\n */\nexport interface AXPWorkflowEngine {\n /**\n * Start a new workflow instance.\n *\n * Creates a new workflow instance in backend and returns instance ID.\n *\n * @param request - Start workflow request\n * @returns Response with instanceId and initial state\n *\n */\n start(request: AXPStartWorkflowRequest): Promise<AXPStartWorkflowResponse>;\n\n /**\n * Resume a suspended workflow instance.\n *\n * Resumes workflow instance after user interaction (e.g., after show-dialog).\n *\n * @param request - Resume workflow request\n * @returns Resume response with next step and updated state\n *\n */\n resume(request: AXPResumeWorkflowRequest): Promise<AXPResumeWorkflowResponse>;\n\n /**\n * Get current workflow instance state.\n *\n * Retrieves current state of a workflow instance from backend.\n *\n * @param request - Get state request\n * @returns Current workflow instance state\n *\n */\n getState(request: AXPGetWorkflowStateRequest): Promise<AXPWorkflowInstanceState>;\n\n frontActivtyComplete(request: AXPFrontActivityCompleteRequest): Promise<AXPFrontActivityCompleteResponse>;\n}\n\n/**\n * Injection token for workflow engine.\n * Default implementation is AXPWorkflowLocalEngine.\n */\nexport const AXP_WORKFLOW_ENGINE = new InjectionToken<AXPWorkflowEngine>('AXP_WORKFLOW_ENGINE');\n","import { Injectable } from '@angular/core';\nimport { AXPExpressionEvaluatorScope } from '@acorex/platform/core';\nimport { get } from 'lodash-es';\nimport { AXPWorkflowInstanceState } from './workflow-runtime.types';\n\n//#region ---- Types & Interfaces ----\n\n/**\n * Workflow expression evaluation context.\n * Contains workflow state data needed for expression evaluation.\n */\nexport interface WorkflowExpressionContext {\n /** Workflow input values */\n inputs: Record<string, any>;\n \n /** Workflow state variables */\n variables: Record<string, any>;\n \n /** Previous activity outputs (activityId -> output) */\n outputs: Record<string, any>;\n}\n\n//#endregion\n\n/**\n * Workflow Expression Scope Service\n * \n * Shared service for building expression evaluation scope from workflow data.\n * Used by both Local Engine and Mock Runtime to manage workflow data (inputs, variables, outputs).\n * \n * Responsibilities:\n * - Build expression evaluation scope from workflow state\n * - Provide context.eval() function for accessing workflow data\n * - Manage workflow data structure (inputs, variables, outputs)\n * \n * This service does NOT:\n * - Execute activities\n * - Evaluate expressions (delegates to AXPExpressionEvaluatorService)\n * - Manage workflow state (handled by runtime)\n * \n * @example\n * ```typescript\n * const scopeService = inject(WorkflowExpressionScopeService);\n * \n * // Build scope from workflow state\n * const scope = scopeService.buildScope({\n * inputs: state.input || {},\n * variables: state.variables || {},\n * outputs: activityOutputs\n * });\n * \n * // Or build from state directly\n * const scope = scopeService.buildScopeFromState(state, activityOutputs);\n * ```\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkflowExpressionScopeService {\n //#region ---- Private Helpers (dot-notation input normalization) ----\n\n /**\n * Collect dot-notation key-value pairs from nested objects so that e.g.\n * { metadata: { \"metadata.questionnaire.id\": \"x\" } } becomes { \"metadata.questionnaire.id\": \"x\" } at root.\n * Top-level non-dot keys are kept as-is.\n */\n private flattenDotKeysFromTree(obj: Record<string, any>): Record<string, any> {\n if (obj === null || typeof obj !== 'object') return obj;\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(obj)) {\n if (key.includes('.')) {\n result[key] = value;\n } else if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n for (const [k, v] of Object.entries(value)) {\n if (k.includes('.')) {\n result[k] = v;\n } else {\n result[key + '.' + k] = v;\n }\n }\n } else {\n result[key] = value;\n }\n }\n return result;\n }\n\n /**\n * Expand flat keys with dots into nested objects.\n * e.g. { \"metadata.questionnaire.id\": \"x\" } -> { metadata: { questionnaire: { id: \"x\" } } }.\n */\n private expandDotKeys(obj: Record<string, any>): Record<string, any> {\n if (obj === null || typeof obj !== 'object') return obj;\n const result: Record<string, any> = {};\n const dotKeys: [string, any][] = [];\n const simpleKeys: [string, any][] = [];\n for (const [key, value] of Object.entries(obj)) {\n if (key.includes('.')) {\n dotKeys.push([key, value]);\n } else {\n simpleKeys.push([key, value]);\n }\n }\n for (const [key, value] of dotKeys) {\n const parts = key.split('.');\n let current = result;\n for (let i = 0; i < parts.length - 1; i++) {\n const part = parts[i];\n if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {\n current[part] = {};\n }\n current = current[part];\n }\n current[parts[parts.length - 1]] = value;\n }\n for (const [key, value] of simpleKeys) {\n result[key] = value;\n }\n return result;\n }\n\n /**\n * Normalize workflow input so that flat dot-notation keys (e.g. from form schema\n * \"metadata.questionnaire.id\") become nested for expression access (inputs.metadata.questionnaire.id).\n */\n private normalizeInputs(input: Record<string, any> | undefined): Record<string, any> {\n if (!input || typeof input !== 'object') return {};\n const flattened = this.flattenDotKeysFromTree(input);\n return this.expandDotKeys(flattened);\n }\n\n //#endregion\n\n //#region ---- Public Methods ----\n\n /**\n * Build expression evaluation scope for workflow activities.\n * \n * Provides workflow-specific data (inputs, variables, outputs) and context.eval() function.\n * Other data (session, current user, etc.) are provided by expression evaluator scope providers.\n * \n * Scope includes:\n * - inputs: Workflow input values (accessible as inputs.propertyName)\n * - variables: Workflow state variables (accessible as variables.propertyName or vars.propertyName)\n * - outputs: Previous activity outputs (accessible as outputs.activityId)\n * - context.eval(path): Function to access nested properties from workflow data\n * \n * Expressions can use:\n * - {{inputs.userName}} - Direct access to workflow input\n * - {{variables.someVar}} or {{vars.someVar}} - Direct access to workflow variable\n * - {{outputs.activityId.property}} - Direct access to previous activity output\n * - {{context.eval(\"inputs.userName\")}} - Access via context.eval (supports nested paths)\n * - {{context.eval(\"variables.someVar\")}} - Access variables via context.eval\n * - {{context.eval(\"outputs.activityId.property\")}} - Access outputs via context.eval\n * - {{session.currentUser().name}} - Access current user via expression evaluator scope providers\n * \n * The context.eval() function provides a unified way to access all workflow data,\n * similar to how entity-detail-list uses context.eval() to access parent data.\n * \n * @param context - Workflow expression context containing inputs, variables, and outputs\n * @returns Expression evaluator scope with workflow data and context.eval() function\n */\n buildScope(context: WorkflowExpressionContext): AXPExpressionEvaluatorScope {\n // Normalize inputs so flat dot-notation keys (e.g. metadata.questionnaire.id from forms) become nested for expressions\n const inputs = this.normalizeInputs(context.inputs || {});\n\n // Build merged workflow data object for context.eval()\n // This allows expressions like: context.eval(\"inputs.userName\") or context.eval(\"variables.count\")\n const workflowData = {\n inputs,\n variables: context.variables || {},\n vars: context.variables || {}, // Alias for convenience\n outputs: context.outputs || {},\n };\n\n // Build scope object with workflow-specific data and context.eval()\n // Note: AXPExpressionEvaluatorScope type expects { [namespace]: { [name]: Function } }\n // but evaluate() method actually accepts flat objects with values too\n // We'll use 'any' to allow both values and functions\n const scope: any = {\n // Direct access to workflow data\n inputs: workflowData.inputs,\n variables: workflowData.variables,\n vars: workflowData.vars,\n outputs: workflowData.outputs,\n \n // Context object with eval function (similar to entity-detail-list pattern)\n context: {\n eval: (path: string) => {\n // Use lodash get to access nested properties\n // Supports paths like: \"inputs.userName\", \"variables.count\", \"outputs.activityId.property\"\n return get(workflowData, path);\n },\n },\n };\n\n return scope as AXPExpressionEvaluatorScope;\n }\n\n /**\n * Build expression evaluation scope from workflow instance state.\n * \n * Convenience method that extracts data from AXPWorkflowInstanceState.\n * \n * @param state - Workflow instance state\n * @param activityOutputs - Map of activity outputs (activityId -> output)\n * @returns Expression evaluator scope with workflow data and context.eval() function\n */\n buildScopeFromState(\n state: AXPWorkflowInstanceState,\n activityOutputs?: Map<string, any> | Record<string, any>\n ): AXPExpressionEvaluatorScope {\n // Convert activity outputs to record format\n const outputs: Record<string, any> = {};\n if (activityOutputs) {\n if (activityOutputs instanceof Map) {\n activityOutputs.forEach((output, activityId) => {\n outputs[activityId] = output;\n });\n } else {\n Object.assign(outputs, activityOutputs);\n }\n }\n\n // Convenience alias for the last activity output (if available).\n // This allows expressions like: {{outputs.last.someField}}\n if (outputs['last'] === undefined && state.lastActivityOutput !== undefined) {\n outputs['last'] = state.lastActivityOutput;\n }\n\n return this.buildScope({\n inputs: this.normalizeInputs((state.input || {}) as Record<string, any>),\n variables: state.variables || {},\n outputs: outputs,\n });\n }\n\n //#endregion\n}\n\n","import { Injectable, inject } from '@angular/core';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPWorkflowTask, AXPWorkflowInstanceState } from './workflow-runtime.types';\nimport { WorkflowExpressionScopeService } from './workflow-expression-scope.service';\n\n//#region ---- Constants ----\n\n/**\n * Activity types handled internally by the workflow engine (e.g. mock backend).\n * When such an activity is not registered as Command on the client, we skip execution\n * without warning — the engine will run it when executing the workflow.\n */\nconst ENGINE_BUILTIN_ACTIVITY_TYPES = new Set<string>([\n 'workflow-activity:set-variable',\n 'workflow-activity:http-request',\n]);\n\n//#endregion\n\n//#region ---- Types & Interfaces ----\n\n/**\n * Result of executing a workflow activity.\n */\nexport interface ActivityExecutionResult {\n /**\n * Activity execution output.\n */\n output: any;\n\n /**\n * Activity execution outcome (e.g., 'Done', 'Confirmed', 'Cancelled', 'Failed').\n */\n outcome: string;\n}\n\n//#endregion\n\n/**\n * Activity Executor Service\n * \n * Service for executing workflow activities via CommandBus.\n * Automatically evaluates expressions in activity inputs before execution.\n * \n * @example\n * ```typescript\n * const executor = inject(ActivityExecutor);\n * \n * // Execute activity with task and workflow state (expressions will be evaluated)\n * const result = await executor.execute(task, workflowState, activityOutputs);\n * ```\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActivityExecutor {\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly expressionEvaluator = inject(AXPExpressionEvaluatorService);\n private readonly expressionScopeService = inject(WorkflowExpressionScopeService);\n\n //#endregion\n\n //#region ---- Public Methods ----\n\n /**\n * Execute a workflow activity with expression evaluation.\n * \n * Evaluates expressions in activity inputs using workflow state,\n * then executes the activity via CommandBus.\n * \n * @param task - Workflow task containing activity information\n * @param workflowState - Current workflow instance state (for expression evaluation)\n * @param activityOutputs - Map of previous activity outputs (for expression evaluation)\n * @returns Execution result with output and outcome\n */\n async execute(\n task: AXPWorkflowTask,\n workflowState?: AXPWorkflowInstanceState,\n activityOutputs?: Map<string, any> | Record<string, any>\n ): Promise<ActivityExecutionResult> {\n \n try {\n const activityName = task.activityType;\n\n // Evaluate inputs if workflow state is provided\n let evaluatedInputs = task.input || {};\n if (workflowState) {\n // Prefer explicit outputs, fallback to outputs stored in state\n const outputsForScope =\n activityOutputs ??\n (workflowState.activityOutputs as Record<string, any> | undefined) ??\n undefined;\n\n // Build expression scope from workflow state\n const scope = this.expressionScopeService.buildScopeFromState(workflowState, outputsForScope);\n \n // Evaluate all inputs recursively (handles nested objects and arrays)\n evaluatedInputs = await this.expressionEvaluator.evaluate(task.input || {}, scope);\n }\n\n // Check if command exists\n const commandExists = this.commandService.exists(activityName);\n\n if (!commandExists) {\n if (!ENGINE_BUILTIN_ACTIVITY_TYPES.has(activityName)) {\n console.warn(\n `[ActivityExecutor] ⚠️ Activity '${activityName}' is not registered as Command. ` +\n `Skipping execution.`\n );\n }\n return {\n output: null,\n outcome: 'Done'\n };\n }\n\n // Flatten properties if nested (workflow-studio format)\n let commandInput = evaluatedInputs;\n if (commandInput['properties'] && typeof commandInput['properties'] === 'object') {\n // Flatten: {properties: {text: \"...\"}} -> {text: \"...\"}\n commandInput = { ...commandInput['properties'] };\n }\n\n // Execute activity via CommandBus\n // Activities (AXPActivity) return {output, outcome}; legacy may return {output, outcomes}\n const result = await this.commandService.execute<Record<string, any>, {\n output?: any;\n outcome?: string;\n outcomes?: Record<string, any>;\n }>(activityName, commandInput);\n \n if (!result) {\n return {\n output: null,\n outcome: 'Failed',\n };\n }\n\n if (!result.success) {\n return {\n output: {\n error: result.message?.text,\n },\n outcome: 'Failed',\n };\n }\n\n const commandResult = result.data as any;\n\n // Prefer unified outcome in result.metadata; fall back to legacy data.outcome/outcomes.\n const metadataOutcome = (result as any)?.metadata?.['outcome'];\n let outcome = 'Done';\n if (typeof metadataOutcome === 'string' && metadataOutcome.length > 0) {\n outcome = metadataOutcome;\n } else if (typeof commandResult?.outcome === 'string' && commandResult.outcome.length > 0) {\n outcome = commandResult.outcome;\n } else {\n const outcomes = (commandResult?.outcomes ?? {}) as Record<string, any>;\n if (outcomes && typeof outcomes === 'object' && Object.keys(outcomes).length > 0) {\n outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';\n }\n }\n\n // Prefer output wrapper when present; otherwise treat data itself as output.\n const output =\n commandResult && typeof commandResult === 'object' && 'output' in commandResult\n ? commandResult.output\n : commandResult;\n\n return {\n output: output ?? null,\n outcome,\n };\n } catch (error: any) {\n console.error(`[ActivityExecutor] ❌ Error evaluating expressions or executing activity:`, error);\n return {\n output: { error: error.message || 'Unknown error' },\n outcome: 'Failed'\n };\n }\n }\n\n //#endregion\n}\n\n","import { Injectable, inject } from '@angular/core';\nimport { ActivityExecutionResult, ActivityExecutor } from './activity-executor.service';\nimport { AXP_WORKFLOW_ENGINE } from './workflow-engine';\nimport { AXPWorkflowInstanceState, AXPWorkflowTask } from './workflow-runtime.types';\n\n//#region ---- Types & Interfaces ----\n\n/**\n * Result of starting a workflow.\n */\nexport interface WorkflowStartResult {\n /**\n * Whether the operation succeeded.\n */\n success: boolean;\n\n /**\n * Workflow instance ID.\n */\n instanceId?: string;\n\n /**\n * Initial workflow state.\n */\n state?: AXPWorkflowInstanceState;\n\n /**\n * First task to execute (if any).\n */\n nextTask?: AXPWorkflowTask | null;\n\n /**\n * Workflow output (if completed immediately).\n */\n output?: any;\n\n /**\n * Error message (if failed).\n */\n error?: string;\n}\n\n/**\n * Result of completing a task.\n */\nexport interface WorkflowCompleteResult {\n /**\n * Whether the operation succeeded.\n */\n success: boolean;\n\n /**\n * Workflow instance ID.\n */\n instanceId: string;\n\n /**\n * Updated workflow state.\n */\n state?: AXPWorkflowInstanceState;\n\n /**\n * Next task to execute (if any).\n */\n nextTask?: AXPWorkflowTask | null;\n\n /**\n * Workflow output (if completed).\n */\n output?: any;\n\n /**\n * Error message (if failed).\n */\n error?: string;\n}\n\n/**\n * Result of resuming a workflow.\n */\nexport interface WorkflowResumeResult {\n /**\n * Whether the operation succeeded.\n */\n success: boolean;\n\n /**\n * Workflow instance ID.\n */\n instanceId: string;\n\n /**\n * Updated workflow state.\n */\n state?: AXPWorkflowInstanceState;\n\n /**\n * Next task to execute (if any).\n */\n nextTask?: AXPWorkflowTask | null;\n\n /**\n * Workflow output (if completed).\n */\n output?: any;\n\n /**\n * Error message (if failed).\n */\n error?: string;\n}\n\n//#endregion\n\n/**\n * Workflow Manager - Facade for workflow lifecycle orchestration.\n *\n * This service is the ONLY interface the frontend uses to interact with workflows.\n * It follows Clean Architecture principles and does NOT contain execution or business logic.\n *\n * Responsibilities:\n * - Orchestrate workflow lifecycle (start, execute, complete, resume)\n * - Delegate execution to ActivityExecutor\n * - Cache workflow state in memory\n * - Expose a stable API for UI\n *\n * Rules:\n * - No HTTP calls (delegates to AXPWorkflowEngine)\n * - No CommandBus / Command execution (delegates to ActivityExecutor)\n * - No workflow branching logic (backend decides)\n * - No business validation (backend validates)\n * - No backend assumptions (uses abstract runtime service)\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowManager {\n //#region ---- Services & Dependencies ----\n\n private readonly workflowEngine = inject(AXP_WORKFLOW_ENGINE);\n private readonly activityExecutor = inject(ActivityExecutor); \n\n //#endregion\n\n //#region ---- State Cache ----\n\n /**\n * Cache workflow states in memory for quick access.\n * Key: instanceId\n * Value: AXPWorkflowInstanceState\n */\n private stateCache = new Map<string, AXPWorkflowInstanceState>();\n\n /**\n * Cache TTL in milliseconds (5 minutes).\n */\n private readonly CACHE_TTL = 5 * 60 * 1000;\n\n //#endregion\n\n //#region ---- Public Methods ----\n\n /**\n * Execute frontend activities interactively until reaching workflow-activity:human-task or completion.\n *\n * Interactive = show form/popup immediately (user sees and acts). Only workflow-activity:human-task\n * is not interactive (goes to task board). Other frontend activities (show-layout-popup, show-toast, etc.)\n * even with taskType human-task in definition are executed here.\n *\n * @param instanceId - Workflow instance ID\n * @param task - Current task to execute\n * @param state - Current workflow state\n * @param lastActivityOutput - Last activity output (for expression evaluation)\n * @returns Final result with nextTask (if workflow-activity:human-task) or completion status\n */\n private async executeInteractiveFlow(\n instanceId: string,\n task: AXPWorkflowTask,\n state: AXPWorkflowInstanceState,\n activityOutputs?: Record<string, any>\n ): Promise<{ nextTask: AXPWorkflowTask | null; state: AXPWorkflowInstanceState; output?: any }> {\n let currentTask: AXPWorkflowTask | null = task;\n let currentState = state;\n let currentActivityOutputs: Record<string, any> = {\n ...(currentState.activityOutputs || {}),\n ...(activityOutputs || {}),\n };\n const maxIterations = 100; // Prevent infinite loops\n let iterationCount = 0;\n\n while (currentTask && iterationCount < maxIterations) {\n iterationCount++;\n\n // Interactive = frontend executionMode and NOT workflow-activity:human-task (that one goes to task board)\n const isInteractive =\n (currentTask.executionMode === 'frontend' || currentTask.executionMode === 'both') &&\n currentTask.activityType !== 'workflow-activity:human-task';\n\n if (isInteractive) {\n // Execute frontend activity\n const execResult = await this.activityExecutor.execute(\n currentTask,\n currentState,\n currentActivityOutputs\n );\n\n // Track outputs locally (backend should also persist and return them)\n currentActivityOutputs = {\n ...currentActivityOutputs,\n [currentTask.activityId]: execResult.output,\n };\n\n // Send result to backend\n const completeResponse = await this.workflowEngine.frontActivtyComplete({\n instanceId,\n activityNode: currentTask.activityId,\n output: execResult.output || {},\n outcome: execResult.outcome,\n });\n\n // Update state cache\n if (completeResponse.state) {\n const normalizedState = { ...completeResponse.state };\n if (normalizedState.lastUpdated && !(normalizedState.lastUpdated instanceof Date)) {\n normalizedState.lastUpdated = new Date(normalizedState.lastUpdated);\n }\n currentState = normalizedState;\n // Prefer outputs returned by backend; fallback to local cache\n currentActivityOutputs = {\n ...currentActivityOutputs,\n ...(normalizedState.activityOutputs || {}),\n };\n this.stateCache.set(instanceId, normalizedState);\n }\n\n // Backend decides: if no nextTask, workflow is completed\n if (!completeResponse.nextTask) {\n return {\n nextTask: null,\n state: currentState,\n output: completeResponse.output,\n };\n }\n\n // Backend decides: if nextTask is workflow-activity:human-task or not frontend, return it (task board or done)\n const nextInteractive =\n (completeResponse.nextTask.executionMode === 'frontend' || completeResponse.nextTask.executionMode === 'both') &&\n completeResponse.nextTask.activityType !== 'workflow-activity:human-task';\n if (!nextInteractive) {\n return {\n nextTask: completeResponse.nextTask,\n state: currentState,\n };\n }\n\n // Continue with next interactive frontend task\n currentTask = completeResponse.nextTask;\n } else {\n // Not interactive (e.g. workflow-activity:human-task) - return as-is for task board\n return {\n nextTask: currentTask,\n state: currentState,\n };\n }\n }\n\n // Max iterations reached\n if (iterationCount >= maxIterations) {\n console.warn(`[AXPWorkflowManager] ⚠️ Maximum iterations (${maxIterations}) reached`);\n }\n\n return {\n nextTask: currentTask,\n state: currentState,\n };\n }\n\n /**\n * Start a new workflow instance.\n *\n * Creates a new workflow instance in backend and returns instance ID.\n * Backend decides what to do: returns pendingTask or indicates completion.\n *\n * @param workflowId - Workflow ID to start\n * @param input - Initial input data (optional)\n * @returns Start result with instanceId, state, and nextTask\n *\n * @example\n * ```typescript\n * const result = await workflowManager.start('my-workflow', { userId: '123' });\n *\n * if (result.success && result.nextTask) {\n * // Execute task if frontend\n * if (result.nextTask.executionMode === 'frontend') {\n * const execResult = await workflowManager.execute(result.nextTask);\n * await workflowManager.complete(result.instanceId!, result.nextTask, execResult.outcome, execResult.output);\n * }\n * }\n * ```\n */\n async start(workflowId: string, input: Record<string, any> = {}): Promise<WorkflowStartResult> {\n try {\n const response = await this.workflowEngine.start({\n workflowId,\n input,\n });\n\n // Cache state (normalize Date)\n let startNormalizedState = { ...response.state };\n if (startNormalizedState.lastUpdated && !(startNormalizedState.lastUpdated instanceof Date)) {\n startNormalizedState.lastUpdated = new Date(startNormalizedState.lastUpdated);\n }\n this.stateCache.set(response.instanceId, startNormalizedState);\n\n // 🎯 Interactive flow: Execute frontend activities that are NOT workflow-activity:human-task (those go to task board)\n let finalNextTask = response.pendingTask || null;\n let finalOutput = startNormalizedState.output;\n\n const pendingTask = response.pendingTask;\n if (\n pendingTask &&\n (pendingTask.executionMode === 'frontend' || pendingTask.executionMode === 'both') &&\n pendingTask.activityType !== 'workflow-activity:human-task'\n ) {\n const interactiveResult = await this.executeInteractiveFlow(\n response.instanceId,\n pendingTask,\n startNormalizedState,\n response.activityOutputs || response.state.activityOutputs\n );\n\n finalNextTask = interactiveResult.nextTask;\n startNormalizedState = interactiveResult.state;\n if (interactiveResult.output !== undefined) {\n finalOutput = interactiveResult.output;\n }\n\n // Update cache with final state\n this.stateCache.set(response.instanceId, startNormalizedState);\n }\n // If backend returned null or non-executable task, return it as-is\n // Backend already decided workflow status (suspended, completed, etc.)\n\n return {\n success: true,\n instanceId: response.instanceId,\n state: startNormalizedState,\n nextTask: finalNextTask,\n output: finalOutput,\n };\n } catch (error: any) {\n console.error('[AXPWorkflowManager] ❌ Error starting workflow:', error);\n return {\n success: false,\n error: error.message || 'Failed to start workflow',\n };\n }\n }\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 instanceId, stepId, outcome, and optional userInput.\n *\n * @param instanceId - Workflow instance 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 * @param taskToken - Secure task token (required for secure resumption)\n * @returns Resume result with next task (if any)\n */\n async resume(\n instanceId: string,\n stepId: string,\n outcome: string,\n userInput?: any,\n taskToken?: string,\n ): Promise<WorkflowResumeResult> {\n try {\n // Ensure taskToken is provided for secure resumption\n if (!taskToken) {\n throw new Error('Missing taskToken for resume operation');\n }\n\n // Backend handles everything: checks outcomeConnections and determines nextStep\n const response = await this.workflowEngine.resume({\n instanceId,\n stepId,\n taskToken,\n outcome,\n userInput,\n });\n\n // Update cache with state from backend\n let normalizedState = response.state ? { ...response.state } : undefined;\n if (normalizedState && normalizedState.lastUpdated && !(normalizedState.lastUpdated instanceof Date)) {\n normalizedState.lastUpdated = new Date(normalizedState.lastUpdated);\n }\n \n if (normalizedState) {\n this.stateCache.set(instanceId, normalizedState);\n }\n\n // 🎯 Interactive flow: Execute frontend activities that are NOT workflow-activity:human-task (those go to task board)\n let finalNextTask = response.nextTask || null;\n let finalOutput = response.output;\n\n const nextTask = response.nextTask;\n if (\n nextTask &&\n (nextTask.executionMode === 'frontend' || nextTask.executionMode === 'both') &&\n nextTask.activityType !== 'workflow-activity:human-task'\n ) {\n const interactiveResult = await this.executeInteractiveFlow(\n instanceId,\n nextTask,\n normalizedState!,\n normalizedState?.activityOutputs\n );\n\n finalNextTask = interactiveResult.nextTask;\n normalizedState = interactiveResult.state;\n if (interactiveResult.output !== undefined) {\n finalOutput = interactiveResult.output;\n }\n\n // Update cache with final state\n this.stateCache.set(instanceId, normalizedState);\n }\n // If backend returned null or non-executable task, return it as-is\n // Backend already decided workflow status (suspended, completed, etc.)\n\n return {\n success: true,\n instanceId,\n state: normalizedState || response.state,\n nextTask: finalNextTask,\n output: finalOutput,\n };\n } catch (error: any) {\n console.error('[AXPWorkflowManager] ❌ Error resuming workflow:', error);\n return {\n success: false,\n instanceId,\n error: error.message || 'Failed to resume workflow',\n };\n }\n }\n\n /**\n * Get workflow instance state.\n *\n * Retrieves state from cache (if valid) or from backend.\n *\n * @param instanceId - Workflow instance ID\n * @returns Workflow instance state or null if not found\n */\n async getState(instanceId: string): Promise<AXPWorkflowInstanceState | null> {\n // Check cache first\n const cached = this.stateCache.get(instanceId);\n if (cached) {\n // Normalize lastUpdated to Date (for cache safety)\n const normalizedCached = { ...cached };\n if (normalizedCached.lastUpdated && !(normalizedCached.lastUpdated instanceof Date)) {\n normalizedCached.lastUpdated = new Date(normalizedCached.lastUpdated);\n }\n\n // Validate cache age\n const cacheAge = Date.now() - normalizedCached.lastUpdated.getTime();\n if (cacheAge < this.CACHE_TTL) {\n return normalizedCached;\n }\n }\n\n // Fetch from backend\n try {\n const state = await this.workflowEngine.getState({\n instanceId,\n });\n\n // Normalize lastUpdated to Date (for cache safety)\n const normalizedState = { ...state };\n if (normalizedState.lastUpdated && !(normalizedState.lastUpdated instanceof Date)) {\n normalizedState.lastUpdated = new Date(normalizedState.lastUpdated);\n }\n\n // Update cache\n this.stateCache.set(instanceId, normalizedState);\n\n return normalizedState;\n } catch (error: any) {\n console.error('[AXPWorkflowManager] ❌ Error getting workflow state:', error);\n return null;\n }\n }\n\n //#endregion\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPCategoryEntity } from '@acorex/platform/core';\nimport { AXPWorkflowDefinition } from '../workflow-definition.types';\n\n/**\n * Workflow Category - Extends AXPCategoryEntity for consistency and performance\n * \n * Inherited properties from AXPCategoryEntity:\n * - id: string - Unique identifier\n * - title: string - Display name\n * - description?: string - Category description\n * - parentId?: string - Parent category ID\n * - childrenCount: number - Direct child categories count (enables lazy loading)\n * - itemsCount?: number - Direct workflows count\n * - totalChildrenCount?: number - Total nested categories (optional, for analytics)\n * - totalItemsCount?: number - Total workflows in tree (optional, for analytics)\n */\nexport interface AXPWorkflowCategory extends AXPCategoryEntity {\n // No additional properties needed - all inherited from AXPCategoryEntity\n // Use: childrenCount instead of hasChild\n // Use: itemsCount instead of hasWorkflow\n}\n\nexport type AXPWorkflowProviderToken =\n | AXPWorkflowProvider\n | Promise<AXPWorkflowProvider>;\n\nexport const AXP_WORKFLOW_PROVIDER = new InjectionToken<AXPWorkflowProviderToken[]>('AXP_WORKFLOW_PROVIDER', {\n factory: () => [],\n});\n\nexport interface AXPWorkflowProvider {\n /**\n * Get list of workflow definitions for a category.\n * @param categoryId - Category ID to filter workflows\n * @returns Promise of workflow definition array\n */\n getList(categoryId: string): Promise<AXPWorkflowDefinition[]>;\n \n /**\n * Get full workflow definition by name (unique identifier).\n * Used by workflow engines for execution and UI for metadata.\n * @param name - Workflow name (unique identifier)\n * @returns Promise of full workflow definition or null if not found\n */\n getByName(name: string): Promise<AXPWorkflowDefinition | null>;\n}\n\nexport type AXPWorkflowCategoryProviderToken =\n | AXPWorkflowCategoryProvider\n | Promise<AXPWorkflowCategoryProvider>;\n\nexport const AXP_WORKFLOW_CATEGORY_PROVIDER = new InjectionToken<AXPWorkflowCategoryProviderToken[]>('AXP_WORKFLOW_CATEGORY_PROVIDER', {\n factory: () => [],\n});\n\nexport interface AXPWorkflowCategoryProvider {\n getList(parentId?: string): Promise<AXPWorkflowCategory[]>;\n getById(id: string): Promise<AXPWorkflowCategory | undefined>;\n}\n\n","import { Injectable, inject } from '@angular/core';\nimport { AXPWorkflowEngine } from './workflow-engine';\nimport {\n AXPStartWorkflowRequest,\n AXPStartWorkflowResponse,\n AXPResumeWorkflowRequest,\n AXPResumeWorkflowResponse,\n AXPGetWorkflowStateRequest,\n AXPWorkflowInstanceState,\n AXPWorkflowTask,\n AXPFrontActivityCompleteRequest,\n AXPFrontActivityCompleteResponse,\n} from './workflow-runtime.types';\nimport {\n AXPWorkflowDefinition,\n AXPWorkflowGraph,\n AXPWorkflowActivityInstance,\n AXPConnection,\n} from '../workflow-definition.types';\nimport {\n AXP_WORKFLOW_PROVIDER,\n AXPWorkflowProvider,\n} from '../workflow/workflow-definition.provider';\nimport { AXPActivityDefinitionService } from '../activity/activity-definition.service';\nimport { AXPDataGenerator } from '@acorex/platform/core';\n\n//#region ---- Types & Interfaces ----\n\n/**\n * Internal workflow execution state.\n */\ninterface LocalWorkflowState {\n instanceId: string;\n workflowId: string;\n definition: AXPWorkflowDefinition;\n state: AXPWorkflowInstanceState;\n currentActivityId?: string;\n completedActivities: Set<string>;\n activityResults: Map<string, { output: any; outcome?: string }>;\n}\n\n//#endregion\n\n/**\n * Local engine implementation that manages workflow progression and state.\n * \n * This engine:\n * - Returns frontend/both activities as pendingTask (does NOT execute them)\n * - Skips backend activities (does not error, continues execution)\n * - Maintains workflow state in memory\n * - Does not require backend API calls\n * \n * Execution of frontend tasks is handled by AXPWorkflowManager via ActivityExecutor.\n * This engine only manages workflow progression and state storage.\n * \n * This is the DEFAULT engine provider. Applications can override it with\n * an API-based engine implementation.\n */\n@Injectable()\nexport class AXPWorkflowLocalEngine implements AXPWorkflowEngine {\n //#region ---- Services & Dependencies ----\n\n private readonly activityDefinitionService = inject(AXPActivityDefinitionService);\n private readonly workflowProviders = inject(AXP_WORKFLOW_PROVIDER, { optional: true }) || [];\n\n //#endregion\n\n //#region ---- Instance Storage ----\n\n /**\n * In-memory storage for workflow instances.\n * Key: instanceId\n * Value: LocalWorkflowState\n */\n private instances = new Map<string, LocalWorkflowState>();\n\n /**\n * Task token storage for secure resume operations.\n * Key: taskToken\n * Value: { instanceId, activityId }\n */\n private taskTokens = new Map<string, { instanceId: string; activityId: string }>();\n\n //#endregion\n\n //#region ---- Public Methods (AXPWorkflowEngine) ----\n\n /**\n * Start a new workflow instance.\n * \n * Creates an in-memory workflow instance and progresses it.\n * Frontend/both activities are returned as pendingTask for external execution.\n * Backend activities are skipped.\n */\n async start(request: AXPStartWorkflowRequest): Promise<AXPStartWorkflowResponse> {\n console.log(`[WorkflowLocalEngine] 🚀 Starting workflow: ${request.workflowId}`, request);\n \n // Generate instance ID\n const instanceId = AXPDataGenerator.uuid();\n const now = new Date();\n\n // Load workflow definition\n console.log(`[WorkflowLocalEngine] 📥 Loading workflow definition: ${request.workflowId}`);\n const definition = await this.getDefinition(request.workflowId);\n if (!definition) {\n console.error(`[WorkflowLocalEngine] ❌ Workflow definition not found: ${request.workflowId}`);\n throw new Error(`Workflow definition not found: ${request.workflowId}`);\n }\n\n console.log(`[WorkflowLocalEngine] ✅ Definition loaded:`, {\n name: definition.name,\n activitiesCount: definition.graph?.activities?.length || 0,\n connectionsCount: definition.graph?.connections?.length || 0,\n });\n\n // Initialize workflow state\n const state: AXPWorkflowInstanceState = {\n instanceId,\n workflowId: request.workflowId,\n status: 'running',\n variables: {},\n activityOutputs: {},\n lastActivityOutput: undefined,\n input: request.input || {},\n output: undefined,\n lastUpdated: now,\n };\n\n // Create local state\n const localState: LocalWorkflowState = {\n instanceId,\n workflowId: request.workflowId,\n definition,\n state,\n completedActivities: new Set(),\n activityResults: new Map(),\n };\n\n // Store instance\n this.instances.set(instanceId, localState);\n\n // Execute workflow steps\n console.log(`[WorkflowLocalEngine] ⚙️ Executing workflow steps...`);\n const pendingTask = await this.executeWorkflowSteps(localState);\n\n // Update state\n localState.state.lastUpdated = new Date();\n\n console.log(`[WorkflowLocalEngine] ✅ Workflow started:`, {\n instanceId,\n status: localState.state.status,\n hasPendingTask: !!pendingTask,\n pendingTaskType: pendingTask?.activityType,\n });\n\n return {\n instanceId,\n state: localState.state,\n pendingTask: pendingTask || null,\n activityOutputs: localState.state.activityOutputs,\n lastActivityOutput: localState.state.lastActivityOutput,\n };\n }\n\n /**\n * Resume a suspended workflow instance.\n * \n * Validates task token, applies externally executed result,\n * and continues progressing workflow steps.\n */\n async resume(request: AXPResumeWorkflowRequest): Promise<AXPResumeWorkflowResponse> {\n // Validate task token\n const tokenInfo = this.taskTokens.get(request.taskToken);\n if (!tokenInfo || tokenInfo.instanceId !== request.instanceId || tokenInfo.activityId !== request.stepId) {\n throw new Error('Invalid task token');\n }\n\n // Get instance\n const localState = this.instances.get(request.instanceId);\n if (!localState) {\n throw new Error(`Workflow instance not found: ${request.instanceId}`);\n }\n\n // Store activity result (from external execution)\n const outcome = request.outcome ?? 'Done';\n localState.activityResults.set(request.stepId, {\n output: request.userInput || {},\n outcome,\n });\n localState.completedActivities.add(request.stepId);\n\n // Store activity output for expression evaluation\n localState.state.activityOutputs = {\n ...(localState.state.activityOutputs || {}),\n [request.stepId]: request.userInput || {},\n };\n localState.state.lastActivityOutput = request.userInput || {};\n\n // Merge output/userInput into state variables\n if (request.userInput) {\n localState.state.variables = {\n ...localState.state.variables,\n ...(request.userInput || {}),\n };\n }\n\n // Mark activity as completed and continue progression\n // Continue progressing workflow steps (skipping backend activities)\n const nextTask = await this.executeWorkflowSteps(localState);\n\n // Update state\n localState.state.lastUpdated = new Date();\n\n // Determine final status\n if (!nextTask && localState.state.status === 'running') {\n localState.state.status = 'completed';\n localState.state.output = localState.state.variables;\n }\n\n return {\n output: request.userInput || {},\n outcomes: { [outcome]: true },\n state: localState.state,\n nextTask: nextTask || null,\n };\n }\n\n /**\n * Get current workflow instance state.\n */\n async getState(request: AXPGetWorkflowStateRequest): Promise<AXPWorkflowInstanceState> {\n const localState = this.instances.get(request.instanceId);\n if (!localState) {\n throw new Error(`Workflow instance not found: ${request.instanceId}`);\n }\n\n // Normalize lastUpdated to Date (for cache safety)\n const state = { ...localState.state };\n if (state.lastUpdated && !(state.lastUpdated instanceof Date)) {\n state.lastUpdated = new Date(state.lastUpdated);\n }\n\n return state;\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n /**\n * Get workflow definition from available providers.\n */\n private async getDefinition(workflowId: string): Promise<AXPWorkflowDefinition | null> {\n // Try all providers in order\n const resolvedProviders = await Promise.allSettled(this.workflowProviders);\n for (const p of resolvedProviders) {\n if (p.status === 'fulfilled' && p.value) {\n const provider = p.value;\n // Check if provider has getByName method\n if (typeof provider.getByName === 'function') {\n try {\n const definition = await provider.getByName(workflowId);\n if (definition) {\n return definition;\n }\n } catch {\n // Continue on error - try other providers\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Progress workflow steps starting from the current position.\n * \n * For frontend/both activities: returns task immediately (suspends workflow).\n * For backend activities: skips and continues.\n * \n * Returns the next pending task (if frontend activity found) or null (if completed).\n */\n private async executeWorkflowSteps(localState: LocalWorkflowState): Promise<AXPWorkflowTask | null> {\n const graph = localState.definition.graph;\n const activities = graph.activities || [];\n const connections = graph.connections || [];\n\n // Build activity map\n const activityMap = new Map<string, AXPWorkflowActivityInstance>();\n activities.forEach(activity => {\n activityMap.set(activity.id, activity);\n });\n\n // Build connection graph\n const outgoingConnections = new Map<string, AXPConnection[]>();\n const incomingConnections = new Map<string, AXPConnection[]>();\n\n connections.forEach(conn => {\n const sourceId = conn.source.activtyName;\n const targetId = conn.target.activtyName;\n\n if (!outgoingConnections.has(sourceId)) {\n outgoingConnections.set(sourceId, []);\n }\n outgoingConnections.get(sourceId)!.push(conn);\n\n if (!incomingConnections.has(targetId)) {\n incomingConnections.set(targetId, []);\n }\n incomingConnections.get(targetId)!.push(conn);\n });\n\n // Find starting activity (use startActivityId or no incoming connections, or first activity)\n let currentActivityId = localState.currentActivityId;\n if (!currentActivityId) {\n // Use startActivityId if available\n if (graph.startActivityId) {\n currentActivityId = graph.startActivityId;\n } else {\n // Find root activity (no incoming connections)\n for (const activity of activities) {\n if (!incomingConnections.has(activity.id)) {\n currentActivityId = activity.id;\n break;\n }\n }\n // If no root found, use first activity\n if (!currentActivityId && activities.length > 0) {\n currentActivityId = activities[0].id;\n }\n }\n }\n\n // Execute workflow steps\n while (currentActivityId) {\n const activity = activityMap.get(currentActivityId);\n if (!activity) {\n break;\n }\n\n // Skip if already completed\n if (localState.completedActivities.has(currentActivityId)) {\n // Move to next activity\n const nextId = this.getNextActivityId(\n currentActivityId,\n outgoingConnections,\n localState.activityResults\n );\n currentActivityId = nextId ?? undefined;\n continue;\n }\n\n // Get activity definition to retrieve executionMode and title\n console.log(`[WorkflowLocalEngine] 🔍 Getting activity definition for: ${activity.name}`);\n const activityDefinition = await this.activityDefinitionService.getActivityByName(activity.name);\n console.log(`[WorkflowLocalEngine] 📋 Activity definition:`, {\n name: activityDefinition?.name,\n type: activityDefinition?.type,\n executionMode: activityDefinition?.executionMode,\n title: activityDefinition?.title,\n found: !!activityDefinition,\n });\n \n const executionMode = activityDefinition?.executionMode || 'frontend';\n const activityTitle = activityDefinition?.title;\n\n // Handle backend activities: skip\n if (executionMode === 'backend') {\n console.log(\n `[WorkflowLocalEngine] ⏭️ Skipping backend activity: ${activity.name} (${activity.id})`\n );\n localState.completedActivities.add(currentActivityId);\n localState.activityResults.set(currentActivityId, {\n output: null,\n outcome: 'Done',\n });\n\n // Move to next activity\n const nextId = this.getNextActivityId(\n currentActivityId,\n outgoingConnections,\n localState.activityResults\n );\n currentActivityId = nextId ?? undefined;\n continue;\n }\n\n // Handle frontend/both activities: return as pendingTask (do NOT execute)\n if (executionMode === 'frontend' || executionMode === 'both') {\n // Create task for external execution\n // Note: Expression evaluation will be done by ActivityExecutor\n const task: AXPWorkflowTask = {\n taskToken: AXPDataGenerator.uuid(),\n activityId: activity.id,\n activityType: activity.name,\n activityName: activityTitle || undefined,\n executionMode: executionMode as 'frontend' | 'backend' | 'both',\n input: activity.inputs || {}, // Pass raw inputs - executor will evaluate\n };\n\n // Store task token for secure resume\n this.taskTokens.set(task.taskToken, {\n instanceId: localState.instanceId,\n activityId: activity.id,\n });\n\n // Update state to indicate suspension\n localState.currentActivityId = currentActivityId;\n localState.state.status = 'suspended';\n localState.state.currentStepId = currentActivityId;\n\n // Return task immediately - AXPWorkflowManager will execute it\n return task;\n }\n\n // Move to next activity\n const nextId = this.getNextActivityId(\n currentActivityId,\n outgoingConnections,\n localState.activityResults\n );\n currentActivityId = nextId ?? undefined;\n }\n\n // Workflow completed\n localState.state.status = 'completed';\n localState.state.output = localState.state.variables;\n localState.currentActivityId = undefined;\n\n return null;\n }\n\n /**\n * Get next activity ID based on connections and outcomes.\n */\n private getNextActivityId(\n currentActivityId: string,\n outgoingConnections: Map<string, AXPConnection[]>,\n activityResults: Map<string, { output: any; outcome?: string }>\n ): string | null {\n const connections = outgoingConnections.get(currentActivityId) || [];\n\n if (connections.length === 0) {\n return null; // No outgoing connections - workflow ends\n }\n\n // Get current activity result\n const result = activityResults.get(currentActivityId);\n const outcome = result?.outcome || 'Done';\n\n // Find connection matching outcome\n // Outcome matching is typically done via port name (e.g., \"Done\", \"Failed\")\n for (const conn of connections) {\n const sourcePort = conn.source.port || 'Done';\n if (sourcePort === outcome) {\n return conn.target.activtyName;\n }\n }\n\n // If no matching outcome, use first connection (default path)\n if (connections.length > 0) {\n return connections[0].target.activtyName;\n }\n\n return null;\n }\n\n async frontActivtyComplete(request: AXPFrontActivityCompleteRequest): Promise<AXPFrontActivityCompleteResponse> {\n const localState = this.instances.get(request.instanceId);\n if (!localState) {\n throw new Error(`Workflow instance not found: ${request.instanceId}`);\n }\n\n // Store activity result\n const outcome = request.outcome ?? 'Done';\n localState.activityResults.set(request.activityNode, {\n output: request.output || {},\n outcome,\n });\n localState.completedActivities.add(request.activityNode);\n\n // Store outputs for expression evaluation\n localState.state.activityOutputs = {\n ...(localState.state.activityOutputs || {}),\n [request.activityNode]: request.output || {},\n };\n localState.state.lastActivityOutput = request.output || {};\n\n // Merge output into workflow variables\n localState.state.variables = {\n ...localState.state.variables,\n ...(request.output || {}),\n };\n\n // Continue workflow progression\n const nextTask = await this.executeWorkflowSteps(localState);\n\n // Update state timestamp\n localState.state.lastUpdated = new Date();\n\n // Determine final status\n if (!nextTask && localState.state.status === 'running') {\n localState.state.status = 'completed';\n localState.state.output = localState.state.variables;\n }\n\n return {\n output: request.output || {},\n outcomes: { [outcome]: true },\n nextTask: nextTask || null,\n state: localState.state,\n };\n }\n\n\n //#endregion\n}\n\n","// Workflow Runtime Services\nexport * from './workflow-engine';\nexport * from './workflow-runtime.types';\nexport * from './workflow-manager.service';\nexport * from './workflow-local-engine';\nexport * from './activity-executor.service';\nexport * from './workflow-expression-scope.service';\nexport * from './workflow-engine';","//#region ---- Imports ----\n\nimport { inject, Injectable } from '@angular/core';\nimport { AXPWorkflowCategory } from './workflow-definition.provider';\nimport { AXPWorkflowDefinition } from '../workflow-definition.types';\nimport { AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_PROVIDER } from './workflow-definition.provider';\n\n//#endregion\n\n/**\n * Optimized Workflow Definition Service\n * \n * Manages workflow definitions (metadata) for UI and tooling.\n * Similar to AXPActivityDefinitionService - 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 workflows (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 */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXPWorkflowDefinitionService {\n //#region ---- Providers & Caches ----\n\n private readonly categoryProviders = inject(AXP_WORKFLOW_CATEGORY_PROVIDER, { optional: true }) || [];\n private readonly workflowProviders = inject(AXP_WORKFLOW_PROVIDER, { optional: true }) || [];\n\n //#endregion\n\n //#region ---- Cache Storage ----\n\n /** Cache for categories by id - O(1) lookup */\n private categoriesById = new Map<string, AXPWorkflowCategory>();\n\n /** Cache for categories by parentId - O(1) lookup */\n private categoriesByParentId = new Map<string | undefined, AXPWorkflowCategory[]>();\n\n /** Cache for workflow definitions by categoryId - O(1) lookup */\n private workflowsByCategory = new Map<string, AXPWorkflowDefinition[]>();\n\n /** Cache for individual workflow definitions by name - O(1) lookup */\n private workflowsByName = new Map<string, AXPWorkflowDefinition>();\n\n /** Track which provider index owns each category (by category ID) */\n private categoryOwnership = new Map<string, number>(); // Maps categoryId → provider index\n\n /** Pending API requests to prevent duplicate calls */\n private pendingCategoriesRequests = new Map<string | undefined, Promise<AXPWorkflowCategory[]>>();\n private pendingWorkflowsRequests = new Map<string, Promise<AXPWorkflowDefinition[]>>();\n private pendingWorkflowRequests = new Map<string, Promise<AXPWorkflowDefinition | undefined>>();\n\n //#endregion\n\n //#region ---- Public API: Categories ----\n\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?: string): Promise<AXPWorkflowCategory[]> {\n // ✅ Fast path: Return cached result\n if (this.categoriesByParentId.has(parentId)) {\n return this.categoriesByParentId.get(parentId)!;\n }\n\n // ✅ Prevent duplicate requests: Return pending promise\n if (this.pendingCategoriesRequests.has(parentId)) {\n return this.pendingCategoriesRequests.get(parentId)!;\n }\n\n // ✅ Create single request and cache it\n const requestPromise = this.loadCategoriesFromProviders(parentId);\n this.pendingCategoriesRequests.set(parentId, requestPromise);\n\n return requestPromise;\n }\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: string): Promise<AXPWorkflowCategory | undefined> {\n // ✅ Fast path: O(1) lookup in cache\n if (this.categoriesById.has(categoryId)) {\n return this.categoriesById.get(categoryId);\n }\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\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\n // ✅ Breadth-first search through hierarchy\n return this.searchCategoryInHierarchy(categoryId);\n }\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: string): Promise<AXPWorkflowCategory[]> {\n const path: AXPWorkflowCategory[] = [];\n let currentCategoryId: string | undefined = categoryId;\n\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\n return path;\n }\n\n //#endregion\n\n //#region ---- Public API: Workflow Definitions ----\n\n /**\n * Get workflow 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 workflow definitions\n * - Returns cached result on subsequent calls\n * \n * @param categoryId - Category ID to get workflow definitions from\n * @returns Array of workflow definitions\n */\n async getWorkflowsByCategoryId(categoryId: string): Promise<AXPWorkflowDefinition[]> {\n // ✅ Fast path: Return cached result\n if (this.workflowsByCategory.has(categoryId)) {\n return this.workflowsByCategory.get(categoryId)!;\n }\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 workflows - cache empty array and skip API call\n const emptyArray: AXPWorkflowDefinition[] = [];\n this.workflowsByCategory.set(categoryId, emptyArray);\n return emptyArray;\n }\n\n // ✅ Prevent duplicate requests\n if (this.pendingWorkflowsRequests.has(categoryId)) {\n return this.pendingWorkflowsRequests.get(categoryId)!;\n }\n\n // ✅ Load from providers\n const requestPromise = this.loadWorkflowsFromProviders(categoryId);\n this.pendingWorkflowsRequests.set(categoryId, requestPromise);\n\n return requestPromise;\n }\n\n /**\n * Get single workflow definition by name with O(1) lookup\n * \n * Optimization: Uses Map for instant retrieval\n * \n * @param name - Workflow name (unique identifier)\n * @returns Workflow definition or undefined if not found\n */\n async getWorkflowByName(name: string): Promise<AXPWorkflowDefinition | undefined> {\n // ✅ Fast path: O(1) lookup in cache\n if (this.workflowsByName.has(name)) {\n return this.workflowsByName.get(name);\n }\n\n // ✅ Prevent duplicate requests\n if (this.pendingWorkflowRequests.has(name)) {\n return this.pendingWorkflowRequests.get(name)!;\n }\n\n // ✅ Load from providers\n const requestPromise = this.loadWorkflowFromProviders(name);\n this.pendingWorkflowRequests.set(name, requestPromise);\n\n return requestPromise;\n }\n\n /**\n * Get category ID containing a specific workflow definition\n * \n * Optimization: Searches cache first, loads on-demand if needed\n */\n async getCategoryIdByWorkflowName(workflowName: string): Promise<string | undefined> {\n // ✅ Search in cached workflow definitions\n for (const [categoryId, definitions] of this.workflowsByCategory.entries()) {\n if (definitions.some(def => def.name === workflowName)) {\n return categoryId;\n }\n }\n\n // ✅ Try loading the workflow definition to find its category\n // Note: AXPWorkflowDefinition doesn't have category field\n // Category is managed separately through category providers\n // This method searches through cached categories\n const definition = await this.getWorkflowByName(workflowName);\n if (definition) {\n // Search through all categories to find which one contains this workflow\n const categories = await this.getCategories();\n for (const category of categories) {\n const workflows = await this.getWorkflowsByCategoryId(category.id);\n if (workflows.some(w => w.name === workflowName)) {\n return category.id;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * Get category path for a workflow\n */\n async getCategoriesPathByWorkflowName(workflowName: string): Promise<AXPWorkflowCategory[]> {\n const categoryId = await this.getCategoryIdByWorkflowName(workflowName);\n if (!categoryId) {\n throw new Error(`Workflow '${workflowName}' not found in any category`);\n }\n return this.getCategoriesPathById(categoryId);\n }\n\n //#endregion\n\n //#region ---- Private: Data Loading ----\n\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 private async loadCategoriesFromProviders(parentId?: string): Promise<AXPWorkflowCategory[]> {\n try {\n const resolvedProviders = await Promise.allSettled(this.categoryProviders);\n const categories: AXPWorkflowCategory[] = [];\n\n // Determine which provider(s) to query\n const providerIndicesToQuery = parentId\n ? this.getProviderIndexForCategory(parentId)\n : null; // Root: query all providers\n\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n\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\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\n // ✅ Track ownership: This provider INDEX owns these categories\n cats.forEach(cat => this.categoryOwnership.set(cat.id, i));\n }\n } catch {\n // Continue on error - try other providers\n }\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\n return categories;\n } finally {\n this.pendingCategoriesRequests.delete(parentId);\n }\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 private getProviderIndexForCategory(categoryId: string): number[] | null {\n const ownerIndex = this.categoryOwnership.get(categoryId);\n\n if (ownerIndex !== undefined) {\n return [ownerIndex];\n }\n\n // Ownership unknown - will query all providers (fallback)\n return null;\n }\n\n /**\n * Load workflow 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 workflow provider\n */\n private async loadWorkflowsFromProviders(categoryId: string): Promise<AXPWorkflowDefinition[]> {\n try {\n const resolvedProviders = await Promise.allSettled(this.workflowProviders);\n const definitions: AXPWorkflowDefinition[] = [];\n\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\n for (let i = 0; i < resolvedProviders.length; i++) {\n const p = resolvedProviders[i];\n\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\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 } catch {\n // Continue on error - try other providers\n }\n }\n }\n\n // ✅ Cache results for fast subsequent access\n this.workflowsByCategory.set(categoryId, definitions);\n definitions.forEach(def => {\n if (def.name) {\n this.workflowsByName.set(def.name, def);\n }\n });\n\n return definitions;\n } finally {\n this.pendingWorkflowsRequests.delete(categoryId);\n }\n }\n\n /**\n * Load single workflow definition from providers and cache result\n */\n private async loadWorkflowFromProviders(name: string): Promise<AXPWorkflowDefinition | undefined> {\n try {\n const resolvedProviders = await Promise.allSettled(this.workflowProviders);\n\n // Try providers first\n for (const p of resolvedProviders) {\n if (p.status === 'fulfilled' && p.value && typeof p.value.getByName === 'function') {\n try {\n const definition = await p.value.getByName(name);\n if (definition) {\n this.workflowsByName.set(name, definition);\n return definition;\n }\n } catch {\n // Continue on error\n }\n }\n }\n\n // Fallback: Search in cached workflow definitions\n for (const definitions of this.workflowsByCategory.values()) {\n const found = definitions.find(def => def.name === name);\n if (found) {\n this.workflowsByName.set(name, found);\n return found;\n }\n }\n\n return undefined;\n } finally {\n this.pendingWorkflowRequests.delete(name);\n }\n }\n\n /**\n * Breadth-first search through category hierarchy\n */\n private async searchCategoryInHierarchy(categoryId: string): Promise<AXPWorkflowCategory | undefined> {\n const searchQueue: (string | undefined)[] = [undefined];\n const searched = new Set<string | undefined>();\n\n while (searchQueue.length > 0) {\n const parentId = searchQueue.shift()!;\n if (searched.has(parentId)) continue;\n searched.add(parentId);\n\n const categories = await this.getCategories(parentId);\n const found = categories.find(cat => cat.id === categoryId);\n\n if (found) {\n return found;\n }\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\n return undefined;\n }\n\n //#endregion\n\n //#region ---- Cache Management ----\n\n /**\n * Check if category has children (uses cached count)\n */\n categoryHasChildren(categoryId: string): boolean {\n const category = this.categoriesById.get(categoryId);\n return category ? category.childrenCount > 0 : false;\n }\n\n /**\n * Check if category has workflows (uses cached count)\n */\n categoryHasWorkflows(categoryId: string): boolean {\n const category = this.categoriesById.get(categoryId);\n return category ? (category.itemsCount ?? 0) > 0 : false;\n }\n\n /**\n * Clear all caches\n */\n clearAllCache(): void {\n this.categoriesById.clear();\n this.categoriesByParentId.clear();\n this.workflowsByCategory.clear();\n this.workflowsByName.clear();\n this.categoryOwnership.clear();\n this.pendingCategoriesRequests.clear();\n this.pendingWorkflowsRequests.clear();\n this.pendingWorkflowRequests.clear();\n }\n\n /**\n * Clear categories cache only\n */\n clearCategoriesCache(): void {\n this.categoriesById.clear();\n this.categoriesByParentId.clear();\n this.categoryOwnership.clear();\n this.pendingCategoriesRequests.clear();\n }\n\n /**\n * Clear workflows cache only\n */\n clearWorkflowsCache(): void {\n this.workflowsByCategory.clear();\n this.workflowsByName.clear();\n this.pendingWorkflowsRequests.clear();\n this.pendingWorkflowRequests.clear();\n }\n\n //#endregion\n}\n\n","// Workflow Definition Types (Storage/Database)\n// Export workflow definition types\nexport type {\n AXPWorkflowDefinition,\n AXPWorkflowGraph,\n AXPWorkflowActivityInstance,\n AXPConnection,\n AXPWorkflowDescriptorSchemaBase,\n AXPWorkflowDescriptorBase,\n AXPVariableDefinition,\n AXPWorkflowInputDescriptor,\n AXPWorkflowOutputDescriptor,\n AXPWorkflowExtensions,\n AXPElsaWorkflowExtensions,\n AXPWorkflowBinding,\n} from './workflow-definition.types';\n\n// Workflow Instance Types (Storage/Database)\nexport * from './workflow-instance.types';\n\n\n// Re-export Workflow Instance types\nexport type {\n AXPWorkflowInstance,\n AXPWorkflowState,\n AXPWorkflowStatus,\n AXPWorkflowSubStatus,\n AXPActivityStatus,\n AXPExceptionState,\n AXPActivityIncident,\n AXPWorkflowFaultState,\n AXPBookmark,\n AXPCompletionCallbackState,\n AXPActivityVariable,\n AXPActivityExecutionContextState,\n} from './workflow-instance.types';\n\n// Activity System Types (Simplified)\nexport * from './activity/activity.types';\n\nexport * from './activity';\n\n// Simple Runtime (Coordinator only)\nexport * from './runtime';\n\n// Workflow Definition System (Category + Metadata)\nexport * from './workflow/workflow-definition.provider';\nexport * from './workflow/workflow-definition.service';","import { Inject, ModuleWithProviders, NgModule, Optional, Type, inject } from '@angular/core';\nimport { AXPWorkflowDecideAction } from './actions/decide.action';\nimport { AXPStartWorkflowAction } from './actions/start-workflow.action';\nimport { AXPWorkflowRegistryService } from './workflow-registery.service';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowFunction } from './workflow.types';\nimport { AXP_WORKFLOW_ENGINE, AXPWorkflowLocalEngine } from './engine';\nimport { AXPWorkflowManager } from './engine/runtime/workflow-manager.service';\nexport interface AXPWorkflowModuleConfigs {\n functions?: {\n [name: string]: Type<AXPWorkflowFunction>;\n };\n actions?: {\n [name: string]: Type<AXPWorkflowAction>;\n };\n workflows?: {\n [name: string]: AXPWorkflow;\n };\n}\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n AXPWorkflowLocalEngine,\n {\n provide: AXP_WORKFLOW_ENGINE,\n useExisting: AXPWorkflowLocalEngine,\n },\n AXPWorkflowManager,\n ],\n})\nexport class AXPWorkflowModule {\n\n static forRoot(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\n return {\n ngModule: AXPWorkflowModule,\n providers: [\n {\n provide: 'AXPWorkflowModuleFactory',\n useFactory: (registry: AXPWorkflowRegistryService) => () => {\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\n static forChild(config?: AXPWorkflowModuleConfigs): ModuleWithProviders<AXPWorkflowModule> {\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: AXPWorkflowRegistryService) => () => {\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 /**\n * @ignore\n */\n constructor(@Optional() @Inject('AXPWorkflowModuleFactory') instances: any[]) {\n instances?.forEach((f) => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPWorkflowRegistryService"],"mappings":"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"}