@acorex/platform 20.8.12 → 20.8.14

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 (123) hide show
  1. package/{types/acorex-platform-auth.d.ts → auth/index.d.ts} +2 -14
  2. package/{types/acorex-platform-common.d.ts → common/index.d.ts} +30 -302
  3. package/{types/acorex-platform-core.d.ts → core/index.d.ts} +44 -188
  4. package/{types/acorex-platform-domain.d.ts → domain/index.d.ts} +412 -744
  5. package/fesm2022/acorex-platform-auth.mjs +27 -125
  6. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  7. package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-DVvuLUfF.mjs} +32 -30
  8. package/fesm2022/acorex-platform-common-common-settings.provider-DVvuLUfF.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-common.mjs +205 -711
  10. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-core.mjs +127 -420
  12. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-domain.mjs +830 -561
  14. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-builder.mjs +114 -634
  16. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  17. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs} +9 -9
  18. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CSxCnzwU.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-layout-components.mjs +877 -3362
  20. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-designer.mjs +204 -456
  22. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-entity.mjs +10062 -14672
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-views.mjs +171 -413
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +441 -507
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs → acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs} +10 -10
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-CPBzE96V.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs → acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs} +76 -21
  32. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-Dtv6U3df.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs → acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs} +7 -6
  34. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-QxJfswhK.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs → acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs} +12 -12
  36. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-CVdssZBD.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs +111 -0
  38. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BCxE0RTB.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs} +5 -5
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DVaZN9QN.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs} +4 -4
  42. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DPGHgXa6.mjs.map +1 -0
  43. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs} +6 -6
  44. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-CdiNW691.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-layout-widgets.mjs +3408 -5611
  46. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-native.mjs +7 -8
  48. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-runtime.mjs +166 -391
  50. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  51. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs +160 -0
  52. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D4hU2SCE.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs +1716 -0
  54. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-D2CtNrSn.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs +120 -0
  56. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-BVTklnzs.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs → acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs} +23 -16
  58. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-rGsMVAZj.mjs.map +1 -0
  59. package/fesm2022/{acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs → acorex-platform-themes-default-error-401.component-53VB-PS_.mjs} +4 -4
  60. package/fesm2022/acorex-platform-themes-default-error-401.component-53VB-PS_.mjs.map +1 -0
  61. package/fesm2022/{acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs → acorex-platform-themes-default-error-404.component-DVF9soT5.mjs} +4 -4
  62. package/fesm2022/acorex-platform-themes-default-error-404.component-DVF9soT5.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs +19 -0
  64. package/fesm2022/acorex-platform-themes-default-error-offline.component-CwNNHzZn.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-default.mjs +61 -1784
  66. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  67. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs → acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs} +6 -6
  68. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-TJ9PWHMY.mjs.map +1 -0
  69. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs} +6 -6
  70. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BHcKkIx0.mjs.map +1 -0
  71. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs → acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs} +25 -24
  72. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs +65 -0
  74. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BUPs84MI.mjs.map +1 -0
  75. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs +64 -0
  76. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BotknoHn.mjs.map +1 -0
  77. package/fesm2022/acorex-platform-themes-shared.mjs +305 -408
  78. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  79. package/fesm2022/acorex-platform-workflow.mjs +100 -359
  80. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  81. package/fesm2022/acorex-platform.mjs.map +1 -1
  82. package/{types/acorex-platform-layout-builder.d.ts → layout/builder/index.d.ts} +38 -160
  83. package/{types/acorex-platform-layout-components.d.ts → layout/components/index.d.ts} +125 -854
  84. package/{types/acorex-platform-layout-designer.d.ts → layout/designer/index.d.ts} +18 -96
  85. package/{types/acorex-platform-layout-entity.d.ts → layout/entity/index.d.ts} +65 -848
  86. package/{types/acorex-platform-layout-views.d.ts → layout/views/index.d.ts} +47 -80
  87. package/{types/acorex-platform-layout-widget-core.d.ts → layout/widget-core/index.d.ts} +197 -274
  88. package/{types/acorex-platform-layout-widgets.d.ts → layout/widgets/index.d.ts} +124 -608
  89. package/{types/acorex-platform-native.d.ts → native/index.d.ts} +7 -0
  90. package/package.json +36 -36
  91. package/runtime/index.d.ts +307 -0
  92. package/{types/acorex-platform-themes-default.d.ts → themes/default/index.d.ts} +4 -113
  93. package/{types/acorex-platform-themes-shared.d.ts → themes/shared/index.d.ts} +4 -5
  94. package/{types/acorex-platform-workflow.d.ts → workflow/index.d.ts} +81 -162
  95. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CDYAGBku.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs +0 -116
  102. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGO75IMz.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs +0 -160
  107. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs +0 -120
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +0 -19
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-settings.provider-DK6R87Lf.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +0 -94
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +0 -1
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +0 -86
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +0 -1
  122. package/types/acorex-platform-runtime.d.ts +0 -571
  123. /package/{types/acorex-platform.d.ts → index.d.ts} +0 -0
@@ -3,7 +3,6 @@ import { Injectable, inject, InjectionToken, Optional, Inject, NgModule } from '
3
3
  import { Subject, filter } from 'rxjs';
