@acorex/platform 21.0.0-next.24 → 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.
- package/fesm2022/acorex-platform-auth.mjs +121 -27
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +677 -267
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +393 -111
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +554 -826
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-components.mjs +3373 -872
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +244 -170
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
- package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +5924 -4049
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-native.mjs +8 -7
- package/fesm2022/acorex-platform-native.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +220 -169
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +1667 -61
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +208 -91
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/fesm2022/acorex-platform.mjs.map +1 -1
- package/package.json +34 -34
- package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
- package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
- package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
- package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
- package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
- package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
- package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
- package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
- package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
- package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
- package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
- package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
- package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
- package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
- package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
- package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
- package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
- package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
- /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
- /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
|
@@ -23,10 +23,10 @@ class AXPWorkflowEventService {
|
|
|
23
23
|
get events$() {
|
|
24
24
|
return this.eventSubject.asObservable();
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, providedIn: 'root' }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowEventService, decorators: [{
|
|
30
30
|
type: Injectable,
|
|
31
31
|
args: [{
|
|
32
32
|
providedIn: 'root',
|
|
@@ -116,10 +116,10 @@ class AXPWorkflowRegistryService {
|
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
120
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
119
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
120
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, providedIn: 'root' }); }
|
|
121
121
|
}
|
|
122
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowRegistryService, decorators: [{
|
|
123
123
|
type: Injectable,
|
|
124
124
|
args: [{
|
|
125
125
|
providedIn: 'root',
|
|
@@ -158,17 +158,17 @@ class AXPWorkflowAction {
|
|
|
158
158
|
dispatch(event) {
|
|
159
159
|
this.eventService.dispatch(event);
|
|
160
160
|
}
|
|
161
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
162
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
162
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction }); }
|
|
163
163
|
}
|
|
164
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowAction, decorators: [{
|
|
165
165
|
type: Injectable
|
|
166
166
|
}] });
|
|
167
167
|
class AXPWorkflowFunction {
|
|
168
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
169
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
168
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
169
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction }); }
|
|
170
170
|
}
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowFunction, decorators: [{
|
|
172
172
|
type: Injectable
|
|
173
173
|
}] });
|
|
174
174
|
function createWorkFlowEvent(type) {
|
|
@@ -184,10 +184,10 @@ class AXPWorkflowDecideAction extends AXPWorkflowAction {
|
|
|
184
184
|
async execute(context) {
|
|
185
185
|
// its a fake action
|
|
186
186
|
}
|
|
187
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
188
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
187
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
188
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, providedIn: 'root' }); }
|
|
189
189
|
}
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDecideAction, decorators: [{
|
|
191
191
|
type: Injectable,
|
|
192
192
|
args: [{
|
|
193
193
|
providedIn: 'root',
|
|
@@ -373,10 +373,10 @@ class AXPWorkflowService {
|
|
|
373
373
|
}
|
|
374
374
|
return this.injector.get(functionType);
|
|
375
375
|
}
|
|
376
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
377
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
376
|
+
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 }); }
|
|
377
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, providedIn: 'root' }); }
|
|
378
378
|
}
|
|
379
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
379
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowService, decorators: [{
|
|
380
380
|
type: Injectable,
|
|
381
381
|
args: [{
|
|
382
382
|
providedIn: 'root',
|
|
@@ -401,10 +401,10 @@ class AXPStartWorkflowAction extends AXPWorkflowAction {
|
|
|
401
401
|
throw e;
|
|
402
402
|
}
|
|
403
403
|
}
|
|
404
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
405
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
404
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
405
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, providedIn: 'root' }); }
|
|
406
406
|
}
|
|
407
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPStartWorkflowAction, decorators: [{
|
|
408
408
|
type: Injectable,
|
|
409
409
|
args: [{
|
|
410
410
|
providedIn: 'root',
|
|
@@ -417,6 +417,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
417
417
|
// Compatible with Elsa backend while using ACoreX naming conventions
|
|
418
418
|
// ============================================
|
|
419
419
|
|
|
420
|
+
// Note:
|
|
421
|
+
// Previous versions defined dedicated activity result/command types here
|
|
422
|
+
// (AXPActivityResult / AXPActivity) that wrapped output and outcome.
|
|
423
|
+
// Activities are now modeled directly as AXPCommand with outcome stored in
|
|
424
|
+
// AXPExecuteCommandResult.metadata.outcome.
|
|
425
|
+
|
|
420
426
|
const AXP_ACTIVITY_PROVIDER = new InjectionToken('AXP_ACTIVITY_PROVIDER', {
|
|
421
427
|
factory: () => [],
|
|
422
428
|
});
|
|
@@ -592,6 +598,19 @@ class AXPActivityDefinitionService {
|
|
|
592
598
|
this.pendingActivityRequests.set(name, requestPromise);
|
|
593
599
|
return requestPromise;
|
|
594
600
|
}
|
|
601
|
+
/**
|
|
602
|
+
* Get all activity definitions (flat list) by loading root categories and their activities.
|
|
603
|
+
* Used by activity selector UIs (e.g. automation command configurator).
|
|
604
|
+
*/
|
|
605
|
+
async getAllActivities() {
|
|
606
|
+
const categories = await this.getCategories(undefined);
|
|
607
|
+
const all = [];
|
|
608
|
+
for (const cat of categories) {
|
|
609
|
+
const activities = await this.getActivitiesByCategoryId(cat.id);
|
|
610
|
+
all.push(...activities);
|
|
611
|
+
}
|
|
612
|
+
return all;
|
|
613
|
+
}
|
|
595
614
|
/**
|
|
596
615
|
* Get category ID containing a specific activity definition
|
|
597
616
|
*
|
|
@@ -836,10 +855,10 @@ class AXPActivityDefinitionService {
|
|
|
836
855
|
this.pendingActivitiesRequests.clear();
|
|
837
856
|
this.pendingActivityRequests.clear();
|
|
838
857
|
}
|
|
839
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
840
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
858
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
859
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, providedIn: 'root' }); }
|
|
841
860
|
}
|
|
842
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
861
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPActivityDefinitionService, decorators: [{
|
|
843
862
|
type: Injectable,
|
|
844
863
|
args: [{
|
|
845
864
|
providedIn: 'root',
|
|
@@ -885,6 +904,82 @@ const AXP_WORKFLOW_ENGINE = new InjectionToken('AXP_WORKFLOW_ENGINE');
|
|
|
885
904
|
* ```
|
|
886
905
|
*/
|
|
887
906
|
class WorkflowExpressionScopeService {
|
|
907
|
+
//#region ---- Private Helpers (dot-notation input normalization) ----
|
|
908
|
+
/**
|
|
909
|
+
* Collect dot-notation key-value pairs from nested objects so that e.g.
|
|
910
|
+
* { metadata: { "metadata.questionnaire.id": "x" } } becomes { "metadata.questionnaire.id": "x" } at root.
|
|
911
|
+
* Top-level non-dot keys are kept as-is.
|
|
912
|
+
*/
|
|
913
|
+
flattenDotKeysFromTree(obj) {
|
|
914
|
+
if (obj === null || typeof obj !== 'object')
|
|
915
|
+
return obj;
|
|
916
|
+
const result = {};
|
|
917
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
918
|
+
if (key.includes('.')) {
|
|
919
|
+
result[key] = value;
|
|
920
|
+
}
|
|
921
|
+
else if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
|
|
922
|
+
for (const [k, v] of Object.entries(value)) {
|
|
923
|
+
if (k.includes('.')) {
|
|
924
|
+
result[k] = v;
|
|
925
|
+
}
|
|
926
|
+
else {
|
|
927
|
+
result[key + '.' + k] = v;
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
else {
|
|
932
|
+
result[key] = value;
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
return result;
|
|
936
|
+
}
|
|
937
|
+
/**
|
|
938
|
+
* Expand flat keys with dots into nested objects.
|
|
939
|
+
* e.g. { "metadata.questionnaire.id": "x" } -> { metadata: { questionnaire: { id: "x" } } }.
|
|
940
|
+
*/
|
|
941
|
+
expandDotKeys(obj) {
|
|
942
|
+
if (obj === null || typeof obj !== 'object')
|
|
943
|
+
return obj;
|
|
944
|
+
const result = {};
|
|
945
|
+
const dotKeys = [];
|
|
946
|
+
const simpleKeys = [];
|
|
947
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
948
|
+
if (key.includes('.')) {
|
|
949
|
+
dotKeys.push([key, value]);
|
|
950
|
+
}
|
|
951
|
+
else {
|
|
952
|
+
simpleKeys.push([key, value]);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
for (const [key, value] of dotKeys) {
|
|
956
|
+
const parts = key.split('.');
|
|
957
|
+
let current = result;
|
|
958
|
+
for (let i = 0; i < parts.length - 1; i++) {
|
|
959
|
+
const part = parts[i];
|
|
960
|
+
if (!(part in current) || typeof current[part] !== 'object' || current[part] === null) {
|
|
961
|
+
current[part] = {};
|
|
962
|
+
}
|
|
963
|
+
current = current[part];
|
|
964
|
+
}
|
|
965
|
+
current[parts[parts.length - 1]] = value;
|
|
966
|
+
}
|
|
967
|
+
for (const [key, value] of simpleKeys) {
|
|
968
|
+
result[key] = value;
|
|
969
|
+
}
|
|
970
|
+
return result;
|
|
971
|
+
}
|
|
972
|
+
/**
|
|
973
|
+
* Normalize workflow input so that flat dot-notation keys (e.g. from form schema
|
|
974
|
+
* "metadata.questionnaire.id") become nested for expression access (inputs.metadata.questionnaire.id).
|
|
975
|
+
*/
|
|
976
|
+
normalizeInputs(input) {
|
|
977
|
+
if (!input || typeof input !== 'object')
|
|
978
|
+
return {};
|
|
979
|
+
const flattened = this.flattenDotKeysFromTree(input);
|
|
980
|
+
return this.expandDotKeys(flattened);
|
|
981
|
+
}
|
|
982
|
+
//#endregion
|
|
888
983
|
//#region ---- Public Methods ----
|
|
889
984
|
/**
|
|
890
985
|
* Build expression evaluation scope for workflow activities.
|
|
@@ -914,10 +1009,12 @@ class WorkflowExpressionScopeService {
|
|
|
914
1009
|
* @returns Expression evaluator scope with workflow data and context.eval() function
|
|
915
1010
|
*/
|
|
916
1011
|
buildScope(context) {
|
|
1012
|
+
// Normalize inputs so flat dot-notation keys (e.g. metadata.questionnaire.id from forms) become nested for expressions
|
|
1013
|
+
const inputs = this.normalizeInputs(context.inputs || {});
|
|
917
1014
|
// Build merged workflow data object for context.eval()
|
|
918
1015
|
// This allows expressions like: context.eval("inputs.userName") or context.eval("variables.count")
|
|
919
1016
|
const workflowData = {
|
|
920
|
-
inputs
|
|
1017
|
+
inputs,
|
|
921
1018
|
variables: context.variables || {},
|
|
922
1019
|
vars: context.variables || {}, // Alias for convenience
|
|
923
1020
|
outputs: context.outputs || {},
|
|
@@ -971,21 +1068,31 @@ class WorkflowExpressionScopeService {
|
|
|
971
1068
|
outputs['last'] = state.lastActivityOutput;
|
|
972
1069
|
}
|
|
973
1070
|
return this.buildScope({
|
|
974
|
-
inputs: state.input || {},
|
|
1071
|
+
inputs: this.normalizeInputs((state.input || {})),
|
|
975
1072
|
variables: state.variables || {},
|
|
976
1073
|
outputs: outputs,
|
|
977
1074
|
});
|
|
978
1075
|
}
|
|
979
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
980
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1076
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1077
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, providedIn: 'root' }); }
|
|
981
1078
|
}
|
|
982
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1079
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: WorkflowExpressionScopeService, decorators: [{
|
|
983
1080
|
type: Injectable,
|
|
984
1081
|
args: [{
|
|
985
1082
|
providedIn: 'root'
|
|
986
1083
|
}]
|
|
987
1084
|
}] });
|
|
988
1085
|
|
|
1086
|
+
//#region ---- Constants ----
|
|
1087
|
+
/**
|
|
1088
|
+
* Activity types handled internally by the workflow engine (e.g. mock backend).
|
|
1089
|
+
* When such an activity is not registered as Command on the client, we skip execution
|
|
1090
|
+
* without warning — the engine will run it when executing the workflow.
|
|
1091
|
+
*/
|
|
1092
|
+
const ENGINE_BUILTIN_ACTIVITY_TYPES = new Set([
|
|
1093
|
+
'workflow-activity:set-variable',
|
|
1094
|
+
'workflow-activity:http-request',
|
|
1095
|
+
]);
|
|
989
1096
|
//#endregion
|
|
990
1097
|
/**
|
|
991
1098
|
* Activity Executor Service
|
|
@@ -1039,8 +1146,10 @@ class ActivityExecutor {
|
|
|
1039
1146
|
// Check if command exists
|
|
1040
1147
|
const commandExists = this.commandService.exists(activityName);
|
|
1041
1148
|
if (!commandExists) {
|
|
1042
|
-
|
|
1043
|
-
`
|
|
1149
|
+
if (!ENGINE_BUILTIN_ACTIVITY_TYPES.has(activityName)) {
|
|
1150
|
+
console.warn(`[ActivityExecutor] ⚠️ Activity '${activityName}' is not registered as Command. ` +
|
|
1151
|
+
`Skipping execution.`);
|
|
1152
|
+
}
|
|
1044
1153
|
return {
|
|
1045
1154
|
output: null,
|
|
1046
1155
|
outcome: 'Done'
|
|
@@ -1053,7 +1162,7 @@ class ActivityExecutor {
|
|
|
1053
1162
|
commandInput = { ...commandInput['properties'] };
|
|
1054
1163
|
}
|
|
1055
1164
|
// Execute activity via CommandBus
|
|
1056
|
-
// Activities
|
|
1165
|
+
// Activities (AXPActivity) return {output, outcome}; legacy may return {output, outcomes}
|
|
1057
1166
|
const result = await this.commandService.execute(activityName, commandInput);
|
|
1058
1167
|
if (!result) {
|
|
1059
1168
|
return {
|
|
@@ -1070,15 +1179,27 @@ class ActivityExecutor {
|
|
|
1070
1179
|
};
|
|
1071
1180
|
}
|
|
1072
1181
|
const commandResult = result.data;
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
// Default to 'Done' if no outcomes specified
|
|
1182
|
+
// Prefer unified outcome in result.metadata; fall back to legacy data.outcome/outcomes.
|
|
1183
|
+
const metadataOutcome = result?.metadata?.['outcome'];
|
|
1076
1184
|
let outcome = 'Done';
|
|
1077
|
-
if (
|
|
1078
|
-
outcome =
|
|
1185
|
+
if (typeof metadataOutcome === 'string' && metadataOutcome.length > 0) {
|
|
1186
|
+
outcome = metadataOutcome;
|
|
1187
|
+
}
|
|
1188
|
+
else if (typeof commandResult?.outcome === 'string' && commandResult.outcome.length > 0) {
|
|
1189
|
+
outcome = commandResult.outcome;
|
|
1190
|
+
}
|
|
1191
|
+
else {
|
|
1192
|
+
const outcomes = (commandResult?.outcomes ?? {});
|
|
1193
|
+
if (outcomes && typeof outcomes === 'object' && Object.keys(outcomes).length > 0) {
|
|
1194
|
+
outcome = outcomes['Done'] ? 'Done' : Object.keys(outcomes)[0] || 'Done';
|
|
1195
|
+
}
|
|
1079
1196
|
}
|
|
1197
|
+
// Prefer output wrapper when present; otherwise treat data itself as output.
|
|
1198
|
+
const output = commandResult && typeof commandResult === 'object' && 'output' in commandResult
|
|
1199
|
+
? commandResult.output
|
|
1200
|
+
: commandResult;
|
|
1080
1201
|
return {
|
|
1081
|
-
output:
|
|
1202
|
+
output: output ?? null,
|
|
1082
1203
|
outcome,
|
|
1083
1204
|
};
|
|
1084
1205
|
}
|
|
@@ -1090,10 +1211,10 @@ class ActivityExecutor {
|
|
|
1090
1211
|
};
|
|
1091
1212
|
}
|
|
1092
1213
|
}
|
|
1093
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1094
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1214
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1215
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, providedIn: 'root' }); }
|
|
1095
1216
|
}
|
|
1096
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1217
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActivityExecutor, decorators: [{
|
|
1097
1218
|
type: Injectable,
|
|
1098
1219
|
args: [{
|
|
1099
1220
|
providedIn: 'root'
|
|
@@ -1141,23 +1262,19 @@ class AXPWorkflowManager {
|
|
|
1141
1262
|
//#endregion
|
|
1142
1263
|
//#region ---- Public Methods ----
|
|
1143
1264
|
/**
|
|
1144
|
-
* Execute frontend activities interactively until reaching human-task or completion.
|
|
1265
|
+
* Execute frontend activities interactively until reaching workflow-activity:human-task or completion.
|
|
1145
1266
|
*
|
|
1146
|
-
*
|
|
1147
|
-
*
|
|
1148
|
-
*
|
|
1149
|
-
* 3. If backend returns nextTask (frontend activity), repeats the process
|
|
1150
|
-
* 4. Continues until workflow completes or reaches human-task
|
|
1267
|
+
* Interactive = show form/popup immediately (user sees and acts). Only workflow-activity:human-task
|
|
1268
|
+
* is not interactive (goes to task board). Other frontend activities (show-layout-popup, show-toast, etc.)
|
|
1269
|
+
* even with taskType human-task in definition are executed here.
|
|
1151
1270
|
*
|
|
1152
1271
|
* @param instanceId - Workflow instance ID
|
|
1153
1272
|
* @param task - Current task to execute
|
|
1154
1273
|
* @param state - Current workflow state
|
|
1155
1274
|
* @param lastActivityOutput - Last activity output (for expression evaluation)
|
|
1156
|
-
* @returns Final result with nextTask (if human-task) or completion status
|
|
1275
|
+
* @returns Final result with nextTask (if workflow-activity:human-task) or completion status
|
|
1157
1276
|
*/
|
|
1158
1277
|
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
|
|
1161
1278
|
let currentTask = task;
|
|
1162
1279
|
let currentState = state;
|
|
1163
1280
|
let currentActivityOutputs = {
|
|
@@ -1168,10 +1285,10 @@ class AXPWorkflowManager {
|
|
|
1168
1285
|
let iterationCount = 0;
|
|
1169
1286
|
while (currentTask && iterationCount < maxIterations) {
|
|
1170
1287
|
iterationCount++;
|
|
1171
|
-
//
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1288
|
+
// Interactive = frontend executionMode and NOT workflow-activity:human-task (that one goes to task board)
|
|
1289
|
+
const isInteractive = (currentTask.executionMode === 'frontend' || currentTask.executionMode === 'both') &&
|
|
1290
|
+
currentTask.activityType !== 'workflow-activity:human-task';
|
|
1291
|
+
if (isInteractive) {
|
|
1175
1292
|
// Execute frontend activity
|
|
1176
1293
|
const execResult = await this.activityExecutor.execute(currentTask, currentState, currentActivityOutputs);
|
|
1177
1294
|
// Track outputs locally (backend should also persist and return them)
|
|
@@ -1208,20 +1325,20 @@ class AXPWorkflowManager {
|
|
|
1208
1325
|
output: completeResponse.output,
|
|
1209
1326
|
};
|
|
1210
1327
|
}
|
|
1211
|
-
// Backend decides: if nextTask is
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1328
|
+
// Backend decides: if nextTask is workflow-activity:human-task or not frontend, return it (task board or done)
|
|
1329
|
+
const nextInteractive = (completeResponse.nextTask.executionMode === 'frontend' || completeResponse.nextTask.executionMode === 'both') &&
|
|
1330
|
+
completeResponse.nextTask.activityType !== 'workflow-activity:human-task';
|
|
1331
|
+
if (!nextInteractive) {
|
|
1215
1332
|
return {
|
|
1216
1333
|
nextTask: completeResponse.nextTask,
|
|
1217
1334
|
state: currentState,
|
|
1218
1335
|
};
|
|
1219
1336
|
}
|
|
1220
|
-
// Continue with next
|
|
1337
|
+
// Continue with next interactive frontend task
|
|
1221
1338
|
currentTask = completeResponse.nextTask;
|
|
1222
1339
|
}
|
|
1223
1340
|
else {
|
|
1224
|
-
// Not
|
|
1341
|
+
// Not interactive (e.g. workflow-activity:human-task) - return as-is for task board
|
|
1225
1342
|
return {
|
|
1226
1343
|
nextTask: currentTask,
|
|
1227
1344
|
state: currentState,
|
|
@@ -1272,15 +1389,14 @@ class AXPWorkflowManager {
|
|
|
1272
1389
|
startNormalizedState.lastUpdated = new Date(startNormalizedState.lastUpdated);
|
|
1273
1390
|
}
|
|
1274
1391
|
this.stateCache.set(response.instanceId, startNormalizedState);
|
|
1275
|
-
// 🎯 Interactive flow: Execute frontend activities
|
|
1276
|
-
// Backend decides what to execute - if pendingTask is executable (ui-activity with frontend/both), execute it
|
|
1392
|
+
// 🎯 Interactive flow: Execute frontend activities that are NOT workflow-activity:human-task (those go to task board)
|
|
1277
1393
|
let finalNextTask = response.pendingTask || null;
|
|
1278
1394
|
let finalOutput = startNormalizedState.output;
|
|
1279
|
-
|
|
1280
|
-
if (
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
const interactiveResult = await this.executeInteractiveFlow(response.instanceId,
|
|
1395
|
+
const pendingTask = response.pendingTask;
|
|
1396
|
+
if (pendingTask &&
|
|
1397
|
+
(pendingTask.executionMode === 'frontend' || pendingTask.executionMode === 'both') &&
|
|
1398
|
+
pendingTask.activityType !== 'workflow-activity:human-task') {
|
|
1399
|
+
const interactiveResult = await this.executeInteractiveFlow(response.instanceId, pendingTask, startNormalizedState, response.activityOutputs || response.state.activityOutputs);
|
|
1284
1400
|
finalNextTask = interactiveResult.nextTask;
|
|
1285
1401
|
startNormalizedState = interactiveResult.state;
|
|
1286
1402
|
if (interactiveResult.output !== undefined) {
|
|
@@ -1342,15 +1458,14 @@ class AXPWorkflowManager {
|
|
|
1342
1458
|
if (normalizedState) {
|
|
1343
1459
|
this.stateCache.set(instanceId, normalizedState);
|
|
1344
1460
|
}
|
|
1345
|
-
// 🎯 Interactive flow: Execute frontend activities
|
|
1346
|
-
// Backend decides what to execute - if nextTask is executable (ui-activity with frontend/both), execute it
|
|
1461
|
+
// 🎯 Interactive flow: Execute frontend activities that are NOT workflow-activity:human-task (those go to task board)
|
|
1347
1462
|
let finalNextTask = response.nextTask || null;
|
|
1348
1463
|
let finalOutput = response.output;
|
|
1349
|
-
|
|
1350
|
-
if (
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
const interactiveResult = await this.executeInteractiveFlow(instanceId,
|
|
1464
|
+
const nextTask = response.nextTask;
|
|
1465
|
+
if (nextTask &&
|
|
1466
|
+
(nextTask.executionMode === 'frontend' || nextTask.executionMode === 'both') &&
|
|
1467
|
+
nextTask.activityType !== 'workflow-activity:human-task') {
|
|
1468
|
+
const interactiveResult = await this.executeInteractiveFlow(instanceId, nextTask, normalizedState, normalizedState?.activityOutputs);
|
|
1354
1469
|
finalNextTask = interactiveResult.nextTask;
|
|
1355
1470
|
normalizedState = interactiveResult.state;
|
|
1356
1471
|
if (interactiveResult.output !== undefined) {
|
|
@@ -1420,10 +1535,10 @@ class AXPWorkflowManager {
|
|
|
1420
1535
|
return null;
|
|
1421
1536
|
}
|
|
1422
1537
|
}
|
|
1423
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1424
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1538
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1539
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, providedIn: 'root' }); }
|
|
1425
1540
|
}
|
|
1426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1541
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, decorators: [{
|
|
1427
1542
|
type: Injectable,
|
|
1428
1543
|
args: [{
|
|
1429
1544
|
providedIn: 'root',
|
|
@@ -1559,9 +1674,10 @@ class AXPWorkflowLocalEngine {
|
|
|
1559
1674
|
throw new Error(`Workflow instance not found: ${request.instanceId}`);
|
|
1560
1675
|
}
|
|
1561
1676
|
// Store activity result (from external execution)
|
|
1677
|
+
const outcome = request.outcome ?? 'Done';
|
|
1562
1678
|
localState.activityResults.set(request.stepId, {
|
|
1563
1679
|
output: request.userInput || {},
|
|
1564
|
-
outcome
|
|
1680
|
+
outcome,
|
|
1565
1681
|
});
|
|
1566
1682
|
localState.completedActivities.add(request.stepId);
|
|
1567
1683
|
// Store activity output for expression evaluation
|
|
@@ -1589,7 +1705,7 @@ class AXPWorkflowLocalEngine {
|
|
|
1589
1705
|
}
|
|
1590
1706
|
return {
|
|
1591
1707
|
output: request.userInput || {},
|
|
1592
|
-
outcomes: { [
|
|
1708
|
+
outcomes: { [outcome]: true },
|
|
1593
1709
|
state: localState.state,
|
|
1594
1710
|
nextTask: nextTask || null,
|
|
1595
1711
|
};
|
|
@@ -1792,9 +1908,10 @@ class AXPWorkflowLocalEngine {
|
|
|
1792
1908
|
throw new Error(`Workflow instance not found: ${request.instanceId}`);
|
|
1793
1909
|
}
|
|
1794
1910
|
// Store activity result
|
|
1911
|
+
const outcome = request.outcome ?? 'Done';
|
|
1795
1912
|
localState.activityResults.set(request.activityNode, {
|
|
1796
1913
|
output: request.output || {},
|
|
1797
|
-
outcome
|
|
1914
|
+
outcome,
|
|
1798
1915
|
});
|
|
1799
1916
|
localState.completedActivities.add(request.activityNode);
|
|
1800
1917
|
// Store outputs for expression evaluation
|
|
@@ -1819,15 +1936,15 @@ class AXPWorkflowLocalEngine {
|
|
|
1819
1936
|
}
|
|
1820
1937
|
return {
|
|
1821
1938
|
output: request.output || {},
|
|
1822
|
-
outcomes: { [
|
|
1939
|
+
outcomes: { [outcome]: true },
|
|
1823
1940
|
nextTask: nextTask || null,
|
|
1824
1941
|
state: localState.state,
|
|
1825
1942
|
};
|
|
1826
1943
|
}
|
|
1827
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1828
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1944
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1945
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine }); }
|
|
1829
1946
|
}
|
|
1830
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1947
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowLocalEngine, decorators: [{
|
|
1831
1948
|
type: Injectable
|
|
1832
1949
|
}] });
|
|
1833
1950
|
|
|
@@ -2248,10 +2365,10 @@ class AXPWorkflowDefinitionService {
|
|
|
2248
2365
|
this.pendingWorkflowsRequests.clear();
|
|
2249
2366
|
this.pendingWorkflowRequests.clear();
|
|
2250
2367
|
}
|
|
2251
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2252
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2368
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2369
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, providedIn: 'root' }); }
|
|
2253
2370
|
}
|
|
2254
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2371
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowDefinitionService, decorators: [{
|
|
2255
2372
|
type: Injectable,
|
|
2256
2373
|
args: [{
|
|
2257
2374
|
providedIn: 'root',
|
|
@@ -2343,9 +2460,9 @@ class AXPWorkflowModule {
|
|
|
2343
2460
|
f();
|
|
2344
2461
|
});
|
|
2345
2462
|
}
|
|
2346
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2347
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2348
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2463
|
+
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 }); }
|
|
2464
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule }); }
|
|
2465
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, providers: [
|
|
2349
2466
|
AXPWorkflowLocalEngine,
|
|
2350
2467
|
{
|
|
2351
2468
|
provide: AXP_WORKFLOW_ENGINE,
|
|
@@ -2354,7 +2471,7 @@ class AXPWorkflowModule {
|
|
|
2354
2471
|
AXPWorkflowManager,
|
|
2355
2472
|
] }); }
|
|
2356
2473
|
}
|
|
2357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2474
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowModule, decorators: [{
|
|
2358
2475
|
type: NgModule,
|
|
2359
2476
|
args: [{
|
|
2360
2477
|
imports: [],
|