@acorex/platform 21.0.0-next.39 → 21.0.0-next.40
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-common.mjs +6 -2
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +8 -1
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-domain.mjs +3 -0
- package/fesm2022/acorex-platform-domain.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +22 -5
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +25 -13
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +203 -55
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +622 -121
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +169 -85
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +643 -311
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-runtime.mjs +120 -9
- package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs → acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs → acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs → acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs} +3 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +10 -10
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
- package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
- package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs} +38 -16
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-shared.mjs +183 -84
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +50 -10
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-core.d.ts +13 -2
- package/types/acorex-platform-domain.d.ts +28 -2
- package/types/acorex-platform-layout-builder.d.ts +41 -27
- package/types/acorex-platform-layout-designer.d.ts +55 -15
- package/types/acorex-platform-layout-entity.d.ts +145 -11
- package/types/acorex-platform-layout-widget-core.d.ts +81 -68
- package/types/acorex-platform-layout-widgets.d.ts +25 -5
- package/types/acorex-platform-runtime.d.ts +156 -61
- package/types/acorex-platform-workflow.d.ts +37 -2
- package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +0 -65
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +0 -1
|
@@ -872,6 +872,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
872
872
|
*/
|
|
873
873
|
const AXP_WORKFLOW_ENGINE = new InjectionToken('AXP_WORKFLOW_ENGINE');
|
|
874
874
|
|
|
875
|
+
/**
|
|
876
|
+
* Activity types that use the task board (suspend until user acts via inbox), not inline interactive execution.
|
|
877
|
+
*/
|
|
878
|
+
const AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES = [
|
|
879
|
+
'workflow-activity:human-task',
|
|
880
|
+
'workflow-activity:cartable',
|
|
881
|
+
];
|
|
882
|
+
function axpIsWorkflowTaskBoardActivityType(activityType) {
|
|
883
|
+
return !!activityType && AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES.includes(activityType);
|
|
884
|
+
}
|
|
885
|
+
|
|
875
886
|
//#endregion
|
|
876
887
|
/**
|
|
877
888
|
* Workflow Expression Scope Service
|
|
@@ -1299,9 +1310,9 @@ class AXPWorkflowManager {
|
|
|
1299
1310
|
let iterationCount = 0;
|
|
1300
1311
|
while (currentTask && iterationCount < maxIterations) {
|
|
1301
1312
|
iterationCount++;
|
|
1302
|
-
// Interactive = frontend executionMode and NOT
|
|
1313
|
+
// Interactive = frontend executionMode and NOT task-board activities (human-task, cartable)
|
|
1303
1314
|
const isInteractive = (currentTask.executionMode === 'frontend' || currentTask.executionMode === 'both') &&
|
|
1304
|
-
currentTask.activityType
|
|
1315
|
+
!axpIsWorkflowTaskBoardActivityType(currentTask.activityType);
|
|
1305
1316
|
if (isInteractive) {
|
|
1306
1317
|
// Execute frontend activity
|
|
1307
1318
|
const execResult = await this.activityExecutor.execute(currentTask, currentState, currentActivityOutputs);
|
|
@@ -1339,9 +1350,9 @@ class AXPWorkflowManager {
|
|
|
1339
1350
|
output: completeResponse.output,
|
|
1340
1351
|
};
|
|
1341
1352
|
}
|
|
1342
|
-
// Backend decides: if nextTask is
|
|
1353
|
+
// Backend decides: if nextTask is task-board activity or not frontend, return it (task board or done)
|
|
1343
1354
|
const nextInteractive = (completeResponse.nextTask.executionMode === 'frontend' || completeResponse.nextTask.executionMode === 'both') &&
|
|
1344
|
-
completeResponse.nextTask.activityType
|
|
1355
|
+
!axpIsWorkflowTaskBoardActivityType(completeResponse.nextTask.activityType);
|
|
1345
1356
|
if (!nextInteractive) {
|
|
1346
1357
|
return {
|
|
1347
1358
|
nextTask: completeResponse.nextTask,
|
|
@@ -1352,7 +1363,7 @@ class AXPWorkflowManager {
|
|
|
1352
1363
|
currentTask = completeResponse.nextTask;
|
|
1353
1364
|
}
|
|
1354
1365
|
else {
|
|
1355
|
-
// Not interactive (e.g.
|
|
1366
|
+
// Not interactive (e.g. human-task / cartable) - return as-is for task board
|
|
1356
1367
|
return {
|
|
1357
1368
|
nextTask: currentTask,
|
|
1358
1369
|
state: currentState,
|
|
@@ -1403,13 +1414,13 @@ class AXPWorkflowManager {
|
|
|
1403
1414
|
startNormalizedState.lastUpdated = new Date(startNormalizedState.lastUpdated);
|
|
1404
1415
|
}
|
|
1405
1416
|
this.stateCache.set(response.instanceId, startNormalizedState);
|
|
1406
|
-
// 🎯 Interactive flow: Execute frontend activities that are NOT
|
|
1417
|
+
// 🎯 Interactive flow: Execute frontend activities that are NOT task-board types (those go to task board)
|
|
1407
1418
|
let finalNextTask = response.pendingTask || null;
|
|
1408
1419
|
let finalOutput = startNormalizedState.output;
|
|
1409
1420
|
const pendingTask = response.pendingTask;
|
|
1410
1421
|
if (pendingTask &&
|
|
1411
1422
|
(pendingTask.executionMode === 'frontend' || pendingTask.executionMode === 'both') &&
|
|
1412
|
-
pendingTask.activityType
|
|
1423
|
+
!axpIsWorkflowTaskBoardActivityType(pendingTask.activityType)) {
|
|
1413
1424
|
const interactiveResult = await this.executeInteractiveFlow(response.instanceId, pendingTask, startNormalizedState, response.activityOutputs || response.state.activityOutputs);
|
|
1414
1425
|
finalNextTask = interactiveResult.nextTask;
|
|
1415
1426
|
startNormalizedState = interactiveResult.state;
|
|
@@ -1472,13 +1483,13 @@ class AXPWorkflowManager {
|
|
|
1472
1483
|
if (normalizedState) {
|
|
1473
1484
|
this.stateCache.set(instanceId, normalizedState);
|
|
1474
1485
|
}
|
|
1475
|
-
// 🎯 Interactive flow: Execute frontend activities that are NOT
|
|
1486
|
+
// 🎯 Interactive flow: Execute frontend activities that are NOT task-board types (those go to task board)
|
|
1476
1487
|
let finalNextTask = response.nextTask || null;
|
|
1477
1488
|
let finalOutput = response.output;
|
|
1478
1489
|
const nextTask = response.nextTask;
|
|
1479
1490
|
if (nextTask &&
|
|
1480
1491
|
(nextTask.executionMode === 'frontend' || nextTask.executionMode === 'both') &&
|
|
1481
|
-
nextTask.activityType
|
|
1492
|
+
!axpIsWorkflowTaskBoardActivityType(nextTask.activityType)) {
|
|
1482
1493
|
const interactiveResult = await this.executeInteractiveFlow(instanceId, nextTask, normalizedState, normalizedState?.activityOutputs);
|
|
1483
1494
|
finalNextTask = interactiveResult.nextTask;
|
|
1484
1495
|
normalizedState = interactiveResult.state;
|
|
@@ -1549,6 +1560,35 @@ class AXPWorkflowManager {
|
|
|
1549
1560
|
return null;
|
|
1550
1561
|
}
|
|
1551
1562
|
}
|
|
1563
|
+
/**
|
|
1564
|
+
* Claim a pooled workflow task (assign current user on the bookmark without advancing the workflow).
|
|
1565
|
+
* Supported only when the injected workflow engine implements {@link AXPWorkflowEngine.claimTask}.
|
|
1566
|
+
*/
|
|
1567
|
+
async claimTask(instanceId, bookmarkId, stepId) {
|
|
1568
|
+
const claim = this.workflowEngine.claimTask?.bind(this.workflowEngine);
|
|
1569
|
+
if (!claim) {
|
|
1570
|
+
return {
|
|
1571
|
+
success: false,
|
|
1572
|
+
instanceId,
|
|
1573
|
+
error: 'Claim task is not supported by this workflow engine',
|
|
1574
|
+
};
|
|
1575
|
+
}
|
|
1576
|
+
try {
|
|
1577
|
+
const result = await claim({ instanceId, bookmarkId, stepId });
|
|
1578
|
+
return {
|
|
1579
|
+
success: result.success,
|
|
1580
|
+
instanceId,
|
|
1581
|
+
error: result.error,
|
|
1582
|
+
};
|
|
1583
|
+
}
|
|
1584
|
+
catch (error) {
|
|
1585
|
+
return {
|
|
1586
|
+
success: false,
|
|
1587
|
+
instanceId,
|
|
1588
|
+
error: error instanceof Error ? error.message : 'Failed to claim task',
|
|
1589
|
+
};
|
|
1590
|
+
}
|
|
1591
|
+
}
|
|
1552
1592
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1553
1593
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPWorkflowManager, providedIn: 'root' }); }
|
|
1554
1594
|
}
|
|
@@ -2517,5 +2557,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
2517
2557
|
* Generated bundle index. Do not edit.
|
|
2518
2558
|
*/
|
|
2519
2559
|
|
|
2520
|
-
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 };
|
|
2560
|
+
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, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowTaskBoardActivityType, createWorkFlowEvent, ofType };
|
|
2521
2561
|
//# sourceMappingURL=acorex-platform-workflow.mjs.map
|