4
4
  import { cloneDeep, get, set } from 'lodash-es';
5
5
  import { setSmart, AXPExpressionEvaluatorService, AXPDataGenerator } from '@acorex/platform/core';
6
- import { AXTranslationService } from '@acorex/core/translation';
7
6
  import { AXPCommandService } from '@acorex/platform/runtime';
8
7
 
9
8
  class AXPWorkflowError extends Error {
@@ -24,10 +23,10 @@ class AXPWorkflowEventService {
24
23
  get events$() {
25
24
  return this.eventSubject.asObservable();
26
25
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, providedIn: 'root' }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowEventService, providedIn: 'root' }); }
29
28
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowEventService, decorators: [{
31
30
  type: Injectable,
32
31
  args: [{
33
32
  providedIn: 'root',
@@ -117,10 +116,10 @@ class AXPWorkflowRegistryService {
117
116
  });
118
117
  }
119
118
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
121
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
120
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }
122
121
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{
124
123
  type: Injectable,
125
124
  args: [{
126
125
  providedIn: 'root',
@@ -159,17 +158,17 @@ class AXPWorkflowAction {
159
158
  dispatch(event) {
160
159
  this.eventService.dispatch(event);
161
160
  }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
163
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction }); }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowAction }); }
164
163
  }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowAction, decorators: [{
166
165
  type: Injectable
167
166
  }] });
168
167
  class AXPWorkflowFunction {
169
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
170
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction }); }
168
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
169
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowFunction }); }
171
170
  }
172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, decorators: [{
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowFunction, decorators: [{
173
172
  type: Injectable
174
173
  }] });
