@acorex/modules 21.0.0-next.37 → 21.0.0-next.39

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 (256) hide show
  1. package/fesm2022/{acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs → acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs} +260 -80
  2. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs.map +1 -0
  3. package/fesm2022/{acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs → acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs} +14 -19
  4. package/fesm2022/acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs.map +1 -0
  5. package/fesm2022/{acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs → acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs} +52 -8
  6. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs} +49 -7
  8. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs.map → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs → acorex-modules-ai-management-index-CjTjfydP.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs.map → acorex-modules-ai-management-index-CjTjfydP.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs.map → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs.map → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs.map} +1 -1
  17. package/fesm2022/acorex-modules-ai-management.mjs +1 -1
  18. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs} +509 -436
  19. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-assessment-management-index-B2SncZAW.mjs → acorex-modules-assessment-management-index-B2l5Se1l.mjs} +25 -26
  27. package/fesm2022/acorex-modules-assessment-management-index-B2l5Se1l.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs → acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs} +10 -11
  29. package/fesm2022/acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs.map +1 -0
  30. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs} +3 -3
  39. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs} +3 -3
  41. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs.map → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs.map} +1 -1
  46. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  47. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs → acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs} +519 -81
  48. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs.map → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs → acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs} +60 -38
  52. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs → acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs} +6 -48
  56. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs → acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs} +53 -100
  58. package/fesm2022/acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-asset-management-asset.entity-CamZGWTM.mjs → acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs} +66 -56
  60. package/fesm2022/acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs.map → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs.map} +1 -1
  63. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  64. package/fesm2022/acorex-modules-common.mjs +38 -41
  65. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  66. package/fesm2022/acorex-modules-conversation.mjs +1046 -249
  67. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-dashboard-management.mjs +1098 -706
  69. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  70. package/fesm2022/acorex-modules-data-management.mjs +63 -35
  71. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  72. package/fesm2022/acorex-modules-document-management.mjs +101 -57
  73. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  74. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs → acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs} +48 -21
  75. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  77. package/fesm2022/acorex-modules-location-management.mjs +18 -99
  78. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs +7137 -0
  80. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs.map +1 -0
  81. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs → acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs} +3 -3
  96. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs.map +1 -0
  97. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs} +2 -2
  98. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs.map} +1 -1
  99. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs +443 -0
  100. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs.map +1 -0
  101. package/fesm2022/acorex-modules-maintenance-management.mjs +1 -3579
  102. package/fesm2022/acorex-modules-maintenance-management.mjs.map +1 -1
  103. package/fesm2022/acorex-modules-notification-management.mjs +11 -5
  104. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  105. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs +356 -0
  106. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs +181 -0
  108. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs.map +1 -0
  109. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs +359 -0
  110. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs.map +1 -0
  111. package/fesm2022/{acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs → acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs} +33 -29
  112. package/fesm2022/acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs.map +1 -0
  113. package/fesm2022/{acorex-modules-organization-management-company.entity-BohMJQNi.mjs → acorex-modules-organization-management-company.entity-wpNiu8g3.mjs} +6 -8
  114. package/fesm2022/acorex-modules-organization-management-company.entity-wpNiu8g3.mjs.map +1 -0
  115. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs +48 -0
  116. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs.map +1 -0
  117. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs +59 -0
  118. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs.map +1 -0
  119. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs +19 -0
  120. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs.map +1 -0
  121. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs} +2 -2
  122. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs.map → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs.map} +1 -1
  123. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs +95 -0
  124. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs.map +1 -0
  125. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs +274 -0
  126. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs.map +1 -0
  127. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs +193 -0
  128. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs.map +1 -0
  129. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs +1081 -0
  130. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs.map +1 -0
  131. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs +77 -0
  132. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs.map +1 -0
  133. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
  134. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
  135. package/fesm2022/{acorex-modules-organization-management-position.entity-DLPufeWz.mjs → acorex-modules-organization-management-position.entity-BveMCKMd.mjs} +108 -106
  136. package/fesm2022/acorex-modules-organization-management-position.entity-BveMCKMd.mjs.map +1 -0
  137. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs} +25 -29
  138. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs.map +1 -0
  139. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs} +2 -2
  140. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs.map} +1 -1
  141. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs → acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs} +14 -21
  142. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs.map +1 -0
  143. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs +137 -0
  144. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs.map +1 -0
  145. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs} +2 -2
  146. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs.map → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs.map} +1 -1
  147. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs +228 -0
  148. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs → acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs} +68 -8
  150. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs} +2 -2
  152. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs.map → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs.map} +1 -1
  153. package/fesm2022/{acorex-modules-organization-management-team.entity-CGR0UlYl.mjs → acorex-modules-organization-management-team.entity-uVffZPeg.mjs} +100 -37
  154. package/fesm2022/acorex-modules-organization-management-team.entity-uVffZPeg.mjs.map +1 -0
  155. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs +48 -0
  156. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs.map +1 -0
  157. package/fesm2022/acorex-modules-organization-management.mjs +1 -2216
  158. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  159. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs +40 -0
  160. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs.map +1 -0
  161. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs +33 -0
  162. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs.map +1 -0
  163. package/fesm2022/acorex-modules-platform-dev-tools.mjs +14 -94
  164. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  165. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs → acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs} +107 -107
  166. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs.map +1 -0
  167. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  168. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs} +65 -76
  169. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs.map +1 -0
  170. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs} +2 -2
  171. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs.map} +1 -1
  172. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs} +2 -2
  173. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs.map} +1 -1
  174. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs} +2 -2
  175. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs.map} +1 -1
  176. package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
  177. package/fesm2022/acorex-modules-security-management.mjs +269 -190
  178. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  179. package/fesm2022/{acorex-modules-task-management-task-board.page-C1H_GTqy.mjs → acorex-modules-task-management-task-board.page-DA2563QE.mjs} +15 -10
  180. package/fesm2022/acorex-modules-task-management-task-board.page-DA2563QE.mjs.map +1 -0
  181. package/fesm2022/acorex-modules-task-management.mjs +27 -13
  182. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  183. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs +5 -0
  184. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs.map +1 -0
  185. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs} +14 -6
  186. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs.map +1 -0
  187. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs} +31 -16
  188. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs.map +1 -0
  189. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs → acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs} +10 -12
  190. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs.map +1 -0
  191. package/fesm2022/{acorex-modules-workflow-management-index-DWIDQsWq.mjs → acorex-modules-workflow-management-index-C9Qc07oK.mjs} +125 -3
  192. package/fesm2022/acorex-modules-workflow-management-index-C9Qc07oK.mjs.map +1 -0
  193. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs +726 -0
  194. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs.map +1 -0
  195. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs +294 -0
  196. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs.map +1 -0
  197. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs +56 -0
  198. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs.map +1 -0
  199. package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs → acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs} +101 -140
  200. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs.map +1 -0
  201. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs → acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs} +10 -1
  202. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs.map +1 -0
  203. package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs → acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs} +11 -7
  204. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs.map +1 -0
  205. package/fesm2022/acorex-modules-workflow-management.mjs +746 -402
  206. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  207. package/organization-management/README.md +1 -1
  208. package/package.json +2 -2
  209. package/types/acorex-modules-ai-management.d.ts +64 -16
  210. package/types/acorex-modules-asset-management.d.ts +115 -58
  211. package/types/acorex-modules-common.d.ts +2 -4
  212. package/types/acorex-modules-dashboard-management.d.ts +226 -109
  213. package/types/acorex-modules-data-management.d.ts +2 -2
  214. package/types/acorex-modules-document-management.d.ts +1 -2
  215. package/types/acorex-modules-human-capital-management.d.ts +6 -0
  216. package/types/acorex-modules-maintenance-management.d.ts +561 -41
  217. package/types/acorex-modules-notification-management.d.ts +7 -3
  218. package/types/acorex-modules-organization-management.d.ts +52 -107
  219. package/types/acorex-modules-security-management.d.ts +15 -1
  220. package/types/acorex-modules-task-management.d.ts +8 -13
  221. package/types/acorex-modules-workflow-management.d.ts +67 -13
  222. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-assessment-management-index-B2SncZAW.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-asset-management-asset.entity-CamZGWTM.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs +0 -91
  237. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-organization-management-company.entity-BohMJQNi.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs +0 -784
  241. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-organization-management-position.entity-DLPufeWz.mjs.map +0 -1
  243. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs.map +0 -1
  245. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs.map +0 -1
  246. package/fesm2022/acorex-modules-organization-management-team.entity-CGR0UlYl.mjs.map +0 -1
  247. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs.map +0 -1
  248. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs.map +0 -1
  249. package/fesm2022/acorex-modules-task-management-task-board.page-C1H_GTqy.mjs.map +0 -1
  250. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs.map +0 -1
  251. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs.map +0 -1
  252. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs.map +0 -1
  253. package/fesm2022/acorex-modules-workflow-management-index-DWIDQsWq.mjs.map +0 -1
  254. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs.map +0 -1
  255. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs.map +0 -1
  256. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-workflow-management-index-D8fjNgQJ.mjs","sources":["../../../../libs/modules/workflow-management/src/lib/features/workflow-definition-activities-page/workflow-definition-activities-page.component.ts","../../../../libs/modules/workflow-management/src/lib/features/workflow-definition-activities-page/workflow-definition-activities-page.component.html","../../../../libs/modules/workflow-management/src/lib/features/workflow-definition-activities-page/workflow-definition-activities-page-component.provider.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXFormModule } from '@acorex/components/form';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPActionMenuItem,\n AXPBroadcastEventService,\n AXPDataGenerator,\n AXPExecuteCommand,\n AXPExecuteCommandResult,\n type AXPMultiLanguageString,\n type AXPProperty,\n} from '@acorex/platform/core';\nimport {\n AXPPropertyViewerChangedEvent,\n AXPPropertyViewerComponent,\n AXPPropertyViewerTab,\n buildPropertyViewerTabsFromProperties,\n} from '@acorex/platform/layout/components';\nimport { AXPEntityEventsKeys, AXPEntityService } from '@acorex/platform/layout/entity';\nimport type { AXPLayoutDetailsViewAction } from '@acorex/platform/layout/views';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';\nimport { mapAXPPropertyToWidgetProperty, type AXPWidgetPropertyGroup } from '@acorex/platform/layout/widget-core';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport {\n AXPActivityDefinitionService,\n type AXPActivityDefinition,\n type AXPConnection,\n type AXPWorkflowActivityInstance,\n type AXPWorkflowGraph,\n} from '@acorex/platform/workflow';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n untracked,\n viewChild,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport { RootConfig } from '../../const';\nimport {\n SaveWorkflowDefinitionActivitiesInput,\n WORKFLOW_DEFINITION_ACTIVITIES_SAVE_COMMAND,\n} from '../../entities/workflow-definition/commands/save-workflow-definition-activities.command';\n\n//#endregion\n\n//#region ---- Types ----\n\ninterface ActivityEditorRow {\n id: string;\n name: string;\n inputs: Record<string, unknown>;\n /** Carried from {@link AXPWorkflowActivityInstance.extensions} (e.g. mock `displayTitle` for select label before catalog loads). */\n extensions?: Record<string, unknown>;\n}\n\ninterface ActivitySelectItem {\n value: string;\n text: string;\n}\n\n/** Select box value meaning “no next activity” (empty string breaks some list UIs). */\nconst CONNECTION_TARGET_END = '__axm_wf_connection_end__';\n\ninterface OutcomePortRow {\n port: string;\n label: string;\n}\n\nconst WORKFLOW_DEFINITION_ACTIVITIES_DISCARD_COMMAND = 'WorkflowManagement.WorkflowDefinition:Activities:Discard';\nconst WORKFLOW_DEFINITION_ACTIVITIES_ADD_STEP_COMMAND = 'WorkflowManagement.WorkflowDefinition:Activities:AddStep';\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction normalizeActivityDefinitionInputs(raw: unknown): AXPProperty[] {\n if (Array.isArray(raw)) {\n return raw as AXPProperty[];\n }\n if (typeof raw === 'string' && raw.trim().length > 0) {\n try {\n const parsed = JSON.parse(raw) as unknown;\n return Array.isArray(parsed) ? (parsed as AXPProperty[]) : [];\n } catch {\n return [];\n }\n }\n return [];\n}\n\nfunction portKey(port: string | null | undefined): string {\n return port == null || port === '' ? 'Done' : port;\n}\n\nfunction coerceActivityName(raw: unknown): string {\n if (typeof raw === 'string') {\n return raw;\n }\n return '';\n}\n\nfunction rowFromInstance(a: AXPWorkflowActivityInstance): ActivityEditorRow {\n const inputs =\n a.inputs != null && typeof a.inputs === 'object' && !Array.isArray(a.inputs)\n ? { ...(a.inputs as Record<string, unknown>) }\n : {};\n const extRaw = a.extensions;\n const extensions =\n extRaw != null && typeof extRaw === 'object' && !Array.isArray(extRaw)\n ? { ...(extRaw as Record<string, unknown>) }\n : undefined;\n return {\n id: a.id,\n name: coerceActivityName(a.name),\n inputs,\n ...(extensions != null && Object.keys(extensions).length > 0 ? { extensions } : {}),\n };\n}\n\nfunction instanceFromRow(r: ActivityEditorRow): AXPWorkflowActivityInstance {\n const out: AXPWorkflowActivityInstance = {\n id: r.id,\n name: r.name,\n inputs: { ...r.inputs },\n };\n if (r.extensions != null && Object.keys(r.extensions).length > 0) {\n out.extensions = { ...r.extensions };\n }\n return out;\n}\n\nfunction graphContentFingerprint(g: AXPWorkflowGraph | null): unknown {\n if (g == null) {\n return null;\n }\n return {\n startActivityId: g.startActivityId,\n activities: g.activities,\n connections: g.connections,\n };\n}\n\nfunction emptyGraph(): AXPWorkflowGraph {\n return {\n startActivityId: '',\n activities: [],\n connections: [],\n };\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-workflow-definition-activities-page',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXSelectBoxModule,\n AXSearchBoxModule,\n AXFormModule,\n AXTranslationModule,\n AXPPropertyViewerComponent,\n ],\n templateUrl: './workflow-definition-activities-page.component.html',\n styleUrl: './workflow-definition-activities-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMWorkflowDefinitionActivitiesPageComponent,\n },\n ],\n})\nexport class AXMWorkflowDefinitionActivitiesPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Inputs ----\n\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly eventService = inject(AXPBroadcastEventService);\n private readonly entityService = inject(AXPEntityService);\n private readonly activityDefService = inject(AXPActivityDefinitionService);\n private readonly mlResolver = inject(AXTranslationService);\n private readonly hostPageLayout = inject(AXPPageLayoutBase, { optional: true, skipSelf: true });\n\n //#endregion\n\n //#region ---- View refs ----\n\n private readonly propertyViewerRef = viewChild(AXPPropertyViewerComponent);\n\n //#endregion\n\n //#region ---- State ----\n\n private readonly activityCatalogLoaded = signal(false);\n protected readonly activitySelectItems = signal<ActivitySelectItem[]>([]);\n\n protected readonly activities = signal<ActivityEditorRow[]>([]);\n protected readonly connections = signal<AXPConnection[]>([]);\n protected readonly startActivityId = signal<string>('');\n protected readonly selectedRowId = signal<string | null>(null);\n protected readonly viewerTabs = signal<AXPPropertyViewerTab[]>([]);\n protected readonly selectedActivityOutcomeRows = signal<OutcomePortRow[]>([]);\n protected readonly connectionEndOptionText = signal('(End workflow)');\n\n private readonly baselineGraph = signal<AXPWorkflowGraph | null>(null);\n protected readonly isDirty = signal(false);\n\n //#endregion\n\n //#region ---- Computed ----\n\n private readonly context = computed(() => this.rootContext() ?? {});\n\n protected readonly selectedRow = computed(() => {\n const id = this.selectedRowId();\n if (id == null) {\n return null;\n }\n return this.activities().find((r) => r.id === id) ?? null;\n });\n\n protected readonly startActivityItems = computed<ActivitySelectItem[]>(() =>\n this.activities().map((r) => ({\n value: r.id,\n text: this.formatActivityStepLabel(r),\n })),\n );\n\n /**\n * Entity catalog plus any activity type names already on the graph (so selects always resolve labels).\n */\n protected readonly activitySelectOptions = computed<ActivitySelectItem[]>(() => {\n const graphTitleByName = new Map<string, string>();\n for (const r of this.activities()) {\n const n = r.name?.trim();\n if (!n) {\n continue;\n }\n const ext = r.extensions;\n const dt = ext && typeof ext['displayTitle'] === 'string' ? ext['displayTitle'].trim() : '';\n if (dt) {\n graphTitleByName.set(n, dt);\n }\n }\n const byValue = new Map<string, ActivitySelectItem>();\n for (const x of this.activitySelectItems()) {\n const text = graphTitleByName.get(x.value) ?? x.text;\n byValue.set(x.value, { value: x.value, text });\n }\n for (const r of this.activities()) {\n const n = r.name?.trim();\n if (!n || byValue.has(n)) {\n continue;\n }\n const text = graphTitleByName.get(n) ?? n;\n byValue.set(n, { value: n, text });\n }\n return [...byValue.values()].sort((a, b) => a.text.localeCompare(b.text));\n });\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n constructor() {\n super();\n void this.translateService\n .translateAsync(\n '@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.connection-end',\n )\n .then((t) => this.connectionEndOptionText.set(t?.trim() ? t : '(End workflow)'));\n\n let previousRootId: unknown = undefined;\n effect(() => {\n const ctx = this.rootContext();\n const currentId = ctx != null && typeof ctx === 'object' ? ctx['id'] : undefined;\n if (currentId !== previousRootId) {\n previousRootId = currentId;\n untracked(() => {\n const graph = ctx?.['graph'] as AXPWorkflowGraph | undefined;\n const rows = (graph?.activities ?? []).map((a) => rowFromInstance(a));\n this.baselineGraph.set(graph != null ? cloneDeep(graph) : emptyGraph());\n this.activities.set(rows);\n this.connections.set(cloneDeep(graph?.connections ?? []));\n let start = graph?.startActivityId ?? '';\n if (!start && rows.length > 0) {\n start = rows[0]!.id;\n }\n this.startActivityId.set(start);\n this.selectedRowId.set(rows[0]?.id ?? null);\n this.isDirty.set(false);\n void this.ensureActivityCatalogLoaded();\n void this.refreshPropertyViewer();\n });\n }\n });\n }\n\n //#endregion\n\n //#region ---- Page chrome ----\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const addTitle =\n (await this.translateService.translateAsync(\n '@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.add-step',\n )) || 'Add step';\n const discardTitle = (await this.translateService.translateAsync('@general:actions.discard.title')) || 'Discard';\n const saveTitle = (await this.translateService.translateAsync('@general:actions.save.title')) || 'Save';\n\n const addAction: AXPLayoutDetailsViewAction = {\n title: addTitle,\n icon: 'fa-light fa-plus',\n zone: 'header',\n priority: 'primary',\n color: 'primary',\n command: {\n name: WORKFLOW_DEFINITION_ACTIVITIES_ADD_STEP_COMMAND,\n options: {},\n },\n };\n const discardAction: AXPLayoutDetailsViewAction = {\n title: discardTitle,\n icon: 'fa-light fa-rotate-left',\n zone: 'footer',\n priority: 'secondary',\n color: 'default',\n visible: this.isDirty(),\n command: {\n name: WORKFLOW_DEFINITION_ACTIVITIES_DISCARD_COMMAND,\n options: {},\n },\n };\n const saveAction: AXPLayoutDetailsViewAction = {\n title: saveTitle,\n icon: 'fa-light fa-floppy-disk',\n zone: 'footer',\n priority: 'primary',\n color: 'primary',\n visible: this.isDirty(),\n command: {\n name: WORKFLOW_DEFINITION_ACTIVITIES_SAVE_COMMAND,\n options: {},\n },\n };\n return [addAction, discardAction, saveAction];\n }\n\n //#endregion\n\n //#region ---- Commands ----\n\n override execute(command: AXPExecuteCommand): void | Promise<void> {\n if (command.name === WORKFLOW_DEFINITION_ACTIVITIES_DISCARD_COMMAND) {\n const base = this.baselineGraph();\n const rows = (base?.activities ?? []).map((a) => rowFromInstance(a));\n this.activities.set(rows);\n this.connections.set(cloneDeep(base?.connections ?? []));\n let start = base?.startActivityId ?? '';\n if (!start && rows.length > 0) {\n start = rows[0]!.id;\n }\n this.startActivityId.set(start);\n this.selectedRowId.set(rows[0]?.id ?? null);\n this.isDirty.set(false);\n void this.refreshPropertyViewer();\n this.recompute();\n return;\n }\n if (command.name === WORKFLOW_DEFINITION_ACTIVITIES_ADD_STEP_COMMAND) {\n this.addStep();\n return;\n }\n if (command.name === WORKFLOW_DEFINITION_ACTIVITIES_SAVE_COMMAND) {\n return this.handleSaveExecute() as unknown as Promise<void>;\n }\n }\n\n private async handleSaveExecute(): Promise<AXPExecuteCommandResult> {\n const ctx = this.context();\n const id = typeof ctx['id'] === 'string' ? ctx['id'] : undefined;\n if (!id) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const graph = this.buildCurrentGraph();\n const input: SaveWorkflowDefinitionActivitiesInput = { id, graph };\n\n const result = await this.commandService.execute<SaveWorkflowDefinitionActivitiesInput, unknown>(\n WORKFLOW_DEFINITION_ACTIVITIES_SAVE_COMMAND,\n input,\n );\n const execResult = (result ?? { success: false }) as AXPExecuteCommandResult;\n\n if (execResult.success) {\n this.baselineGraph.set(cloneDeep(graph));\n this.isDirty.set(false);\n this.recompute();\n this.eventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, {\n name: `${RootConfig.module.name}.${RootConfig.entities.workflowDefinition.name}`,\n });\n }\n\n return execResult;\n }\n\n //#endregion\n\n //#region ---- Graph / rows ----\n\n private buildCurrentGraph(): AXPWorkflowGraph {\n const instances = this.activities().map((r) => instanceFromRow(r));\n const base = this.baselineGraph();\n return {\n startActivityId: this.startActivityId(),\n activities: instances,\n connections: cloneDeep(this.connections()),\n designer: base?.designer,\n };\n }\n\n private recomputeDirty(): void {\n const next = graphContentFingerprint(this.buildCurrentGraph());\n const base = graphContentFingerprint(this.baselineGraph());\n this.isDirty.set(!isEqual(next, base));\n this.recompute();\n }\n\n protected formatActivityStepLabel(r: ActivityEditorRow): string {\n const shortId = r.id.length >= 8 ? r.id.slice(0, 8) : r.id;\n const typePart = r.name?.trim() ? r.name : '…';\n return `${typePart} (${shortId})`;\n }\n\n /** Outgoing targets for a step (excludes the same step; use sentinel for “end”). */\n protected connectionTargetsFor(sourceActivityId: string): ActivitySelectItem[] {\n const end = this.connectionEndOptionText();\n const steps = this.activities()\n .filter((r) => r.id !== sourceActivityId)\n .map((r) => ({\n value: r.id,\n text: this.formatActivityStepLabel(r),\n }));\n return [{ value: CONNECTION_TARGET_END, text: end }, ...steps];\n }\n\n protected connectionSelectValue(sourceActivityId: string, port: string): string {\n const t = this.getOutgoingTarget(sourceActivityId, port);\n return t === '' ? CONNECTION_TARGET_END : t;\n }\n\n protected selectRow(rowId: string): void {\n this.selectedRowId.set(rowId);\n void this.refreshPropertyViewer();\n }\n\n protected addStep(): void {\n const catalog = this.activitySelectOptions();\n const defaultName = catalog[0]?.value ?? '';\n const row: ActivityEditorRow = {\n id: AXPDataGenerator.uuid(),\n name: defaultName,\n inputs: {},\n };\n this.activities.update((list) => [...list, row]);\n this.selectedRowId.set(row.id);\n if (!this.startActivityId() && row.id) {\n this.startActivityId.set(row.id);\n }\n void this.refreshPropertyViewer();\n this.recomputeDirty();\n }\n\n protected removeStep(rowId: string): void {\n this.connections.update((list) =>\n list.filter((c) => c.source.activtyName !== rowId && c.target.activtyName !== rowId),\n );\n const list = this.activities().filter((r) => r.id !== rowId);\n this.activities.set(list);\n if (this.selectedRowId() === rowId) {\n this.selectedRowId.set(list[0]?.id ?? null);\n }\n if (this.startActivityId() === rowId) {\n this.startActivityId.set(list[0]?.id ?? '');\n }\n void this.refreshPropertyViewer();\n this.recomputeDirty();\n }\n\n protected onActivityTypeChange(rowId: string, event: { value?: string | null }): void {\n const name = event.value != null ? String(event.value) : '';\n let typeChanged = false;\n this.activities.update((rows) =>\n rows.map((r) => {\n if (r.id !== rowId) {\n return r;\n }\n if (r.name !== name) {\n typeChanged = true;\n return { ...r, name, inputs: {}, extensions: undefined };\n }\n return { ...r, name };\n }),\n );\n if (typeChanged) {\n void this.activityDefService.getActivityByName(name).then((def) => {\n const rowNow = this.activities().find((r) => r.id === rowId) ?? null;\n const allowed = new Set(this.buildOutcomeRows(rowId, rowNow, def).map((o) => o.port));\n this.pruneOutgoingConnections(rowId, allowed);\n void this.refreshPropertyViewer();\n this.recomputeDirty();\n });\n } else {\n void this.refreshPropertyViewer();\n }\n if (!typeChanged) {\n this.recomputeDirty();\n }\n }\n\n protected onStartActivityChange(event: { value?: string | null }): void {\n this.startActivityId.set(event.value != null ? String(event.value) : '');\n this.recomputeDirty();\n }\n\n protected getOutgoingTarget(sourceActivityId: string, port: string): string {\n const key = portKey(port);\n for (const c of this.connections()) {\n if (c.source.activtyName !== sourceActivityId) {\n continue;\n }\n if (portKey(c.source.port) === key) {\n return c.target.activtyName;\n }\n }\n return '';\n }\n\n protected onOutgoingConnectionChange(sourceActivityId: string, port: string, event: { value?: string | null }): void {\n const raw = event.value != null ? String(event.value) : CONNECTION_TARGET_END;\n const targetId = raw === CONNECTION_TARGET_END ? '' : raw;\n const key = portKey(port);\n this.connections.update((list) => {\n const filtered = list.filter((c) => {\n if (c.source.activtyName !== sourceActivityId) {\n return true;\n }\n return portKey(c.source.port) !== key;\n });\n if (!targetId) {\n return filtered;\n }\n const sourcePort = key === 'Done' ? null : port;\n return [\n ...filtered,\n {\n source: { activtyName: sourceActivityId, port: sourcePort },\n target: { activtyName: targetId, port: null },\n },\n ];\n });\n this.recomputeDirty();\n }\n\n private pruneOutgoingConnections(sourceActivityId: string, allowedPorts: Set<string>): void {\n this.connections.update((list) =>\n list.filter((c) => {\n if (c.source.activtyName !== sourceActivityId) {\n return true;\n }\n return allowedPorts.has(portKey(c.source.port));\n }),\n );\n }\n\n private outcomePortsFromConnections(activityId: string): string[] {\n const ports = new Set<string>();\n for (const c of this.connections()) {\n if (c.source.activtyName === activityId) {\n ports.add(portKey(c.source.port));\n }\n }\n return [...ports];\n }\n\n private outcomeRowsFromRawDefinition(raw: unknown): OutcomePortRow[] {\n if (raw == null) {\n return [];\n }\n let items: unknown[] = [];\n if (Array.isArray(raw)) {\n items = raw;\n } else if (typeof raw === 'string' && raw.trim().length > 0) {\n try {\n const parsed = JSON.parse(raw) as unknown;\n items = Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n } else {\n return [];\n }\n\n const rows: OutcomePortRow[] = [];\n for (const item of items) {\n if (typeof item === 'string' && item.trim()) {\n rows.push({ port: item, label: item });\n continue;\n }\n if (item != null && typeof item === 'object' && !Array.isArray(item)) {\n const o = item as Record<string, unknown>;\n const portVal = o['name'] ?? o['value'] ?? o['outcome'] ?? o['port'];\n if (typeof portVal !== 'string' || !portVal.trim()) {\n continue;\n }\n const titleRaw = o['title'];\n let label = portVal;\n if (typeof titleRaw === 'string' && titleRaw.trim()) {\n label = titleRaw;\n } else if (titleRaw != null && typeof titleRaw === 'object') {\n label = this.mlResolver.resolve(titleRaw as AXPMultiLanguageString) ?? portVal;\n }\n rows.push({ port: portVal, label });\n }\n }\n return rows;\n }\n\n private outcomePortsFromTaskActions(inputs: Record<string, unknown>): string[] {\n const actions = inputs['actions'];\n if (actions == null) {\n return [];\n }\n let root: unknown = actions;\n if (typeof actions === 'string' && actions.trim().length > 0) {\n try {\n root = JSON.parse(actions) as unknown;\n } catch {\n return [];\n }\n }\n if (typeof root !== 'object' || root === null) {\n return [];\n }\n const names: string[] = [];\n const obj = root as Record<string, unknown>;\n for (const key of ['suffix', 'prefix'] as const) {\n const list = obj[key];\n if (!Array.isArray(list)) {\n continue;\n }\n for (const entry of list) {\n if (!entry || typeof entry !== 'object') {\n continue;\n }\n const cmd = (entry as Record<string, unknown>)['command'];\n if (cmd && typeof cmd === 'object') {\n const n = (cmd as Record<string, unknown>)['name'];\n if (typeof n === 'string' && n.trim()) {\n names.push(n);\n }\n }\n }\n }\n return names;\n }\n\n private buildOutcomeRows(\n activityId: string,\n row: ActivityEditorRow | null,\n def?: AXPActivityDefinition,\n ): OutcomePortRow[] {\n const map = new Map<string, OutcomePortRow>();\n for (const o of this.outcomeRowsFromRawDefinition(def?.outcomes)) {\n map.set(o.port, o);\n }\n for (const p of this.outcomePortsFromConnections(activityId)) {\n if (!map.has(p)) {\n map.set(p, { port: p, label: p });\n }\n }\n if (row) {\n for (const p of this.outcomePortsFromTaskActions(row.inputs)) {\n if (!map.has(p)) {\n map.set(p, { port: p, label: p });\n }\n }\n }\n if (map.size === 0) {\n map.set('Done', { port: 'Done', label: 'Done' });\n }\n return [...map.values()].sort((a, b) => a.port.localeCompare(b.port));\n }\n\n //#endregion\n\n //#region ---- Property viewer ----\n\n private async ensureActivityCatalogLoaded(): Promise<void> {\n if (this.activityCatalogLoaded()) {\n return;\n }\n try {\n const data = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.activityDefinition.name)\n .data<any, any>();\n const res = await data.query({ skip: 0, take: 1000 });\n const items = (res.items ?? [])\n .map((row: Record<string, unknown>) => {\n const n = row['name'];\n const typeFallback = row['type'];\n const valueKey =\n typeof n === 'string' && n.trim()\n ? n.trim()\n : typeof n === 'number'\n ? String(n)\n : typeof typeFallback === 'string' && typeFallback.trim()\n ? typeFallback.trim()\n : typeof typeFallback === 'number'\n ? String(typeFallback)\n : '';\n if (!valueKey) {\n return null;\n }\n const titleRaw = row['title'];\n let text = valueKey;\n if (typeof titleRaw === 'string' && titleRaw.trim()) {\n text = titleRaw.trim();\n } else if (titleRaw != null && typeof titleRaw === 'object') {\n text = this.mlResolver.resolve(titleRaw as AXPMultiLanguageString) ?? valueKey;\n }\n return { value: valueKey, text: String(text).trim() || valueKey };\n })\n .filter((x): x is ActivitySelectItem => x != null);\n items.sort((a, b) => a.text.localeCompare(b.text));\n this.activitySelectItems.set(items);\n this.activityCatalogLoaded.set(true);\n } catch {\n this.activitySelectItems.set([]);\n this.activityCatalogLoaded.set(true);\n }\n }\n\n private async refreshPropertyViewer(): Promise<void> {\n const row = this.selectedRow();\n if (row == null || row.name.trim() === '') {\n this.viewerTabs.set([]);\n this.selectedActivityOutcomeRows.set([]);\n setTimeout(() => this.propertyViewerRef()?.initializeContext({ inputs: {} }), 0);\n return;\n }\n\n const def = await this.activityDefService.getActivityByName(row.name);\n const rowLatest = this.activities().find((r) => r.id === row.id) ?? row;\n this.selectedActivityOutcomeRows.set(this.buildOutcomeRows(row.id, rowLatest, def));\n\n const inputProps = normalizeActivityDefinitionInputs(def?.inputs);\n const group: AXPWidgetPropertyGroup = { name: 'activity-inputs', title: 'Inputs', order: 0 };\n const widgetProps = inputProps.map((p, index) =>\n mapAXPPropertyToWidgetProperty(p, {\n group,\n order: index,\n valuePathPrefix: 'inputs',\n resolveTitle: (prop) =>\n typeof prop.title === 'string' ? prop.title : (this.mlResolver.resolve(prop.title) ?? prop.name),\n resolveDescription: (prop) =>\n prop.description === undefined\n ? undefined\n : typeof prop.description === 'string'\n ? prop.description\n : this.mlResolver.resolve(prop.description),\n }),\n );\n this.viewerTabs.set(buildPropertyViewerTabsFromProperties(widgetProps));\n\n setTimeout(() => {\n const current = this.activities().find((r) => r.id === row.id);\n this.propertyViewerRef()?.initializeContext({\n inputs: cloneDeep(current?.inputs ?? {}),\n });\n }, 0);\n }\n\n protected onViewerChanged(ev: AXPPropertyViewerChangedEvent): void {\n if (ev.mode === 'init') {\n return;\n }\n const id = this.selectedRowId();\n if (id == null || ev.values == null) {\n return;\n }\n const values = ev.values as { inputs?: Record<string, unknown> };\n const inputs = values.inputs ?? {};\n this.activities.update((rows) => rows.map((r) => (r.id === id ? { ...r, inputs: { ...inputs } } : r)));\n const sel = this.activities().find((r) => r.id === id);\n if (sel?.name?.trim()) {\n void this.activityDefService.getActivityByName(sel.name).then((def) => {\n this.selectedActivityOutcomeRows.set(this.buildOutcomeRows(sel.id, sel, def));\n });\n }\n this.recomputeDirty();\n }\n\n //#endregion\n\n //#region ---- Utilities ----\n\n protected override recompute(): void {\n super.recompute();\n const maybeLayout = this.hostPageLayout as unknown as { recompute?: () => void };\n maybeLayout.recompute?.();\n }\n\n //#endregion\n}\n","<div class=\"axm-workflow-definition-activities\">\n <div class=\"axm-workflow-definition-activities__columns\">\n <section class=\"axm-workflow-definition-activities__list\" aria-label=\"Activity steps\">\n @if (activities().length === 0) {\n <p class=\"axm-workflow-definition-activities__empty\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.empty'\n | translate\n | async) ?? ''\n }}\n </p>\n }\n @for (row of activities(); track row.id) {\n <div\n class=\"axm-workflow-definition-activities__row\"\n [class.axm-workflow-definition-activities__row--selected]=\"selectedRowId() === row.id\"\n (click)=\"selectRow(row.id)\"\n >\n <div class=\"axm-workflow-definition-activities__row-main\">\n <ax-select-box\n class=\"axm-workflow-definition-activities__select\"\n [ngModel]=\"row.name\"\n [dataSource]=\"activitySelectOptions()\"\n valueField=\"value\"\n textField=\"text\"\n [placeholder]=\"\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.select-activity'\n | translate\n | async) ?? ''\n \"\n (onValueChanged)=\"onActivityTypeChange(row.id, $event)\"\n >\n <ax-search-box></ax-search-box>\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </div>\n <div class=\"axm-workflow-definition-activities__row-actions\" (click)=\"$event.stopPropagation()\">\n <ax-button\n class=\"ax-flat\"\n color=\"danger\"\n [attr.aria-label]=\"('@general:actions.delete.title' | translate | async) ?? ''\"\n (onClick)=\"removeStep(row.id)\"\n >\n <i class=\"fa-light fa-trash\"></i>\n </ax-button>\n </div>\n </div>\n }\n </section>\n\n <section class=\"axm-workflow-definition-activities__editor\" aria-label=\"Activity editor\">\n @if (activities().length > 0) {\n <div class=\"axm-workflow-definition-activities__start\">\n <span class=\"axm-workflow-definition-activities__field-label\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.start-activity'\n | translate\n | async) ?? ''\n }}\n </span>\n <ax-select-box\n class=\"axm-workflow-definition-activities__select\"\n [ngModel]=\"startActivityId()\"\n [dataSource]=\"startActivityItems()\"\n valueField=\"value\"\n textField=\"text\"\n (onValueChanged)=\"onStartActivityChange($event)\"\n ></ax-select-box>\n </div>\n }\n\n @if (selectedRow(); as row) {\n @if (row.name.trim() !== '') {\n <div class=\"axm-workflow-definition-activities__connections\">\n <h3 class=\"axm-workflow-definition-activities__section-title\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.connections.title'\n | translate\n | async) ?? ''\n }}\n </h3>\n <p class=\"axm-workflow-definition-activities__section-hint\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.connections.hint'\n | translate\n | async) ?? ''\n }}\n </p>\n @for (outcome of selectedActivityOutcomeRows(); track outcome.port) {\n <div class=\"axm-workflow-definition-activities__connection-row\">\n <span class=\"axm-workflow-definition-activities__outcome\">{{ outcome.label }}</span>\n <ax-select-box\n class=\"axm-workflow-definition-activities__select axm-workflow-definition-activities__connection-target\"\n [ngModel]=\"connectionSelectValue(row.id, outcome.port)\"\n [dataSource]=\"connectionTargetsFor(row.id)\"\n valueField=\"value\"\n textField=\"text\"\n [placeholder]=\"\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.connection-target-placeholder'\n | translate\n | async) ?? ''\n \"\n (onValueChanged)=\"onOutgoingConnectionChange(row.id, outcome.port, $event)\"\n ></ax-select-box>\n </div>\n }\n </div>\n }\n\n @if (viewerTabs().length > 0) {\n <div class=\"axm-workflow-definition-activities__inputs\">\n <h3 class=\"axm-workflow-definition-activities__section-title\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.inputs.title'\n | translate\n | async) ?? ''\n }}\n </h3>\n <axp-property-viewer\n [tabsInput]=\"viewerTabs()\"\n mode=\"advanced\"\n (onChanged)=\"onViewerChanged($event)\"\n ></axp-property-viewer>\n </div>\n } @else if (row.name.trim() === '') {\n <p class=\"axm-workflow-definition-activities__hint\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.editor-placeholder'\n | translate\n | async) ?? ''\n }}\n </p>\n }\n } @else if (activities().length > 0) {\n <p class=\"axm-workflow-definition-activities__hint\">\n {{\n ('@workflow-management:workflow-definitions.entities.workflow-definition.pages.activities.select-step'\n | translate\n | async) ?? ''\n }}\n </p>\n }\n </section>\n </div>\n</div>\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY } from './WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY';\n\n//#region ---- Workflow Definition Activities Page Provider ----\n\n@Injectable()\nexport class AXMWorkflowDefinitionActivitiesPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./workflow-definition-activities-page.component').then(\n (m) => m.AXMWorkflowDefinitionActivitiesPageComponent,\n ),\n },\n ];\n }\n}\n\n//#endregion\n"],"names":["i6","i7"],"mappings":"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"}
