@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.
Files changed (55) hide show
  1. package/fesm2022/acorex-platform-common.mjs +6 -2
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-core.mjs +8 -1
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-domain.mjs +3 -0
  6. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-builder.mjs +22 -5
  8. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-components.mjs +25 -13
  10. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-designer.mjs +203 -55
  12. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-entity.mjs +622 -121
  14. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widget-core.mjs +169 -85
  16. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-widgets.mjs +643 -311
  18. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-runtime.mjs +120 -9
  20. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  21. 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
  22. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cx1lLUaR.mjs.map +1 -0
  23. 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
  24. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-AOrcgjDF.mjs.map +1 -0
  25. 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
  26. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-BfCeUU5F.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-themes-default.mjs +10 -10
  28. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  29. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs} +2 -2
  30. package/fesm2022/acorex-platform-themes-shared-settings.provider-D13QB3Hr.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  32. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  33. 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
  34. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-themes-shared.mjs +183 -84
  36. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  37. package/fesm2022/acorex-platform-workflow.mjs +50 -10
  38. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  39. package/package.json +1 -1
  40. package/types/acorex-platform-core.d.ts +13 -2
  41. package/types/acorex-platform-domain.d.ts +28 -2
  42. package/types/acorex-platform-layout-builder.d.ts +41 -27
  43. package/types/acorex-platform-layout-designer.d.ts +55 -15
  44. package/types/acorex-platform-layout-entity.d.ts +145 -11
  45. package/types/acorex-platform-layout-widget-core.d.ts +81 -68
  46. package/types/acorex-platform-layout-widgets.d.ts +25 -5
  47. package/types/acorex-platform-runtime.d.ts +156 -61
  48. package/types/acorex-platform-workflow.d.ts +37 -2
  49. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +0 -1
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +0 -1
  51. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  53. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs +0 -65
  54. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +0 -1
  55. 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 workflow-activity:human-task (that one goes to task board)
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 !== 'workflow-activity:human-task';
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 workflow-activity:human-task or not frontend, return it (task board or done)
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 !== 'workflow-activity:human-task';
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. workflow-activity:human-task) - return as-is for task board
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 workflow-activity:human-task (those go to task board)
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 !== 'workflow-activity:human-task') {
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 workflow-activity:human-task (those go to task board)
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 !== 'workflow-activity:human-task') {
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