175
174
  function createWorkFlowEvent(type) {
@@ -185,10 +184,10 @@ class AXPWorkflowDecideAction extends AXPWorkflowAction {
185
184
  async execute(context) {
186
185
  // its a fake action
187
186
  }
188
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
189
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
188
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }
190
189
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{
192
191
  type: Injectable,
193
192
  args: [{
194
193
  providedIn: 'root',
@@ -374,10 +373,10 @@ class AXPWorkflowService {
374
373
  }
375
374
  return this.injector.get(functionType);
376
375
  }
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, deps: [{ token: AXPWorkflowRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
378
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }
376
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowService, deps: [{ token: AXPWorkflowRegistryService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
377
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }
379
378
  }
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, decorators: [{
379
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowService, decorators: [{
381
380
  type: Injectable,
382
381
  args: [{
383
382
  providedIn: 'root',
@@ -402,10 +401,10 @@ class AXPStartWorkflowAction extends AXPWorkflowAction {
402
401
  throw e;
403
402
  }
404
403
  }
405
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
406
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }
404
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
405
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }
407
406
  }
408
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{
407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{
409
408
  type: Injectable,
410
409
  args: [{
411
410
  providedIn: 'root',
@@ -418,12 +417,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
418
417
  // Compatible with Elsa backend while using ACoreX naming conventions
419
418
  // ============================================
420
419
 
421
- // Note:
422
- // Previous versions defined dedicated activity result/command types here
423
- // (AXPActivityResult / AXPActivity) that wrapped output and outcome.
424
- // Activities are now modeled directly as AXPCommand with outcome stored in
425
- // AXPExecuteCommandResult.metadata.outcome.
426
-
427
420
  const AXP_ACTIVITY_PROVIDER = new InjectionToken('AXP_ACTIVITY_PROVIDER', {
428
421
  factory: () => [],
429
422
  });
@@ -599,19 +592,6 @@ class AXPActivityDefinitionService {
599
592
  this.pendingActivityRequests.set(name, requestPromise);
600
593
  return requestPromise;
601
594
  }
602
- /**
603
- * Get all activity definitions (flat list) by loading root categories and their activities.
604
- * Used by activity selector UIs (e.g. automation command configurator).
605
- */
606
- async getAllActivities() {
607
- const categories = await this.getCategories(undefined);
608
- const all = [];
609
- for (const cat of categories) {
610
- const activities = await this.getActivitiesByCategoryId(cat.id);
611
- all.push(...activities);
612
- }
613
- return all;
614
- }
615
595
  /**
616
596
  * Get category ID containing a specific activity definition
617
597
  *
@@ -629,7 +609,7 @@ class AXPActivityDefinitionService {
629
609
  if (definition && definition.category) {
630
610
  // Try to find category by name/id
631
611
  const categories = await this.getCategories();
632
- const found = categories.find((cat) => cat.id === definition.category);
612
+ const found = categories.find(cat => cat.id === definition.category || cat.title === definition.category);
633
613
  if (found) {
634
614
  return found.id;
635
615
  }
@@ -856,10 +836,10 @@ class AXPActivityDefinitionService {
856
836
  this.pendingActivitiesRequests.clear();
857
837
  this.pendingActivityRequests.clear();
858
838
  }
859
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
860
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, providedIn: 'root' }); }
839
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPActivityDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
840
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPActivityDefinitionService, providedIn: 'root' }); }
861
841
  }
862
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, decorators: [{
842
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPActivityDefinitionService, decorators: [{
863
843
  type: Injectable,
864
844
  args: [{
865
845
  providedIn: 'root',
@@ -872,62 +852,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
872
852
  */
873
853
  const AXP_WORKFLOW_ENGINE = new InjectionToken('AXP_WORKFLOW_ENGINE');
874
854
 
875
- //#region ---- Error Codes ----
876
- /**
877
- * Stable workflow engine error codes for UI branching (toasts, take-over flow, etc.).
878
- */
879
- const AXP_WORKFLOW_ERROR_CODES = {
880
- TASK_NOT_ASSIGNEE: 'WORKFLOW_TASK_NOT_ASSIGNEE',
881
- CLAIM_REQUIRED: 'WORKFLOW_CLAIM_REQUIRED',
882
- REASSIGN_NOT_ALLOWED: 'WORKFLOW_REASSIGN_NOT_ALLOWED',
883
- };
884
- //#endregion
885
- //#region ---- Engine Error ----
886
- /**
887
- * Business-rule failure from {@link AXPWorkflowEngine} (expected, user-facing).
888
- */
889
- class AXPWorkflowEngineError extends Error {
890
- constructor(message, code, details) {
891
- super(message);
892
- this.code = code;
893
- this.details = details;
894
- this.name = 'AXPWorkflowEngineError';
895
- }
896
- }
897
- /**
898
- * Resolves a stable error code from an unknown thrown value.
899
- */
900
- function getWorkflowEngineErrorCode(error) {
901
- if (error instanceof AXPWorkflowEngineError) {
902
- return error.code;
903
- }
904
- return undefined;
905
- }
906
- /**
907
- * Resolves a user-facing message and optional code from an unknown thrown value.
908
- */
909
- function getWorkflowEngineErrorInfo(error) {
910
- if (error instanceof AXPWorkflowEngineError) {
911
- return { message: error.message, code: error.code };
912
- }
913
- if (error instanceof Error) {
914
- return { message: error.message };
915
- }
916
- return { message: 'An unexpected workflow error occurred' };
917
- }
918
- //#endregion
919
-
920
- /**
921
- * Activity types that use the task board (suspend until user acts via inbox), not inline interactive execution.
922
- */
923
- const AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES = [
924
- 'workflow-activity:human-task',
925
- 'workflow-activity:cartable',
926
- ];
927
- function axpIsWorkflowTaskBoardActivityType(activityType) {
928
- return !!activityType && AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES.includes(activityType);
929
- }
930
-
931
855
  //#endregion
932
856
  /**
933
857
  * Workflow Expression Scope Service
@@ -961,82 +885,6 @@ function axpIsWorkflowTaskBoardActivityType(activityType) {
961
885
  * ```
962
886
  */
963
887
  class WorkflowExpressionScopeService {
964
- //#region ---- Private Helpers (dot-notation input normalization) ----
965
- /**
966
- * Collect dot-notation key-value pairs from nested objects so that e.g.
967
- * { metadata: { "metadata.questionnaire.id": "x" } } becomes { "metadata.questionnaire.id": "x" } at root.
968
- * Top-level non-dot keys are kept as-is.
969
- */
970
- flattenDotKeysFromTree(obj) {
971
- if (obj === null || typeof obj !== 'object')
972
- return obj;
973
- const result = {};
974
- for (const [key, value] of Object.entries(obj)) {
975
- if (key.includes('.')) {
976
- result[key] = value;
977
- }
978
- else if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
979
- for (const [k, v] of Object.entries(value)) {
980
- if (k.includes('.')) {
981
- result[k] = v;
982
- }
983
- else {
984
- result[key + '.' + k] = v;
985
- }
986
- }
987
- }
988
- else {
989
- result[key] = value;
990
- }
991
- }
992
- return result;
993
- }
994
- /**
995
- * Expand flat keys with dots into nested objects.
996
- * e.g. { "metadata.questionnaire.id": "x" } -> { metadata: { questionnaire: { id: "x" } } }.
997
- */
998
- expandDotKeys(obj) {
999
- if (obj === null || typeof obj !== 'object')
1000
- return obj;
1001
- const result = {};
1002
- const dotKeys = [];
1003
- const simpleKeys = [];
1004
- for (const [key, value] of Object.entries(obj)) {
1005
- if (key.includes('.')) {
1006
- dotKeys.push([key, value]);
1007
- }
1008
- else {
1009
- simpleKeys.push([key, value]);
1010
- }
1011
- }
1012
- for (const [key, value] of dotKeys) {
1013
- const parts = key.split('.');
1014
- let current = result;
1015
- for (let i = 0; i < parts.length - 1; i++) {
1016
- const part = parts[i];
1017
- if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
1018
- current[part] = {};
1019
- }
1020
- current = current[part];
1021
- }
1022
- current[parts[parts.length - 1]] = value;
1023
- }
1024
- for (const [key, value] of simpleKeys) {
1025
- result[key] = value;
1026
- }
1027
- return result;
1028
- }
1029
- /**
1030
- * Normalize workflow input so that flat dot-notation keys (e.g. from form schema
1031
- * "metadata.questionnaire.id") become nested for expression access (inputs.metadata.questionnaire.id).
1032
- */
1033
- normalizeInputs(input) {
1034
- if (!input || typeof input !== 'object')
1035
- return {};
1036
- const flattened = this.flattenDotKeysFromTree(input);
1037
- return this.expandDotKeys(flattened);
1038
- }
1039
- //#endregion
1040
888
  //#region ---- Public Methods ----
1041
889
  /**
1042
890
  * Build expression evaluation scope for workflow activities.
@@ -1066,12 +914,10 @@ class WorkflowExpressionScopeService {
1066
914
  * @returns Expression evaluator scope with workflow data and context.eval() function
1067
915
  */
1068
916
  buildScope(context) {
1069
- // Normalize inputs so flat dot-notation keys (e.g. metadata.questionnaire.id from forms) become nested for expressions
1070
- const inputs = this.normalizeInputs(context.inputs || {});
1071
917
  // Build merged workflow data object for context.eval()
1072
918
  // This allows expressions like: context.eval("inputs.userName") or context.eval("variables.count")
1073
919
  const workflowData = {
1074
- inputs,
920
+ inputs: context.inputs || {},
1075
921
  variables: context.variables || {},
1076
922
  vars: context.variables || {}, // Alias for convenience
1077
923
  outputs: context.outputs || {},
@@ -1125,32 +971,21 @@ class WorkflowExpressionScopeService {
1125
971
  outputs['last'] = state.lastActivityOutput;
1126
972
  }
1127
973
  return this.buildScope({
1128
- inputs: this.normalizeInputs((state.input || {})),
974
+ inputs: state.input || {},
1129
975
  variables: state.variables || {},
1130
976
  outputs: outputs,
1131
977
  });
1132
978
  }
1133
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1134
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, providedIn: 'root' }); }
979
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkflowExpressionScopeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
980
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkflowExpressionScopeService, providedIn: 'root' }); }
1135
981
  }
1136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, decorators: [{
982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: WorkflowExpressionScopeService, decorators: [{
1137
983
  type: Injectable,
1138
984
  args: [{
1139
985
  providedIn: 'root'
1140
986
  }]
1141
987
  }] });
1142
988
 
1143
- //#region ---- Constants ----
1144
- /**
1145
- * Activity types handled internally by the workflow engine (e.g. mock backend).
1146
- * When such an activity is not registered as Command on the client, we skip execution
1147
- * without warning — the engine will run it when executing the workflow.
1148
- */
1149
- const ENGINE_BUILTIN_ACTIVITY_TYPES = new Set([
1150
- 'workflow-activity:set-variable',
1151
- 'workflow-activity:http-request',
1152
- 'workflow-activity:resolve-employee-user-id',
1153
- ]);
1154
989
  //#endregion
1155
990
  /**
1156
991
  * Activity Executor Service
@@ -1172,7 +1007,6 @@ class ActivityExecutor {
1172
1007
  this.commandService = inject(AXPCommandService);
1173
1008
  this.expressionEvaluator = inject(AXPExpressionEvaluatorService);
1174
1009
  this.expressionScopeService = inject(WorkflowExpressionScopeService);
1175
- this.translateService = inject(AXTranslationService);
1176
1010
  }
1177
1011
  //#endregion
1178
1012
  //#region ---- Public Methods ----
@@ -1205,23 +1039,21 @@ class ActivityExecutor {
1205
1039
  // Check if command exists
1206
1040
  const commandExists = this.commandService.exists(activityName);
1207
1041
  if (!commandExists) {
1208
- if (!ENGINE_BUILTIN_ACTIVITY_TYPES.has(activityName)) {
1209
- console.warn(`[ActivityExecutor] ⚠️ Activity '${activityName}' is not registered as Command. ` +
1210
- `Skipping execution.`);
1211
- }
1042
+ console.warn(`[ActivityExecutor] ⚠️ Activity '${activityName}' is not registered as Command. ` +
1043
+ `Skipping execution.`);
1212
1044
  return {
1213
1045
  output: null,
1214
1046
  outcome: 'Done'
1215
1047
  };
1216
1048
  }
1217
- // Flatten properties if nested (designer-style nested payload)
1049
+ // Flatten properties if nested (workflow-studio format)
1218
1050
  let commandInput = evaluatedInputs;
1219
1051
  if (commandInput['properties'] && typeof commandInput['properties'] === 'object') {
1220
1052
  // Flatten: {properties: {text: "..."}} -> {text: "..."}
1221
1053
  commandInput = { ...commandInput['properties'] };
1222
1054
  }
1223
1055
  // Execute activity via CommandBus
1224
- // Activities (AXPActivity) return {output, outcome}; legacy may return {output, outcomes}
1056
+ // Activities registered as AXPCommand return {output, outcomes}
1225
1057
  const result = await this.commandService.execute(activityName, commandInput);
1226
1058
  if (!result) {
1227
1059
  return {
@@ -1232,33 +1064,21 @@ class ActivityExecutor {
1232
1064
  if (!result.success) {
1233
1065
  return {
1234
1066
  output: {
1235
- error: await this.resolveCommandMessageTextForError(result.message?.text),
1067
+ error: result.message?.text,
1236
1068
  },
1237
1069
  outcome: 'Failed',
1238
1070
  };
1239
1071
  }
1240
1072
  const commandResult = result.data;
1241
- // Prefer unified outcome in result.metadata; fall back to legacy data.outcome/outcomes.
1242
- const metadataOutcome = result?.metadata?.['outcome'];
1073
+ const outcomes = commandResult?.outcomes ?? {};
1074
+ // Determine outcome from command results
1075
+ // Default to 'Done' if no outcomes specified
1243
1076
  let outcome = 'Done';
1244
- if (typeof metadataOutcome === 'string' && metadataOutcome.length > 0) {
1245
- outcome = metadataOutcome;
1246
- }
1247
- else if (typeof commandResult?.outcome === 'string' && commandResult.outcome.length > 0) {
1248
- outcome = commandResult.outcome;
1249
- }
1250
- else {
1251
- const outcomes = (commandResult?.outcomes ?? {});
1252
- if (outcomes && typeof outcomes === 'object' && Object.keys(outcomes).length > 0) {
1253
- outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';
1254
- }
1077
+ if (Object.keys(outcomes).length > 0) {
1078
+ outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';
1255
1079
  }
1256
- // Prefer output wrapper when present; otherwise treat data itself as output.
1257
- const output = commandResult && typeof commandResult === 'object' && 'output' in commandResult
1258
- ? commandResult.output
1259
- : commandResult;
1260
1080
  return {
1261
- output: output ?? null,
1081
+ output: commandResult?.output ?? null,
1262
1082
  outcome,
1263
1083
  };
1264
1084
  }
@@ -1270,22 +1090,10 @@ class ActivityExecutor {
1270
1090
  };
1271
1091
  }
1272
1092
  }
1273
- /**
1274
- * Resolves command failure message text for workflow output: `@` keys via translate, MLS maps via resolve.
1275
- */
1276
- async resolveCommandMessageTextForError(value) {
1277
- if (value == null) {
1278
- return '';
1279
- }
1280
- if (typeof value === 'string') {
1281
- return value.startsWith('@') ? await this.translateService.translateAsync(value) : value;
1282
- }
1283
- return this.translateService.resolve(value);
1284
- }
1285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1286
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, providedIn: 'root' }); }
1093
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ActivityExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1094
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ActivityExecutor, providedIn: 'root' }); }
1287
1095
  }