@@ -0,0 +1,294 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, input, inject, signal, computed, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import * as i7 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
5
+ import * as i2 from '@acorex/components/json-viewer';
6
+ import { AXJsonViewerModule } from '@acorex/components/json-viewer';
7
+ import { AXDecoratorModule } from '@acorex/components/decorators';
8
+ import * as i3 from '@acorex/components/label';
9
+ import { AXLabelModule } from '@acorex/components/label';
10
+ import * as i4 from '@acorex/components/loading';
11
+ import { AXLoadingModule } from '@acorex/components/loading';
12
+ import * as i5 from '@acorex/core/translation';
13
+ import { AXTranslationModule } from '@acorex/core/translation';
14
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
15
+ import { AXPWorkflowDefinitionService } from '@acorex/platform/workflow';
16
+
17
+ /** Component key for the Workflow Instance Activity instances tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */
18
+ const WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY = 'workflow-instance-activity-instances-page';
19
+
20
+ //#region ---- Workflow Instance Activity Instances Page Component Provider ----
21
+ class AXMWorkflowInstanceActivityInstancesPageComponentProvider {
22
+ async components() {
23
+ return [
24
+ {
25
+ key: WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY,
26
+ loader: () => Promise.resolve().then(function () { return workflowInstanceActivityInstancesPage_component; }).then((m) => m.AXMWorkflowInstanceActivityInstancesPageComponent),
27
+ },
28
+ ];
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowInstanceActivityInstancesPageComponentProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
31
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowInstanceActivityInstancesPageComponentProvider }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowInstanceActivityInstancesPageComponentProvider, decorators: [{
34
+ type: Injectable
35
+ }] });
36
+
37
+ //#endregion
38
+ //#region ---- Helpers (display only) ----
39
+ function formatReadableActivityName(value) {
40
+ return value
41
+ .replace(/^workflow-activity:/, '')
42
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
43
+ .replace(/[-_]/g, ' ')
44
+ .split(' ')
45
+ .filter((token) => token.length > 0)
46
+ .map((token) => token.charAt(0).toUpperCase() + token.slice(1))
47
+ .join(' ');
48
+ }
49
+ function normalizeUserIds(value) {
50
+ if (value == null) {
51
+ return [];
52
+ }
53
+ if (Array.isArray(value)) {
54
+ return value.filter((v) => typeof v === 'string' && v.trim().length > 0);
55
+ }
56
+ if (typeof value === 'string' && value.trim().length > 0) {
57
+ return [value.trim()];
58
+ }
59
+ return [];
60
+ }
61
+ function formatHumanAssigneesFromPayload(payload) {
62
+ if (!payload) {
63
+ return '';
64
+ }
65
+ const assigned = normalizeUserIds(payload['assignedUserIds']);
66
+ const candidateUsers = normalizeUserIds(payload['candidateUserIds']);
67
+ const candidateRoles = normalizeUserIds(payload['candidateRoleIds']);
68
+ const labels = [
69
+ ...assigned.map((id) => `User:${id}`),
70
+ ...candidateUsers.map((id) => `Candidate:${id}`),
71
+ ...candidateRoles.map((id) => `Role:${id}`),
72
+ ];
73
+ const unique = [...new Set(labels)];
74
+ return unique.length > 0 ? unique.join(', ') : '';
75
+ }
76
+ function formatPerformedBy(label, id, empty) {
77
+ const ls = label != null && String(label).trim() !== '' ? String(label).trim() : '';
78
+ const idStr = id != null && String(id).trim() !== '' ? String(id).trim() : '';
79
+ if (ls && idStr) {
80
+ return `${ls} (${idStr})`;
81
+ }
82
+ if (ls) {
83
+ return ls;
84
+ }
85
+ if (idStr) {
86
+ return idStr;
87
+ }
88
+ return empty;
89
+ }
90
+ function resolveActivityTitle(graphActivity, nodeId) {
91
+ const rawTitle = graphActivity?.inputs?.['title'];
92
+ if (typeof rawTitle === 'string' && rawTitle.trim().length > 0) {
93
+ return rawTitle.trim();
94
+ }
95
+ if (graphActivity?.name) {
96
+ return formatReadableActivityName(graphActivity.name);
97
+ }
98
+ return formatReadableActivityName(nodeId);
99
+ }
100
+ function resolveOutputForViewer(props, nodeId, ctx) {
101
+ const key = `${nodeId}_activityOutput`;
102
+ if (key in props && props[key] !== undefined) {
103
+ return props[key];
104
+ }
105
+ if (ctx.activityState != null) {
106
+ return ctx.activityState;
107
+ }
108
+ const p = ctx.properties;
109
+ if (p && typeof p === 'object' && Object.keys(p).length > 0) {
110
+ return p;
111
+ }
112
+ return null;
113
+ }
114
+ function buildRows(instance, definition, emptyAssigneesLabel, notAvailableLabel) {
115
+ if (!instance?.workflowState) {
116
+ return [];
117
+ }
118
+ const props = (instance.workflowState.properties ?? {});
119
+ const contexts = instance.workflowState.activityExecutionContexts ?? [];
120
+ const activities = definition?.graph?.activities ?? [];
121
+ const findActivity = (nodeId) => activities.find((a) => a.id === nodeId);
122
+ const extended = instance;
123
+ const bookmarks = extended.bookmarks ?? [];
124
+ const rows = contexts.map((ctx) => {
125
+ const nodeId = ctx.scheduledActivityNodeId;
126
+ const graphActivity = findActivity(nodeId);
127
+ const isHumanTask = graphActivity?.name === 'workflow-activity:human-task';
128
+ const bookmark = bookmarks.find((b) => b.activityId === nodeId);
129
+ const payload = bookmark?.payload && typeof bookmark.payload === 'object' ? bookmark.payload : null;
130
+ let humanAssignees = isHumanTask ? formatHumanAssigneesFromPayload(payload) : '';
131
+ if (isHumanTask && !humanAssignees) {
132
+ humanAssignees = emptyAssigneesLabel;
133
+ }
134
+ const outKey = `${nodeId}_outcome`;
135
+ const outcomeRaw = props[outKey];
136
+ const outcomeDisplay = outcomeRaw !== undefined && outcomeRaw !== null && String(outcomeRaw).length > 0
137
+ ? String(outcomeRaw)
138
+ : notAvailableLabel;
139
+ const inputForViewer = graphActivity?.inputs ?? null;
140
+ const outputForViewer = resolveOutputForViewer(props, nodeId, ctx);
141
+ const labelKey = `${nodeId}_completedByLabel`;
142
+ const idKey = `${nodeId}_completedByUserId`;
143
+ const performedByDisplay = formatPerformedBy(props[labelKey], props[idKey], notAvailableLabel);
144
+ return {
145
+ contextId: ctx.id,
146
+ nodeId,
147
+ activityTitle: resolveActivityTitle(graphActivity, nodeId),
148
+ activityTypeName: graphActivity?.name ?? notAvailableLabel,
149
+ isHumanTask,
150
+ status: String(ctx.status ?? ''),
151
+ startedAt: ctx.startedAt ?? '',
152
+ completedAt: ctx.completedAt ?? null,
153
+ outcomeDisplay,
154
+ inputForViewer,
155
+ outputForViewer,
156
+ humanAssigneesDisplay: isHumanTask ? humanAssignees : notAvailableLabel,
157
+ performedByDisplay,
158
+ };
159
+ });
160
+ rows.sort((a, b) => {
161
+ const ta = new Date(a.startedAt).getTime();
162
+ const tb = new Date(b.startedAt).getTime();
163
+ if (ta !== tb) {
164
+ return ta - tb;
165
+ }
166
+ return a.contextId.localeCompare(b.contextId);
167
+ });
168
+ return rows;
169
+ }
170
+ //#endregion
171
+ //#region ---- Component ----
172
+ /**
173
+ * Readonly entity detail page: lists activity execution contexts for a workflow instance.
174
+ * Data: `rootContext.workflowInstance` + definition loaded by `definitionId`, plus audit keys on
175
+ * `workflowState.properties` (`_outcome`, `_activityOutput`, `_completedByUserId` / `_completedByLabel`).
176
+ */
177
+ class AXMWorkflowInstanceActivityInstancesPageComponent extends AXPPageLayoutBaseComponent {
178
+ //#endregion
179
+ constructor() {
180
+ super();
181
+ //#region ---- Inputs ----
182
+ this.rootContext = input(...(ngDevMode ? [undefined, { debugName: "rootContext" }] : /* istanbul ignore next */ []));
183
+ this.pageConfig = input(...(ngDevMode ? [undefined, { debugName: "pageConfig" }] : /* istanbul ignore next */ []));
184
+ //#endregion
185
+ //#region ---- Services & Dependencies ----
186
+ this.workflowDefinitionService = inject(AXPWorkflowDefinitionService);
187
+ //#endregion
188
+ //#region ---- Definition load ----
189
+ this.definition = signal(null, ...(ngDevMode ? [{ debugName: "definition" }] : /* istanbul ignore next */ []));
190
+ this.definitionLoading = signal(false, ...(ngDevMode ? [{ debugName: "definitionLoading" }] : /* istanbul ignore next */ []));
191
+ this.loadSeq = 0;
192
+ //#region ---- View rows ----
193
+ this.rows = computed(() => {
194
+ const ctx = this.rootContext();
195
+ const wi = ctx?.['workflowInstance'];
196
+ const def = this.definition();
197
+ return buildRows(wi, def ?? null, '—', '—');
198
+ }, ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
199
+ effect(() => {
200
+ const ctx = this.rootContext();
201
+ const defId = ctx && typeof ctx === 'object' && typeof ctx['definitionId'] === 'string'
202
+ ? ctx['definitionId']
203
+ : undefined;
204
+ if (!defId) {
205
+ untracked(() => {
206
+ this.definition.set(null);
207
+ this.definitionLoading.set(false);
208
+ });
209
+ return;
210
+ }
211
+ const seq = ++this.loadSeq;
212
+ void (async () => {
213
+ this.definitionLoading.set(true);
214
+ try {
215
+ const def = await this.workflowDefinitionService.getWorkflowByName(defId);
216
+ if (seq !== this.loadSeq) {
217
+ return;
218
+ }
219
+ untracked(() => this.definition.set(def ?? null));
220
+ }
221
+ finally {
222
+ if (seq === this.loadSeq) {
223
+ this.definitionLoading.set(false);
224
+ }
225
+ }
226
+ })();
227
+ });
228
+ }
229
+ /**
230
+ * Maps activity execution status to `status-chips.scss` modifier classes (uses theme `--ax-sys-color-*` tokens).
231
+ */
232
+ statusChipModifier(status) {
233
+ const s = (status ?? '').trim().toLowerCase();
234
+ if (s === 'running' || s === 'pending' || s === 'executing') {
235
+ return 'primary';
236
+ }
237
+ if (s === 'completed' || s === 'succeeded' || s === 'success') {
238
+ return 'success';
239
+ }
240
+ if (s === 'canceled' || s === 'cancelled') {
241
+ return 'neutral';
242
+ }
243
+ if (s === 'faulted' || s === 'failed' || s === 'error') {
244
+ return 'danger';
245
+ }
246
+ if (s === 'suspended' || s === 'waiting') {
247
+ return 'warning';
248
+ }
249
+ return 'secondary';
250
+ }
251
+ /**
252
+ * Normalizes a value for `ax-json-viewer` (expects a root object; primitives/arrays are wrapped like the platform json-viewer widget).
253
+ */
254
+ toViewerRoot(value) {
255
+ if (value === null || value === undefined) {
256
+ return {};
257
+ }
258
+ if (typeof value === 'object' && !Array.isArray(value)) {
259
+ return value;
260
+ }
261
+ return { value };
262
+ }
263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowInstanceActivityInstancesPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
264
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMWorkflowInstanceActivityInstancesPageComponent, isStandalone: true, selector: "axm-workflow-instance-activity-instances-page", inputs: { rootContext: { classPropertyName: "rootContext", publicName: "rootContext", isSignal: true, isRequired: false, transformFunction: null }, pageConfig: { classPropertyName: "pageConfig", publicName: "pageConfig", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
265
+ {
266
+ provide: AXPPageLayoutBase,
267
+ useExisting: AXMWorkflowInstanceActivityInstancesPageComponent,
268
+ },
269
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"axm-workflow-activity-instances-page ax-block ax-p-4 ax-min-h-[30vh] ax-overflow-y-auto\">\n @if (definitionLoading()) {\n <div class=\"axm-workflow-activity-instances-page__state\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n @if (rows().length === 0) {\n <p class=\"axm-workflow-activity-instances-page__state ax-typo-caption\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.empty' | translate | async }}\n </p>\n } @else {\n <div class=\"axm-workflow-activity-instances-page__list\">\n @for (row of rows(); track row.contextId) {\n <div class=\"axm-workflow-activity-instances-page__card ax-block\">\n <div class=\"axm-workflow-activity-instances-page__header\">\n <h3 [textContent]=\"row.activityTitle\" class=\"axm-workflow-activity-instances-page__title\"></h3>\n <div class=\"axm-workflow-activity-instances-page__header-status\">\n <span class=\"axm-workflow-activity-instances-page__status-label\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.status' | translate | async }}\n </span>\n <span\n class=\"ax-inline-flex ax-items-center ax-rounded-md ax-px-2.5 ax-py-1 ax-text-xs ax-font-semibold ax-leading-none axp-status-chip\"\n [ngClass]=\"'axp-status-chip--' + statusChipModifier(row.status)\"\n >\n {{ row.status }}\n </span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__meta-grid\" role=\"list\">\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.activity-type' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.activityTypeName\"\n [textContent]=\"row.activityTypeName\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.node-id' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v axm-workflow-activity-instances-page__meta-v--code\"\n [attr.title]=\"row.nodeId\"\n [textContent]=\"row.nodeId\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.outcome' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.outcomeDisplay\"\n [textContent]=\"row.outcomeDisplay\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.started-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.startedAt || '\u2014'\"\n [textContent]=\"row.startedAt || '\u2014'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.completed-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.completedAt || '\u2014'\"\n [textContent]=\"row.completedAt || '\u2014'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.performed-by' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.performedByDisplay\"\n [textContent]=\"row.performedByDisplay\"\n ></span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__json-row\">\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.input' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.inputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.output' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.outputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n </div>\n\n @if (row.isHumanTask) {\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.human-assignees' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__value\" [textContent]=\"row.humanAssigneesDisplay\"></div>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n</div>\n", styles: [".axm-workflow-activity-instances-page{box-sizing:border-box}.axm-workflow-activity-instances-page__state{display:flex;align-items:center;justify-content:center;min-height:8rem}.axm-workflow-activity-instances-page__list{display:flex;flex-direction:column;gap:1.25rem}.axm-workflow-activity-instances-page__card{border:1px solid rgb(var(--ax-sys-color-outline));border-radius:var(--ax-radius-md, .5rem);padding:1.25rem 1.5rem;background:rgb(var(--ax-sys-color-surface))}.axm-workflow-activity-instances-page__header{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:.875rem;min-width:0}.axm-workflow-activity-instances-page__title{margin:0;flex:1 1 auto;min-width:0;font-size:1.25rem;line-height:1.3;font-weight:700;letter-spacing:-.01em;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__header-status{display:flex;flex:0 0 auto;flex-wrap:nowrap;align-items:center;gap:.5rem;max-width:min(100%,22rem);min-width:0}.axm-workflow-activity-instances-page__status-label{flex:0 0 auto;font-size:.75rem;font-weight:500;line-height:1.2;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface-variant))}.axm-workflow-activity-instances-page__meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.5rem;margin:0;margin-bottom:.5rem;padding:.75rem 0 .5rem;list-style:none;border-bottom:1px solid rgb(var(--ax-sys-color-outline-variant))}@media(max-width:29.99rem){.axm-workflow-activity-instances-page__meta-grid{grid-template-columns:1fr}}.axm-workflow-activity-instances-page__meta-pair{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:.3rem}.axm-workflow-activity-instances-page__meta-k{flex:0 0 auto;font-size:.6875rem;font-weight:600;line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:rgb(var(--ax-sys-color-on-surface-variant))}.axm-workflow-activity-instances-page__meta-v{min-width:0;overflow:hidden;font-size:.875rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__meta-v--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8125rem}.axm-workflow-activity-instances-page__json-row{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:.5rem}@media(min-width:64rem){.axm-workflow-activity-instances-page__json-row{grid-template-columns:1fr 1fr;align-items:start}}.axm-workflow-activity-instances-page__field{min-width:0;display:flex;flex-direction:column;gap:.25rem}.axm-workflow-activity-instances-page__field--full{margin-top:.5rem;min-width:0}.axm-workflow-activity-instances-page__json-viewer{max-height:18rem;overflow:auto;border-radius:var(--ax-radius-sm, .25rem);border:1px solid rgb(var(--ax-sys-color-outline));background:rgb(var(--ax-sys-color-surface));padding:.25rem}.axm-workflow-activity-instances-page__value{font-size:.875rem;line-height:1.4;word-break:break-word;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__value--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8125rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: AXJsonViewerModule }, { kind: "component", type: i2.JsonViewerComponent, selector: "ax-json-viewer", inputs: ["json"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i3.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
270
+ }
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMWorkflowInstanceActivityInstancesPageComponent, decorators: [{
272
+ type: Component,
273
+ args: [{ selector: 'axm-workflow-instance-activity-instances-page', standalone: true, imports: [
274
+ CommonModule,
275
+ AXJsonViewerModule,
276
+ AXDecoratorModule,
277
+ AXLabelModule,
278
+ AXLoadingModule,
279
+ AXTranslationModule,
280
+ ], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
281
+ {
282
+ provide: AXPPageLayoutBase,
283
+ useExisting: AXMWorkflowInstanceActivityInstancesPageComponent,
284
+ },
285
+ ], template: "<div class=\"axm-workflow-activity-instances-page ax-block ax-p-4 ax-min-h-[30vh] ax-overflow-y-auto\">\n @if (definitionLoading()) {\n <div class=\"axm-workflow-activity-instances-page__state\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n @if (rows().length === 0) {\n <p class=\"axm-workflow-activity-instances-page__state ax-typo-caption\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.empty' | translate | async }}\n </p>\n } @else {\n <div class=\"axm-workflow-activity-instances-page__list\">\n @for (row of rows(); track row.contextId) {\n <div class=\"axm-workflow-activity-instances-page__card ax-block\">\n <div class=\"axm-workflow-activity-instances-page__header\">\n <h3 [textContent]=\"row.activityTitle\" class=\"axm-workflow-activity-instances-page__title\"></h3>\n <div class=\"axm-workflow-activity-instances-page__header-status\">\n <span class=\"axm-workflow-activity-instances-page__status-label\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.status' | translate | async }}\n </span>\n <span\n class=\"ax-inline-flex ax-items-center ax-rounded-md ax-px-2.5 ax-py-1 ax-text-xs ax-font-semibold ax-leading-none axp-status-chip\"\n [ngClass]=\"'axp-status-chip--' + statusChipModifier(row.status)\"\n >\n {{ row.status }}\n </span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__meta-grid\" role=\"list\">\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.activity-type' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.activityTypeName\"\n [textContent]=\"row.activityTypeName\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.node-id' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v axm-workflow-activity-instances-page__meta-v--code\"\n [attr.title]=\"row.nodeId\"\n [textContent]=\"row.nodeId\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.outcome' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.outcomeDisplay\"\n [textContent]=\"row.outcomeDisplay\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.started-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.startedAt || '\u2014'\"\n [textContent]=\"row.startedAt || '\u2014'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.completed-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.completedAt || '\u2014'\"\n [textContent]=\"row.completedAt || '\u2014'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.performed-by' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.performedByDisplay\"\n [textContent]=\"row.performedByDisplay\"\n ></span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__json-row\">\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.input' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.inputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.output' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.outputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n </div>\n\n @if (row.isHumanTask) {\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.human-assignees' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__value\" [textContent]=\"row.humanAssigneesDisplay\"></div>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n</div>\n", styles: [".axm-workflow-activity-instances-page{box-sizing:border-box}.axm-workflow-activity-instances-page__state{display:flex;align-items:center;justify-content:center;min-height:8rem}.axm-workflow-activity-instances-page__list{display:flex;flex-direction:column;gap:1.25rem}.axm-workflow-activity-instances-page__card{border:1px solid rgb(var(--ax-sys-color-outline));border-radius:var(--ax-radius-md, .5rem);padding:1.25rem 1.5rem;background:rgb(var(--ax-sys-color-surface))}.axm-workflow-activity-instances-page__header{display:flex;flex-wrap:nowrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem;margin-bottom:.875rem;min-width:0}.axm-workflow-activity-instances-page__title{margin:0;flex:1 1 auto;min-width:0;font-size:1.25rem;line-height:1.3;font-weight:700;letter-spacing:-.01em;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__header-status{display:flex;flex:0 0 auto;flex-wrap:nowrap;align-items:center;gap:.5rem;max-width:min(100%,22rem);min-width:0}.axm-workflow-activity-instances-page__status-label{flex:0 0 auto;font-size:.75rem;font-weight:500;line-height:1.2;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface-variant))}.axm-workflow-activity-instances-page__meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.5rem;margin:0;margin-bottom:.5rem;padding:.75rem 0 .5rem;list-style:none;border-bottom:1px solid rgb(var(--ax-sys-color-outline-variant))}@media(max-width:29.99rem){.axm-workflow-activity-instances-page__meta-grid{grid-template-columns:1fr}}.axm-workflow-activity-instances-page__meta-pair{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:.3rem}.axm-workflow-activity-instances-page__meta-k{flex:0 0 auto;font-size:.6875rem;font-weight:600;line-height:1.2;text-transform:uppercase;letter-spacing:.04em;color:rgb(var(--ax-sys-color-on-surface-variant))}.axm-workflow-activity-instances-page__meta-v{min-width:0;overflow:hidden;font-size:.875rem;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__meta-v--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8125rem}.axm-workflow-activity-instances-page__json-row{display:grid;grid-template-columns:1fr;gap:.75rem;margin-top:.5rem}@media(min-width:64rem){.axm-workflow-activity-instances-page__json-row{grid-template-columns:1fr 1fr;align-items:start}}.axm-workflow-activity-instances-page__field{min-width:0;display:flex;flex-direction:column;gap:.25rem}.axm-workflow-activity-instances-page__field--full{margin-top:.5rem;min-width:0}.axm-workflow-activity-instances-page__json-viewer{max-height:18rem;overflow:auto;border-radius:var(--ax-radius-sm, .25rem);border:1px solid rgb(var(--ax-sys-color-outline));background:rgb(var(--ax-sys-color-surface));padding:.25rem}.axm-workflow-activity-instances-page__value{font-size:.875rem;line-height:1.4;word-break:break-word;color:rgb(var(--ax-sys-color-on-surface))}.axm-workflow-activity-instances-page__value--code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.8125rem}\n"] }]
286
+ }], ctorParameters: () => [], propDecorators: { rootContext: [{ type: i0.Input, args: [{ isSignal: true, alias: "rootContext", required: false }] }], pageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageConfig", required: false }] }] } });
287
+
288
+ var workflowInstanceActivityInstancesPage_component = /*#__PURE__*/Object.freeze({
289
+ __proto__: null,
290
+ AXMWorkflowInstanceActivityInstancesPageComponent: AXMWorkflowInstanceActivityInstancesPageComponent
291
+ });
292
+
293
+ export { AXMWorkflowInstanceActivityInstancesPageComponent, AXMWorkflowInstanceActivityInstancesPageComponentProvider, WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY };
294
+ //# sourceMappingURL=acorex-modules-workflow-management-index-DMnJRDbq.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-workflow-management-index-DMnJRDbq.mjs","sources":["../../../../libs/modules/workflow-management/src/lib/features/workflow-instance-activity-instances-page/WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY.ts","../../../../libs/modules/workflow-management/src/lib/features/workflow-instance-activity-instances-page/workflow-instance-activity-instances-page-component.provider.ts","../../../../libs/modules/workflow-management/src/lib/features/workflow-instance-activity-instances-page/workflow-instance-activity-instances-page.component.ts","../../../../libs/modules/workflow-management/src/lib/features/workflow-instance-activity-instances-page/workflow-instance-activity-instances-page.component.html"],"sourcesContent":["/** Component key for the Workflow Instance Activity instances tab. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY =\n 'workflow-instance-activity-instances-page';\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY } from './WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY';\n\n//#region ---- Workflow Instance Activity Instances Page Component Provider ----\n\n@Injectable()\nexport class AXMWorkflowInstanceActivityInstancesPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: WORKFLOW_INSTANCE_ACTIVITY_INSTANCES_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./workflow-instance-activity-instances-page.component').then(\n (m) => m.AXMWorkflowInstanceActivityInstancesPageComponent,\n ),\n },\n ];\n }\n}\n\n//#endregion\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, input, signal, untracked } from '@angular/core';\nimport { AXJsonViewerModule } from '@acorex/components/json-viewer';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';\nimport {\n AXPWorkflowActivityInstance,\n AXPWorkflowDefinition,\n AXPWorkflowInstance,\n AXPActivityExecutionContextState,\n AXPWorkflowDefinitionService,\n} from '@acorex/platform/workflow';\n\n//#region ---- Types ----\n\n/** One row in the readonly Activity instances list (derived from engine state, definition graph, and persisted audit keys). */\nexport interface AXMWorkflowActivityInstanceViewRow {\n contextId: string;\n nodeId: string;\n activityTitle: string;\n activityTypeName: string;\n isHumanTask: boolean;\n status: string;\n startedAt: string;\n completedAt: string | null;\n /** Connection port / outcome that was taken after this step (from workflow state variables). */\n outcomeDisplay: string;\n /** Input from graph definition — passed to `ax-json-viewer`. */\n inputForViewer: unknown;\n /** Captured output for this step — passed to `ax-json-viewer`. */\n outputForViewer: unknown;\n humanAssigneesDisplay: string;\n /** Who performed the step (from persisted `completedByLabel` / `completedByUserId` when available). */\n performedByDisplay: string;\n}\n\n//#endregion\n\n//#region ---- Helpers (display only) ----\n\nfunction formatReadableActivityName(value: string): string {\n return value\n .replace(/^workflow-activity:/, '')\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/[-_]/g, ' ')\n .split(' ')\n .filter((token) => token.length > 0)\n .map((token) => token.charAt(0).toUpperCase() + token.slice(1))\n .join(' ');\n}\n\nfunction normalizeUserIds(value: unknown): string[] {\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value.filter((v): v is string => typeof v === 'string' && v.trim().length > 0);\n }\n if (typeof value === 'string' && value.trim().length > 0) {\n return [value.trim()];\n }\n return [];\n}\n\nfunction formatHumanAssigneesFromPayload(payload: Record<string, unknown> | null | undefined): string {\n if (!payload) {\n return '';\n }\n const assigned = normalizeUserIds(payload['assignedUserIds']);\n const candidateUsers = normalizeUserIds(payload['candidateUserIds']);\n const candidateRoles = normalizeUserIds(payload['candidateRoleIds']);\n const labels = [\n ...assigned.map((id) => `User:${id}`),\n ...candidateUsers.map((id) => `Candidate:${id}`),\n ...candidateRoles.map((id) => `Role:${id}`),\n ];\n const unique = [...new Set(labels)];\n return unique.length > 0 ? unique.join(', ') : '';\n}\n\nfunction formatPerformedBy(\n label: unknown,\n id: unknown,\n empty: string,\n): string {\n const ls = label != null && String(label).trim() !== '' ? String(label).trim() : '';\n const idStr = id != null && String(id).trim() !== '' ? String(id).trim() : '';\n if (ls && idStr) {\n return `${ls} (${idStr})`;\n }\n if (ls) {\n return ls;\n }\n if (idStr) {\n return idStr;\n }\n return empty;\n}\n\nfunction resolveActivityTitle(\n graphActivity: AXPWorkflowActivityInstance | undefined,\n nodeId: string,\n): string {\n const rawTitle = graphActivity?.inputs?.['title'];\n if (typeof rawTitle === 'string' && rawTitle.trim().length > 0) {\n return rawTitle.trim();\n }\n if (graphActivity?.name) {\n return formatReadableActivityName(graphActivity.name);\n }\n return formatReadableActivityName(nodeId);\n}\n\nfunction resolveOutputForViewer(\n props: Record<string, unknown>,\n nodeId: string,\n ctx: AXPActivityExecutionContextState,\n): unknown {\n const key = `${nodeId}_activityOutput`;\n if (key in props && props[key] !== undefined) {\n return props[key];\n }\n if (ctx.activityState != null) {\n return ctx.activityState;\n }\n const p = ctx.properties;\n if (p && typeof p === 'object' && Object.keys(p as object).length > 0) {\n return p;\n }\n return null;\n}\n\nfunction buildRows(\n instance: AXPWorkflowInstance | null | undefined,\n definition: AXPWorkflowDefinition | null | undefined,\n emptyAssigneesLabel: string,\n notAvailableLabel: string,\n): AXMWorkflowActivityInstanceViewRow[] {\n if (!instance?.workflowState) {\n return [];\n }\n const props = (instance.workflowState.properties ?? {}) as Record<string, unknown>;\n const contexts = instance.workflowState.activityExecutionContexts ?? [];\n const activities = definition?.graph?.activities ?? [];\n const findActivity = (nodeId: string) => activities.find((a) => a.id === nodeId);\n const extended = instance as AXPWorkflowInstance & {\n bookmarks?: Array<{\n activityId?: string;\n payload?: Record<string, unknown> | null;\n isConsumed?: boolean;\n consumed?: boolean;\n }>;\n };\n const bookmarks = extended.bookmarks ?? [];\n\n const rows: AXMWorkflowActivityInstanceViewRow[] = contexts.map(\n (ctx: AXPActivityExecutionContextState) => {\n const nodeId = ctx.scheduledActivityNodeId;\n const graphActivity = findActivity(nodeId);\n const isHumanTask = graphActivity?.name === 'workflow-activity:human-task';\n const bookmark = bookmarks.find((b) => b.activityId === nodeId);\n const payload = bookmark?.payload && typeof bookmark.payload === 'object' ? bookmark.payload : null;\n let humanAssignees = isHumanTask ? formatHumanAssigneesFromPayload(payload) : '';\n if (isHumanTask && !humanAssignees) {\n humanAssignees = emptyAssigneesLabel;\n }\n\n const outKey = `${nodeId}_outcome`;\n const outcomeRaw = props[outKey];\n const outcomeDisplay =\n outcomeRaw !== undefined && outcomeRaw !== null && String(outcomeRaw).length > 0\n ? String(outcomeRaw)\n : notAvailableLabel;\n\n const inputForViewer: unknown = graphActivity?.inputs ?? null;\n\n const outputForViewer = resolveOutputForViewer(props, nodeId, ctx);\n\n const labelKey = `${nodeId}_completedByLabel`;\n const idKey = `${nodeId}_completedByUserId`;\n const performedByDisplay = formatPerformedBy(props[labelKey], props[idKey], notAvailableLabel);\n\n return {\n contextId: ctx.id,\n nodeId,\n activityTitle: resolveActivityTitle(graphActivity, nodeId),\n activityTypeName: graphActivity?.name ?? notAvailableLabel,\n isHumanTask,\n status: String(ctx.status ?? ''),\n startedAt: ctx.startedAt ?? '',\n completedAt: ctx.completedAt ?? null,\n outcomeDisplay,\n inputForViewer,\n outputForViewer,\n humanAssigneesDisplay: isHumanTask ? humanAssignees : notAvailableLabel,\n performedByDisplay,\n };\n },\n );\n\n rows.sort((a, b) => {\n const ta = new Date(a.startedAt).getTime();\n const tb = new Date(b.startedAt).getTime();\n if (ta !== tb) {\n return ta - tb;\n }\n return a.contextId.localeCompare(b.contextId);\n });\n\n return rows;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * Readonly entity detail page: lists activity execution contexts for a workflow instance.\n * Data: `rootContext.workflowInstance` + definition loaded by `definitionId`, plus audit keys on\n * `workflowState.properties` (`_outcome`, `_activityOutput`, `_completedByUserId` / `_completedByLabel`).\n */\n@Component({\n selector: 'axm-workflow-instance-activity-instances-page',\n standalone: true,\n imports: [\n CommonModule,\n AXJsonViewerModule,\n AXDecoratorModule,\n AXLabelModule,\n AXLoadingModule,\n AXTranslationModule,\n ],\n templateUrl: './workflow-instance-activity-instances-page.component.html',\n styleUrl: './workflow-instance-activity-instances-page.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMWorkflowInstanceActivityInstancesPageComponent,\n },\n ],\n})\nexport class AXMWorkflowInstanceActivityInstancesPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Inputs ----\n\n rootContext = input<Record<string, unknown>>();\n\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private readonly workflowDefinitionService = inject(AXPWorkflowDefinitionService);\n\n //#endregion\n\n //#region ---- Definition load ----\n\n private readonly definition = signal<AXPWorkflowDefinition | null>(null);\n protected readonly definitionLoading = signal(false);\n private loadSeq = 0;\n\n //#endregion\n\n constructor() {\n super();\n effect(() => {\n const ctx = this.rootContext();\n const defId =\n ctx && typeof ctx === 'object' && typeof (ctx as Record<string, unknown>)['definitionId'] === 'string'\n ? ((ctx as Record<string, unknown>)['definitionId'] as string)\n : undefined;\n if (!defId) {\n untracked(() => {\n this.definition.set(null);\n this.definitionLoading.set(false);\n });\n return;\n }\n const seq = ++this.loadSeq;\n void (async () => {\n this.definitionLoading.set(true);\n try {\n const def = await this.workflowDefinitionService.getWorkflowByName(defId);\n if (seq !== this.loadSeq) {\n return;\n }\n untracked(() => this.definition.set(def ?? null));\n } finally {\n if (seq === this.loadSeq) {\n this.definitionLoading.set(false);\n }\n }\n })();\n });\n }\n\n /**\n * Maps activity execution status to `status-chips.scss` modifier classes (uses theme `--ax-sys-color-*` tokens).\n */\n statusChipModifier(status: string): 'primary' | 'success' | 'warning' | 'danger' | 'neutral' | 'secondary' {\n const s = (status ?? '').trim().toLowerCase();\n if (s === 'running' || s === 'pending' || s === 'executing') {\n return 'primary';\n }\n if (s === 'completed' || s === 'succeeded' || s === 'success') {\n return 'success';\n }\n if (s === 'canceled' || s === 'cancelled') {\n return 'neutral';\n }\n if (s === 'faulted' || s === 'failed' || s === 'error') {\n return 'danger';\n }\n if (s === 'suspended' || s === 'waiting') {\n return 'warning';\n }\n return 'secondary';\n }\n\n /**\n * Normalizes a value for `ax-json-viewer` (expects a root object; primitives/arrays are wrapped like the platform json-viewer widget).\n */\n toViewerRoot(value: unknown): Record<string, unknown> {\n if (value === null || value === undefined) {\n return {};\n }\n if (typeof value === 'object' && !Array.isArray(value)) {\n return value as Record<string, unknown>;\n }\n return { value };\n }\n\n //#region ---- View rows ----\n\n protected readonly rows = computed(() => {\n const ctx = this.rootContext();\n const wi = ctx?.['workflowInstance'] as AXPWorkflowInstance | undefined;\n const def = this.definition();\n return buildRows(wi, def ?? null, '—', '—');\n });\n\n //#endregion\n}\n\n//#endregion\n","<div class=\"axm-workflow-activity-instances-page ax-block ax-p-4 ax-min-h-[30vh] ax-overflow-y-auto\">\n @if (definitionLoading()) {\n <div class=\"axm-workflow-activity-instances-page__state\">\n <ax-loading></ax-loading>\n </div>\n } @else {\n @if (rows().length === 0) {\n <p class=\"axm-workflow-activity-instances-page__state ax-typo-caption\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.empty' | translate | async }}\n </p>\n } @else {\n <div class=\"axm-workflow-activity-instances-page__list\">\n @for (row of rows(); track row.contextId) {\n <div class=\"axm-workflow-activity-instances-page__card ax-block\">\n <div class=\"axm-workflow-activity-instances-page__header\">\n <h3 [textContent]=\"row.activityTitle\" class=\"axm-workflow-activity-instances-page__title\"></h3>\n <div class=\"axm-workflow-activity-instances-page__header-status\">\n <span class=\"axm-workflow-activity-instances-page__status-label\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.status' | translate | async }}\n </span>\n <span\n class=\"ax-inline-flex ax-items-center ax-rounded-md ax-px-2.5 ax-py-1 ax-text-xs ax-font-semibold ax-leading-none axp-status-chip\"\n [ngClass]=\"'axp-status-chip--' + statusChipModifier(row.status)\"\n >\n {{ row.status }}\n </span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__meta-grid\" role=\"list\">\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.activity-type' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.activityTypeName\"\n [textContent]=\"row.activityTypeName\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.node-id' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v axm-workflow-activity-instances-page__meta-v--code\"\n [attr.title]=\"row.nodeId\"\n [textContent]=\"row.nodeId\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.outcome' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.outcomeDisplay\"\n [textContent]=\"row.outcomeDisplay\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.started-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.startedAt || '—'\"\n [textContent]=\"row.startedAt || '—'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.completed-at' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.completedAt || '—'\"\n [textContent]=\"row.completedAt || '—'\"\n ></span>\n </div>\n <div class=\"axm-workflow-activity-instances-page__meta-pair\" role=\"listitem\">\n <span class=\"axm-workflow-activity-instances-page__meta-k\">\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.performed-by' | translate | async }}\n </span>\n <span\n class=\"axm-workflow-activity-instances-page__meta-v\"\n [attr.title]=\"row.performedByDisplay\"\n [textContent]=\"row.performedByDisplay\"\n ></span>\n </div>\n </div>\n\n <div class=\"axm-workflow-activity-instances-page__json-row\">\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.input' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.inputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.output' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__json-viewer\">\n <ax-json-viewer [json]=\"toViewerRoot(row.outputForViewer)\"></ax-json-viewer>\n </div>\n </div>\n </div>\n\n @if (row.isHumanTask) {\n <div class=\"axm-workflow-activity-instances-page__field axm-workflow-activity-instances-page__field--full\">\n <ax-label>\n {{ '@workflow-management:workflow-instances.entities.workflow-instance.pages.activity-instances.field.human-assignees' | translate | async }}\n </ax-label>\n <div class=\"axm-workflow-activity-instances-page__value\" [textContent]=\"row.humanAssigneesDisplay\"></div>\n </div>\n }\n </div>\n }\n </div>\n }\n }\n</div>\n"],"names":["i1"],"mappings":"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"}