1288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, decorators: [{
1096
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: ActivityExecutor, decorators: [{
1289
1097
  type: Injectable,
1290
1098
  args: [{
1291
1099
  providedIn: 'root'
@@ -1333,19 +1141,23 @@ class AXPWorkflowManager {
1333
1141
  //#endregion
1334
1142
  //#region ---- Public Methods ----
1335
1143
  /**
1336
- * Execute frontend activities interactively until reaching workflow-activity:human-task or completion.
1144
+ * Execute frontend activities interactively until reaching human-task or completion.
1337
1145
  *
1338
- * Interactive = show form/popup immediately (user sees and acts). Only workflow-activity:human-task
1339
- * is not interactive (goes to task board). Other frontend activities (show-layout-popup, show-toast, etc.)
1340
- * even with taskType human-task in definition are executed here.
1146
+ * This method handles the interactive flow between frontend and backend:
1147
+ * 1. Executes frontend activity (ui-activity)
1148
+ * 2. Sends result to backend via frontActivtyComplete
1149
+ * 3. If backend returns nextTask (frontend activity), repeats the process
1150
+ * 4. Continues until workflow completes or reaches human-task
1341
1151
  *
1342
1152
  * @param instanceId - Workflow instance ID
1343
1153
  * @param task - Current task to execute
1344
1154
  * @param state - Current workflow state
1345
1155
  * @param lastActivityOutput - Last activity output (for expression evaluation)
1346
- * @returns Final result with nextTask (if workflow-activity:human-task) or completion status
1156
+ * @returns Final result with nextTask (if human-task) or completion status
1347
1157
  */
1348
1158
  async executeInteractiveFlow(instanceId, task, state, activityOutputs) {
1159
+ // Backend decides what to execute - frontend only executes ui-activity with frontend/both executionMode
1160
+ // If backend returns a task that's not executable here, return it as-is
1349
1161
  let currentTask = task;
1350
1162
  let currentState = state;
1351
1163
  let currentActivityOutputs = {
@@ -1356,10 +1168,10 @@ class AXPWorkflowManager {
1356
1168
  let iterationCount = 0;
1357
1169
  while (currentTask && iterationCount < maxIterations) {
1358
1170
  iterationCount++;
1359
- // Interactive = frontend executionMode and NOT task-board activities (human-task, cartable)
1360
- const isInteractive = (currentTask.executionMode === 'frontend' || currentTask.executionMode === 'both') &&
1361
- !axpIsWorkflowTaskBoardActivityType(currentTask.activityType);
1362
- if (isInteractive) {
1171
+ // Only execute if task is ui-activity with frontend/both executionMode
1172
+ // Backend decides if workflow should continue or suspend
1173
+ if (currentTask.taskType === 'ui-activity' &&
1174
+ (currentTask.executionMode === 'frontend' || currentTask.executionMode === 'both')) {
1363
1175
  // Execute frontend activity
1364
1176
  const execResult = await this.activityExecutor.execute(currentTask, currentState, currentActivityOutputs);
1365
1177
  // Track outputs locally (backend should also persist and return them)
@@ -1396,20 +1208,20 @@ class AXPWorkflowManager {
1396
1208
  output: completeResponse.output,
1397
1209
  };
1398
1210
  }
1399
- // Backend decides: if nextTask is task-board activity or not frontend, return it (task board or done)
1400
- const nextInteractive = (completeResponse.nextTask.executionMode === 'frontend' || completeResponse.nextTask.executionMode === 'both') &&
1401
- !axpIsWorkflowTaskBoardActivityType(completeResponse.nextTask.activityType);
1402
- if (!nextInteractive) {
1211
+ // Backend decides: if nextTask is not executable here (human-task or other), return it
1212
+ // Backend already set status to 'suspended' if needed
1213
+ if (completeResponse.nextTask.taskType !== 'ui-activity' ||
1214
+ (completeResponse.nextTask.executionMode !== 'frontend' && completeResponse.nextTask.executionMode !== 'both')) {
1403
1215
  return {
1404
1216
  nextTask: completeResponse.nextTask,
1405
1217
  state: currentState,
1406
1218
  };
1407
1219
  }
1408
- // Continue with next interactive frontend task
1220
+ // Continue with next executable frontend task
1409
1221
  currentTask = completeResponse.nextTask;
1410
1222
  }
1411
1223
  else {
1412
- // Not interactive (e.g. human-task / cartable) - return as-is for task board
1224
+ // Not a frontend ui-activity - return as-is
1413
1225
  return {
1414
1226
  nextTask: currentTask,
1415
1227
  state: currentState,
@@ -1460,14 +1272,15 @@ class AXPWorkflowManager {
1460
1272
  startNormalizedState.lastUpdated = new Date(startNormalizedState.lastUpdated);
1461
1273
  }
1462
1274
  this.stateCache.set(response.instanceId, startNormalizedState);
1463
- // 🎯 Interactive flow: Execute frontend activities that are NOT task-board types (those go to task board)
1275
+ // 🎯 Interactive flow: Execute frontend activities automatically
1276
+ // Backend decides what to execute - if pendingTask is executable (ui-activity with frontend/both), execute it
1464
1277
  let finalNextTask = response.pendingTask || null;
1465
1278
  let finalOutput = startNormalizedState.output;
1466
- const pendingTask = response.pendingTask;
1467
- if (pendingTask &&
1468
- (pendingTask.executionMode === 'frontend' || pendingTask.executionMode === 'both') &&
1469
- !axpIsWorkflowTaskBoardActivityType(pendingTask.activityType)) {
1470
- const interactiveResult = await this.executeInteractiveFlow(response.instanceId, pendingTask, startNormalizedState, response.activityOutputs || response.state.activityOutputs);
1279
+ // If backend returned a task that's executable here (ui-activity with frontend/both), execute it
1280
+ if (response.pendingTask &&
1281
+ response.pendingTask.taskType === 'ui-activity' &&
1282
+ (response.pendingTask.executionMode === 'frontend' || response.pendingTask.executionMode === 'both')) {
1283
+ const interactiveResult = await this.executeInteractiveFlow(response.instanceId, response.pendingTask, startNormalizedState, response.activityOutputs || response.state.activityOutputs);
1471
1284
  finalNextTask = interactiveResult.nextTask;
1472
1285
  startNormalizedState = interactiveResult.state;
1473
1286
  if (interactiveResult.output !== undefined) {
@@ -1529,14 +1342,15 @@ class AXPWorkflowManager {
1529
1342
  if (normalizedState) {
1530
1343
  this.stateCache.set(instanceId, normalizedState);
1531
1344
  }
1532
- // 🎯 Interactive flow: Execute frontend activities that are NOT task-board types (those go to task board)
1345
+ // 🎯 Interactive flow: Execute frontend activities automatically
1346
+ // Backend decides what to execute - if nextTask is executable (ui-activity with frontend/both), execute it
1533
1347
  let finalNextTask = response.nextTask || null;
1534
1348
  let finalOutput = response.output;
1535
- const nextTask = response.nextTask;
1536
- if (nextTask &&
1537
- (nextTask.executionMode === 'frontend' || nextTask.executionMode === 'both') &&
1538
- !axpIsWorkflowTaskBoardActivityType(nextTask.activityType)) {
1539
- const interactiveResult = await this.executeInteractiveFlow(instanceId, nextTask, normalizedState, normalizedState?.activityOutputs);
1349
+ // If backend returned a task that's executable here (ui-activity with frontend/both), execute it
1350
+ if (response.nextTask &&
1351
+ response.nextTask.taskType === 'ui-activity' &&
1352
+ (response.nextTask.executionMode === 'frontend' || response.nextTask.executionMode === 'both')) {
1353
+ const interactiveResult = await this.executeInteractiveFlow(instanceId, response.nextTask, normalizedState, normalizedState?.activityOutputs);
1540
1354
  finalNextTask = interactiveResult.nextTask;
1541
1355
  normalizedState = interactiveResult.state;
1542
1356
  if (interactiveResult.output !== undefined) {
@@ -1556,12 +1370,11 @@ class AXPWorkflowManager {
1556
1370
  };
1557
1371
  }
1558
1372
  catch (error) {
1559
- const { message, code } = getWorkflowEngineErrorInfo(error);
1373
+ console.error('[AXPWorkflowManager] Error resuming workflow:', error);
1560
1374
  return {
1561
1375
  success: false,
1562
1376
  instanceId,
1563
- error: message,
1564
- errorCode: code,
1377
+ error: error.message || 'Failed to resume workflow',
1565
1378
  };
1566
1379
  }
1567
1380
  }
@@ -1607,74 +1420,10 @@ class AXPWorkflowManager {
1607
1420
  return null;
1608
1421
  }
1609
1422
  }
1610
- /**
1611
- * Claim a pooled workflow task (assign current user on the bookmark without advancing the workflow).
1612
- * Supported only when the injected workflow engine implements {@link AXPWorkflowEngine.claimTask}.
1613
- */
1614
- async claimTask(instanceId, bookmarkId, stepId) {
1615
- const claim = this.workflowEngine.claimTask?.bind(this.workflowEngine);
1616
- if (!claim) {
1617
- return {
1618
- success: false,
1619
- instanceId,
1620
- error: 'Claim task is not supported by this workflow engine',
1621
- };
1622
- }
1623
- try {
1624
- const result = await claim({ instanceId, bookmarkId, stepId });
1625
- return {
1626
- success: result.success,
1627
- instanceId,
1628
- error: result.error,
1629
- errorCode: result.errorCode,
1630
- };
1631
- }
1632
- catch (error) {
1633
- const { message, code } = getWorkflowEngineErrorInfo(error);
1634
- return {
1635
- success: false,
1636
- instanceId,
1637
- error: message,
1638
- errorCode: code,
1639
- };
1640
- }
1641
- }
1642
- /**
1643
- * Reassign a human-task bookmark to the current user without advancing the workflow.
1644
- * Supported only when the injected workflow engine implements {@link AXPWorkflowEngine.reassignTaskToSelf}.
1645
- */
1646
- async reassignTaskToSelf(instanceId, bookmarkId, stepId) {
1647
- const reassign = this.workflowEngine.reassignTaskToSelf?.bind(this.workflowEngine);
1648
- if (!reassign) {
1649
- return {
1650
- success: false,
1651
- instanceId,
1652
- error: 'Reassign task is not supported by this workflow engine',
1653
- };
1654
- }
1655
- try {
1656
- const result = await reassign({ instanceId, bookmarkId, stepId });
1657
- return {
1658
- success: result.success,
1659
- instanceId,
1660
- error: result.error,
1661
- errorCode: result.errorCode,
1662
- };
1663
- }
1664
- catch (error) {
1665
- const { message, code } = getWorkflowEngineErrorInfo(error);
1666
- return {
1667
- success: false,
1668
- instanceId,
1669
- error: message,
1670
- errorCode: code,
1671
- };
1672
- }
1673
- }
1674
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1675
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, providedIn: 'root' }); }
1423
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1424
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowManager, providedIn: 'root' }); }
1676
1425
  }
1677
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, decorators: [{
1426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowManager, decorators: [{
1678
1427
  type: Injectable,
1679
1428
  args: [{
1680
1429
  providedIn: 'root',
@@ -1709,7 +1458,6 @@ class AXPWorkflowLocalEngine {
1709
1458
  //#region ---- Services & Dependencies ----
1710
1459
  this.activityDefinitionService = inject(AXPActivityDefinitionService);
1711
1460
  this.workflowProviders = inject(AXP_WORKFLOW_PROVIDER, { optional: true }) || [];
1712
- this.multiLanguageResolver = inject(AXTranslationService);
1713
1461
  //#endregion
1714
1462
  //#region ---- Instance Storage ----
1715
1463
  /**
@@ -1811,10 +1559,9 @@ class AXPWorkflowLocalEngine {
1811
1559
  throw new Error(`Workflow instance not found: ${request.instanceId}`);
1812
1560
  }
1813
1561
  // Store activity result (from external execution)
1814
- const outcome = request.outcome ?? 'Done';
1815
1562
  localState.activityResults.set(request.stepId, {
1816
1563
  output: request.userInput || {},
1817
- outcome,
1564
+ outcome: request.outcome,
1818
1565
  });
1819
1566
  localState.completedActivities.add(request.stepId);
1820
1567
  // Store activity output for expression evaluation
@@ -1830,11 +1577,6 @@ class AXPWorkflowLocalEngine {
1830
1577
  ...(request.userInput || {}),
1831
1578
  };
1832
1579
  }
1833
- localState.state.variables = {
1834
- ...localState.state.variables,
1835
- [`${request.stepId}_outcome`]: outcome,
1836
- [`${request.stepId}_activityOutput`]: request.userInput || {},
1837
- };
1838
1580
  // Mark activity as completed and continue progression
1839
1581
  // Continue progressing workflow steps (skipping backend activities)
1840
1582
  const nextTask = await this.executeWorkflowSteps(localState);
@@ -1847,7 +1589,7 @@ class AXPWorkflowLocalEngine {
1847
1589
  }
1848
1590
  return {
1849
1591
  output: request.userInput || {},
1850
- outcomes: { [outcome]: true },
1592
+ outcomes: { [request.outcome]: true },
1851
1593
  state: localState.state,
1852
1594
  nextTask: nextTask || null,
1853
1595
  };
@@ -1908,13 +1650,13 @@ class AXPWorkflowLocalEngine {
1908
1650
  const connections = graph.connections || [];
1909
1651
  // Build activity map
1910
1652
  const activityMap = new Map();
1911
- activities.forEach((activity) => {
1653
+ activities.forEach(activity => {
1912
1654
  activityMap.set(activity.id, activity);
1913
1655
  });
1914
1656
  // Build connection graph
1915
1657
  const outgoingConnections = new Map();
1916
1658
  const incomingConnections = new Map();
1917
- connections.forEach((conn) => {
1659
+ connections.forEach(conn => {
1918
1660
  const sourceId = conn.source.activtyName;
1919
1661
  const targetId = conn.target.activtyName;
1920
1662
  if (!outgoingConnections.has(sourceId)) {
@@ -1971,7 +1713,7 @@ class AXPWorkflowLocalEngine {
1971
1713
  found: !!activityDefinition,
1972
1714
  });
1973
1715
  const executionMode = activityDefinition?.executionMode || 'frontend';
1974
- const activityTitle = this.multiLanguageResolver.resolve(activityDefinition?.title) || activityDefinition?.name;
1716
+ const activityTitle = activityDefinition?.title;
1975
1717
  // Handle backend activities: skip
1976
1718
  if (executionMode === 'backend') {
1977
1719
  console.log(`[WorkflowLocalEngine] ⏭️ Skipping backend activity: ${activity.name} (${activity.id})`);
@@ -2050,10 +1792,9 @@ class AXPWorkflowLocalEngine {
2050
1792
  throw new Error(`Workflow instance not found: ${request.instanceId}`);
2051
1793
  }
2052
1794
  // Store activity result
2053
- const outcome = request.outcome ?? 'Done';
2054
1795
  localState.activityResults.set(request.activityNode, {
2055
1796
  output: request.output || {},
2056
- outcome,
1797
+ outcome: request.outcome,
2057
1798
  });
2058
1799
  localState.completedActivities.add(request.activityNode);
2059
1800
  // Store outputs for expression evaluation
@@ -2078,15 +1819,15 @@ class AXPWorkflowLocalEngine {
2078
1819
  }
2079
1820
  return {
2080
1821
  output: request.output || {},
2081
- outcomes: { [outcome]: true },
1822
+ outcomes: { [request.outcome]: true },
2082
1823
  nextTask: nextTask || null,
2083
1824
  state: localState.state,
2084
1825
  };
2085
1826
  }
2086
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2087
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine }); }
1827
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowLocalEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1828
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowLocalEngine }); }
2088
1829
  }
2089
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine, decorators: [{
1830
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowLocalEngine, decorators: [{
2090
1831
  type: Injectable
2091
1832
  }] });
2092
1833
 
@@ -2507,10 +2248,10 @@ class AXPWorkflowDefinitionService {
2507
2248
  this.pendingWorkflowsRequests.clear();
2508
2249
  this.pendingWorkflowRequests.clear();
2509
2250
  }
2510
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2511
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, providedIn: 'root' }); }
2251
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2252
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDefinitionService, providedIn: 'root' }); }
2512
2253
  }
2513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, decorators: [{
2254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowDefinitionService, decorators: [{
2514
2255
  type: Injectable,
2515
2256
  args: [{
2516
2257
  providedIn: 'root',
@@ -2602,9 +2343,9 @@ class AXPWorkflowModule {
2602
2343
  f();
2603
2344
  });
2604
2345
  }
2605
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, deps: [{ token: 'AXPWorkflowModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2606
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule }); }
2607
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, providers: [
2346
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowModule, deps: [{ token: 'AXPWorkflowModuleFactory', optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
2347
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowModule }); }
2348
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowModule, providers: [
2608
2349
  AXPWorkflowLocalEngine,
2609
2350
  {
2610
2351
  provide: AXP_WORKFLOW_ENGINE,
@@ -2613,7 +2354,7 @@ class AXPWorkflowModule {
2613
2354
  AXPWorkflowManager,
2614
2355
  ] }); }
2615
2356
  }
2616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, decorators: [{
2357
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImport: i0, type: AXPWorkflowModule, decorators: [{
2617
2358
  type: NgModule,
2618
2359
  args: [{
2619
2360
  imports: [],
@@ -2639,5 +2380,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2639
2380
  * Generated bundle index. Do not edit.
2640
2381
  */
2641
2382
 
2642
- export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowTaskBoardActivityType, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, ofType };
2383
+ export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_PROVIDER, ActivityExecutor, WorkflowExpressionScopeService, createWorkFlowEvent, ofType };
2643
2384
  //# sourceMappingURL=acorex-platform-workflow.mjs.map