@acorex/modules 21.0.0-next.34 → 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
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-common.mjs","sources":["../../../../libs/modules/common/src/lib/const.ts","../../../../libs/modules/common/src/lib/manifest.ts","../../../../libs/modules/common/src/lib/widgets-names-list.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/archive.plugin.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/archive-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/restore-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/bulk-archive-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/bulk-restore-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/archive-plugin.module.ts","../../../../libs/modules/common/src/lib/features/history-plugin/history.plugin.ts","../../../../libs/modules/common/src/lib/features/history-plugin/commands/show-version-history-popup.command.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/version-history-page/version-history-page-component.provider.ts","../../../../libs/modules/common/src/lib/features/history-plugin/audit-info-widget.config.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/widget-definition.provider.ts","../../../../libs/modules/common/src/lib/features/history-plugin/history.module.ts","../../../../libs/modules/common/src/lib/features/history-plugin/utils/version-history.utils.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/version-history-page/version-history-page.component.ts","../../../../libs/modules/common/src/lib/features/avatar-plugin/avatar.plugin.ts","../../../../libs/modules/common/src/lib/features/avatar-plugin/avatar-plugin.module.ts","../../../../libs/modules/common/src/lib/features/category-plugin/category.plugin.ts","../../../../libs/modules/common/src/lib/features/category-plugin/entity.provider.ts","../../../../libs/modules/common/src/lib/features/category-plugin/category.module.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/clone.plugin.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/workflows/clone-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/clone-plugin.module.ts","../../../../libs/modules/common/src/lib/features/color-plugin/color.plugin.ts","../../../../libs/modules/common/src/lib/features/color-plugin/color-plugin.module.ts","../../../../libs/modules/common/src/lib/features/compare/compare-popup.component.ts","../../../../libs/modules/common/src/lib/features/compare/compare-popup.component.html","../../../../libs/modules/common/src/lib/features/compare/workflows/compare.workflow.ts","../../../../libs/modules/common/src/lib/features/compare/compare.plugin.ts","../../../../libs/modules/common/src/lib/features/compare/compare.module.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.middleware.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.plugin.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.module.ts","../../../../libs/modules/common/src/lib/features/description-plugin/description.plugin.ts","../../../../libs/modules/common/src/lib/features/description-plugin/description-plugin.module.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/disable.plugin.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/disable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/enable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/bulk-disable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/bulk-enable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/disable-plugin.module.ts","../../../../libs/modules/common/src/lib/features/default-plugin/default.plugin.ts","../../../../libs/modules/common/src/lib/features/default-plugin/default-plugin.module.ts","../../../../libs/modules/common/src/lib/features/global-search/search.config.ts","../../../../libs/modules/common/src/lib/features/global-search/search-slot.component.ts","../../../../libs/modules/common/src/lib/features/global-search/workflows/search.workflow.ts","../../../../libs/modules/common/src/lib/features.keys.ts","../../../../libs/modules/common/src/lib/features/global-search/search.module.ts","../../../../libs/modules/common/src/lib/features/global-search/search.viewmodel.ts","../../../../libs/modules/common/src/lib/features/icon-plugin/icon.plugin.ts","../../../../libs/modules/common/src/lib/features/icon-plugin/icon-plugin.module.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-guard.middleware.ts","../../../../libs/modules/common/src/lib/features/lock-system/workflows/lock-popup.workflow.ts","../../../../libs/modules/common/src/lib/features/lock-system/workflows/unlock-confirm.workflow.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-system.module.ts","../../../../libs/modules/common/src/lib/features/name-plugin/name.plugin.ts","../../../../libs/modules/common/src/lib/features/name-plugin/name-plugin.module.ts","../../../../libs/modules/common/src/lib/features/notes-plugin/notes.plugin.ts","../../../../libs/modules/common/src/lib/features/notes-plugin/notes-plugin.module.ts","../../../../libs/modules/common/src/lib/features/primary-plugin/primary.plugin.ts","../../../../libs/modules/common/src/lib/features/primary-plugin/primary-plugin.module.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status.plugin.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status-plugin.module.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status.types.ts","../../../../libs/modules/common/src/lib/features/status/providers/task-status.provider.ts","../../../../libs/modules/common/src/lib/features/status/providers/approval-status.provider.ts","../../../../libs/modules/common/src/lib/features/status/providers/state-status.provider.ts","../../../../libs/modules/common/src/lib/features/title-plugin/title.plugin.ts","../../../../libs/modules/common/src/lib/features/title-plugin/title-plugin.module.ts","../../../../libs/modules/common/src/lib/features/unique-fields-plugin/unique-fields.plugin.ts","../../../../libs/modules/common/src/lib/features/unique-fields-plugin/unique-fields-plugin.module.ts","../../../../libs/modules/common/src/lib/validations/rules/unique-validation-rule.class.ts","../../../../libs/modules/common/src/lib/validations/rules/variable-name-validation-rule.class.ts","../../../../libs/modules/common/src/lib/validations/validation-rules.module.ts","../../../../libs/modules/common/src/lib/evaluators/datetime.evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/evaluators/translate.evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/middlewares/command-message-toast.middleware.ts","../../../../libs/modules/common/src/lib/middlewares/command-refresh.middleware.ts","../../../../libs/modules/common/src/lib/middlewares/command-middleware.module.ts","../../../../libs/modules/common/src/lib/menu.keys.ts","../../../../libs/modules/common/src/lib/menu.provider.ts","../../../../libs/modules/common/src/lib/settings.provider.ts","../../../../libs/modules/common/src/lib/evaluators/filter/filter-operator-evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/feature-definition.provider.ts","../../../../libs/modules/common/src/lib/multi-source-definitions/assignment-multi-source-definition.provider.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments.plugin.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments-page/attachments-page-component.provider.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments-plugin.module.ts","../../../../libs/modules/common/src/lib/common.module.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.config.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.component.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.component.html","../../../../libs/modules/common/src/acorex-modules-common.ts"],"sourcesContent":["const config = {\n i18n: 'common',\n module: 'Common',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'common',\n name: config.module,\n title: '@general:common.module.title',\n icon: 'fa-light fa-file-invoice',\n },\n entities: {},\n};\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Common Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const CommonManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","export const AXPWidgetsList = {\n Editors: {\n DocumentAttachment: 'document-attachment-editor',\n TagEditor: 'tag-editor',\n CheckBox: 'checkbox-editor',\n ColorBox: 'color-editor',\n ColorPalette: 'color-palette-editor',\n DateTimeBox: 'date-time-editor',\n AddressBox: 'address-editor',\n Direction: 'direction',\n LargeTextBox: 'large-text-editor',\n NumberBox: 'number-editor',\n UnitValueBox: 'number-unit-editor',\n PasswordBox: 'password-editor',\n QueryBuilder: 'query-builder-editor',\n RichText: 'rich-text-editor',\n SelectBox: 'select-editor',\n SelectionList: 'selection-list-editor',\n TextBox: 'text-editor',\n InlineDataTable: 'table-editor',\n ToggleSwitch: 'toggle-editor',\n FileTypeExtension: 'file-type-extension',\n MapBox: 'map',\n MediaGallery: 'gallery',\n SignatureBox: 'signature',\n LookupBox: 'lookup-editor',\n MultiSourceSelector: 'multi-source-selector-editor',\n EntityCategory: 'entity-category-editor',\n ContactBox: 'contact-editor',\n MetaDataBox: 'meta-data-editor',\n TemplateBox: 'template-box-editor',\n TemplateContentEditor: 'template-content-editor',\n TimeDuration: 'time-duration',\n DocumentUploader: 'document-uploader',\n MetaSelector: 'meta-selector-editor',\n MetaDataForm: 'meta-data-form-editor',\n ColumnFilterSelector: 'column-filter-selector-editor',\n DataListFilter: 'data-list-filter-editor',\n ListEditor: 'list-editor',\n ConnectedListsEditor: 'connected-lists-editor',\n SkillMatrix: 'skill-matrix-editor',\n ResponsibilitiesMatrix: 'responsibilities-matrix-editor',\n ProgressBox: 'progress-bar-editor',\n RatePicker: 'rate-picker-editor',\n ActivityCommandConfigurator: 'activity-command-configurator',\n },\n Layouts: {\n AlertBox: 'alert-box-layout',\n BlockLayout: 'block-layout',\n RepeaterLayout: 'repeater-layout',\n TextBlockLayout: 'text-block-layout',\n FormField: 'form-field',\n PanelLayout: 'panel-layout',\n PageLayout: 'page-layout',\n DocumentLayout: 'document-layout',\n GridRowLayout: 'grid-row-layout',\n GridItemLayout: 'grid-item-layout',\n GridLayout: 'grid-layout',\n FlexLayout: 'flex-layout',\n FlexItemLayout: 'flex-item-layout',\n AdvancedGridLayout: 'advanced-grid-layout',\n AdvancedGridItemLayout: 'advanced-grid-item-layout',\n FieldsetLayout: 'fieldset-layout',\n TabsetLayout: 'tabset-layout',\n TabsetItemLayout: 'tabset-item',\n },\n Actions: {\n ActionButton: 'button-action',\n },\n Advanced: {\n CodeEditor: 'code-editor',\n JsonViewer: 'json-viewer',\n QRCode: 'qrcode',\n schedulerPicker: 'scheduler-picker',\n Signature: 'signature',\n Map: 'map',\n Gallery: 'gallery',\n Image: 'image',\n ImageMarker: 'image-marker',\n Avatar: 'avatar',\n FileUploader: 'file-uploader',\n DataList: 'data-list',\n ListToolbar: 'list-toolbar',\n CronJob: 'cron-job',\n Status: 'status-widget',\n WidgetFieldConfigurator: 'widget-field-configurator',\n AnswersViewer: 'answers-viewer',\n },\n Templates: {\n Designer: 'template-designer',\n Template: 'template',\n },\n // Filters: {\n // StringFilter: 'string-filter',\n // SelectFilter: 'select-filter',\n // NumberFilter: 'number-filter',\n // DateTimeFilter: 'datetime-filter',\n // BooleanFilter: 'boolean-filter',\n // LookupFilter: 'lookup-filter',\n // },\n // PropertyEditors: {\n // Spacing: 'spacing',\n // GridOptions: 'grid-options',\n // GridItemOptions: 'grid-item-options',\n // FlexOptions: 'flex-options',\n // FlexItemOptions: 'flex-item-options',\n // Direction: 'direction',\n // Border: 'border',\n // AdvancedGridOptions: 'advanced-grid-options',\n // },\n // Validations: {\n // RequiredValidation: 'required-validation',\n // RegularExpressionValidation: 'regular-expression-validation',\n // MinLengthValidation: 'min-length-validation',\n // MaxLengthValidation: 'max-length-validation',\n // LessThanValidation: 'less-than-validation',\n // GreaterThanValidation: 'greater-than-validation',\n // EqualValidation: 'equal-validation',\n // CallbackValidation: 'callback-validation',\n // BetweenValidation: 'between-validation',\n // },\n Entity: {\n EntityList: 'entity-list',\n SelectorStructure: 'selector-structure',\n },\n Providers: {\n EntityDefinition: 'entity-definition-provider-editor',\n },\n ExpressionBuilders: {\n ConditionBuilder: 'condition-builder-editor',\n },\n Theme: {\n ThemeColorChooser: 'theme-color-chooser',\n ThemePaletteChooser: 'theme-palette-chooser',\n // ThemeModeChooser: 'theme-mode-chooser',\n IconChooser: 'icon-chooser',\n FontSizeChooser: 'font-size-chooser',\n FontStyleChooser: 'font-style-chooser',\n // MenuOrientationChooser: 'menu-orientation-chooser',\n },\n // Dashboard: {\n // Weather: 'weather',\n // StickyNote: 'sticky-note',\n // LineChart: 'line-chart',\n // BarChart: 'bar-chart',\n // DonutChart: 'donut-chart',\n // GaugeChart: 'gauge-chart',\n // AnalogClock: 'analog-clock',\n // ClockCalendar: 'clock-calendar',\n // DashboardShortcut: 'dashboard-shortcut',\n // TaskBoard: 'task-board',\n // MyNotificationDashboard: 'my-notification-dashboard',\n // },\n // Features: {\n // Comment: 'comment',\n // Permissions: 'permissions',\n // },\n};\n","import { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n//#region ---- Types ----\n\n/** Options for the archive plugin. */\nexport interface ArchivePluginOptions {\n /** Name of the boolean field used for archived state. Defaults to `'isArchived'`. */\n fieldName?: string;\n}\n\nconst DEFAULT_ARCHIVE_FIELD_NAME = 'isArchived';\n\n//#endregion\n\nexport const archivePlugin: AXPEntityActionPlugin = {\n name: 'archive',\n order: 65,\n apply: (ctx, options?: ArchivePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_ARCHIVE_FIELD_NAME;\n\n //#region ---- Add Archive Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add archive property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-archived',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not archived)\n defaultValue: false,\n trulyText: '@general:terms.status.options.archived',\n falsyText: '@general:terms.status.options.active',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true }\n }\n }\n } as any);\n }\n\n // Add archive field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-active',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Archive Actions ----\n\n ctx.interfaces.update((i) => {\n const archiveCmdName = 'archive-entity';\n const restoreArchiveCmdName = 'restore-archive-entity';\n const bulkArchiveCmdName = 'bulk-archive-entity';\n const bulkRestoreArchiveCmdName = 'bulk-restore-archive-entity';\n\n // Add archive action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, archiveCmdName)) {\n listActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add restore archive action to list view\n if (!actionExists(listActions, restoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add bulk archive action to list view\n if (!actionExists(listActions, bulkArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-archive.title',\n command: {\n name: bulkArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk restore archive action to list view\n if (!actionExists(listActions, bulkRestoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-restore-archive.title',\n command: {\n name: bulkRestoreArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add archive action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, archiveCmdName)) {\n singleActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add restore archive action to single view\n if (!actionExists(singleActions, restoreArchiveCmdName)) {\n singleActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Add archive view to show only archived items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if archive view already exists\n if (!next.views.some((v: any) => v.name === 'archived')) {\n next.views.push(\n createQueryView('archived', '@general:terms.status.states.is-archived', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true\n },\n ],\n sorts: [\n { name: 'archivedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n })\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityArchivedEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Archived',\n);\n\n@Injectable()\nexport class AXPEntityArchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.archive.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.archive.confirm.processing'),\n mode: 'indeterminate',\n status: 'Archiving...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare archive data\n const archiveData = this.prepareArchiveData(currentData);\n\n // Update the entity to mark it as archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(archiveData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Archive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n \n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n \n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareArchiveData(currentData: any): any {\n const archiveData = { ...currentData };\n\n // Set the archived flag\n archiveData.isArchived = true;\n\n // Optionally add archive timestamp\n archiveData.archivedAt = new Date();\n\n return archiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityArchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch archive event\n this.dispatch(\n AXPEntityArchivedEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPArchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'archive-entity',\n steps: {\n 'archive-entity': {\n action: 'AXPEntityArchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-archived',\n content: 'workflow.entity-archived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'archive-success',\n },\n ],\n },\n 'archive-success': {\n action: 'AXPEntityArchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityUnarchivedEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Unarchived',\n);\n\n@Injectable()\nexport class AXPEntityUnarchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.restore-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.restore-archive.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.restore-archive.confirm.processing'),\n mode: 'indeterminate',\n status: 'Unarchiving...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare unarchive data\n const unarchiveData = this.prepareUnarchiveData(currentData);\n\n // Update the entity to mark it as not archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(unarchiveData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Unarchive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n \n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n \n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareUnarchiveData(currentData: any): any {\n const unarchiveData = { ...currentData };\n\n // Set the archived flag to false\n unarchiveData.isArchived = false;\n\n // Remove archive timestamp\n delete unarchiveData.archivedAt;\n\n return unarchiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityUnarchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch unarchive event\n this.dispatch(\n AXPEntityUnarchivedEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPUnarchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'unarchive-entity',\n steps: {\n 'unarchive-entity': {\n action: 'AXPEntityUnarchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-unarchived',\n content: 'workflow.entity-unarchived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'unarchive-success',\n },\n ],\n },\n 'unarchive-success': {\n action: 'AXPEntityUnarchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkArchivedEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Archived',\n);\n\n@Injectable()\nexport class AXPEntityBulkArchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.processing'),\n mode: 'indeterminate',\n status: `Archiving ${selectedIds.length} items...`,\n });\n\n try {\n const processedIds: string[] = [];\n const failedIds: string[] = [];\n\n // Process each selected entity\n for (const id of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, id);\n\n // Prepare archive data\n const archiveData = this.prepareArchiveData(currentData);\n\n // Update the entity to mark it as archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(archiveData);\n processedIds.push(id);\n } else {\n failedIds.push(id);\n }\n } catch (error) {\n console.error(`Failed to archive entity ${id}:`, error);\n failedIds.push(id);\n }\n }\n\n context.setOutput('processedIds', processedIds);\n context.setOutput('failedIds', failedIds);\n context.setOutput('isCanceled', false);\n context.setOutput('totalProcessed', processedIds.length);\n context.setOutput('totalFailed', failedIds.length);\n\n } catch (error) {\n console.error('Bulk archive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareArchiveData(currentData: any): any {\n const archiveData = { ...currentData };\n\n // Set the archived flag\n archiveData.isArchived = true;\n\n // Optionally add archive timestamp\n archiveData.archivedAt = new Date();\n\n return archiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkArchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const failedIds = context.getOutput<string[]>('failedIds') || [];\n const totalProcessed = context.getOutput<number>('totalProcessed') || 0;\n const totalFailed = context.getOutput<number>('totalFailed') || 0;\n\n // Dispatch bulk archive event\n this.dispatch(\n AXPEntityBulkArchivedEvent({\n entity: refType,\n ids: processedIds,\n meta: { failedIds, totalProcessed, totalFailed }\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta: { refreshType: 'bulk-archive' }\n }),\n );\n }\n}\n\nexport const AXPBulkArchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-archive-entity',\n steps: {\n 'bulk-archive-entity': {\n action: 'AXPEntityBulkArchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-archived',\n content: 'workflow.entity-bulk-archived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-archive-success',\n },\n ],\n },\n 'bulk-archive-success': {\n action: 'AXPEntityBulkArchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkUnarchivedEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Unarchived',\n);\n\n@Injectable()\nexport class AXPEntityBulkUnarchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.processing'),\n mode: 'indeterminate',\n status: `Unarchiving ${selectedIds.length} items...`,\n });\n\n try {\n const processedIds: string[] = [];\n const failedIds: string[] = [];\n\n // Process each selected entity\n for (const id of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, id);\n\n // Prepare unarchive data\n const unarchiveData = this.prepareUnarchiveData(currentData);\n\n // Update the entity to mark it as not archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(unarchiveData);\n processedIds.push(id);\n } else {\n failedIds.push(id);\n }\n } catch (error) {\n console.error(`Failed to restore entity ${id}:`, error);\n failedIds.push(id);\n }\n }\n\n context.setOutput('processedIds', processedIds);\n context.setOutput('failedIds', failedIds);\n context.setOutput('isCanceled', false);\n context.setOutput('totalProcessed', processedIds.length);\n context.setOutput('totalFailed', failedIds.length);\n\n } catch (error) {\n console.error('Bulk unarchive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareUnarchiveData(currentData: any): any {\n const unarchiveData = { ...currentData };\n\n // Set the archived flag to false\n unarchiveData.isArchived = false;\n\n // Remove archive timestamp\n delete unarchiveData.archivedAt;\n\n return unarchiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkUnarchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const failedIds = context.getOutput<string[]>('failedIds') || [];\n const totalProcessed = context.getOutput<number>('totalProcessed') || 0;\n const totalFailed = context.getOutput<number>('totalFailed') || 0;\n\n // Dispatch bulk unarchive event\n this.dispatch(\n AXPEntityBulkUnarchivedEvent({\n entity: refType,\n ids: processedIds,\n meta: { failedIds, totalProcessed, totalFailed }\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta: { refreshType: 'bulk-unarchive' }\n }),\n );\n }\n}\n\nexport const AXPBulkUnarchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-unarchive-entity',\n steps: {\n 'bulk-unarchive-entity': {\n action: 'AXPEntityBulkUnarchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-unarchived',\n content: 'workflow.entity-bulk-unarchived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-unarchive-success',\n },\n ],\n },\n 'bulk-unarchive-success': {\n action: 'AXPEntityBulkUnarchiveSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { archivePlugin } from './archive.plugin';\nimport { \n AXPArchiveEntityWorkflow, \n AXPEntityArchiveAction, \n AXPEntityArchiveSuccessAction,\n AXPUnarchiveEntityWorkflow,\n AXPEntityUnarchiveAction,\n AXPEntityUnarchiveSuccessAction,\n AXPBulkArchiveEntityWorkflow,\n AXPEntityBulkArchiveAction,\n AXPEntityBulkArchiveSuccessAction,\n AXPBulkUnarchiveEntityWorkflow,\n AXPEntityBulkUnarchiveAction,\n AXPEntityBulkUnarchiveSuccessAction\n} from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityArchiveAction,\n AXPEntityArchiveSuccessAction,\n AXPEntityUnarchiveAction,\n AXPEntityUnarchiveSuccessAction,\n AXPEntityBulkArchiveAction,\n AXPEntityBulkArchiveSuccessAction,\n AXPEntityBulkUnarchiveAction,\n AXPEntityBulkUnarchiveSuccessAction,\n },\n workflows: {\n 'archive-entity': AXPArchiveEntityWorkflow,\n 'restore-archive-entity': AXPUnarchiveEntityWorkflow,\n 'bulk-archive-entity': AXPBulkArchiveEntityWorkflow,\n 'bulk-restore-archive-entity': AXPBulkUnarchiveEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: archivePlugin },\n ],\n})\nexport class AXPArchivePluginModule { }\n","import { AXPEntityAction, AXPEntityCommandScope } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n resolveEntityPluginDetailPageOrder,\n} from '@acorex/platform/layout/entity';\n\n/** How to show version history: popup (default) or full page. */\nexport type HistoryDisplayMode = 'page' | 'popup';\n\n/** Component key used when display is 'page'. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const HISTORY_PAGE_COMPONENT_KEY = 'entity-version-history-page';\n\nexport interface AXPHistoryPluginOptions {\n /** Where to show version history: popup (action) or page (tab). Default: 'page' */\n display?: HistoryDisplayMode;\n /** Title for the page when display is 'page'. Default: @activity-log:actions.view-history.title (Change History) */\n title?: string;\n /** Icon for the page when display is 'page'. Default: fa-light fa-clock-rotate-left */\n icon?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: false\n };\n}\n\nconst DEFAULT_COLUMN_WIDTH = '180px';\nconst AUDIT_GROUP_ID = 'audit-info';\nconst SECTION_ORDER = 999;\n\nexport const historyPlugin: AXPEntityActionPlugin = {\n name: 'history',\n order: 50,\n apply: (ctx, options?: AXPHistoryPluginOptions) => {\n const opts = options ?? {};\n const displayMode: HistoryDisplayMode = opts.display ?? 'page';\n const columnEnabled = opts.column?.enabled ?? true;\n const columnVisible = opts.column?.visible ?? false;\n const fieldTitles = Object.fromEntries(\n ctx.properties.list()?.map((p: any) => [p.name, p.title]) ?? []\n );\n const entitySource = `${ctx.entity.module}.${ctx.entity.name}`;\n\n //#region ---- Change history action (list + single) or page ----\n\n if (displayMode === 'popup') {\n ensureListActions(ctx);\n const cmdName = 'show-version-history-popup';\n ctx.interfaces.update((i) => {\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n const singleActions =\n (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n return i as any;\n });\n } else {\n ctx.entity.pages ??= [];\n const pageExists = ctx.entity.pages.some(\n (p: { componentKey?: string }) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY,\n );\n const historyPageOrder = resolveEntityPluginDetailPageOrder(\n { relatedEntities: ctx.entity.relatedEntities, pages: ctx.entity.pages },\n 'history',\n {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n skipPage: pageExists\n ? { componentKey: HISTORY_PAGE_COMPONENT_KEY }\n : undefined,\n },\n );\n if (!pageExists) {\n const pageEntry = {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n title: opts.title?.trim()\n ? opts.title\n : '@activity-log:actions.view-history.title',\n icon: opts.icon ?? 'fa-light fa-clock-rotate-left',\n layout: { order: historyPageOrder },\n refType: entitySource,\n options: { refType: entitySource },\n };\n (ctx.entity.pages as typeof pageEntry[]).push(pageEntry);\n } else {\n const pages = ctx.entity.pages as Array<{\n componentKey?: string;\n layout?: { order?: number; position?: 'before' | 'after' | 'middle' };\n }>;\n const index = pages.findIndex((p) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY);\n if (index >= 0) {\n const existing = pages[index];\n pages[index] = {\n ...existing,\n layout: { ...(existing.layout ?? {}), order: historyPageOrder },\n };\n }\n }\n }\n\n //#endregion\n\n //#region ---- Audit section (detail view, always) ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === AUDIT_GROUP_ID)) {\n ctx.groups.add({\n id: AUDIT_GROUP_ID,\n title: '@general:terms.audit.section-title',\n } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'auditInfo')) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.section-title',\n groupId: AUDIT_GROUP_ID,\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, {\n id: AUDIT_GROUP_ID,\n order: SECTION_ORDER,\n } as any);\n ensureLayoutPropertyView(next, {\n name: 'auditInfo',\n layout: { positions: { lg: { colSpan: 12, order: 1 } } },\n } as any);\n return next;\n };\n\n // ctx.interfaces.master.single.update((single) =>\n // applyLayoutPatch(\n // single ?? { title: ctx.entity.title, sections: [], properties: [] }\n // )\n // );\n\n //#endregion\n\n //#region ---- Audit column (list view) ----\n\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'auditInfo')) {\n const currentProps = ctx.properties.list();\n const auditInfoProperty = currentProps.find(\n (p: any) => p.name === 'auditInfo'\n );\n\n if (!auditInfoProperty) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.column-title',\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n ctx.columns.add({\n name: 'auditInfo',\n title: '@general:terms.audit.modified',\n options: {\n width: DEFAULT_COLUMN_WIDTH,\n visible: columnVisible,\n dataPath: 'auditInfo',\n },\n });\n }\n }\n\n //#endregion\n },\n};\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\n\nexport interface ShowVersionHistoryPopupInput {\n refId?: string;\n refType?: string;\n fieldTitles?: Record<string, string>;\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n /** When invoked from entity action, options may be under __context__.options or options */\n __context__?: { options?: Partial<ShowVersionHistoryPopupInput>; data?: Record<string, unknown> };\n options?: Partial<ShowVersionHistoryPopupInput>;\n}\n\n/**\n * Opens the version history timeline popup for a given entity reference.\n * Replaces the legacy AXPWorkflowAction-based workflow with the AXP Command system.\n */\n@Injectable({ providedIn: 'root' })\nexport class ShowVersionHistoryPopupCommand\n implements AXPCommand<ShowVersionHistoryPopupInput, void> {\n private readonly popupService = inject(AXPopupService);\n private readonly translate = inject(AXTranslationService);\n\n async execute(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): Promise<AXPExecuteCommandResult<void>> {\n const opts = this.normalizeInput(input);\n if (!opts.refId || !opts.refType) {\n return {\n success: false,\n message: {\n text: await this.translate.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const comp = (\n await import(\n '../components/timeline-version-history-popup/timeline-version-history-popup.component'\n )\n ).AXMTimelineVersionHistoryPopupComponent;\n\n this.popupService.open(comp, {\n title: await this.translate.translateAsync('@activity-log:actions.view-history.title'),\n data: {\n refId: opts.refId,\n refType: opts.refType,\n fieldTitles: opts.fieldTitles ?? {},\n fromDate: opts.fromDate,\n toDate: opts.toDate,\n limit: opts.limit,\n offset: opts.offset,\n },\n });\n\n return { success: true };\n }\n\n private normalizeInput(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): ShowVersionHistoryPopupInput {\n const ctx = (input as any).__context__;\n const options = (input as any).options ?? ctx?.options ?? {};\n return {\n refId: (input as any).refId ?? options.refId,\n refType: (input as any).refType ?? options.refType,\n fieldTitles: (input as any).fieldTitles ?? options.fieldTitles,\n fromDate: (input as any).fromDate ?? options.fromDate,\n toDate: (input as any).toDate ?? options.toDate,\n limit: (input as any).limit ?? options.limit,\n offset: (input as any).offset ?? options.offset,\n };\n }\n}\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { HISTORY_PAGE_COMPONENT_KEY } from '../../history.plugin';\n\n//#region ---- Version History Page Component Provider ----\n\n@Injectable()\nexport class AXMVersionHistoryPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: HISTORY_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./version-history-page.component').then(\n (m) => m.AXMVersionHistoryPageComponent\n ),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\n\nexport const AXPHistoryAuditInfoWidget: AXPWidgetConfig = {\n name: 'audit-info-column',\n title: 'Audit Info',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'editor',\n icon: 'fa-light fa-info-circle',\n properties: [],\n components: {\n view: {\n component: () =>\n import('./components/audit-info-view.component').then(\n (c) => c.AXPAuditInfoViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./components/audit-info-edit.component').then(\n (c) => c.AXPAuditInfoEditComponent\n ),\n },\n column: {\n component: () =>\n import('./components/audit-info-column.component').then(\n (c) => c.AXPAuditInfoColumnComponent\n ),\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPHistoryAuditInfoWidget } from '../audit-info-widget.config';\n\n//#endregion\n\n//#region ---- Audit Info Widgets Provider ----\n\n@Injectable()\nexport class AXPAuditInfoWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXPHistoryAuditInfoWidget];\n }\n}\n\n//#endregion","import { NgModule } from '@angular/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex/platform/layout/components';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';\nimport { historyPlugin } from './history.plugin';\nimport { ShowVersionHistoryPopupCommand } from './commands/show-version-history-popup.command';\nimport { AXMVersionHistoryPageComponentProvider } from './components/version-history-page/version-history-page-component.provider';\nimport { AXPAuditInfoWidgetsProvider } from './components/widget-definition.provider';\n\n@NgModule({\n imports: [],\n providers: [\n { provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMVersionHistoryPageComponentProvider },\n { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPAuditInfoWidgetsProvider, multi: true },\n ShowVersionHistoryPopupCommand,\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: historyPlugin,\n multi: true,\n },\n provideCommandSetups([\n {\n key: 'show-version-history-popup',\n command: () =>\n import('./commands/show-version-history-popup.command').then(\n (m) => m.ShowVersionHistoryPopupCommand\n ),\n },\n ]),\n ],\n})\nexport class AXPHistoryModule {}\n","import { AXPVersionEntry, AXVChangeType } from '@acorex/platform/common';\nimport {\n AXPActivityLog,\n AXPActivityLogChange,\n AXPSystemActionType,\n} from '@acorex/platform/core';\n\n//#region ---- Version History Utils ----\n\nconst ACTIVITY_LOG_CHANGES_SCOPE = '@activity-log:changes';\n\n/** Removes field names from summary to avoid repetition (e.g. \"Fields changed: 3 (title, desc)\" → \"Fields changed: 3\"). */\nfunction stripFieldNamesFromSummary(summary: string): string {\n return summary.replace(/Fields changed:\\s*(\\d+)\\s*\\([^)]+\\)/g, 'Fields changed: $1');\n}\n\nexport function mapChangeType(\n t: AXVChangeType\n): AXPSystemActionType.Create | AXPSystemActionType.Update | AXPSystemActionType.Delete {\n switch (t) {\n case AXVChangeType.Create:\n return AXPSystemActionType.Create;\n case AXVChangeType.Delete:\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\nexport function mapOpToAction(op: string): AXPSystemActionType {\n switch (op) {\n case 'add':\n return AXPSystemActionType.Create;\n case 'remove':\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\n/** Kebab-case to camelCase for fieldTitles lookup (e.g. is-disabled -> isDisabled). */\nfunction toCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n}\n\n/**\n * Resolves the field lookup key from a JSON Pointer path. Uses last segment for leaf properties.\n * Handles path validation and [object Object] edge cases.\n * Exported for use by history layout resolver (path -> property lookup).\n */\nexport function resolvePathKey(path: unknown): string {\n if (path == null) return '';\n const str = typeof path === 'string' ? path : String(path);\n if (str.includes('[object Object]')) return '';\n const trimmed = str.startsWith('/') ? str.slice(1) : str;\n const segments = trimmed.split('/').filter(Boolean);\n return segments[segments.length - 1] ?? '';\n}\n\n/**\n * Resolves i18n fieldKey and actionKey for a patch change.\n * Returns structured keys for translate pipe.\n */\nfunction humanizeChangeToKeys(\n path: unknown,\n op: string,\n fieldTitles?: Record<string, string>\n): { fieldKey: string; actionKey: string; fieldKeyParams?: Record<string, string> } {\n const key = resolvePathKey(path);\n const camelKey = toCamelCase(key);\n const resolved =\n fieldTitles?.[camelKey] ?? fieldTitles?.[key];\n const actionKey = getActionKey(op);\n\n if (resolved) {\n return { fieldKey: resolved, actionKey };\n }\n const humanized = key ? humanizeKeyAsFallback(key) : 'Field';\n return {\n fieldKey: `${ACTIVITY_LOG_CHANGES_SCOPE}.unknown-field`,\n actionKey,\n fieldKeyParams: { name: humanized },\n };\n}\n\nfunction getActionKey(op: string): string {\n switch (op) {\n case 'add':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.added`;\n case 'remove':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.removed`;\n case 'rename':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.renamed`;\n case 'metadata':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.metadata-updated`;\n case 'replace':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.replaced`;\n default:\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.updated`;\n }\n}\n\n/** For unknown field, use last path segment as fallback humanized text. */\nfunction humanizeKeyAsFallback(key: string): string {\n if (!key || key.includes('unknown-field')) return 'Field';\n return key\n .replace(/([A-Z])/g, ' $1')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n .trim();\n}\n\n/**\n * @deprecated Use humanizeChangeToKeys. Kept for backward compatibility.\n */\nexport function humanizeChange(\n path: string,\n op: string,\n fieldTitles?: Record<string, string>\n): string {\n const fieldLabel = humanizeKeyAsFallback(resolvePathKey(path));\n switch (op) {\n case 'add':\n return `${fieldLabel}: added`;\n case 'remove':\n return `${fieldLabel}: removed`;\n case 'rename':\n return `${fieldLabel}: renamed`;\n case 'metadata':\n return `${fieldLabel}: metadata updated`;\n case 'replace':\n return `${fieldLabel}: replaced`;\n default:\n return `${fieldLabel}: updated`;\n }\n}\n\n/**\n * Resolver to obtain a custom history layout for a given change path.\n * When the page provides this, it can resolve path -> property -> widget config -> historyLayout.\n */\nexport type GetHistoryLayoutResolver = (path: string) => unknown | undefined;\n\nconst MAX_SUMMARY_VALUE_LENGTH = 40;\n\n/** Converts a value to a short display string for notification-style summary. */\nfunction toShortDisplayString(val: unknown): string {\n if (val == null) return '—';\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (typeof val === 'number') return String(val);\n if (val instanceof Date) return val.toLocaleString();\n if (typeof val === 'object' && 'title' in (val as object)) return String((val as { title: string }).title);\n if (typeof val === 'object' && 'label' in (val as object)) return String((val as { label: string }).label);\n const str = String(val);\n if (str.length > MAX_SUMMARY_VALUE_LENGTH) return str.slice(0, MAX_SUMMARY_VALUE_LENGTH) + '…';\n return str;\n}\n\n/** Builds a short, human-readable notification-style summary for a change. */\nfunction buildChangeSummary(op: string, oldVal: unknown, newVal: unknown): string {\n const oldStr = toShortDisplayString(oldVal);\n const newStr = toShortDisplayString(newVal);\n switch (op) {\n case 'add':\n return newStr !== '—' ? `Added: ${newStr}` : 'Added';\n case 'remove':\n return oldStr !== '—' ? `Removed: ${oldStr}` : 'Removed';\n case 'replace':\n if (oldStr !== '—' && newStr !== '—') return `${oldStr} → ${newStr}`;\n if (newStr !== '—') return `Updated to: ${newStr}`;\n if (oldStr !== '—') return `Cleared (was: ${oldStr})`;\n return 'Updated';\n default:\n return newStr !== '—' ? `Updated: ${newStr}` : 'Updated';\n }\n}\n\nexport function versionEntriesToActivityLogs(\n entries: AXPVersionEntry[],\n refId: string,\n refType: string,\n fieldTitles?: Record<string, string>,\n getHistoryLayout?: GetHistoryLayoutResolver\n): AXPActivityLog[] {\n return entries.map((e) => {\n const rawChanges = (e.patchFromPrevJson ?? []).slice(0, 20);\n const seenFields = new Set<string>();\n const changes: AXPActivityLogChange[] = [];\n\n for (const c of rawChanges) {\n const { fieldKey, actionKey, fieldKeyParams } = humanizeChangeToKeys(\n c.path,\n c.op,\n fieldTitles\n );\n const dedupeKey = fieldKeyParams ? `${fieldKey}:${fieldKeyParams['name'] ?? ''}` : fieldKey;\n if (seenFields.has(dedupeKey)) continue;\n seenFields.add(dedupeKey);\n\n const pathStr = typeof c.path === 'string' ? c.path : String(c.path ?? '');\n const layout = getHistoryLayout?.(pathStr);\n const summary = buildChangeSummary(c.op, c.oldValue, c.newValue);\n const fallbackDesc = `${humanizeKeyAsFallback(resolvePathKey(c.path))}: ${c.op}`;\n\n changes.push({\n type: mapOpToAction(c.op),\n description: fallbackDesc,\n fieldKey,\n fieldKeyParams,\n actionKey,\n oldValue: c.oldValue,\n newValue: c.newValue,\n summary,\n ...(layout != null && { layout }),\n });\n }\n\n const rawTitle = e.summary ?? `${e.changeType} v${e.versionNumber}`;\n const title = stripFieldNamesFromSummary(rawTitle);\n\n return {\n id: e.id,\n title,\n date: new Date(e.changedAt),\n user: { id: 'system', name: 'System', title: 'System' },\n reference: { id: refId, type: refType },\n changeType: mapChangeType(e.changeType),\n data: e.snapshotJson as Record<string, unknown>,\n changes,\n };\n });\n}\n\n//#endregion\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPVersionEntry, AXPVersioningService } from '@acorex/platform/common';\nimport { AXPActivityLogComponent } from '@acorex/platform/layout/components';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\nimport { AXPWidgetRegistryService } from '@acorex/platform/layout/widget-core';\nimport { resolvePathKey, versionEntriesToActivityLogs } from '../../utils/version-history.utils';\n\n//#region ---- Version History Page Component ----\n\n/**\n * Entity page component that shows version history for the current record.\n * Used when history plugin has display: 'page'. Resolves refId/refType from rootContext or route.\n */\n@Component({\n selector: 'axm-version-history-page',\n standalone: true,\n imports: [\n AXDecoratorModule,\n AXTranslationModule,\n AXLoadingModule,\n AXPActivityLogComponent\n],\n template: `\n <div class=\"ax-p-4 ax-min-h-[30vh] ax-overflow-y-auto\">\n <axp-activity-log [activities]=\"activities()\" [loading]=\"isBusy()\"></axp-activity-log>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMVersionHistoryPageComponent implements OnInit {\n rootContext = input.required<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n options = input<Record<string, unknown>>({});\n\n protected readonly isBusy = signal(false);\n protected readonly versions = signal<AXPVersionEntry[]>([]);\n\n protected readonly activities = computed(() => {\n const props = this.entityProperties();\n const getHistoryLayout = (path: string) => this.resolveHistoryLayout(path, props);\n return versionEntriesToActivityLogs(\n this.versions(),\n this.refId,\n this.refType,\n this.fieldTitles,\n getHistoryLayout\n );\n });\n\n private refId = '';\n private refType = '';\n private fieldTitles: Record<string, string> = {};\n private readonly entityProperties = signal<\n Array<{ name: string; schema?: { interface?: { type?: string } } }>\n >([]);\n\n private readonly versioning = inject(AXPVersioningService);\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly widgetRegistry = inject(AXPWidgetRegistryService);\n private readonly route = inject(ActivatedRoute);\n\n /** Resolves custom history layout for a change path via property -> widget config -> historyLayout. */\n private resolveHistoryLayout(\n path: string,\n properties: Array<{ name: string; schema?: { interface?: { type?: string } } }>\n ): unknown {\n const key = resolvePathKey(path);\n const camelKey = key.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n const prop = properties.find(\n (p) => p.name === key || p.name === camelKey\n );\n const widgetType = prop?.schema?.interface?.type;\n if (!widgetType) return undefined;\n const config = this.widgetRegistry.resolve(widgetType);\n return config?.historyLayout;\n }\n\n async ngOnInit(): Promise<void> {\n this.isBusy.set(true);\n const { refId, refType } = this.resolveEntityRef();\n if (!refId || !refType) {\n this.isBusy.set(false);\n return;\n }\n this.refId = refId;\n this.refType = refType;\n\n const [moduleName, entityName] = refType.split('.');\n if (moduleName && entityName) {\n try {\n const entity = await this.entityRegistry.resolve(moduleName, entityName);\n const props = entity.properties ?? [];\n this.entityProperties.set(props as Array<{ name: string; schema?: { interface?: { type?: string } } }>);\n this.fieldTitles = Object.fromEntries(\n props.map((p: { name: string; title: string }) => [\n p.name,\n p.title ?? p.name,\n ])\n );\n } catch {\n this.entityProperties.set([]);\n this.fieldTitles = {};\n }\n }\n\n const streamId = await this.versioning.getStreamIdIfExists(refType, refId);\n if (streamId) {\n const entries = await this.versioning.listEntries(streamId, {\n limit: 50,\n offset: 0,\n });\n this.versions.set(entries);\n } else {\n this.versions.set([]);\n }\n this.isBusy.set(false);\n }\n\n private resolveEntityRef(): { refId: string | null; refType: string | null } {\n const context = this.rootContext() ?? {};\n const ctx = context as Record<string, unknown>;\n\n let refType: string | null = null;\n const config = this.pageConfig();\n const opts = this.options();\n if (config && typeof (config as { refType?: string }).refType === 'string') {\n refType = (config as { refType: string }).refType;\n }\n if (!refType && opts && typeof (opts as { refType?: string }).refType === 'string') {\n refType = (opts as { refType: string }).refType;\n }\n if (!refType) {\n const moduleName = typeof ctx['moduleName'] === 'string' ? ctx['moduleName'] : null;\n const entityName = typeof ctx['entityName'] === 'string' ? ctx['entityName'] : null;\n if (moduleName && entityName) {\n refType = `${moduleName}.${entityName}`;\n }\n }\n if (!refType) {\n const module = this.route.snapshot.parent?.paramMap.get('module');\n const entity = this.route.snapshot.paramMap.get('entity');\n if (module && entity) {\n refType = `${module}.${entity}`;\n }\n }\n\n const refId =\n (typeof ctx['id'] === 'string' ? ctx['id'] : null) ??\n (typeof ctx['recordId'] === 'string' ? ctx['recordId'] : null) ??\n null;\n\n return { refId, refType };\n }\n}\n\n//#endregion\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPAvatarPluginOptions {\n group?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\nexport const avatarPlugin: AXPEntityActionPlugin = {\n name: 'avatar',\n order: 75,\n apply: (ctx, options?: AXPAvatarPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'avatar')) {\n ctx.properties.add({\n name: 'avatar',\n title: '@general:terms.common.avatar',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.Image,\n options: {\n type: 'card',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { avatarPlugin } from './avatar.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: avatarPlugin }],\n})\nexport class AXPAvatarPluginModule {}\n","import { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPCategoryPluginOptions {\n /** Full entity key (e.g. 'myModule.Topic') to use instead of default {module}.{baseEntity}Category. When set, that entity must be defined elsewhere. */\n categoryEntity?: string;\n propertyName?: string; // default: categoryIds\n allowMultiple?: boolean; // default: true\n /** Display field name on the category entity (default: 'title') */\n textField?: string;\n /** Value field name on the category entity (default: 'id') */\n valueField?: string;\n /** Parent field name for hierarchy (default: 'parentId'). Used when category tree reads from entity definition. */\n parentKey?: string;\n /** When true, user cannot add/edit/delete categories from the category selector or sidebar. */\n readonly?: boolean;\n appearance?: {\n icon?: boolean;\n color?: boolean;\n };\n metaData?: {\n enabled: boolean;\n title?: string;\n };\n}\n\nexport const categoryPlugin: AXPEntityActionPlugin = {\n name: 'category',\n order: 45,\n apply: async (ctx, options?: AXPCategoryPluginOptions) => {\n const moduleName = ctx.entity.module;\n const baseEntityName = ctx.entity.name;\n const defaultCategoryEntityName = `${baseEntityName}Category`;\n\n const categoryEntityKey =\n options?.categoryEntity?.trim()?.length ? options.categoryEntity.trim() : `${moduleName}.${defaultCategoryEntityName}`;\n const textField = options?.textField?.trim()?.length ? options.textField!.trim() : 'title';\n const valueField = options?.valueField?.trim()?.length ? options.valueField!.trim() : 'id';\n\n const propertyName = options?.propertyName?.trim()?.length ? options.propertyName : 'categoryIds';\n const allowMultiple = options?.allowMultiple ?? true;\n const enableAppearance = options?.appearance ? (options.appearance.icon === true || options.appearance.color === true) : false;\n const enableMetaDataSelector = options?.metaData?.enabled ?? false;\n // Ensure group exists (prefer basic-info)\n const groupId = 'classification';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.classification' } as any);\n }\n\n const settings = inject(AXPSettingsService);\n const showCategoryColumnsByDefault =\n (await settings.get(AXPCommonSettings.ShowCategoryColumnsByDefault)) !== false;\n ctx.columns.add({\n name: propertyName,\n options: {\n dataPath: 'categories',\n visible: showCategoryColumnsByDefault,\n },\n });\n\n // Ensure property exists\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === propertyName)) {\n ctx.properties.add({\n name: propertyName,\n title: '@general:terms.classification.categories',\n groupId: groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: {\n entity: categoryEntityKey,\n multiple: allowMultiple,\n textField,\n valueField,\n readonly: options?.readonly === true,\n expose: [\n { source: valueField, target: `categories.{${valueField}}` },\n { source: textField, target: `categories.{${textField}}` },\n ],\n },\n },\n },\n } as any);\n }\n\n // Ensure category sidebar/filter block\n ctx.category.update((cat) => {\n return {\n entity: categoryEntityKey,\n title: '@general:terms.classification.categories',\n textField,\n valueField,\n applyConditions: [\n {\n name: propertyName,\n operator: { type: 'contains' },\n value: valueField,\n },\n ],\n };\n });\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: propertyName,\n layout: { positions: { lg: { colSpan: 6, order: 12 } } },\n } as any);\n return next;\n };\n\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Mark extension for dynamic category entity generation (or reference to custom entity)\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.category = {\n entity: categoryEntityKey,\n propertyName,\n allowMultiple,\n textField,\n valueField,\n parentKey: options?.parentKey?.trim()?.length ? options.parentKey : undefined,\n readonly: options?.readonly === true,\n appearance: options?.appearance,\n metaData: options?.metaData,\n };\n },\n};\n","import { AXPEntity, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport {\n AXP_ENTITY_DEFINITION_LOADER,\n AXMEntityCrudServiceImpl,\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionRegistryService,\n entityMasterCrudActions,\n entityMasterDeleteAction,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n@Injectable()\nexport class AXMEntityCategoryProvider implements AXPEntityDefinitionLoader {\n private injector = inject(Injector);\n\n\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n // Generic per-entity Category provider (works for any module)\n if (entityName.endsWith('Category')) {\n // Prefer custom entity definition: if another loader provides this category entity, skip generation\n const customEntity = await this.tryOtherLoaders(moduleName, entityName);\n if (customEntity) {\n return null;\n }\n\n const fullKey = `${moduleName}.${entityName}`;\n const dataService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl<any, any>(fullKey));\n\n // Check if base entity has appearance enabled using lazy injection\n const baseEntityName = entityName.replace('Category', '');\n let enableAppearance = false;\n let enableMetaDataSelector = false;\n let appearanceConfig: { icon?: boolean; color?: boolean } | undefined;\n let metaDataConfig: { enabled: boolean; title?: string } | undefined;\n\n try {\n // Use lazy injection to avoid circular dependency\n const entityRegistry = runInInjectionContext(this.injector, () => {\n try {\n return inject(AXPEntityDefinitionRegistryService);\n } catch {\n return null;\n }\n });\n\n if (entityRegistry) {\n try {\n const baseEntity = await entityRegistry.resolve(moduleName, baseEntityName);\n const categoryExt = (baseEntity as any)?.extensions?.category;\n if (categoryExt) {\n // Handle new structure\n if (categoryExt.appearance) {\n appearanceConfig = categoryExt.appearance;\n enableAppearance = categoryExt.appearance.icon === true || categoryExt.appearance.color === true;\n } else if (categoryExt.enableAppearance) {\n // Backward compatibility: if old structure exists, enable both icon and color\n enableAppearance = true;\n appearanceConfig = { icon: true, color: true };\n }\n\n if (categoryExt.metaData) {\n metaDataConfig = categoryExt.metaData;\n enableMetaDataSelector = categoryExt.metaData.enabled ?? false;\n } else if (categoryExt.enableMetaDataSelector) {\n // Backward compatibility\n enableMetaDataSelector = true;\n metaDataConfig = { enabled: true };\n }\n }\n\n // Check base entity's plugins for meta-data-form plugin to get its title\n // This title should be passed to meta-data-builder plugin\n const basePlugins = (baseEntity as any)?.plugins as Array<{ name: string; options?: any }> | undefined;\n const metaDataFormPlugin = basePlugins?.find((p) => p.name === 'meta-data-form');\n const metaDataFormTitle = metaDataFormPlugin?.options?.title;\n\n // Also check base entity's extensions in case meta-data-form plugin has already run\n const baseMetaDataFormExt = (baseEntity as any)?.extensions?.metaDataForm;\n const baseMetaDataFormExtTitle = baseMetaDataFormExt\n ? Object.values(baseMetaDataFormExt).find((ext: any) => ext?.title) as { title?: string } | undefined\n : undefined;\n\n // If we found a title from meta-data-form, store it in metaDataConfig for meta-data-builder to use\n if (enableMetaDataSelector) {\n if (!metaDataConfig) {\n metaDataConfig = { enabled: true };\n }\n if (!metaDataConfig.title) {\n metaDataConfig.title = metaDataFormTitle || baseMetaDataFormExtTitle?.title;\n }\n }\n } catch (error) {\n // Base entity not found or error loading, continue with default behavior\n console.warn(\n `Could not load base entity ${moduleName}.${baseEntityName} to check category plugin configuration:`,\n error,\n );\n }\n }\n } catch (error) {\n // Registry not available, continue with default behavior\n console.warn(`Entity registry not available, using default category configuration:`, error);\n }\n\n const entityDef: AXPEntity = {\n module: moduleName,\n name: entityName,\n parentKey: 'parentId',\n plugins: [\n // { name: 'lock' },\n // { name: 'compare' },\n ...(enableMetaDataSelector ? [{\n name: 'meta-data-builder',\n options: metaDataConfig?.title ? { title: metaDataConfig.title } : undefined\n }] : []),\n ],\n title: '@general:terms.classification.category',\n formats: {\n individual: '@general:terms.classification.category',\n plural: '@general:terms.classification.categories',\n searchResult: {\n title: '{{ title }}',\n description: '{{ module }}',\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n ...(enableAppearance ? [{ id: 'appearance', title: '@general:terms.interface.appearance' }] : []),\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'parentId',\n title: '@general:terms.classification.parent',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: { entity: `${moduleName}.${entityName}` },\n },\n },\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },\n },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [\n {\n name: 'color',\n title: '@general:terms.common.color',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorPalette,\n options: {},\n },\n },\n },\n ] : []),\n ...(appearanceConfig?.icon !== false ? [\n {\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n },\n ] : []),\n ] : []),\n ],\n columns: [{ name: 'title' }, { name: 'description' }],\n\n queries: {\n list: {\n execute: async (e: any) => {\n const res = await dataService.query(e);\n // enrich hasChild for tree views if childrenCount is available\n return {\n items: res.items.map((item: any) => ({ ...item, hasChild: (item.childrenCount ?? 0) > 0 })),\n total: res.total,\n };\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n ...(enableAppearance ? [{ id: 'appearance', layout: { positions: { lg: { colSpan: 12 } } } }] : []),\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n actions: [entityMasterDeleteAction()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n }\n return null;\n }\n\n /**\n * Asks other entity loaders (excluding this provider) if they provide the given category entity.\n * If a custom entity file exists for this key, that loader will return it and we skip generating.\n */\n private async tryOtherLoaders(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n try {\n const raw = runInInjectionContext(this.injector, () => inject(AXP_ENTITY_DEFINITION_LOADER));\n const arr: unknown[] = Array.isArray(raw) ? raw : raw ? [raw] : [];\n for (const p of arr) {\n const loader = p instanceof Promise ? await p : (p as AXPEntityDefinitionLoader);\n if (loader === this) continue;\n const entity = await loader.get(moduleName, entityName);\n if (entity) return entity;\n }\n } catch {\n // Loaders not available (e.g. circular context), proceed with generation\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n return Promise.resolve([]);\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { categoryPlugin } from './category.plugin';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER, AXPPermissionDefinitionProvider } from '@acorex/platform/auth';\nimport { AXMEntityCategoryProvider } from './entity.provider';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: categoryPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider: AXPPermissionDefinitionProvider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityCategoryProvider,\n multi: true,\n },\n ],\n})\nexport class AXPCategoryModule { }\n\n\n","import { AXPEntityAction, AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex/platform/layout/entity';\n\nexport const clonePlugin: AXPEntityActionPlugin = {\n name: 'clone',\n order: 60,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const cmdName = 'clone-entity';\n\n // Add clone action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n\n // Add clone action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n\n return i as any;\n });\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityClonedEvent = createWorkFlowEvent<{ entity: string; originalId: string; newId: string; meta?: any }>(\n '[Entity] Cloned',\n);\n\n@Injectable()\nexport class AXPEntityCloneAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.clone.confirm.title'),\n await this.translationService.translateAsync('@general:actions.clone.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.clone.confirm.processing'),\n mode: 'indeterminate',\n status: 'Cloning...',\n });\n\n try {\n // Get the original entity data\n const originalData = await this.getEntityData(refType, refId);\n\n // Clone the data (remove id and other unique fields)\n const clonedData = this.prepareClonedData(originalData, entityDefinition);\n\n // Create the new entity\n if (entityDefinition.commands?.create) {\n const createExec = entityDefinition.commands.create.execute as Function;\n const newId = await createExec(clonedData);\n\n context.setOutput('originalId', refId);\n context.setOutput('newId', newId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: clonedData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support create operation');\n }\n } catch (error) {\n console.error('Clone operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareClonedData(originalData: any, entityDefinition: AXPEntity): any {\n const clonedData = { ...originalData };\n\n // Remove unique identifiers and system fields\n delete clonedData.id;\n delete clonedData.createdAt;\n delete clonedData.updatedAt;\n delete clonedData.createdBy;\n delete clonedData.updatedBy;\n delete clonedData.version;\n delete clonedData.isArchived;\n delete clonedData.archivedAt;\n\n // Update title to indicate it's a clone\n if (clonedData.title) {\n clonedData.title = `${clonedData.title} (Copy)`;\n }\n\n // Update name to indicate it's a clone\n if (clonedData.name) {\n clonedData.name = `${clonedData.name} (Copy)`;\n }\n\n // Update code if it exists\n if (clonedData.code) {\n clonedData.code = `${clonedData.code}_COPY`;\n }\n\n // Handle parent relationships if they exist\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey]) {\n // Keep the parent relationship - don't delete\n }\n\n // Reset status fields to default values\n if (clonedData.isActive !== undefined) {\n clonedData.isActive = true;\n }\n if (clonedData.status !== undefined) {\n clonedData.status = 'draft'; // or appropriate default status\n }\n\n return clonedData;\n }\n}\n\n@Injectable()\nexport class AXPEntityCloneSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const originalId = context.getOutput<string>('originalId');\n const newId = context.getOutput<string>('newId');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch clone event\n this.dispatch(\n AXPEntityClonedEvent({\n entity: refType,\n originalId,\n newId,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPCloneEntityWorkflow: AXPWorkflow = {\n startStepId: 'clone-entity',\n steps: {\n 'clone-entity': {\n action: 'AXPEntityCloneAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-cloned',\n content: 'workflow.entity-cloned-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'clone-success',\n },\n ],\n },\n 'clone-success': {\n action: 'AXPEntityCloneSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { clonePlugin } from './clone.plugin';\nimport { AXPCloneEntityWorkflow, AXPEntityCloneAction, AXPEntityCloneSuccessAction } from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCloneAction,\n AXPEntityCloneSuccessAction,\n },\n workflows: {\n 'clone-entity': AXPCloneEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: clonePlugin },\n ],\n})\nexport class AXPClonePluginModule { }\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPColorPluginOptions {\n /**\n * Color swatches to display in the palette\n * - String: Palette name to resolve from AXPColorPaletteService\n * - String[]: Direct array of color codes\n */\n swatches?: string | string[];\n group?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\n\nexport const colorPlugin: AXPEntityActionPlugin = {\n name: 'color',\n order: 70,\n apply: (ctx, options?: AXPColorPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: `@general:terms.interface.${options?.group ?? 'appearance'}` } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'color')) {\n ctx.properties.add({\n name: 'color',\n title: '@general:terms.common.color',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorPalette,\n options: {\n swatches: options?.swatches,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ---- Add Column to List View ----\n\n // Add color column to list view if enabled (default: true)\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'color')) {\n ctx.columns.add({\n name: 'color',\n title: '@general:terms.common.color',\n sort: { enabled: false },\n options: {\n visible: options?.column?.visible ?? true,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { colorPlugin } from './color.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: colorPlugin }],\n})\nexport class AXPColorPluginModule { }\n","import { Component, ViewEncapsulation, input, signal, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPCompareViewComponent, AXPCompareViewInputs, AXPCompareViewMode } from '@acorex/platform/layout/components';\n\n@Component({\n selector: 'axp-compare-popup',\n standalone: true,\n imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n // Compare View\n AXPCompareViewComponent\n ],\n templateUrl: './compare-popup.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [],\n})\nexport class AXPComparePopupComponent extends AXBasePageComponent implements OnInit {\n inputs = input<AXPCompareViewInputs>();\n isBusy = signal(false);\n mode = input<AXPCompareViewMode>('compare');\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n} ","<ax-content>\n <div class=\"ax-p-6 ax-min-h-[30vh] ax-overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPVersioningService } from '@acorex/platform/common';\nimport { AXPFileListItem } from '@acorex/platform/core';\nimport {\n AXPCompareViewField,\n AXPCompareViewInputs,\n AXPCompareViewMode,\n AXPCompareViewObject,\n} from '@acorex/platform/layout/components';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXMComparePopupStartAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private translate = inject(AXTranslationService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const comp = (await import('../compare-popup.component')).AXPComparePopupComponent;\n this.popupService.open(comp, {\n title: await this.translate.translateAsync('Compare'),\n size: 'lg',\n data: {\n inputs: signal(context.getVariable('inputs')),\n mode: signal(context.getVariable('mode') as AXPCompareViewMode),\n },\n });\n }\n}\n\n@Injectable()\nexport class AXMCompareEntityRecordsAction extends AXPWorkflowAction {\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const entityRef = await this.entityRegistry.resolve(moduleName, entityName);\n const records = context.getVariable<any>('data') as any[];\n const ids = records?.map((r: any) => r.id) as string[];\n const getById = entityRef.queries?.byKey?.execute as Function;\n //\n const fields: AXPCompareViewField[] = entityRef.properties\n .filter((p) => p.schema.interface && p.schema.visible !== false)\n .map((p) => ({\n path: p.name,\n title: p.title,\n description: p.description,\n widget: {\n type: p.schema.interface?.type!,\n name: p.name,\n path: p.name,\n options: p.schema.interface?.options,\n },\n }));\n const objects: AXPCompareViewObject[] = await Promise.all(\n ids.map(async (c) => {\n const object = await getById(c);\n return {\n id: object.id,\n title: object.title,\n description: object.description,\n context: object,\n };\n }),\n );\n\n const inputs: AXPCompareViewInputs = {\n fields: fields,\n objects: objects,\n };\n\n //\n context.setVariable('inputs', inputs);\n context.setVariable('mode', 'records');\n context.setOutput('result', true);\n }\n}\n\n@Injectable()\nexport class AXMCompareEntityRecordVersionsAction extends AXPWorkflowAction {\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private versioning = inject<AXPVersioningService>(AXPVersioningService as any);\n private formatService = inject(AXFormatService);\n private translate = inject(AXTranslationService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const entityRef = await this.entityRegistry.resolve(moduleName, entityName);\n const refId = context.getVariable<any>('data.refId') as string;\n const refType = context.getVariable<any>('data.refType') as string;\n const ids = context.getVariable<any>('data.ids') as string[];\n const streamId = await this.versioning.getStreamIdIfExists(refType, refId);\n const histories = streamId\n ? (await this.versioning.listEntries(streamId)).filter((e: any) => ids.includes(e.id))\n : [];\n //\n const fields: AXPCompareViewField[] = entityRef.properties\n .filter((p) => p.schema.interface && p.schema.visible !== false)\n .map((p) => ({\n path: p.name,\n title: p.title,\n description: p.description,\n widget: {\n type: p.schema.interface?.type!,\n name: p.name,\n path: p.name,\n options: p.schema.interface?.options,\n },\n }));\n const objects: AXPCompareViewObject[] = await Promise.all(\n histories.map(async (h: any) => {\n const title = await this.translate.translateAsync(\n `@activity-log:terms.${h.changeType === 'Create' ? 'created' : h.changeType === 'Delete' ? 'deleted' : 'updated'}-by-title`,\n {\n params: {\n user: h.changedBy ?? 'system',\n date: this.formatService.format(new Date(h.changedAt), 'datetime', { format: 'short' }),\n },\n },\n );\n\n const snapshot = structuredClone(h.snapshotJson ?? {});\n\n return {\n id: h.id,\n title,\n description: h.changedBy ?? 'system',\n context: snapshot,\n } as AXPCompareViewObject;\n }),\n );\n const inputs: AXPCompareViewInputs = {\n fields: fields,\n objects: objects,\n };\n //\n context.setVariable('inputs', inputs);\n context.setVariable('mode', 'changes');\n context.setOutput('result', true);\n }\n}\n\nexport const AXMCompareEntityRecordsWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'show-entity-records-compare-action',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-popup',\n },\n ],\n },\n 'show-popup': {\n action: 'show-compare-popup-action',\n },\n },\n};\n\nexport const AXMCompareEntityRecordVersionsWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'show-entity-record-versions-compare-action',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-popup',\n },\n ],\n },\n 'show-popup': {\n action: 'show-compare-popup-action',\n },\n },\n};\n\n// Utilities\nfunction getByPath(obj: any, path: string): any {\n const parts = path.split('.');\n let curr = obj;\n for (const p of parts) {\n if (curr == null) return undefined;\n curr = curr[p];\n }\n return curr;\n}\n\nfunction setByPath(obj: any, path: string, value: any): void {\n const parts = path.split('.');\n let curr = obj;\n for (let i = 0; i < parts.length - 1; i++) {\n const p = parts[i];\n if (curr[p] == null) curr[p] = {};\n curr = curr[p];\n }\n curr[parts[parts.length - 1]] = value;\n}\n\nfunction mapFilesForView(files: any[]): AXPFileListItem[] {\n return files.map<AXPFileListItem>((f) => ({\n id: f.id,\n name: f.name,\n size: f.size,\n status: 'remote',\n source: { kind: 'url', value: f.url },\n }));\n}\n","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex/platform/layout/entity';\n\nexport const comparePlugin: AXPEntityActionPlugin = {\n name: 'compare',\n order: 50,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = (i as any).master.list.actions as any[];\n const cmdName = 'show-entity-records-compare';\n if (!actionExists(actions, cmdName)) {\n actions.push({\n title: '@activity-log:actions.compare-records.title',\n command: { name: cmdName },\n priority: 'secondary',\n type: 'compare',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n return i as any;\n });\n },\n};\n\n\n","import { NgModule } from '@angular/core';\nimport { AXPComparePopupComponent } from './compare-popup.component';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXMCompareEntityRecordsAction, AXMCompareEntityRecordsWorkflow, AXMCompareEntityRecordVersionsAction, AXMCompareEntityRecordVersionsWorkflow, AXMComparePopupStartAction } from './workflows/compare.workflow';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { comparePlugin } from './compare.plugin';\n\n@NgModule({\n imports: [\n AXPComparePopupComponent,\n AXPWorkflowModule.forChild({\n actions: {\n 'show-compare-popup-action': AXMComparePopupStartAction,\n 'show-entity-records-compare-action': AXMCompareEntityRecordsAction,\n 'show-entity-record-versions-compare-action': AXMCompareEntityRecordVersionsAction,\n },\n workflows: {\n 'show-entity-records-compare': AXMCompareEntityRecordsWorkflow,\n 'show-entity-record-versions-compare': AXMCompareEntityRecordVersionsWorkflow,\n },\n }),\n ],\n exports: [AXPComparePopupComponent],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: comparePlugin },\n ],\n})\nexport class AXPCompareModule { } ","import { AXPEntity } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, getSmart } from '@acorex/platform/core';\nimport {\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n AXP_ENTITY_STORAGE_BACKEND,\n} from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { get, set } from 'lodash-es';\n\nfunction extractTemplateTokens(template: string): string[] {\n const tokens: string[] = [];\n if (!template) {\n return tokens;\n }\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g; // capture lazily until closing }}\n let match: RegExpExecArray | null;\n while ((match = regex.exec(template)) !== null) {\n const token = (match[1] || '').trim();\n if (token) {\n tokens.push(token);\n }\n }\n return tokens;\n}\n\nfunction getRootFromPath(path: string): string {\n const trimmed = path.trim();\n const clean = trimmed.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n const first = clean.split('.')[0];\n return first.replace(/\\{.*\\}$/, '');\n}\n\n/** Roots used for hydration (e.g. `positionAssignments` from `context.eval('positionAssignments')` inside larger expressions). */\nfunction extractContextEvalRoots(template: string): string[] {\n const roots: string[] = [];\n if (!template) {\n return roots;\n }\n const re = /context\\.eval\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(template)) !== null) {\n const path = (m[1] || '').trim();\n if (!path) continue;\n const root = path.split('.')[0];\n if (root) {\n roots.push(root);\n }\n }\n return roots;\n}\n\nfunction defaultIdField(dataPath?: string) {\n const leaf = (dataPath || '').split('.').filter(Boolean).pop() || 'related';\n return `${leaf}Id`;\n}\n\nexport const computedPropertiesMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['getOne', 'getAll', 'query'], order: 12 },\n execute: async (ctx, next) => {\n const backend = inject(AXP_ENTITY_STORAGE_BACKEND);\n const registry = inject(AXPEntityDefinitionRegistryService);\n const expressionEvaluator = inject(AXPExpressionEvaluatorService);\n\n await next();\n\n try {\n const [moduleName, entityName] = ctx.entityName.split('.');\n const def: AXPEntity = await registry.resolve(moduleName, entityName);\n const plugin = (def?.plugins || []).find((p: any) => p?.name === 'computed-property');\n if (!plugin?.options?.['fields']?.length) return;\n const fields: Array<any> = plugin.options['fields'];\n\n const related: any[] = def?.relatedEntities || [];\n\n const rows: any[] = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray(ctx.result?.items)\n ? ctx.result.items\n : ctx.result\n ? [ctx.result]\n : [];\n\n if (!rows.length) return;\n\n // Pre-hydrate merge-detail children used by fields (by root token)\n const roots = new Set<string>();\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n tokens.forEach((t) => roots.add(getRootFromPath(t)));\n extractContextEvalRoots(f.value).forEach((r) => roots.add(r));\n }\n\n // For merge-detail referenced children, batch hydrate\n for (const root of roots) {\n const re = related.find(\n (r: any) => r?.persistence?.dataPath === root && (r?.persistence?.strategy || 'embedded') === 'referenced',\n );\n if (!re) continue;\n const p = re.persistence || {};\n const idField = p.idField || defaultIdField(p.dataPath);\n const ids = Array.from(new Set(rows.map((r) => get(r, idField)).filter((v) => v != null)));\n if (!ids.length) continue;\n try {\n const resp = await backend.query(re.entity, {\n skip: 0,\n take: ids.length || 1000,\n filter: { field: 'id', operator: { type: 'in' }, value: ids },\n });\n const items = resp?.items ?? [];\n const map = new Map<any, any>();\n for (const it of items) map.set((it as any).id, it);\n for (const row of rows) {\n const cid = get(row, idField);\n if (!cid) continue;\n const child = map.get(cid);\n if (child && p?.dataPath) set(row, p.dataPath, child);\n }\n } catch {}\n }\n\n // Compute per field for each row\n for (const row of rows) {\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n const fieldRoots = new Set<string>();\n for (const t of tokens) {\n const raw = String(t).trim();\n const path = raw.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n fieldRoots.add(getRootFromPath(path));\n }\n extractContextEvalRoots(f.value).forEach((r) => fieldRoots.add(r));\n\n // Try to ensure data availability for each dependency root\n for (const root of fieldRoots) {\n if (!root) continue;\n let current = getSmart(row, root);\n if (current == null) {\n // Try merge-detail already covered above. If still missing, try list-related entities by entity name\n const reList = related.find(\n (r: any) =>\n (r?.layout?.type === 'page-list' || r?.layout?.type === 'tab-list') &&\n r?.persistence?.dataPath === root,\n );\n if (reList) {\n // Build filters: reList.conditions + field.conditions\n const baseFilters = (reList.conditions ?? []).map((c: any) => ({ ...c }));\n const extraFilters = (f.conditions ?? []).map((c: any) => ({ ...c }));\n const buildScope = () => ({ ...(row ?? {}), context: { eval: (path: string) => get(row, path) } });\n const evaluateValue = async (val: any) => {\n if (typeof val === 'string' && expressionEvaluator.isExpression(val)) {\n return await expressionEvaluator.evaluate(val, buildScope() as any);\n }\n return val;\n };\n let allFilters = await Promise.all(\n [...baseFilters, ...extraFilters].map(async (fl: any) => ({\n field: fl.name ?? fl.field,\n operator: fl.operator,\n value: await evaluateValue(fl.value),\n })),\n );\n\n // If no explicit parent filter exists, infer it: child.parentKey == row.id\n try {\n const [cm, ce] = (reList.entity || '').split('.');\n const childDef: any = await registry.resolve(cm, ce);\n const parentKey: string | undefined = childDef?.parentKey;\n if (parentKey && !allFilters.some((fl: any) => fl.field === parentKey)) {\n allFilters.push({ field: parentKey, operator: { type: 'equal' }, value: row?.id });\n }\n } catch {}\n try {\n const resp = await backend.query(reList.entity, {\n skip: 0,\n take: 1000,\n filter: allFilters.length ? { logic: 'and', filters: allFilters } : undefined,\n });\n const items = resp?.items ?? [];\n set(row, root, items);\n } catch {}\n }\n }\n }\n\n // Evaluate template and set computed value using expression evaluator\n const scope: any = {\n ...(row ?? {}),\n context: {\n eval: (path: string) => {\n return getSmart(row, path);\n },\n },\n };\n const evaluated = await expressionEvaluator.evaluate(f.value, scope);\n set(row, f.name, evaluated || undefined);\n }\n }\n } catch {\n // swallow to avoid breaking main flow\n }\n },\n};\n","import { AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';\nimport {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\nexport type AXPComputedPropertyField = {\n name: string;\n title: string;\n value: string; // Expression-supported string, e.g. \"{{ context.eval('...') }}\"\n group: {\n id: string;\n title: string;\n };\n /** Whether the field is visible in forms and lists. Defaults to true. */\n visible?: boolean;\n layout?: { order?: number; colSpan?: number; colStart?: number };\n conditions?: any[]; // Reserved for future logic (visibility/calculation)\n showAs?: {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;\n options?: Record<string, any>;\n };\n};\n\nexport type AXPComputedPropertiesPluginOptions = {\n fields?: AXPComputedPropertyField[];\n};\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const computedPropertiesPlugin: AXPEntityActionPlugin = {\n name: 'computed-property',\n order: 55,\n apply: (ctx, options?: AXPComputedPropertiesPluginOptions) => {\n const fields = options?.fields ?? [];\n if (!fields.length) {\n return;\n }\n\n // Ensure default group exists\n const defaultGroupId = 'additional';\n const ensureGroup = (group: { id: string; title: string }) => {\n const id = group?.id || defaultGroupId;\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === id)) {\n ctx.groups.add({ id, title: group?.title } as any);\n }\n return id;\n };\n\n for (const f of fields) {\n const groupId = ensureGroup(f.group || { id: defaultGroupId });\n // If group is newly created and a custom title is provided, update it\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId) && f.group?.title) {\n ctx.groups.add({ id: groupId, title: f.group.title } as any);\n }\n\n // Ensure property exists on entity\n const existing = ctx.properties.list().some((p: any) => p.name === f.name);\n if (!existing) {\n ctx.properties.add({\n name: f.name,\n title: f.title,\n groupId,\n schema: {\n dataType: 'string',\n readonly: true,\n defaultValue: f.value,\n interface: {\n type: f.showAs?.type || 'text-editor',\n options: { ...(f.showAs?.options ?? {}), readonly: true },\n },\n },\n } as any);\n }\n\n const isVisible = f.visible !== false;\n\n // Ensure the field appears in list columns when visible\n if (isVisible) {\n const entityAny: any = ctx.entity as any;\n const currentColumns: any[] = Array.isArray(entityAny.columns) ? entityAny.columns : [];\n const hasColumn = currentColumns.some((c: any) => (typeof c === 'string' ? c === f.name : c?.name === f.name));\n if (!hasColumn) {\n entityAny.columns = [...currentColumns, { name: f.name }];\n }\n }\n\n // Ensure Single (details) view shows it when visible\n if (isVisible) {\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: 90 } as any);\n ensureLayoutPropertyView(next, {\n name: f.name,\n layout: {\n positions: {\n lg: {\n colSpan: f.layout?.colSpan ?? 12,\n order: f.layout?.order ?? 99,\n ...(f.layout?.colStart != null ? { colStart: f.layout.colStart } : {}),\n },\n },\n label: { visible: true },\n },\n } as any);\n return next;\n });\n }\n }\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { computedPropertiesMiddleware } from './computed-properties.middleware';\nimport { computedPropertiesPlugin } from './computed-properties.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: computedPropertiesPlugin },\n { provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: computedPropertiesMiddleware },\n ],\n})\nexport class AXPComputedPropertiesModule {}\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n} from '@acorex/platform/common';\n\nexport interface AXPDescriptionPluginOptions {\n /**\n * Optional title for the `description` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.description'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to false.\n */\n column?: boolean;\n}\n\nexport const descriptionPlugin: AXPEntityActionPlugin = {\n name: 'description',\n order: 23,\n apply: (ctx, options?: AXPDescriptionPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.description';\n const groupId = options?.groupId ?? 'basic-info';\n const addColumn = options?.column ?? false;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Description Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'description')) {\n ctx.properties.add({\n name: 'description',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Description Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'description')) {\n ctx.columns.add({\n name: 'description',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'description')) {\n layout.properties.push({\n name: 'description',\n layout: {\n positions: { lg: { colSpan: 12, order: 30 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { descriptionPlugin } from './description.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: descriptionPlugin }],\n})\nexport class AXPDescriptionPluginModule {}\n\n","import {\n AXPEntityAction,\n AXPEntityCommandScope,\n createQueryView,\n type AXPEntityMasterSingleLayoutView,\n type AXPEntityMasterUpdateLayoutView,\n} from '@acorex/platform/common';\nimport { actionExists, AXPEntityActionPlugin, ensureListActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n//#region ---- Types ----\n\n/** Options for the disable plugin. */\nexport interface DisablePluginOptions {\n /** Name of the boolean field used for disabled state. Defaults to `'isDisabled'`. */\n fieldName?: string;\n /**\n * When set, applied to the disable field schema `readonly`\n * (boolean or expression string, e.g. derived from another form field).\n */\n disableFieldReadonly?: boolean | string;\n}\n\nconst DEFAULT_DISABLE_FIELD_NAME = 'isDisabled';\n\n//#endregion\n\nexport const disablePlugin: AXPEntityActionPlugin = {\n name: 'disable',\n order: 70,\n apply: (ctx, options?: DisablePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_DISABLE_FIELD_NAME;\n\n //#region ---- Add Disable Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add disable field property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-disabled',\n groupId,\n schema: {\n dataType: 'boolean',\n ...(options?.disableFieldReadonly !== undefined\n ? { readonly: options.disableFieldReadonly }\n : {}),\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not disabled)\n defaultValue: false,\n // When isDisabled is true → show \"Disabled\" with danger visual (negative=true)\n // When isDisabled is false → show \"Enabled\" with success visual\n trulyText: '@general:terms.status.options.disabled',\n falsyText: '@general:terms.status.options.enabled',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n // Add disable field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-enabled',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Disable Actions ----\n\n ctx.interfaces.update((i) => {\n const disableCmdName = 'disable-entity';\n const enableCmdName = 'enable-entity';\n const bulkDisableCmdName = 'bulk-disable-entity';\n const bulkEnableCmdName = 'bulk-enable-entity';\n\n // Add disable action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, disableCmdName)) {\n listActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to list view\n if (!actionExists(listActions, enableCmdName)) {\n listActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add bulk disable action to list view\n if (!actionExists(listActions, bulkDisableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-disable.title',\n command: {\n name: bulkDisableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk enable action to list view\n if (!actionExists(listActions, bulkEnableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-enable.title',\n command: {\n name: bulkEnableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add disable action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, disableCmdName)) {\n singleActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to single view\n if (!actionExists(singleActions, enableCmdName)) {\n singleActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in modify/single\n const ensureIsDisabledLayout = <TLayout extends { sections: unknown[]; properties?: unknown[] }>(\n base: TLayout,\n ): TLayout => {\n // IMPORTANT:\n // Many entities reuse the same `sections` / `properties` arrays across create/update/single (shared reference).\n // Never mutate those arrays in-place; always clone before pushing to avoid leaking changes into other interfaces.\n const sections = [...base.sections] as TLayout['sections'];\n const properties = [...(base.properties ?? [])] as NonNullable<TLayout['properties']>;\n\n if (!sections.some((s: any) => s.id === groupId)) {\n sections.push({ id: groupId, order: 150 } as any);\n }\n\n if (!properties.some((p: any) => p.name === fieldName)) {\n properties.push({\n name: fieldName,\n layout: {\n positions: { lg: { colSpan: 6, order: 95 } },\n },\n } as any);\n }\n\n return {\n ...base,\n sections,\n properties,\n } as TLayout;\n };\n\n const ensureUpdateLayoutProperty = (\n layout: AXPEntityMasterUpdateLayoutView | undefined,\n ): AXPEntityMasterUpdateLayoutView => {\n const base: AXPEntityMasterUpdateLayoutView = layout ?? { sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n const ensureSingleLayoutProperty = (\n layout: AXPEntityMasterSingleLayoutView | undefined,\n ): AXPEntityMasterSingleLayoutView => {\n const base: AXPEntityMasterSingleLayoutView = layout ?? { title: ctx.entity.title, sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n ctx.interfaces.master.modify.update((modify) => ensureUpdateLayoutProperty(modify));\n ctx.interfaces.master.single.update((single) => ensureSingleLayoutProperty(single));\n\n // Add disabled view to show only disabled items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if disabled view already exists\n if (!next.views.some((v: any) => v.name === 'disabled')) {\n next.views.push(\n createQueryView('disabled', '@general:terms.status.states.is-disabled', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'disabledAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityDisabledEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Disabled',\n);\n\n@Injectable()\nexport class AXPEntityDisableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.disable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.disable.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.disable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Disabling...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare disable data\n const disableData = this.prepareDisableData(currentData);\n\n // Update the entity to mark it as disabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(disableData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Disable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareDisableData(currentData: any): any {\n const disableData = { ...currentData };\n\n // Set the disabled flag\n disableData.isDisabled = true;\n\n // Optionally add disable timestamp\n disableData.disabledAt = new Date();\n\n return disableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityDisableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch disable event\n this.dispatch(\n AXPEntityDisabledEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPDisableEntityWorkflow: AXPWorkflow = {\n startStepId: 'disable-entity',\n steps: {\n 'disable-entity': {\n action: 'AXPEntityDisableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-disabled',\n content: 'workflow.entity-disabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'disable-success',\n },\n ],\n },\n 'disable-success': {\n action: 'AXPEntityDisableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPRefreshEvent, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityEnabledEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Enabled',\n);\n\n@Injectable()\nexport class AXPEntityEnableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.enable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.enable.confirm.message'),\n 'success',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', ENABLE_WORKFLOW_USER_CANCEL_MESSAGE);\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.enable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Enabling...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare enable data\n const enableData = this.prepareEnableData(currentData);\n\n // Update the entity to mark it as enabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(enableData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Enable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareEnableData(currentData: any): any {\n const enableData = { ...currentData };\n\n // Set the disabled flag to false\n enableData.isDisabled = false;\n\n // Optionally add enable timestamp\n enableData.enabledAt = new Date();\n\n return enableData;\n }\n}\n\nconst ENABLE_WORKFLOW_USER_CANCEL_MESSAGE = 'Operation cancelled by user';\n\n/**\n * Shows an error toast with the workflow {@link AXPWorkflowContext.getOutput} `error` string.\n * Skips user-cancel and empty messages. Respects {@link AXPCommonSettings.EnableOperationToasts} like {@link AXPToastAction}.\n */\n@Injectable()\nexport class AXPEntityEnableFailureToastAction extends AXPWorkflowAction {\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const enabled = await this.settingsService.get(AXPCommonSettings.EnableOperationToasts);\n if (!enabled) {\n return;\n }\n const message = context.getOutput<string>('error')?.trim() ?? '';\n if (!message || message === ENABLE_WORKFLOW_USER_CANCEL_MESSAGE) {\n return;\n }\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:state-message.error.title'),\n content: message,\n closeButton: true,\n timeOut: 6000,\n timeOutProgress: true,\n });\n }\n}\n\n@Injectable()\nexport class AXPEntityEnableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch enable event\n this.dispatch(\n AXPEntityEnabledEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPEnableEntityWorkflow: AXPWorkflow = {\n startStepId: 'enable-entity',\n steps: {\n 'enable-entity': {\n action: 'AXPEntityEnableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n {\n conditions: [\n {\n type: 'SINGLE',\n expression:\n 'context.getOutput(\"isCanceled\") == true && context.getOutput(\"error\") != \"' +\n ENABLE_WORKFLOW_USER_CANCEL_MESSAGE +\n '\"',\n },\n ],\n nextStepId: 'show-failure-toast',\n },\n ],\n },\n 'show-failure-toast': {\n action: 'AXPEntityEnableFailureToastAction',\n nextSteps: [],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-enabled',\n content: 'workflow.entity-enabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'enable-success',\n },\n ],\n },\n 'enable-success': {\n action: 'AXPEntityEnableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkDisabledEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Disabled',\n);\n\n@Injectable()\nexport class AXPEntityBulkDisableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Disabling items...',\n });\n\n try {\n const results = [];\n const errors = [];\n\n // Process each selected item\n for (const refId of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare disable data\n const disableData = this.prepareDisableData(currentData);\n\n // Update the entity to mark it as disabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(disableData);\n results.push(refId);\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error(`Failed to disable entity ${refId}:`, error);\n errors.push({ id: refId, error: error instanceof Error ? error.message : 'Unknown error' });\n }\n }\n\n context.setOutput('processedIds', results);\n context.setOutput('errors', errors);\n context.setOutput('isCanceled', false);\n\n } catch (error) {\n console.error('Bulk disable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareDisableData(currentData: any): any {\n const disableData = { ...currentData };\n\n // Set the disabled flag\n disableData.isDisabled = true;\n\n // Optionally add disable timestamp\n disableData.disabledAt = new Date();\n\n return disableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkDisableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const errors = context.getOutput<any[]>('errors') || [];\n const meta = context.getVariable<any>('meta');\n\n // Dispatch bulk disable event\n this.dispatch(\n AXPEntityBulkDisabledEvent({\n entity: refType,\n ids: processedIds,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n\n // Show error summary if there were any errors\n if (errors.length > 0) {\n const errorMessage = errors.map(e => `${e.id}: ${e.error}`).join('\\n');\n console.warn('Some items failed to disable:', errorMessage);\n }\n }\n}\n\nexport const AXPBulkDisableEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-disable-entity',\n steps: {\n 'bulk-disable-entity': {\n action: 'AXPEntityBulkDisableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-disabled',\n content: 'workflow.entity-bulk-disabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-disable-success',\n },\n ],\n },\n 'bulk-disable-success': {\n action: 'AXPEntityBulkDisableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkEnabledEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Enabled',\n);\n\n@Injectable()\nexport class AXPEntityBulkEnableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'success',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Enabling items...',\n });\n\n try {\n const results = [];\n const errors = [];\n\n // Process each selected item\n for (const refId of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare enable data\n const enableData = this.prepareEnableData(currentData);\n\n // Update the entity to mark it as enabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(enableData);\n results.push(refId);\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error(`Failed to enable entity ${refId}:`, error);\n errors.push({ id: refId, error: error instanceof Error ? error.message : 'Unknown error' });\n }\n }\n\n context.setOutput('processedIds', results);\n context.setOutput('errors', errors);\n context.setOutput('isCanceled', false);\n\n } catch (error) {\n console.error('Bulk enable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareEnableData(currentData: any): any {\n const enableData = { ...currentData };\n\n // Set the disabled flag to false\n enableData.isDisabled = false;\n\n // Optionally add enable timestamp\n enableData.enabledAt = new Date();\n\n return enableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkEnableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const errors = context.getOutput<any[]>('errors') || [];\n const meta = context.getVariable<any>('meta');\n\n // Dispatch bulk enable event\n this.dispatch(\n AXPEntityBulkEnabledEvent({\n entity: refType,\n ids: processedIds,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n\n // Show error summary if there were any errors\n if (errors.length > 0) {\n const errorMessage = errors.map(e => `${e.id}: ${e.error}`).join('\\n');\n console.warn('Some items failed to enable:', errorMessage);\n }\n }\n}\n\nexport const AXPBulkEnableEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-enable-entity',\n steps: {\n 'bulk-enable-entity': {\n action: 'AXPEntityBulkEnableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-enabled',\n content: 'workflow.entity-bulk-enabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-enable-success',\n },\n ],\n },\n 'bulk-enable-success': {\n action: 'AXPEntityBulkEnableSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { disablePlugin } from './disable.plugin';\nimport {\n AXPDisableEntityWorkflow,\n AXPEntityDisableAction,\n AXPEntityDisableSuccessAction,\n AXPEnableEntityWorkflow,\n AXPEntityEnableAction,\n AXPEntityEnableFailureToastAction,\n AXPEntityEnableSuccessAction,\n AXPBulkDisableEntityWorkflow,\n AXPEntityBulkDisableAction,\n AXPEntityBulkDisableSuccessAction,\n AXPBulkEnableEntityWorkflow,\n AXPEntityBulkEnableAction,\n AXPEntityBulkEnableSuccessAction\n} from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityDisableAction,\n AXPEntityDisableSuccessAction,\n AXPEntityEnableAction,\n AXPEntityEnableFailureToastAction,\n AXPEntityEnableSuccessAction,\n AXPEntityBulkDisableAction,\n AXPEntityBulkDisableSuccessAction,\n AXPEntityBulkEnableAction,\n AXPEntityBulkEnableSuccessAction,\n },\n workflows: {\n 'disable-entity': AXPDisableEntityWorkflow,\n 'enable-entity': AXPEnableEntityWorkflow,\n 'bulk-disable-entity': AXPBulkDisableEntityWorkflow,\n 'bulk-enable-entity': AXPBulkEnableEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: disablePlugin },\n ],\n})\nexport class AXPDisablePluginModule { }\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPDefaultPluginOptions {\n /**\n * Optional title for the `isDefault` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.status.states.is-default'.\n */\n title?: string;\n}\n\nexport const defaultPlugin: AXPEntityActionPlugin = {\n name: 'default',\n order: 67,\n apply: (ctx, options?: AXPDefaultPluginOptions) => {\n ensureListActions(ctx);\n\n const title = options?.title ?? '@general:terms.status.states.is-default';\n\n //#region ---- Add isDefault Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isDefault property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isDefault')) {\n ctx.properties.add({\n name: 'isDefault',\n title,\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not default)\n defaultValue: false,\n negative: false,\n nullValue: false,\n trulyText: '@general:terms.common.yes-no.yes',\n falsyText: '@general:terms.common.yes-no.no',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add isDefault Column ----\n\n // Add isDefault to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isDefault')) {\n ctx.columns.add({\n name: 'isDefault',\n title,\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isDefault',\n layout: { positions: { lg: { colSpan: 6, order: 92 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { defaultPlugin } from './default.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: defaultPlugin }],\n})\nexport class AXPDefaultPluginModule {}\n\n\n","import { InjectionToken, Type } from \"@angular/core\";\n\nexport interface AXPGlobalSearchConfigs {\n window: () => Type<any>;\n}\n\nexport const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken<AXPGlobalSearchConfigs>('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n template: `\n <ax-button color=\"primary\" class=\"ax-flex md:ax-hidden\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n <div class=\"ax-bg-primary-200/15 ax-h-10 ax-w-72 ax-rounded-default ax-cursor-pointer ax-justify-between ax-hidden md:ax-flex ax-items-center ax-px-3 hover:ax-bg-primary-200/30 ax-text-primary-text\" (click)=\"startSearch()\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <i class=\"fa-light fa-search ax-text-xl\"></i>\n <span>{{ '@global-search:terms.search-placeholder' | translate | async}}</span>\n </div>\n <kbd class=\"ax-text-sm\">Ctrl+K</kbd>\n </div>\n `,\n imports: [AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule, AsyncPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPGlobalSearchSlotComponent {\n\n protected workflow = inject(AXPWorkflowService);\n\n protected async startSearch() {\n await this.workflow.execute('global-search')\n }\n\n @HostListener('document:keydown', ['$event'])\n protected async handleKeyboardEvent(event: KeyboardEvent) {\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyK':\n event.preventDefault();\n event.stopPropagation();\n await this.startSearch();\n break;\n }\n }\n\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPCommandExecutor } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from '../search.config';\nimport { AXPSearchDisplayResult } from '@acorex/platform/common';\n\n@Injectable()\nexport class AXPGlobalSearchStartAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private workflow = inject(AXPWorkflowService);\n private commandExecutor = inject(AXPCommandExecutor);\n private config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const component = await this.config.window();\n const popup = await this.popupService.open(component, {\n title: 'Search...',\n size: 'fit',\n closeOnBackdropClick: true,\n data: {\n text: context.getVariable('text'),\n },\n header: false,\n });\n if (popup.data) {\n const result = popup.data as AXPSearchDisplayResult;\n if (result && result.command) {\n const commandName = result.command.name;\n const commandOptions = result.command.options ?? {};\n if (this.workflow.exists(commandName)) {\n await this.workflow.execute(commandName, commandOptions);\n } else {\n await this.commandExecutor.execute(commandName, commandOptions);\n }\n }\n }\n }\n}\n\nexport const AXPGlobalSearchWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'AXPGlobalSearchStartAction',\n },\n },\n};\n","export const AXPCommonFeatureKeys = {\n GlobalSearch: 'Common:Feature:GlobalSearch',\n AdvancedExport: 'Common:Feature:AdvancedExport',\n ActivityLog: 'Common:Feature:ActivityLog',\n DataImport: 'Common:Feature:DataImport',\n BulkOperations: 'Common:Feature:BulkOperations',\n AdvancedFiltering: 'Common:Feature:AdvancedFiltering',\n DataSynchronization: 'Common:Feature:DataSynchronization',\n} as const;\n\n","import { Injector, NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXPGlobalSearchSlotComponent } from './search-slot.component';\nimport { AXPGlobalSearchStartAction, AXPGlobalSearchWorkflow } from './workflows/search.workflow';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from './search.config';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXPCommonFeatureKeys } from '../../features.keys';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'root-header-start': [\n {\n priority: 0,\n name: 'search',\n component: AXPGlobalSearchSlotComponent,\n features: [AXPCommonFeatureKeys.GlobalSearch],\n },\n ],\n }),\n //\n AXPWorkflowModule.forChild({\n actions: {\n AXPGlobalSearchStartAction\n },\n workflows: {\n 'global-search': AXPGlobalSearchWorkflow,\n },\n })\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,\n useValue: {\n window: () =>\n import('./search-popup.component').then((c) => c.AXPGlobalSearchPopupComponent),\n },\n },\n ]\n})\nexport class AXPGlobalSearchModule {\n constructor(\n appInitService: AXPAppStartUpService,\n injector: Injector\n ) {\n\n }\n}\n","import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchService, AXPSettingsService } from \"@acorex/platform/common\";\nimport { AXPPlatformScope } from \"@acorex/platform/core\";\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private settingKeys = {\n recent: \"global-search:recents:items\",\n pinned: \"global-search:pinned:items\"\n }\n\n private searchService = inject(AXPSearchService);\n private settingsService = inject(AXPSettingsService);\n\n private _text = signal<string | null>(null);\n public text = this._text.asReadonly();\n\n private _results = signal<AXPSearchDisplayGroupResult[]>([]);\n public results = this._results.asReadonly();\n\n private _isBusy = signal(false);\n public isBusy = this._isBusy.asReadonly();\n\n public isEmpty = computed(() => this.text() && this.results().length == 0);\n\n public isValid = computed(() => (this.text()?.length ?? 0) > 2);\n\n public isStart = computed(() => !this.isEmpty() && this.results().length == 0);\n\n public isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0);\n\n private _recentItems = signal<AXPSearchDisplayResult[]>([]);\n private _pinnedItems = signal<AXPSearchDisplayResult[]>([]);\n public pinnedItems = this._pinnedItems.asReadonly();\n public recentItems = computed(() => this.getTopRecentItems());\n\n public readonly onItemSelected = new Subject<AXPSearchDisplayResult>();\n\n constructor() {\n this.loadSettings();\n }\n\n public async search(text: string): Promise<void> {\n this._isBusy.set(true);\n this._text.set(text);\n\n if (!this.isValid()) {\n this._results.set([]);\n } else {\n await new Promise((resolve) => setTimeout(resolve, 250));\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n\n this._isBusy.set(false);\n }\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemSelected.next(item);\n await this.updateSelectionHistory(item);\n }\n\n public async pin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n if (!currentPinned.some(i => i.id === item.id)) {\n this._pinnedItems.set([item, ...currentPinned].slice(0, 5));\n await this.saveSettings();\n }\n }\n\n public async unpin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n this._pinnedItems.set(currentPinned.filter(i => i.id !== item.id));\n await this.saveSettings();\n }\n\n public async togglePin(item: AXPSearchDisplayResult): Promise<void> {\n if (this.isPinned(item)) {\n await this.unpin(item);\n } else {\n await this.pin(item);\n }\n }\n\n public isPinned(item: AXPSearchDisplayResult): boolean {\n const currentPinned = this._pinnedItems();\n return currentPinned.some(i => i.id === item.id);\n }\n\n private async updateSelectionHistory(item: AXPSearchDisplayResult): Promise<void> {\n // Update recent selections\n const currentHistory = this._recentItems();\n const updatedHistory = [item, ...currentHistory.filter(i => i.id !== item.id)].slice(0, 5);\n this._recentItems.set(updatedHistory);\n\n // Save updated settings\n await this.saveSettings();\n }\n\n private getTopRecentItems(): AXPSearchDisplayResult[] {\n const pinnedIds = new Set(this._pinnedItems().map(item => item.id));\n return this._recentItems().filter(item => !pinnedIds.has(item.id)).slice(0, 5);\n }\n\n public async clearRecentItems() {\n this._recentItems.set([]);\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, []);\n }\n\n private async loadSettings(): Promise<void> {\n // Load recent selections\n const recent = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.recent);\n if (recent) {\n this._recentItems.set(recent.slice(0, 5));\n }\n\n // Load pinned items\n const pinned = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.pinned);\n if (pinned) {\n this._pinnedItems.set(pinned.slice(0, 5));\n }\n }\n\n private async saveSettings(): Promise<void> {\n // Save recent selections\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5));\n\n // Save pinned items\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5));\n }\n}\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPIconPluginOptions {\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\n\nexport const iconPlugin: AXPEntityActionPlugin = {\n name: 'icon',\n order: 75,\n apply: (ctx, options?: AXPIconPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'icon')) {\n ctx.properties.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ---- Add Column to List View ----\n\n // Add icon column to list view if enabled (default: true)\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'icon')) {\n ctx.columns.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n sort: { enabled: false },\n options: {\n visible: options?.column?.visible ?? false,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, { name: 'icon', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { iconPlugin } from './icon.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: iconPlugin }],\n})\nexport class AXPIconPluginModule {}\n","import { inject } from '@angular/core';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityStorageMiddleware } from '@acorex/platform/layout/entity';\n\nexport const lockGuardMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['update', 'delete'], order: 10 },\n execute: async (ctx, next) => {\n const lockService = inject(AXPLockService);\n const session = inject(AXPSessionService);\n\n const lock = await lockService.check({ refId: ctx.id!, refType: ctx.entityName });\n if (lock) {\n const info = await lockService.getInfo({ refId: ctx.id!, refType: ctx.entityName });\n if (info && session.user && info.lockedBy.id !== session.user.id) {\n throw new Error('This record is locked and cannot be edited.');\n }\n }\n\n await next();\n },\n};\n\n\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPActionMenuItem } from '@acorex/platform/core';\n\n@Injectable()\nexport class AXMLockPopupWorkflowAction extends AXPWorkflowAction {\n private readonly translationService = inject(AXTranslationService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly lockService = inject(AXPLockService);\n private readonly sessionService = inject(AXPSessionService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n const durationOptions = [\n {\n value: '1h',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1h'),\n hours: 1,\n },\n {\n value: '1d',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1d'),\n hours: 24,\n },\n {\n value: 'infinite',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.infinite'),\n },\n ];\n\n const dialogTitle = await this.translationService.translateAsync('@lock-system:components.lock-dialog.title');\n\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n dialog\n .setTitle(dialogTitle)\n .setContext({ duration: '1h', reason: '' })\n .content(flex => {\n flex\n .setDirection('column')\n .formField('@lock-system:components.lock-dialog.fields.duration.title', field => {\n field.path('duration');\n field.selectBox({\n valueField: 'value',\n textField: 'text',\n dataSource: durationOptions,\n validations: [{ rule: 'required' }],\n });\n })\n .formField('@lock-system:components.lock-dialog.fields.reason.title', field => {\n field.path('reason');\n field.largeTextBox({\n rows: 3,\n placeholder: '@lock-system:components.lock-dialog.fields.reason.placeholder',\n });\n });\n })\n .setActions(actions => {\n actions.cancel('@lock-system:components.lock-dialog.actions.cancel');\n const confirmAction: AXPActionMenuItem = {\n title: '@lock-system:components.lock-dialog.actions.confirm',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n } as AXPActionMenuItem;\n actions.custom(confirmAction);\n });\n })\n .show();\n const action = dialogRef.action();\n if (action === 'cancel') {\n context.setOutput('isCanceled', true);\n dialogRef.close();\n return;\n }\n\n const form = dialogRef.context() as { duration?: string; reason?: string };\n const selected = form?.duration ?? '1h';\n const selectedDuration = durationOptions.find((d) => d.value === selected);\n const expireAt = selectedDuration?.hours\n ? new Date(Date.now() + selectedDuration.hours * 60 * 60 * 1000)\n : undefined;\n\n await this.lockService.lock({\n refId,\n refType,\n type: 'user',\n date: new Date().toISOString(),\n expireAt,\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n\n dialogRef.close();\n context.setOutput('isCanceled', false);\n context.setOutput('lockDuration', form?.duration ?? '1h');\n context.setOutput('lockReason', form?.reason ?? '');\n }\n}\n\n\n\nexport const AXMLockPopupWorkflow: AXPWorkflow = {\n startStepId: 'lock-popup',\n steps: {\n 'lock-popup': {\n action: 'AXMLockPopupWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: '@general:workflow.entity-modified-title',\n content: '@general:workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class AXMUnlockConfirmWorkflowAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n private lockService = inject(AXPLockService);\n private sessionService = inject(AXPSessionService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.title'),\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.description'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (dialogResult.result) {\n try {\n // Perform unlock\n await this.lockService.unlock({\n refId: refId,\n refType: refType,\n type: 'user',\n });\n\n context.setOutput('isCanceled', false);\n context.setOutput('unlocked', true);\n } catch (error) {\n console.error('Unlock failed:', error);\n\n // Show error dialog\n await this.dialogService.alert(\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.title'),\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.description'),\n 'danger'\n );\n\n context.setOutput('isCanceled', true);\n context.setOutput('unlocked', false);\n }\n } else {\n context.setOutput('isCanceled', true);\n context.setOutput('unlocked', false);\n }\n }\n}\n\nexport const AXMUnlockConfirmWorkflow: AXPWorkflow = {\n startStepId: 'unlock-confirm',\n steps: {\n 'unlock-confirm': {\n action: 'AXMUnlockConfirmWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"unlocked\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: '@general:workflow.entity-modified-title',\n content: '@general:workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n}; ","import { AXPLockService } from \"@acorex/platform/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMLockEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected lockService = inject(AXPLockService , {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('lock', {\n check: async (refId: string, refType: string) => {\n if(this.lockService){\n const lock = await this.lockService.check({\n refId, refType\n });\n return lock;\n }\n return false;\n }\n })\n }\n}","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex/platform/layout/entity';\nimport { lockGuardMiddleware } from './lock-guard.middleware';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXMLockPopupWorkflow, AXMLockPopupWorkflowAction, AXMUnlockConfirmWorkflow, AXMUnlockConfirmWorkflowAction } from './workflows';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex/platform/core';\nimport { AXMLockEvaluatorScopeProvider } from './lock-evaluator-scope.provider';\nimport { lockPlugin } from './lock.plugin';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXMLockPopupWorkflowAction,\n AXMUnlockConfirmWorkflowAction,\n },\n workflows: {\n 'lock-popup': AXMLockPopupWorkflow,\n 'unlock-confirm': AXMUnlockConfirmWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, multi: true, useClass: AXMLockEvaluatorScopeProvider },\n // { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: lockPlugin },\n { provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: lockGuardMiddleware },\n ],\n})\nexport class AXMLockSystemModule { } ","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n AXPEntityPropertyGroup,\n AXPEntityProperty,\n AXPEntityTableColumn,\n} from '@acorex/platform/common';\n\nexport interface AXPNamePluginOptions {\n /**\n * Optional title for the `name` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.name'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to false.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const namePlugin: AXPEntityActionPlugin = {\n name: 'name',\n order: 20,\n apply: (ctx, options?: AXPNamePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.name';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? false;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Name Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'name')) {\n ctx.properties.add({\n name: 'name',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Name Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'name')) {\n ctx.columns.add({\n name: 'name',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n sort: {\n enabled: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'name')) {\n layout.properties.push({\n name: 'name',\n layout: {\n positions: { lg: { colSpan: 12, order: 10 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { namePlugin } from './name.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: namePlugin }],\n})\nexport class AXPNamePluginModule {}\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n} from '@acorex/platform/common';\n\nexport interface AXPNotesPluginOptions {\n /**\n * Optional title for the `notes` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.notes'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'additional-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to true.\n * When added, the column has visible: false by default (user can enable via column picker).\n */\n column?: boolean;\n}\n\nexport const notesPlugin: AXPEntityActionPlugin = {\n name: 'notes',\n order: 22,\n apply: (ctx, options?: AXPNotesPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.notes';\n const groupId = options?.groupId ?? 'additional-info';\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Additional Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.additional-info' });\n }\n\n //#endregion\n\n //#region ---- Add Notes Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'notes')) {\n ctx.properties.add({\n name: 'notes',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Notes Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'notes')) {\n ctx.columns.add({\n name: 'notes',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'notes')) {\n layout.properties.push({\n name: 'notes',\n layout: {\n positions: { lg: { colSpan: 12, order: 40 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n\n\n\n\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { notesPlugin } from './notes.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: notesPlugin }],\n})\nexport class AXPNotesPluginModule { }\n\n\n\n\n\n\n","import { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport const primaryPlugin: AXPEntityActionPlugin = {\n name: 'primary',\n order: 66,\n apply: (ctx) => {\n ensureListActions(ctx);\n\n //#region ---- Add isPrimary Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isPrimary property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isPrimary')) {\n ctx.properties.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not primary)\n defaultValue: false,\n negative: false,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n // Add isPrimary to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isPrimary')) {\n ctx.columns.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Primary Actions ----\n\n ctx.interfaces.update((i) => {\n const setPrimaryCmdName = 'set-primary-entity';\n\n // Add set primary action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, setPrimaryCmdName)) {\n listActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n // Add set primary action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, setPrimaryCmdName)) {\n singleActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isPrimary',\n layout: { positions: { lg: { colSpan: 6, order: 90 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Add primary view to show only primary items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if primary view already exists\n if (!next.views.some((v: any) => v.name === 'primary')) {\n next.views.push(\n createQueryView('primary', '@general:terms.status.states.is-primary', false, {\n conditions: [\n {\n name: 'isPrimary',\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'updatedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n //#endregion\n },\n};\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { primaryPlugin } from './primary.plugin';\n\n@NgModule({\n providers: [\n // Register the primary plugin\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: primaryPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPPrimaryPluginModule { }\n","import {\n AXPEntityActionPlugin,\n} from '@acorex/platform/layout/entity';\nimport { createQueryView } from '@acorex/platform/common';\nimport { AXPStatusPluginOptions } from './status.types';\nimport { inject, Injector, runInInjectionContext } from '@angular/core';\nimport {\n AXPStatusProvider,\n AXPStatusDefinitionProviderService,\n} from '@acorex/platform/common';\nimport { AXPWidgetsList } from '../../../widgets-names-list';\n\nexport const statusPlugin: AXPEntityActionPlugin = {\n name: 'status',\n order: 70,\n apply: async (ctx, options: AXPStatusPluginOptions = {}) => {\n\n const config = options ?? {};\n\n const injector = inject(Injector);\n const statusService = runInInjectionContext(injector, () => inject(AXPStatusDefinitionProviderService));\n\n let statusProvider: AXPStatusProvider | undefined;\n if (config.definition && typeof config.definition === 'string') {\n // Get provider by key from service\n statusProvider = await statusService.getStatus(config.definition);\n if (!statusProvider) {\n console.warn(`Status provider with key \"${config.definition}\" not found.`);\n }\n } else if (config.definition && typeof config.definition === 'object') {\n // Direct provider object provided\n statusProvider = {\n key: `custom.${config.field ?? 'statusId'}`,\n statuses: config.definition.statuses,\n transitions: config.definition.transitions,\n defaultStatus: config.definition.defaultStatus,\n };\n }\n\n // If no status provider found, return early\n if (!statusProvider) {\n console.warn('No status provider found. Please provide a valid definition key or provider object.');\n return;\n }\n\n //#region ---- Add Status Group ----\n\n const groupId = 'status';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.status.title' } as any);\n }\n\n //#endregion\n\n //#region ---- Add Status Property ----\n\n const fieldName = config.field ?? 'statusId';\n const generateOptions = config.generate ?? {};\n const viewsGenerateConfig = generateOptions.views ?? {};\n const required = config.required !== false;\n const showInCreate = config.showInCreate !== false;\n const defaultStatus =\n config.defaultStatus ?? statusProvider.defaultStatus ?? statusProvider.statuses?.[0]?.name ?? null;\n\n const shouldGenerateViews = viewsGenerateConfig.enabled !== false;\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.title',\n groupId,\n schema: {\n dataType: 'string',\n defaultValue: defaultStatus,\n interface: {\n type: AXPWidgetsList.Advanced.Status,\n options: {\n definitionKey: statusProvider.key,\n },\n },\n },\n validations: required ? [{ rule: 'required' }] : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n // Exclude status from create form when showInCreate is false\n if (!showInCreate) {\n ctx.interfaces.master.create.update((create) => {\n const next = {\n ...create,\n sections: create?.sections ?? [],\n properties: (create?.properties ?? []).filter((p: any) => p.name !== fieldName),\n };\n return next as any;\n });\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n\n // Add status to update view\n // ctx.interfaces.master.modify.update((update) => {\n // const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n // ensureLayoutSection(next, { id: groupId } as any);\n // ensureLayoutPropertyView(next, { name: fieldName, layout: { positions: { lg: { colSpan: 6 } } } } as any);\n // return next;\n // });\n\n // // Add status to single view\n // ctx.interfaces.master.single.update((single) => {\n // const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n // ensureLayoutSection(next, { id: groupId } as any);\n // ensureLayoutPropertyView(next, { name: fieldName, layout: { positions: { lg: { colSpan: 6 } } } } as any);\n // return next;\n // });\n\n // Add status to list view columns\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.title',\n width: 120,\n sortable: true,\n filterable: true,\n options: {\n definitionKey: statusProvider.key,\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n fieldName: fieldName,\n },\n } as any);\n }\n\n //#endregion\n\n //#region ---- Generate Status Views ----\n\n if (shouldGenerateViews) {\n const statusesForViews = statusProvider.statuses.filter((status) => status.generateView);\n\n if (statusesForViews.length > 0) {\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { views: [] };\n const views = next.views ?? [];\n\n if (!next.views) {\n next.views = views;\n }\n const existingViewNames = new Set(views.map((view: any) => view.name));\n\n statusesForViews.forEach((status) => {\n if (existingViewNames.has(status.name)) {\n return;\n }\n\n const viewTitle = status.title ?? status.name;\n\n views.push(\n createQueryView(status.name, viewTitle, true, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: status.name,\n },\n ],\n }),\n );\n\n existingViewNames.add(status.name);\n });\n\n next.views = views;\n\n return next;\n });\n }\n }\n\n //#endregion\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { statusPlugin } from './status.plugin';\n\n/**\n * Status plugin: adds status property and UI. Default value on create is handled by\n * backend (e.g. connectivity/mock status-default.middleware) for security.\n */\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n multi: true,\n useValue: statusPlugin,\n },\n ],\n})\nexport class AXPStatusPluginModule {}\n","/**\n * Comprehensive status management types and predefined statuses\n * This file contains all standard statuses with their transitions and metadata\n */\n\n//#region ---- Imports ----\n\nimport {\n AXPStatusProvider,\n AXPStatusDefinition,\n AXPStatusTransition,\n} from '@acorex/platform/common';\n\n//#endregion\n\n//#region ---- Status Config Interface ----\n\n/**\n * Status configuration for entity status plugin\n */\nexport interface AXPStatusPluginOptions {\n /**\n * Field name for status in entity\n */\n field?: string;\n\n /**\n * Status definition key (from provider) or direct provider data\n */\n definition?: string | Pick<AXPStatusProvider, 'statuses' | 'transitions' | 'defaultStatus'>;\n\n /**\n * Whether the status field is required. When false, backend fills default on create if empty.\n * Default: true\n */\n required?: boolean;\n\n /**\n * Whether to show status field in create form. When false, status is hidden; backend fills default.\n * Default: true\n */\n showInCreate?: boolean;\n\n /**\n * Default status value when creating. Overrides provider's defaultStatus.\n * Used by backend middleware to fill status when empty on create.\n */\n defaultStatus?: string;\n\n /**\n * Generation behaviours for status integration\n */\n generate?: AXPStatusPluginGenerateOptions;\n}\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\n/**\n * Get status definition by name from provider\n */\nexport function getStatusByName(\n statusName: string,\n provider: AXPStatusProvider\n): AXPStatusDefinition | undefined {\n return provider.statuses.find((status) => status.name === statusName);\n}\n\n/**\n * Get all possible transitions from a status\n */\nexport function getTransitionsFromStatus(\n fromStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.from === fromStatus);\n}\n\n/**\n * Get all possible transitions to a status\n */\nexport function getTransitionsToStatus(\n toStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.to === toStatus);\n}\n\n/**\n * Check if a transition is valid\n */\nexport function isValidTransition(\n fromStatus: string,\n toStatus: string,\n provider: AXPStatusProvider\n): boolean {\n return provider.transitions.some(\n (transition) => transition.from === fromStatus && transition.to === toStatus\n );\n}\n\n/**\n * Get initial statuses\n */\nexport function getInitialStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isInitial);\n}\n\n/**\n * Get final statuses\n */\nexport function getFinalStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isFinal);\n}\n\n/**\n * Get active statuses\n */\nexport function getActiveStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses;\n}\n\n//#endregion\n\n//#region ---- Generate Options ----\n\nexport interface AXPStatusPluginGenerateOptions {\n /**\n * List view generation config\n */\n views?: AXPStatusPluginGenerateViewsOptions;\n}\n\nexport interface AXPStatusPluginGenerateViewsOptions {\n /**\n * Enable view generation. Defaults to true.\n */\n enabled?: boolean;\n}\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- Task Status Provider ----\n\n/**\n * Task status provider for task management workflows\n * Provides statuses: Todo, InProgress, InReview, Blocked, Done, Cancelled\n */\nexport class TaskStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.task';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Todo,\n AXPSystemStatuses.InProgress,\n AXPSystemStatuses.InReview,\n AXPSystemStatuses.Blocked,\n AXPSystemStatuses.Done,\n AXPSystemStatuses.Cancelled,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.start',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.InReview,\n title: '@general:statuses.transitions.submit-review',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Blocked,\n title: '@general:statuses.transitions.block',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Blocked,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.unblock',\n },\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Todo;\n}\n\n//#endregion\n\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- Approval Status Provider ----\n\n/**\n * Approval status provider for content approval workflows\n * Provides statuses: Draft, PendingReview, Approved, Published, Archived, Rejected\n */\nexport class ApprovalStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.approval';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Draft,\n AXPSystemStatuses.PendingReview,\n AXPSystemStatuses.Approved,\n AXPSystemStatuses.Published,\n AXPSystemStatuses.Archived,\n AXPSystemStatuses.Rejected,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.PendingReview,\n title: '@general:statuses.transitions.submit',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Approved,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Rejected,\n title: '@general:statuses.transitions.reject',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Draft,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Approved,\n to: AXPSystemStatusType.Published,\n title: '@general:statuses.transitions.publish',\n },\n {\n from: AXPSystemStatusType.Published,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Draft;\n}\n\n//#endregion\n\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- State Status Provider ----\n\n/**\n * State status provider for entity state management\n * Provides statuses: Active, Inactive, Pending, Completed, Suspended, Failed\n */\nexport class StateStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.state';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Active,\n AXPSystemStatuses.Inactive,\n AXPSystemStatuses.Pending,\n AXPSystemStatuses.Completed,\n AXPSystemStatuses.Suspended,\n AXPSystemStatuses.Failed,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.activate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Inactive,\n title: '@general:statuses.transitions.deactivate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Suspended,\n title: '@general:statuses.transitions.suspend',\n },\n {\n from: AXPSystemStatusType.Suspended,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.resume',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Completed,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Failed,\n title: '@general:statuses.transitions.fail',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Pending;\n}\n\n//#endregion\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n AXPEntityPropertyGroup,\n AXPEntityProperty,\n AXPEntityTableColumn,\n} from '@acorex/platform/common';\n\nexport interface AXPTitlePluginOptions {\n /**\n * Optional title for the `title` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.title'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to true.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const titlePlugin: AXPEntityActionPlugin = {\n name: 'title',\n order: 21,\n apply: (ctx, options?: AXPTitlePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.title';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? true;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Title Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'title')) {\n ctx.properties.add({\n name: 'title',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Title Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'title')) {\n ctx.columns.add({\n name: 'title',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n sort: {\n enabled: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'title')) {\n layout.properties.push({\n name: 'title',\n layout: {\n positions: { lg: { colSpan: 12, order: 20 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { titlePlugin } from './title.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: titlePlugin }],\n})\nexport class AXPTitlePluginModule {}\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\nexport interface UniqueFieldsPluginOptions {\n /**\n * Field name(s) to enforce uniqueness on.\n * Can be a single field name or an array of field names for composite uniqueness.\n */\n fields: string | string[];\n\n /**\n * Uniqueness scope:\n * - 'global': Unique across all records\n * - 'tenant': Unique within tenant (requires tenantId field)\n * - 'parent': Unique within parent entity (requires parentField option)\n */\n scope?: 'global' | 'tenant' | 'parent';\n\n /**\n * Parent field name for parent-scoped uniqueness.\n * Required when scope is 'parent'.\n */\n parentField?: string;\n\n /**\n * Custom error message template.\n * Use {{fieldTitle}} placeholder for field title.\n * If not provided, uses default message with field title.\n */\n message?: string;\n}\n\ninterface UniqueFieldConfig {\n fields: string[];\n scope: 'global' | 'tenant' | 'parent';\n parentField?: string;\n message?: string;\n}\n\n//#endregion\n\n//#region ---- Plugin Definition ----\n\n/**\n * Unique Fields Plugin\n * \n * Enforces uniqueness constraints on one or more entity fields.\n * Supports single-field and composite (multiple fields) uniqueness.\n * \n * Usage:\n * ```typescript\n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'email', // Single field\n * scope: 'global'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: ['firstName', 'lastName'], // Composite uniqueness\n * scope: 'tenant'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'code',\n * scope: 'parent',\n * parentField: 'categoryId'\n * })\n * ```\n */\nexport const uniqueFieldsPlugin: AXPEntityActionPlugin = {\n name: 'unique-fields',\n order: 55, // After core plugins (45-50), before status management (65-70)\n apply: (ctx, options?: UniqueFieldsPluginOptions) => {\n if (!options || !options.fields) {\n console.warn('[unique-fields-plugin] No fields specified. Plugin will not be applied.');\n return;\n }\n\n // Normalize fields to array\n const fields = Array.isArray(options.fields) ? options.fields : [options.fields];\n if (fields.length === 0) {\n console.warn('[unique-fields-plugin] Empty fields array. Plugin will not be applied.');\n return;\n }\n\n // Validate scope and parentField\n const scope = options.scope ?? 'global';\n if (scope === 'parent' && !options.parentField) {\n console.warn('[unique-fields-plugin] Parent scope requires parentField option. Plugin will not be applied.');\n return;\n }\n\n // Verify all fields exist in entity properties\n const props = ctx.properties.list();\n const missingFields = fields.filter(field => !props.some((p: any) => p.name === field));\n if (missingFields.length > 0) {\n console.warn(\n `[unique-fields-plugin] Fields not found in entity: ${missingFields.join(', ')}. Plugin will not be applied.`\n );\n return;\n }\n\n // Build configuration\n const config: UniqueFieldConfig = {\n fields,\n scope,\n parentField: options.parentField,\n message: options.message,\n };\n\n // Store configuration in entity extensions\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.uniqueFields ??= [];\n (ctx.entity as any).extensions.uniqueFields.push(config);\n\n // Debug logging\n if (typeof console !== 'undefined' && console.debug) {\n console.debug('[unique-fields-plugin] Applied to entity:', ctx.entity.name, 'with config:', config);\n }\n\n // Add client-side validation hint to properties\n // Note: Actual validation will be handled by middleware, but we can add a hint\n // for UI feedback if needed\n fields.forEach(fieldName => {\n const prop = props.find((p: any) => p.name === fieldName);\n if (prop && prop.schema) {\n // Mark schema as unique for potential UI hints\n // Only add if schema already exists (schema is required and must have dataType)\n prop.schema.unique = { enabled: true };\n }\n });\n },\n};\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { uniqueFieldsPlugin } from './unique-fields.plugin';\n\n@NgModule({\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: uniqueFieldsPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPUniqueFieldsPluginModule {}\n\n","import { Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\n\n//#region ---- Unique Validation Rule Class ----\n\n/**\n * Unique Validation Rule (client-side no-op).\n *\n * Uniqueness is enforced by the backend (entity-validation middleware). This rule is\n * registered so that entity properties with `validations: [{ rule: 'unique' }]` do not\n * trigger \"Invalid rule name: unique\" in the form. On create/update, the backend\n * validates uniqueness and excludes the current record on update.\n *\n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@Injectable()\nexport class UniqueValidationRule implements AXValidationRule {\n get name(): string {\n return 'unique';\n }\n\n async validate(\n value: unknown,\n _options?: AXValidationRuleOptions\n ): Promise<AXValidationRuleResult> {\n return {\n rule: this.name,\n result: true,\n message: '',\n value,\n };\n }\n}\n\n//#endregion\n","import { inject, Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\nimport { AXTranslationService } from '@acorex/core/translation';\n\n\n/**\n * Variable Name Validation Pattern\n * \n * Regex pattern that validates variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n * - No spaces or special characters allowed\n */\nexport const VARIABLE_NAME_VALIDATION_PATTERN = '^[a-zA-Z_][a-zA-Z0-9_-]*$';\n\n\n//#region ---- Variable Name Validation Rule Class ----\n\n/**\n * Variable Name Validation Rule Options\n */\nexport interface AXVariableNameValidationRuleOptions extends AXValidationRuleOptions {\n message?: string;\n}\n\n/**\n * Variable Name Validation Rule Class\n * \n * Validates that a field value follows variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n * - No spaces or special characters allowed\n * \n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'variable-name' }\n * ]\n * ```\n */\n@Injectable()\nexport class VariableNameValidationRule implements AXValidationRule {\n private translationService = inject(AXTranslationService);\n\n\n get name(): string {\n return 'variable-name';\n }\n\n async validate(\n value: any,\n options?: AXVariableNameValidationRuleOptions,\n ): Promise<AXValidationRuleResult> {\n const defaultMessageKey = await this.translationService.translateAsync('@general:terms.validation.messages.variable-name-format');\n\n if (!value || typeof value !== 'string') {\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n\n const pattern = new RegExp(VARIABLE_NAME_VALIDATION_PATTERN);\n const isValid = pattern.test(value);\n\n if (isValid) {\n return {\n rule: this.name,\n result: true,\n message: '',\n value: value,\n };\n }\n\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n}\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { UniqueValidationRule } from './rules/unique-validation-rule.class';\nimport { VariableNameValidationRule } from './rules/variable-name-validation-rule.class';\n\n//#region ---- Validation Rules Module ----\n\n/**\n * Validation Rules Module\n *\n * Registers custom validation rules globally using AXValidationModule.forChild.\n *\n * - 'variable-name': validates variable naming conventions.\n * - 'unique': client-side no-op; uniqueness is enforced by backend (entity-validation middleware).\n *\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'variable-name' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@NgModule({\n imports: [\n AXValidationModule.forChild({\n rules: [VariableNameValidationRule, UniqueValidationRule],\n }),\n ],\n exports: [],\n})\nexport class AXPValidationRulesModule {}\n\n//#endregion\n\n","import { AXCalendarService } from \"@acorex/core/date-time\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPDateTimeEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private calendarService = inject(AXCalendarService);\n\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('date', {\n today: () => {\n return this.calendarService.now();\n },\n tomorrow: () => {\n return this.calendarService.create(this.calendarService.now()).add('day', 1).startOf('day').date;\n },\n yesterday: () => {\n return this.calendarService.create(this.calendarService.now()).add('day', -1).startOf('day').date;\n },\n addDays: (date: string, days: number) => {\n return this.calendarService.create(date).add('day', days).date;\n },\n });\n }\n} ","import { AXTranslateOptions, AXTranslationService } from \"@acorex/core/translation\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPTranslateEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private translateService = inject(AXTranslationService);\n\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('translate', {\n resolve: async (text:string , options? : AXTranslateOptions) => {\n return await this.translateService.translateAsync(text, options);\n },\n });\n }\n} ","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPCommandMiddleware } from '@acorex/platform/runtime';\nimport { inject } from '@angular/core';\n\n//#region ---- Middleware ----\n\n/**\n * Displays a toast based on command execution outcome.\n */\nexport const commandMessageToastMiddleware: AXPCommandMiddleware = async (input, next) => {\n const toastService = inject(AXToastService);\n const translationService = inject(AXTranslationService);\n const settingService = inject(AXPSettingsService);\n //\n const enableOperationToasts = await settingService.get(AXPCommonSettings.EnableOperationToasts);\n if (!enableOperationToasts) {\n return await next(input);\n }\n const result = await next(input);\n const message = result.message?.text;\n const color = result.message?.type ?? (result.success ? 'success' : 'danger');\n if (message) {\n const title = result.success\n ? await translationService.translateAsync('@general:messages.generic.success.title')\n : await translationService.translateAsync('@general:messages.generic.error.title');\n\n toastService.show({\n color: color as AXStyleColorType,\n title: title,\n content: message,\n });\n }\n return result;\n};\n\n//#endregion\n","import { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPEntityEventsKeys } from '@acorex/platform/layout/entity';\nimport { AXPCommandMiddleware } from '@acorex/platform/runtime';\nimport { inject } from '@angular/core';\n\n//#region ---- Middleware ----\n\n/**\n * Dispatches an entity refresh event after successful command execution.\n */\nexport const commandRefreshMiddleware: AXPCommandMiddleware = async (input, next) => {\n const broadcastEventService = inject(AXPBroadcastEventService);\n const result = await next(input);\n\n if (result.success && result.metadata?.['refresh'] !== false) {\n const payload = input as Record<string, unknown> | null | undefined;\n const context = payload ? (payload['__context__'] as Record<string, unknown> | undefined) : undefined;\n const entity = context ? (context['entity'] as string | undefined) : undefined;\n if (entity) {\n const meta = context ? context['meta'] : undefined;\n broadcastEventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, {\n name: entity,\n ...(meta !== undefined ? { meta } : {}),\n });\n }\n }\n\n return result;\n};\n\n//#endregion\n","import { NgModule } from '@angular/core';\nimport { provideCommandMiddleware } from '@acorex/platform/runtime';\nimport { commandMessageToastMiddleware } from './command-message-toast.middleware';\nimport { commandRefreshMiddleware } from './command-refresh.middleware';\n\n@NgModule({\n providers: [\n provideCommandMiddleware([commandMessageToastMiddleware, commandRefreshMiddleware]),\n ],\n})\nexport class AXMCommonMiddlewaresModule { }\n\n","export const AXPCommonMenuKeys = {\n Home: 'Common:Menu:Home',\n Administration: 'Common:Menu:Administration',\n Help: 'Common:Menu:Help',\n Configuration: 'Common:Menu:Configuration',\n Contacts: 'Common:Menu:Contacts',\n Platform: 'Common:Menu:Platform',\n /** Administration > Content (Promotions, Page Builder, Dashboards) */\n Content: 'Common:Menu:Administration:Content',\n /** Administration > Workflows (Workflow Definitions, Instances, Studio, Activities) */\n Workflows: 'Common:Menu:Administration:Workflows',\n /** Commerce (Products, Orders, Supplier Products) */\n Commerce: 'Common:Menu:Commerce',\n /** Configuration > Meeting (Meeting Types, Meeting Role Types) */\n Meeting: 'Common:Menu:Configuration:Meeting',\n /** Organization (Teams, Positions, Employees, Leave - merged with Staff) */\n Organization: 'Common:Menu:Organization',\n /** Configuration > Organization (Job Definitions, Employment Types, etc.) */\n OrganizationConfig: 'Common:Menu:Configuration:Organization',\n /** Configuration > Help Desk (Issue Types) */\n HelpDeskConfig: 'Common:Menu:Configuration:HelpDesk',\n /** Configuration > Document Management (Document Types) */\n DocumentManagementConfig: 'Common:Menu:Configuration:DocumentManagement',\n /** Configuration > Forms & Assessments (Question Bank, Questionnaires, Form Templates) */\n FormsAndAssessments: 'Common:Menu:Configuration:FormsAndAssessments',\n /** Configuration > Reservation (Types, Statuses, Classes) */\n ReservationConfig: 'Common:Menu:Configuration:Reservation',\n /** Configuration > Date and Time (Timezones, Calendars, Calendar Event Types) */\n DateAndTime: 'Common:Menu:Configuration:DateAndTime',\n /** Configuration > Region and Locale (Location Types, Geographic Regions, Languages) */\n Region: 'Common:Menu:Configuration:Region',\n /** Configuration > People and Demographics (Personal + Health reference data) */\n PeopleAndDemographics: 'Common:Menu:Configuration:PeopleAndDemographics',\n /** Configuration > Projects (Project + Task reference data) */\n Projects: 'Common:Menu:Configuration:Projects',\n /** Configuration > Scheduling and Events (Meeting + Reservation types) */\n SchedulingAndEvents: 'Common:Menu:Configuration:SchedulingAndEvents',\n /** Configuration > Data and Content (Documents + Data Definitions) */\n DataAndContent: 'Common:Menu:Configuration:DataAndContent',\n /** Configuration > AI Management (models, assists) */\n AiManagementConfig: 'Common:Menu:Configuration:AiManagement',\n /** Configuration > Maintenance (failure causes, maintenance types, etc.) */\n MaintenanceConfig: 'Common:Menu:Configuration:Maintenance',\n /** Configuration > Asset and Maintenance Management */\n AssetConfig: 'Common:Menu:Configuration:AssetSetup',\n} as const;\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService, AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXPCommonMenuKeys } from './menu.keys';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n private homePageService = inject(AXPHomePageService);\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n //\n const homePagePath = this.homePageService.getCurrent().path;\n if (homePagePath) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Home,\n priority: -10,\n text: '@general:terms.interface.navigation.home',\n path: homePagePath,\n icon: 'fa-light fa-grid-2',\n },\n {\n name: 'module-divider',\n priority: 100,\n text: '@general:menus.modules.title',\n type: 'group',\n },\n ]);\n }\n\n // Check if Foundation Data menu exists, create it if not\n const foundationDataMenu = context.find(AXPCommonMenuKeys.Configuration);\n if (!foundationDataMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Configuration,\n priority: 10000001,\n text: '@general:menus.foundation-data.title',\n icon: 'fa-light fa-database',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Date and Time menu exists under Configuration\n const dateAndTimeMenu = context.find(AXPCommonMenuKeys.DateAndTime);\n if (!dateAndTimeMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DateAndTime,\n priority: 8500,\n text: '@general:menus.date-and-time.title',\n icon: 'fa-light fa-clock',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Region menu exists under Configuration\n const regionMenu = context.find(AXPCommonMenuKeys.Region);\n if (!regionMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Region,\n priority: 8600,\n text: '@general:menus.region.title',\n icon: 'fa-light fa-globe',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure People and Demographics menu exists under Configuration\n const peopleAndDemographicsMenu = context.find(AXPCommonMenuKeys.PeopleAndDemographics);\n if (!peopleAndDemographicsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.PeopleAndDemographics,\n priority: 8440,\n text: '@general:menus.people-and-demographics.title',\n icon: 'fa-light fa-user',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Project and Task menu exists under Configuration\n const ProjectMenu = context.find(AXPCommonMenuKeys.Projects);\n if (!ProjectMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Projects,\n priority: 8450,\n text: '@general:menus.projects.title',\n icon: 'fa-light fa-clipboard-list-check',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Scheduling and Events menu exists under Configuration\n const schedulingAndEventsMenu = context.find(AXPCommonMenuKeys.SchedulingAndEvents);\n if (!schedulingAndEventsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.SchedulingAndEvents,\n priority: 8930,\n text: '@general:menus.scheduling-and-events.title',\n icon: 'fa-light fa-calendar-days',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Data and Content menu exists under Configuration\n const dataAndContentMenu = context.find(AXPCommonMenuKeys.DataAndContent);\n if (!dataAndContentMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DataAndContent,\n priority: 8945,\n text: '@general:menus.data-and-content.title',\n icon: 'fa-light fa-folder-tree',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Maintenance menu exists under Configuration\n const maintenanceConfigMenu = context.find(AXPCommonMenuKeys.MaintenanceConfig);\n if (!maintenanceConfigMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.MaintenanceConfig,\n priority: 8870,\n text: '@general:menus.maintenance.title',\n icon: 'fa-light fa-box',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Check if Administration group exists, create it if not\n const administrationGroup = context.find(AXPCommonMenuKeys.Administration);\n if (!administrationGroup.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Administration,\n priority: 10000002,\n text: '@general:menus.administration.title',\n type: 'menu',\n icon: 'fa-light fa-screwdriver-wrench',\n children: [],\n },\n ]);\n }\n\n // Check if Platform menu exists, create it if not (Applications, Tenants, Subscriptions)\n const platformMenu = context.find(AXPCommonMenuKeys.Platform);\n if (!platformMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Platform,\n priority: 1000,\n text: '@general:menus.platform.title',\n type: 'menu',\n icon: 'fa-light fa-cubes',\n children: [],\n },\n ]);\n }\n\n // Check if Commerce menu exists (Products, Orders, Supplier Products)\n const commerceMenu = context.find(AXPCommonMenuKeys.Commerce);\n if (!commerceMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Commerce,\n priority: 9020,\n text: '@general:menus.commerce.title',\n type: 'menu',\n icon: 'fa-light fa-cart-shopping',\n children: [],\n },\n ]);\n }\n\n // Check if Maintenance menu exists, create it if not\n // const maintenanceMenu = context.find(AXPCommonMenuKeys.Maintenance);\n // if (!maintenanceMenu.exists) {\n // context.find(AXPCommonMenuKeys.Configuration).addItems([\n // {\n // name: AXPCommonMenuKeys.Maintenance,\n // priority: 9030,\n // text: '@general:menus.maintenances.title',\n // icon: 'fa-light fa-screwdriver-wrench',\n // type: 'menu',\n // children: [],\n // },\n // ]);\n // }\n\n // Check if Help menu exists, create it if not\n const helpMenu = context.find(AXPCommonMenuKeys.Help);\n if (!helpMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Help,\n priority: 100090001,\n text: '@general:menus.help.title',\n icon: 'fa-light fa-circle-question',\n type: 'menu',\n children: [],\n },\n ]);\n }\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPPlatformScope, objectKeyValueTransforms } from '@acorex/platform/core';\nimport { AXMLockSystemSettings } from './features/lock-system/settings.keys';\nimport { Injectable, Injector } from '@angular/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\n\n@Injectable()\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n\n private readonly translateService = this.injector.get(AXTranslationService);\n constructor(private injector: Injector) {\n }\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n\n const trans = async (key: string) => await this.translateService.translateAsync(`@general:settings.${key}`);\n\n // Find the 'General Settings' group\n const group = context.group('general');\n if (!group) {\n return;\n }\n\n // Add the 'Release Notes' setting\n // group.addSection('lock-system', await trans('general.lock-system.lock.title'), await trans('general.lock-system.lock.description')).addSetting({\n // key: AXMLockSystemSettings.LockSystem, \n // title: await trans('general.lock-system.lock.title'),\n // scope: AXPPlatformScope.Tenant,\n // isInherited: true,\n // defaultValue: false,\n // valueTransforms: objectKeyValueTransforms('id'),\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // options: {\n // label: null,\n // }\n // },\n // description: await trans('general.lock-system.lock.description'),\n // })\n\n }\n}\n","import { AXTranslationService } from \"@acorex/core/translation\";\nimport { ALL_DEFAULT_OPERATORS } from \"@acorex/platform/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMFilterOperatorEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n\n protected translateService = inject(AXTranslationService, {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n\n context.addScope('filter', {\n getTitle: async (operator: string) => {\n //return await this.translateService?.translateAsync(ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '');\n const result = ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '';\n return result;\n }\n })\n }\n}","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex/platform/core';\nimport { AXPCommonFeatureKeys } from './features.keys';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Common Module Feature Definition Provider.\n * Provides feature definitions for the Common module.\n */\nexport class AXPCommonFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Global Search feature\n context.addFeature(AXPCommonFeatureKeys.GlobalSearch, {\n title: '@general:common.features.global-search.title',\n description: '@general:common.features.global-search.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Export feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedExport, {\n title: '@general:common.features.advanced-export.title',\n description: '@general:common.features.advanced-export.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Activity Log feature\n context.addFeature(AXPCommonFeatureKeys.ActivityLog, {\n title: '@general:common.features.activity-log.title',\n description: '@general:common.features.activity-log.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Import feature\n context.addFeature(AXPCommonFeatureKeys.DataImport, {\n title: '@general:common.features.data-import.title',\n description: '@general:common.features.data-import.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Bulk Operations feature\n context.addFeature(AXPCommonFeatureKeys.BulkOperations, {\n title: '@general:common.features.bulk-operations.title',\n description: '@general:common.features.bulk-operations.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Filtering feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedFiltering, {\n title: '@general:common.features.advanced-filtering.title',\n description: '@general:common.features.advanced-filtering.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Synchronization feature\n context.addFeature(AXPCommonFeatureKeys.DataSynchronization, {\n title: '@general:common.features.data-synchronization.title',\n description: '@general:common.features.data-synchronization.description',\n defaultValue: false,\n type: 'boolean',\n });\n }\n}\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport {\n AXPMultiSourceDefinitionProvider,\n AXPMultiSourceDefinitionProviderContext,\n AXPMultiSourceDefinition,\n AXPMultiSourceItem,\n AXPMultiSourceType,\n} from '@acorex/platform/layout/entity';\n\n/**\n * Multi-source definition provider for assignment scenarios\n * Supports selecting from: Employee User, Position, Role, Department, Team\n */\n@Injectable()\nexport class AXCAssignmentMultiSourceDefinitionProvider implements AXPMultiSourceDefinitionProvider {\n //#region ---- Public Methods ----\n\n async provide(context: AXPMultiSourceDefinitionProviderContext): Promise<void> {\n // Define sources for assignment\n const sources: AXPMultiSourceItem[] = [\n {\n key: 'employee-user',\n title: '@security-management:users.terms.user',\n icon: 'far fa-user',\n description: '@security-management:users.terms.user-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.User',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'employee-user',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'position',\n title: '@organization-management:positions.terms.position',\n icon: 'far fa-briefcase',\n description: '@organization-management:positions.terms.position-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Position',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'position',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'role',\n title: '@security-management:roles.terms.role',\n icon: 'far fa-user-shield',\n description: '@security-management:roles.terms.role-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.Role',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'role',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'department',\n title: '@organization-management:departments.terms.department',\n icon: 'far fa-sitemap',\n description: '@organization-management:departments.terms.department-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Department',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'department',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'team',\n title: '@organization-management:teams.terms.team',\n icon: 'far fa-users',\n description: '@organization-management:teams.terms.team-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Team',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'team',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n ];\n\n const definition: AXPMultiSourceDefinition = {\n name: 'assignment',\n title: '@common:terms.assignment',\n searchStrategy: 'tabs',\n defaultMultiple: true,\n sources,\n };\n\n context.addDefinition(definition);\n }\n\n //#endregion\n}\n\n","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport {\n actionExists,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n resolveEntityPluginDetailPageOrder,\n} from '@acorex/platform/layout/entity';\n\n/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */\nexport type AttachmentsDisplayMode = 'section' | 'page';\n\n/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const ATTACHMENTS_PAGE_COMPONENT_KEY = 'entity-attachments-page';\n\nexport type AttachmentsPluginOptions = {\n // property name to hold file list, e.g., default is 'attachments'\n field?: string;\n // field and group title\n title?: string;\n // icon for the attachments page (when display is 'page'). Default 'fa-light fa-paperclip'\n icon?: string;\n // where to show attachments: section (inline) or page (separate tab). Default 'section'\n display?: AttachmentsDisplayMode;\n // accept: string (e.g., '.jpg,.png')\n accept?: string;\n // multiple: boolean (default true)\n multiple?: boolean;\n // titleKey: string (i18n key for action title)\n titleKey?: string;\n // label: string (fallback action label)\n label?: string;\n // fileEditable: boolean (default true)\n fileEditable?: boolean;\n /** When true, attachments field and list action run in read-only mode (widget option `readonly`). */\n 'readonly'?: boolean;\n // show edit dialog (name/title/description + plugin hooks) after file select; default false\n showEditDialogAfterSelect?: boolean;\n // enable title and description fields in file edit dialog; default false\n enableTitleDescription?: boolean;\n // file-uploader plugins\n plugins?: { name: string; options?: unknown }[];\n excludePlugins?: string[];\n};\n\n/**\n * Attachments plugin.\n * - Always ensures an attachments group and property; when display is 'section' (default), adds a section to single/create/update layouts.\n * - When display is 'page', adds a page to entity.pages with ATTACHMENTS_PAGE_COMPONENT_KEY; register a page component with that key via AXP_PAGE_COMPONENT_PROVIDER.\n * - Uses provided accept/multiple/fileEditable; others are fixed.\n */\nexport const attachmentsPlugin: AXPEntityActionPlugin = {\n name: 'attachments',\n order: 50,\n apply: (ctx, options?: AttachmentsPluginOptions) => {\n const opts = options ?? {};\n const field = opts.field && opts.field.trim().length > 0 ? opts.field : 'attachments';\n const displayTitle = opts.title && opts.title.trim().length > 0 ? opts.title : '@document-management:terms.common.attachments';\n const displayMode: AttachmentsDisplayMode = opts.display ?? 'section';\n\n // Ensure group and section ids (unique per field)\n const sectionId = `attachments-${field}`;\n const groupIdForProperty = `attachments-${field}`;\n const existingGroups = ctx.groups.list() ?? [];\n if (!existingGroups.some((g: any) => g.id === groupIdForProperty)) {\n ctx.groups.add({ id: groupIdForProperty, title: displayTitle } as any);\n }\n\n // Ensure property exists (using a generic file-uploader interface)\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === field)) {\n ctx.properties.add({\n name: field,\n title: displayTitle,\n groupId: groupIdForProperty,\n schema: {\n dataType: 'string',\n interface: {\n type: 'file-uploader',\n options: {\n multiple: opts.multiple ?? true,\n accept: opts.accept,\n readonly: opts['readonly'] ?? false,\n fileEditable: opts.fileEditable ?? true,\n showEditDialogAfterSelect: opts.showEditDialogAfterSelect ?? false,\n enableTitleDescription: opts.enableTitleDescription ?? false,\n fileIds: `{{ Array.isArray(context.eval(\"${field}\")) ? context.eval(\"${field}\") : [context.eval(\"${field}\")] }}`,\n plugins: opts.plugins ?? [],\n excludePlugins: opts.excludePlugins ?? [],\n },\n },\n },\n } as any);\n }\n\n // Ensure column exists\n const cols = ctx.columns.list() ?? [];\n if (!cols?.some((c: any) => c.name === field)) {\n ctx.columns.add({ name: field } as any);\n }\n\n if (displayMode === 'section') {\n const sectionOrder = 8;\n const colSpan = 12;\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle, order: 100 } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: sectionOrder } } },\n } as any);\n return next;\n });\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: 6 } } },\n } as any);\n return next;\n });\n\n ctx.interfaces.master.modify.update((modify) => {\n const next = cloneLayoutArrays((modify ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: 6 } } },\n } as any);\n return next;\n });\n } else {\n ctx.entity.pages ??= [];\n const pageExists = ctx.entity.pages.some(\n (p: any) => p.componentKey === ATTACHMENTS_PAGE_COMPONENT_KEY && (p as any).field === field,\n );\n const pageOrder = resolveEntityPluginDetailPageOrder(\n { relatedEntities: ctx.entity.relatedEntities, pages: ctx.entity.pages },\n 'attachments',\n {\n componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY,\n field,\n skipPage: pageExists\n ? { componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY, field }\n : undefined,\n },\n );\n const page: any = {\n componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY,\n title: displayTitle,\n icon: opts.icon ?? 'fa-light fa-paperclip',\n layout: { order: pageOrder },\n field,\n };\n if (!pageExists) {\n ctx.entity.pages.push(page);\n } else {\n const pages = ctx.entity.pages as any[];\n const index = pages.findIndex(\n (p) => p.componentKey === ATTACHMENTS_PAGE_COMPONENT_KEY && p.field === field,\n );\n if (index >= 0) {\n pages[index] = { ...pages[index], ...page };\n }\n }\n }\n\n // Ensure list action to open file uploader popup exists\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = (i as any).master.list.actions as any[];\n const cmdName = 'show-file-uploader-popup';\n const actionName = `attachments-${field}`;\n if (!actionExists(actions, cmdName, actionName)) {\n actions.push({\n name: actionName,\n title: opts.titleKey ?? opts.label ?? '@document-management:actions.upload-files',\n command: {\n name: cmdName,\n options: {\n id: '{{ context.eval(\"id\") }}',\n files: `{{ Array.isArray(context.eval(\"${field}\")) ? context.eval(\"${field}\") : [context.eval(\"${field}\")] }}`,\n multiple: opts.multiple ?? true,\n accept: opts.accept ?? '.jpg,.jpeg,.png,.gif,.webp',\n readonly: opts['readonly'] ?? false,\n key: field,\n fileEditable: opts.fileEditable ?? true,\n showEditDialogAfterSelect: opts.showEditDialogAfterSelect ?? false,\n enableTitleDescription: opts.enableTitleDescription ?? false,\n },\n },\n priority: 'secondary',\n type: 'upload',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n return i as any;\n });\n\n // Stamp normalized config for middleware\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.attachments ??= {};\n (ctx.entity as any).extensions.attachments[field] = { title: displayTitle, display: displayMode };\n },\n};\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { ATTACHMENTS_PAGE_COMPONENT_KEY } from '../attachments.plugin';\n\n//#region ---- Attachments Page Component Provider ----\n\n@Injectable()\nexport class AXMAttachmentsPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: ATTACHMENTS_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./attachments-page.component').then((m) => m.AXMAttachmentsPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { attachmentsPlugin } from './attachments.plugin';\nimport { AXMAttachmentsPageComponentProvider } from './attachments-page/attachments-page-component.provider';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex/platform/layout/components';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: attachmentsPlugin },\n { provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMAttachmentsPageComponentProvider },\n ],\n})\nexport class AXPAttachmentsPluginModule { }\n","//#region ---- Platform Imports ----\n\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex/platform/core';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { CommonManifest } from './manifest';\nimport { AXP_STATUS_PROVIDERS } from '@acorex/platform/common';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { NgModule } from '@angular/core';\n\n//#endregion\n\n//#region ---- Feature Plugin Modules ----\n\nimport { AXPArchivePluginModule } from './features/archive-plugin';\nimport { AXPHistoryModule } from './features/history-plugin';\nimport { AXPAvatarPluginModule } from './features/avatar-plugin';\nimport { AXPCategoryModule } from './features/category-plugin';\nimport { AXPClonePluginModule } from './features/clone-plugin';\nimport { AXPColorPluginModule } from './features/color-plugin';\nimport { AXPCompareModule } from './features/compare';\nimport { AXPComputedPropertiesModule } from './features/computed-properties/computed-properties.module';\nimport { AXPDescriptionPluginModule } from './features/description-plugin';\nimport { AXPDisablePluginModule } from './features/disable-plugin';\nimport { AXPDefaultPluginModule } from './features/default-plugin';\nimport { AXPGlobalSearchModule } from './features/global-search';\nimport { AXPIconPluginModule } from './features/icon-plugin';\nimport { AXMLockSystemModule } from './features/lock-system/lock-system.module';\nimport { AXPNamePluginModule } from './features/name-plugin';\nimport { AXPNotesPluginModule } from './features/notes-plugin';\nimport { AXPPrimaryPluginModule } from './features/primary-plugin';\nimport { AXPStatusPluginModule } from './features/status';\nimport { AXPTitlePluginModule } from './features/title-plugin';\nimport { AXPUniqueFieldsPluginModule } from './features/unique-fields-plugin';\nimport { AXPValidationRulesModule } from './validations';\n\n//#endregion\n\n//#region ---- Shared Providers & Evaluators ----\n\nimport { AXPDateTimeEvaluatorScopeProvider } from './evaluators/datetime.evaluator-scope.provider';\nimport { AXPTranslateEvaluatorScopeProvider } from './evaluators/translate.evaluator-scope.provider';\nimport { TaskStatusProvider, ApprovalStatusProvider, StateStatusProvider } from './features/status/providers';\n\n//#endregion\n\n//#region ---- Module Providers ----\n\nimport { AXMCommonMiddlewaresModule } from './middlewares/command-middleware.module';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMSettingProvider } from './settings.provider';\nimport { AXMFilterOperatorEvaluatorScopeProvider } from './evaluators/filter/filter-operator-evaluator-scope.provider';\nimport { AXPCommonFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXP_MULTI_SOURCE_DEFINITION_PROVIDER } from '@acorex/platform/layout/entity';\nimport { AXCAssignmentMultiSourceDefinitionProvider } from './multi-source-definitions';\nimport { AXPAttachmentsPluginModule } from './features/attachment-plugin/attachments-plugin.module';\n\n//#endregion\n\n@NgModule({\n imports: [\n //#region ---- Extension & System Plugins ----\n\n AXPCategoryModule,\n AXMLockSystemModule,\n AXPHistoryModule,\n AXPAttachmentsPluginModule,\n //#endregion\n\n //#region ---- Operation Plugins ----\n\n AXPClonePluginModule,\n\n //#endregion\n\n //#region ---- Status Management Plugins ----\n\n AXPArchivePluginModule,\n AXPDisablePluginModule,\n AXPDefaultPluginModule,\n AXPPrimaryPluginModule,\n AXPUniqueFieldsPluginModule,\n\n //#endregion\n\n //#region ---- Property Plugins ----\n\n AXPNamePluginModule,\n AXPTitlePluginModule,\n AXPNotesPluginModule,\n AXPDescriptionPluginModule,\n AXPIconPluginModule,\n AXPColorPluginModule,\n AXPAvatarPluginModule,\n\n //#endregion\n\n //#region ---- Feature Modules ----\n\n AXPGlobalSearchModule,\n AXPCompareModule,\n AXPStatusPluginModule,\n AXPComputedPropertiesModule,\n AXPValidationRulesModule,\n\n //#endregion\n\n //#region ---- Platform Modules ----\n\n AXPWidgetsModule,\n AXMCommonMiddlewaresModule,\n\n //#endregion\n ],\n exports: [],\n declarations: [],\n providers: [\n //#region ---- Menu Provider ----\n\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Settings Provider ----\n\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Expression Evaluator Scope Providers ----\n\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPDateTimeEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPTranslateEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMFilterOperatorEvaluatorScopeProvider,\n multi: true,\n },\n\n //#endregion\n\n\n //#region ---- Status Providers ----\n\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: TaskStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: ApprovalStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: StateStatusProvider,\n multi: true,\n },\n //#endregion\n\n //#region ---- Module Manifest Provider ----\n\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: CommonManifest,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Feature Definition Provider ----\n\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXPCommonFeatureDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Multi-Source Definition Provider ----\n\n {\n provide: AXP_MULTI_SOURCE_DEFINITION_PROVIDER,\n useClass: AXCAssignmentMultiSourceDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Sample catalog commands (AI utilities) ----\n\n provideCommandSetups([\n {\n key: 'common.get_current_time',\n command: () =>\n import('./tools/get-current-time.command').then((m) => m.CommonGetCurrentTimeCommand),\n },\n ]),\n\n //#endregion\n ],\n})\nexport class AXMCommonModule { }\n","//#region ---- Imports ----\n\nimport { AXPBreadcrumbItem } from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\n\n//#endregion\n\n//#region ---- Config Interface ----\n\n/**\n * Configuration for the resource appointment page.\n * Provide via AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG to customize title, description, breadcrumbs, and board options.\n */\nexport interface AXPResourceAppointmentPageConfig {\n /** Page title (translation key e.g. '@module:feature.page-title' or literal). */\n pageTitle: string;\n /** Optional page description (translation key or literal). */\n pageDescription?: string | null;\n /** Optional page icon (e.g. 'fa-light fa-calendar-lines'). */\n pageIcon?: string | null;\n /** Optional breadcrumb items (in addition to default home). */\n breadcrumbs?: AXPBreadcrumbItem[];\n /** Whether to show resource headers in timeline views. Default true. */\n showResourceHeaders?: boolean;\n /** Whether to show appointments that have no resourceId. Default true. */\n showUnassignedAppointments?: boolean;\n}\n\n//#endregion\n\n//#region ---- Injection Token ----\n\nexport const AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG = new InjectionToken<AXPResourceAppointmentPageConfig>(\n 'AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG',\n);\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPBreadcrumbItem } from '@acorex/platform/core';\nimport { AXPResourceAppointmentComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\n\nimport { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG,\n AXPResourceAppointmentPageConfig,\n} from './resource-appointment-page.config';\n\n//#endregion\n\n@Component({\n selector: 'axp-resource-appointment-page',\n templateUrl: './resource-appointment-page.component.html',\n styleUrls: ['./resource-appointment-page.component.scss'],\n imports: [\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPResourceAppointmentComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPResourceAppointmentPageComponent,\n },\n ],\n})\nexport class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n private readonly pageConfig = inject(AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG, { optional: true });\n private readonly route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Route / Params ----\n\n /** Active provider name from route param 'provider-name'. */\n protected readonly providerName = signal<string | undefined>(undefined);\n\n //#endregion\n\n //#region ---- Computed / Config ----\n\n protected get config(): AXPResourceAppointmentPageConfig | null {\n return this.pageConfig ?? null;\n }\n\n protected get showResourceHeaders(): boolean {\n return this.config?.showResourceHeaders ?? true;\n }\n\n protected get showUnassignedAppointments(): boolean {\n return this.config?.showUnassignedAppointments ?? true;\n }\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n const initial = this.route.snapshot.paramMap.get('provider-name') ?? undefined;\n this.providerName.set(initial);\n this.route.paramMap.subscribe((params) => {\n const name = params.get('provider-name') ?? undefined;\n if (name !== this.providerName()) {\n this.providerName.set(name);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Page Metadata Overrides ----\n\n override async getPageTitle(): Promise<string> {\n if (this.config?.pageTitle) {\n const translated = await this.translateService.translateAsync(this.config.pageTitle);\n if (translated !== this.config.pageTitle) return translated;\n return this.config.pageTitle;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-title');\n }\n\n override async getPageDescription(): Promise<string | null> {\n if (this.config?.pageDescription != null && this.config.pageDescription !== '') {\n const translated = await this.translateService.translateAsync(this.config.pageDescription);\n if (translated !== this.config.pageDescription) return translated;\n return this.config.pageDescription;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-description');\n }\n\n override getPageIcon(): string | null {\n return this.config?.pageIcon ?? null;\n }\n\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return this.config?.breadcrumbs ?? [];\n }\n\n //#endregion\n}\n","<axp-page-layout>\n <!-- <axp-layout-start-side class=\"ax-border-e ax-lightest-surface ax-h-full ax-min-w-0\">\n <axp-layout-header class=\"ax-flex !ax-flex-row ax-items-center ax-justify-center ax-gap-2 ax-border-b\">\n <span class=\"ax-text-sm ax-font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"ax-flex ax-flex-col ax-min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board ax-flex-1 ax-min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i2"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-modules-common.mjs","sources":["../../../../libs/modules/common/src/lib/const.ts","../../../../libs/modules/common/src/lib/manifest.ts","../../../../libs/modules/common/src/lib/widgets-names-list.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/archive.plugin.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/archive-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/restore-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/bulk-archive-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/workflows/bulk-restore-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/archive-plugin/archive-plugin.module.ts","../../../../libs/modules/common/src/lib/features/history-plugin/history.plugin.ts","../../../../libs/modules/common/src/lib/features/history-plugin/commands/show-version-history-popup.command.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/version-history-page/version-history-page-component.provider.ts","../../../../libs/modules/common/src/lib/features/history-plugin/audit-info-widget.config.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/widget-definition.provider.ts","../../../../libs/modules/common/src/lib/features/history-plugin/history.module.ts","../../../../libs/modules/common/src/lib/features/history-plugin/utils/version-history.utils.ts","../../../../libs/modules/common/src/lib/features/history-plugin/components/version-history-page/version-history-page.component.ts","../../../../libs/modules/common/src/lib/features/avatar-plugin/avatar.plugin.ts","../../../../libs/modules/common/src/lib/features/avatar-plugin/avatar-plugin.module.ts","../../../../libs/modules/common/src/lib/features/category-plugin/category.plugin.ts","../../../../libs/modules/common/src/lib/features/category-plugin/entity.provider.ts","../../../../libs/modules/common/src/lib/features/category-plugin/category.module.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/clone.plugin.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/workflows/clone-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/clone-plugin/clone-plugin.module.ts","../../../../libs/modules/common/src/lib/features/color-plugin/color.plugin.ts","../../../../libs/modules/common/src/lib/features/color-plugin/color-plugin.module.ts","../../../../libs/modules/common/src/lib/features/compare/compare-popup.component.ts","../../../../libs/modules/common/src/lib/features/compare/compare-popup.component.html","../../../../libs/modules/common/src/lib/features/compare/workflows/compare.workflow.ts","../../../../libs/modules/common/src/lib/features/compare/compare.plugin.ts","../../../../libs/modules/common/src/lib/features/compare/compare.module.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.middleware.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.plugin.ts","../../../../libs/modules/common/src/lib/features/computed-properties/computed-properties.module.ts","../../../../libs/modules/common/src/lib/features/description-plugin/description.plugin.ts","../../../../libs/modules/common/src/lib/features/description-plugin/description-plugin.module.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/disable.plugin.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/disable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/enable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/bulk-disable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/workflows/bulk-enable-entity.workflow.ts","../../../../libs/modules/common/src/lib/features/disable-plugin/disable-plugin.module.ts","../../../../libs/modules/common/src/lib/features/default-plugin/default.plugin.ts","../../../../libs/modules/common/src/lib/features/default-plugin/default-plugin.module.ts","../../../../libs/modules/common/src/lib/features/global-search/search.config.ts","../../../../libs/modules/common/src/lib/features/global-search/search-slot.component.ts","../../../../libs/modules/common/src/lib/features/global-search/workflows/search.workflow.ts","../../../../libs/modules/common/src/lib/features.keys.ts","../../../../libs/modules/common/src/lib/features/global-search/search.module.ts","../../../../libs/modules/common/src/lib/features/global-search/search.viewmodel.ts","../../../../libs/modules/common/src/lib/features/icon-plugin/icon.plugin.ts","../../../../libs/modules/common/src/lib/features/icon-plugin/icon-plugin.module.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-guard.middleware.ts","../../../../libs/modules/common/src/lib/features/lock-system/workflows/lock-popup.workflow.ts","../../../../libs/modules/common/src/lib/features/lock-system/workflows/unlock-confirm.workflow.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/features/lock-system/lock-system.module.ts","../../../../libs/modules/common/src/lib/features/name-plugin/name.plugin.ts","../../../../libs/modules/common/src/lib/features/name-plugin/name-plugin.module.ts","../../../../libs/modules/common/src/lib/features/notes-plugin/notes.plugin.ts","../../../../libs/modules/common/src/lib/features/notes-plugin/notes-plugin.module.ts","../../../../libs/modules/common/src/lib/features/primary-plugin/primary.plugin.ts","../../../../libs/modules/common/src/lib/features/primary-plugin/primary-plugin.module.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status.plugin.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status-plugin.module.ts","../../../../libs/modules/common/src/lib/features/status/plugin/status.types.ts","../../../../libs/modules/common/src/lib/features/status/providers/task-status.provider.ts","../../../../libs/modules/common/src/lib/features/status/providers/approval-status.provider.ts","../../../../libs/modules/common/src/lib/features/status/providers/state-status.provider.ts","../../../../libs/modules/common/src/lib/features/title-plugin/title.plugin.ts","../../../../libs/modules/common/src/lib/features/title-plugin/title-plugin.module.ts","../../../../libs/modules/common/src/lib/features/unique-fields-plugin/unique-fields.plugin.ts","../../../../libs/modules/common/src/lib/features/unique-fields-plugin/unique-fields-plugin.module.ts","../../../../libs/modules/common/src/lib/validations/rules/unique-validation-rule.class.ts","../../../../libs/modules/common/src/lib/validations/rules/variable-name-validation-rule.class.ts","../../../../libs/modules/common/src/lib/validations/validation-rules.module.ts","../../../../libs/modules/common/src/lib/evaluators/datetime.evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/evaluators/translate.evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/middlewares/command-message-toast.middleware.ts","../../../../libs/modules/common/src/lib/middlewares/command-refresh.middleware.ts","../../../../libs/modules/common/src/lib/middlewares/command-middleware.module.ts","../../../../libs/modules/common/src/lib/menu.keys.ts","../../../../libs/modules/common/src/lib/menu.provider.ts","../../../../libs/modules/common/src/lib/settings.provider.ts","../../../../libs/modules/common/src/lib/evaluators/filter/filter-operator-evaluator-scope.provider.ts","../../../../libs/modules/common/src/lib/feature-definition.provider.ts","../../../../libs/modules/common/src/lib/multi-source-definitions/assignment-multi-source-definition.provider.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments.plugin.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments-page/attachments-page-component.provider.ts","../../../../libs/modules/common/src/lib/features/attachment-plugin/attachments-plugin.module.ts","../../../../libs/modules/common/src/lib/common.module.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.config.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.component.ts","../../../../libs/modules/common/src/lib/pages/resource-appointment-page/resource-appointment-page.component.html","../../../../libs/modules/common/src/acorex-modules-common.ts"],"sourcesContent":["const config = {\n i18n: 'common',\n module: 'Common',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'common',\n name: config.module,\n title: '@general:common.module.title',\n icon: 'fa-light fa-file-invoice',\n },\n entities: {},\n};\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Common Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const CommonManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","export const AXPWidgetsList = {\n Editors: {\n DocumentAttachment: 'document-attachment-editor',\n TagEditor: 'tag-editor',\n CheckBox: 'checkbox-editor',\n ColorBox: 'color-editor',\n ColorPalette: 'color-palette-editor',\n DateTimeBox: 'date-time-editor',\n AddressBox: 'address-editor',\n Direction: 'direction',\n LargeTextBox: 'large-text-editor',\n NumberBox: 'number-editor',\n UnitValueBox: 'number-unit-editor',\n PasswordBox: 'password-editor',\n QueryBuilder: 'query-builder-editor',\n RichText: 'rich-text-editor',\n SelectBox: 'select-editor',\n SelectionList: 'selection-list-editor',\n TextBox: 'text-editor',\n InlineDataTable: 'table-editor',\n ToggleSwitch: 'toggle-editor',\n FileTypeExtension: 'file-type-extension',\n MapBox: 'map',\n MediaGallery: 'gallery',\n SignatureBox: 'signature',\n LookupBox: 'lookup-editor',\n MultiSourceSelector: 'multi-source-selector-editor',\n EntityCategory: 'entity-category-editor',\n ContactBox: 'contact-editor',\n MetaDataBox: 'meta-data-editor',\n TemplateBox: 'template-box-editor',\n TemplateContentEditor: 'template-content-editor',\n TimeDuration: 'time-duration',\n DocumentUploader: 'document-uploader',\n MetaSelector: 'meta-selector-editor',\n MetaDataForm: 'meta-data-form-editor',\n ColumnFilterSelector: 'column-filter-selector-editor',\n DataListFilter: 'data-list-filter-editor',\n ListEditor: 'list-editor',\n ConnectedListsEditor: 'connected-lists-editor',\n SkillMatrix: 'skill-matrix-editor',\n ResponsibilitiesMatrix: 'responsibilities-matrix-editor',\n ProgressBox: 'progress-bar-editor',\n RatePicker: 'rate-picker-editor',\n ActivityCommandConfigurator: 'activity-command-configurator',\n },\n Layouts: {\n AlertBox: 'alert-box-layout',\n BlockLayout: 'block-layout',\n RepeaterLayout: 'repeater-layout',\n TextBlockLayout: 'text-block-layout',\n FormField: 'form-field',\n PanelLayout: 'panel-layout',\n PageLayout: 'page-layout',\n DocumentLayout: 'document-layout',\n GridRowLayout: 'grid-row-layout',\n GridItemLayout: 'grid-item-layout',\n GridLayout: 'grid-layout',\n FlexLayout: 'flex-layout',\n FlexItemLayout: 'flex-item-layout',\n AdvancedGridLayout: 'advanced-grid-layout',\n AdvancedGridItemLayout: 'advanced-grid-item-layout',\n FieldsetLayout: 'fieldset-layout',\n TabsetLayout: 'tabset-layout',\n TabsetItemLayout: 'tabset-item',\n },\n Actions: {\n ActionButton: 'button-action',\n },\n Advanced: {\n CodeEditor: 'code-editor',\n JsonViewer: 'json-viewer',\n QRCode: 'qrcode',\n schedulerPicker: 'scheduler-picker',\n Signature: 'signature',\n Map: 'map',\n Gallery: 'gallery',\n Image: 'image',\n ImageMarker: 'image-marker',\n Avatar: 'avatar',\n FileUploader: 'file-uploader',\n DataList: 'data-list',\n ListToolbar: 'list-toolbar',\n CronJob: 'cron-job',\n Status: 'status-widget',\n WidgetFieldConfigurator: 'widget-field-configurator',\n AnswersViewer: 'answers-viewer',\n },\n Templates: {\n Designer: 'template-designer',\n Template: 'template',\n },\n // Filters: {\n // StringFilter: 'string-filter',\n // SelectFilter: 'select-filter',\n // NumberFilter: 'number-filter',\n // DateTimeFilter: 'datetime-filter',\n // BooleanFilter: 'boolean-filter',\n // LookupFilter: 'lookup-filter',\n // },\n // PropertyEditors: {\n // Spacing: 'spacing',\n // GridOptions: 'grid-options',\n // GridItemOptions: 'grid-item-options',\n // FlexOptions: 'flex-options',\n // FlexItemOptions: 'flex-item-options',\n // Direction: 'direction',\n // Border: 'border',\n // AdvancedGridOptions: 'advanced-grid-options',\n // },\n // Validations: {\n // RequiredValidation: 'required-validation',\n // RegularExpressionValidation: 'regular-expression-validation',\n // MinLengthValidation: 'min-length-validation',\n // MaxLengthValidation: 'max-length-validation',\n // LessThanValidation: 'less-than-validation',\n // GreaterThanValidation: 'greater-than-validation',\n // EqualValidation: 'equal-validation',\n // CallbackValidation: 'callback-validation',\n // BetweenValidation: 'between-validation',\n // },\n Entity: {\n EntityList: 'entity-list',\n SelectorStructure: 'selector-structure',\n },\n Providers: {\n EntityDefinition: 'entity-definition-provider-editor',\n },\n ExpressionBuilders: {\n ConditionBuilder: 'condition-builder-editor',\n },\n Theme: {\n ThemeColorChooser: 'theme-color-chooser',\n ThemePaletteChooser: 'theme-palette-chooser',\n // ThemeModeChooser: 'theme-mode-chooser',\n IconChooser: 'icon-chooser',\n FontSizeChooser: 'font-size-chooser',\n FontStyleChooser: 'font-style-chooser',\n // MenuOrientationChooser: 'menu-orientation-chooser',\n },\n // Features: {\n // Comment: 'comment',\n // Permissions: 'permissions',\n // },\n};\n","import { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n//#region ---- Types ----\n\n/** Options for the archive plugin. */\nexport interface ArchivePluginOptions {\n /** Name of the boolean field used for archived state. Defaults to `'isArchived'`. */\n fieldName?: string;\n}\n\nconst DEFAULT_ARCHIVE_FIELD_NAME = 'isArchived';\n\n//#endregion\n\nexport const archivePlugin: AXPEntityActionPlugin = {\n name: 'archive',\n order: 65,\n apply: (ctx, options?: ArchivePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_ARCHIVE_FIELD_NAME;\n\n //#region ---- Add Archive Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add archive property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-archived',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not archived)\n defaultValue: false,\n trulyText: '@general:terms.status.options.archived',\n falsyText: '@general:terms.status.options.active',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true }\n }\n }\n } as any);\n }\n\n // Add archive field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-active',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Archive Actions ----\n\n ctx.interfaces.update((i) => {\n const archiveCmdName = 'archive-entity';\n const restoreArchiveCmdName = 'restore-archive-entity';\n const bulkArchiveCmdName = 'bulk-archive-entity';\n const bulkRestoreArchiveCmdName = 'bulk-restore-archive-entity';\n\n // Add archive action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, archiveCmdName)) {\n listActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add restore archive action to list view\n if (!actionExists(listActions, restoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add bulk archive action to list view\n if (!actionExists(listActions, bulkArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-archive.title',\n command: {\n name: bulkArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk restore archive action to list view\n if (!actionExists(listActions, bulkRestoreArchiveCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-restore-archive.title',\n command: {\n name: bulkRestoreArchiveCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add archive action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, archiveCmdName)) {\n singleActions.push({\n title: '@general:actions.archive.title',\n command: {\n name: archiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'archive',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add restore archive action to single view\n if (!actionExists(singleActions, restoreArchiveCmdName)) {\n singleActions.push({\n title: '@general:actions.restore-archive.title',\n command: {\n name: restoreArchiveCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Add archive view to show only archived items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if archive view already exists\n if (!next.views.some((v: any) => v.name === 'archived')) {\n next.views.push(\n createQueryView('archived', '@general:terms.status.states.is-archived', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true\n },\n ],\n sorts: [\n { name: 'archivedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n })\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityArchivedEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Archived',\n);\n\n@Injectable()\nexport class AXPEntityArchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.archive.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.archive.confirm.processing'),\n mode: 'indeterminate',\n status: 'Archiving...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare archive data\n const archiveData = this.prepareArchiveData(currentData);\n\n // Update the entity to mark it as archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(archiveData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Archive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n \n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n \n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareArchiveData(currentData: any): any {\n const archiveData = { ...currentData };\n\n // Set the archived flag\n archiveData.isArchived = true;\n\n // Optionally add archive timestamp\n archiveData.archivedAt = new Date();\n\n return archiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityArchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch archive event\n this.dispatch(\n AXPEntityArchivedEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPArchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'archive-entity',\n steps: {\n 'archive-entity': {\n action: 'AXPEntityArchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-archived',\n content: 'workflow.entity-archived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'archive-success',\n },\n ],\n },\n 'archive-success': {\n action: 'AXPEntityArchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityUnarchivedEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Unarchived',\n);\n\n@Injectable()\nexport class AXPEntityUnarchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.restore-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.restore-archive.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.restore-archive.confirm.processing'),\n mode: 'indeterminate',\n status: 'Unarchiving...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare unarchive data\n const unarchiveData = this.prepareUnarchiveData(currentData);\n\n // Update the entity to mark it as not archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(unarchiveData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Unarchive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n \n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n \n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareUnarchiveData(currentData: any): any {\n const unarchiveData = { ...currentData };\n\n // Set the archived flag to false\n unarchiveData.isArchived = false;\n\n // Remove archive timestamp\n delete unarchiveData.archivedAt;\n\n return unarchiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityUnarchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch unarchive event\n this.dispatch(\n AXPEntityUnarchivedEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPUnarchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'unarchive-entity',\n steps: {\n 'unarchive-entity': {\n action: 'AXPEntityUnarchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-unarchived',\n content: 'workflow.entity-unarchived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'unarchive-success',\n },\n ],\n },\n 'unarchive-success': {\n action: 'AXPEntityUnarchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkArchivedEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Archived',\n);\n\n@Injectable()\nexport class AXPEntityBulkArchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-archive.confirm.processing'),\n mode: 'indeterminate',\n status: `Archiving ${selectedIds.length} items...`,\n });\n\n try {\n const processedIds: string[] = [];\n const failedIds: string[] = [];\n\n // Process each selected entity\n for (const id of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, id);\n\n // Prepare archive data\n const archiveData = this.prepareArchiveData(currentData);\n\n // Update the entity to mark it as archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(archiveData);\n processedIds.push(id);\n } else {\n failedIds.push(id);\n }\n } catch (error) {\n console.error(`Failed to archive entity ${id}:`, error);\n failedIds.push(id);\n }\n }\n\n context.setOutput('processedIds', processedIds);\n context.setOutput('failedIds', failedIds);\n context.setOutput('isCanceled', false);\n context.setOutput('totalProcessed', processedIds.length);\n context.setOutput('totalFailed', failedIds.length);\n\n } catch (error) {\n console.error('Bulk archive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareArchiveData(currentData: any): any {\n const archiveData = { ...currentData };\n\n // Set the archived flag\n archiveData.isArchived = true;\n\n // Optionally add archive timestamp\n archiveData.archivedAt = new Date();\n\n return archiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkArchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const failedIds = context.getOutput<string[]>('failedIds') || [];\n const totalProcessed = context.getOutput<number>('totalProcessed') || 0;\n const totalFailed = context.getOutput<number>('totalFailed') || 0;\n\n // Dispatch bulk archive event\n this.dispatch(\n AXPEntityBulkArchivedEvent({\n entity: refType,\n ids: processedIds,\n meta: { failedIds, totalProcessed, totalFailed }\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta: { refreshType: 'bulk-archive' }\n }),\n );\n }\n}\n\nexport const AXPBulkArchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-archive-entity',\n steps: {\n 'bulk-archive-entity': {\n action: 'AXPEntityBulkArchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-archived',\n content: 'workflow.entity-bulk-archived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-archive-success',\n },\n ],\n },\n 'bulk-archive-success': {\n action: 'AXPEntityBulkArchiveSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkUnarchivedEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Unarchived',\n);\n\n@Injectable()\nexport class AXPEntityBulkUnarchiveAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-restore-archive.confirm.processing'),\n mode: 'indeterminate',\n status: `Unarchiving ${selectedIds.length} items...`,\n });\n\n try {\n const processedIds: string[] = [];\n const failedIds: string[] = [];\n\n // Process each selected entity\n for (const id of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, id);\n\n // Prepare unarchive data\n const unarchiveData = this.prepareUnarchiveData(currentData);\n\n // Update the entity to mark it as not archived\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(unarchiveData);\n processedIds.push(id);\n } else {\n failedIds.push(id);\n }\n } catch (error) {\n console.error(`Failed to restore entity ${id}:`, error);\n failedIds.push(id);\n }\n }\n\n context.setOutput('processedIds', processedIds);\n context.setOutput('failedIds', failedIds);\n context.setOutput('isCanceled', false);\n context.setOutput('totalProcessed', processedIds.length);\n context.setOutput('totalFailed', failedIds.length);\n\n } catch (error) {\n console.error('Bulk unarchive operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareUnarchiveData(currentData: any): any {\n const unarchiveData = { ...currentData };\n\n // Set the archived flag to false\n unarchiveData.isArchived = false;\n\n // Remove archive timestamp\n delete unarchiveData.archivedAt;\n\n return unarchiveData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkUnarchiveSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const failedIds = context.getOutput<string[]>('failedIds') || [];\n const totalProcessed = context.getOutput<number>('totalProcessed') || 0;\n const totalFailed = context.getOutput<number>('totalFailed') || 0;\n\n // Dispatch bulk unarchive event\n this.dispatch(\n AXPEntityBulkUnarchivedEvent({\n entity: refType,\n ids: processedIds,\n meta: { failedIds, totalProcessed, totalFailed }\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta: { refreshType: 'bulk-unarchive' }\n }),\n );\n }\n}\n\nexport const AXPBulkUnarchiveEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-unarchive-entity',\n steps: {\n 'bulk-unarchive-entity': {\n action: 'AXPEntityBulkUnarchiveAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-unarchived',\n content: 'workflow.entity-bulk-unarchived-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-unarchive-success',\n },\n ],\n },\n 'bulk-unarchive-success': {\n action: 'AXPEntityBulkUnarchiveSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { archivePlugin } from './archive.plugin';\nimport { \n AXPArchiveEntityWorkflow, \n AXPEntityArchiveAction, \n AXPEntityArchiveSuccessAction,\n AXPUnarchiveEntityWorkflow,\n AXPEntityUnarchiveAction,\n AXPEntityUnarchiveSuccessAction,\n AXPBulkArchiveEntityWorkflow,\n AXPEntityBulkArchiveAction,\n AXPEntityBulkArchiveSuccessAction,\n AXPBulkUnarchiveEntityWorkflow,\n AXPEntityBulkUnarchiveAction,\n AXPEntityBulkUnarchiveSuccessAction\n} from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityArchiveAction,\n AXPEntityArchiveSuccessAction,\n AXPEntityUnarchiveAction,\n AXPEntityUnarchiveSuccessAction,\n AXPEntityBulkArchiveAction,\n AXPEntityBulkArchiveSuccessAction,\n AXPEntityBulkUnarchiveAction,\n AXPEntityBulkUnarchiveSuccessAction,\n },\n workflows: {\n 'archive-entity': AXPArchiveEntityWorkflow,\n 'restore-archive-entity': AXPUnarchiveEntityWorkflow,\n 'bulk-archive-entity': AXPBulkArchiveEntityWorkflow,\n 'bulk-restore-archive-entity': AXPBulkUnarchiveEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: archivePlugin },\n ],\n})\nexport class AXPArchivePluginModule { }\n","import { AXPEntityAction, AXPEntityCommandScope } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n resolveEntityPluginDetailPageOrder,\n} from '@acorex/platform/layout/entity';\n\n/** How to show version history: popup (default) or full page. */\nexport type HistoryDisplayMode = 'page' | 'popup';\n\n/** Component key used when display is 'page'. Register via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const HISTORY_PAGE_COMPONENT_KEY = 'entity-version-history-page';\n\nexport interface AXPHistoryPluginOptions {\n /** Where to show version history: popup (action) or page (tab). Default: 'page' */\n display?: HistoryDisplayMode;\n /** Title for the page when display is 'page'. Default: @activity-log:actions.view-history.title (Change History) */\n title?: string;\n /** Icon for the page when display is 'page'. Default: fa-light fa-clock-rotate-left */\n icon?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: false\n };\n}\n\nconst DEFAULT_COLUMN_WIDTH = '180px';\nconst AUDIT_GROUP_ID = 'audit-info';\nconst SECTION_ORDER = 999;\n\nexport const historyPlugin: AXPEntityActionPlugin = {\n name: 'history',\n order: 50,\n apply: (ctx, options?: AXPHistoryPluginOptions) => {\n const opts = options ?? {};\n const displayMode: HistoryDisplayMode = opts.display ?? 'page';\n const columnEnabled = opts.column?.enabled ?? true;\n const columnVisible = opts.column?.visible ?? false;\n const fieldTitles = Object.fromEntries(\n ctx.properties.list()?.map((p: any) => [p.name, p.title]) ?? []\n );\n const entitySource = `${ctx.entity.module}.${ctx.entity.name}`;\n\n //#region ---- Change history action (list + single) or page ----\n\n if (displayMode === 'popup') {\n ensureListActions(ctx);\n const cmdName = 'show-version-history-popup';\n ctx.interfaces.update((i) => {\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n const singleActions =\n (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@activity-log:actions.view-history.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: entitySource,\n fieldTitles,\n },\n },\n priority: 'secondary',\n type: 'version-history',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n return i as any;\n });\n } else {\n ctx.entity.pages ??= [];\n const pageExists = ctx.entity.pages.some(\n (p: { componentKey?: string }) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY,\n );\n const historyPageOrder = resolveEntityPluginDetailPageOrder(\n { relatedEntities: ctx.entity.relatedEntities, pages: ctx.entity.pages },\n 'history',\n {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n skipPage: pageExists\n ? { componentKey: HISTORY_PAGE_COMPONENT_KEY }\n : undefined,\n },\n );\n if (!pageExists) {\n const pageEntry = {\n componentKey: HISTORY_PAGE_COMPONENT_KEY,\n title: opts.title?.trim()\n ? opts.title\n : '@activity-log:actions.view-history.title',\n icon: opts.icon ?? 'fa-light fa-clock-rotate-left',\n layout: { order: historyPageOrder },\n refType: entitySource,\n options: { refType: entitySource },\n };\n (ctx.entity.pages as typeof pageEntry[]).push(pageEntry);\n } else {\n const pages = ctx.entity.pages as Array<{\n componentKey?: string;\n layout?: { order?: number; position?: 'before' | 'after' | 'middle' };\n }>;\n const index = pages.findIndex((p) => p.componentKey === HISTORY_PAGE_COMPONENT_KEY);\n if (index >= 0) {\n const existing = pages[index];\n pages[index] = {\n ...existing,\n layout: { ...(existing.layout ?? {}), order: historyPageOrder },\n };\n }\n }\n }\n\n //#endregion\n\n //#region ---- Audit section (detail view, always) ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === AUDIT_GROUP_ID)) {\n ctx.groups.add({\n id: AUDIT_GROUP_ID,\n title: '@general:terms.audit.section-title',\n } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'auditInfo')) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.section-title',\n groupId: AUDIT_GROUP_ID,\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, {\n id: AUDIT_GROUP_ID,\n order: SECTION_ORDER,\n } as any);\n ensureLayoutPropertyView(next, {\n name: 'auditInfo',\n layout: { positions: { lg: { colSpan: 12, order: 1 } } },\n } as any);\n return next;\n };\n\n // ctx.interfaces.master.single.update((single) =>\n // applyLayoutPatch(\n // single ?? { title: ctx.entity.title, sections: [], properties: [] }\n // )\n // );\n\n //#endregion\n\n //#region ---- Audit column (list view) ----\n\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'auditInfo')) {\n const currentProps = ctx.properties.list();\n const auditInfoProperty = currentProps.find(\n (p: any) => p.name === 'auditInfo'\n );\n\n if (!auditInfoProperty) {\n ctx.properties.add({\n name: 'auditInfo',\n title: '@general:terms.audit.column-title',\n schema: {\n dataType: 'object',\n readonly: true,\n interface: {\n type: 'audit-info-column',\n options: {\n entityInfo: {\n module: ctx.entity.module,\n name: ctx.entity.name,\n source: entitySource,\n fieldTitles,\n },\n hasHistoryPlugin: true,\n },\n },\n },\n validations: [],\n } as any);\n }\n\n ctx.columns.add({\n name: 'auditInfo',\n title: '@general:terms.audit.modified',\n options: {\n width: DEFAULT_COLUMN_WIDTH,\n visible: columnVisible,\n dataPath: 'auditInfo',\n },\n });\n }\n }\n\n //#endregion\n },\n};\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable } from '@angular/core';\n\nexport interface ShowVersionHistoryPopupInput {\n refId?: string;\n refType?: string;\n fieldTitles?: Record<string, string>;\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n /** When invoked from entity action, options may be under __context__.options or options */\n __context__?: { options?: Partial<ShowVersionHistoryPopupInput>; data?: Record<string, unknown> };\n options?: Partial<ShowVersionHistoryPopupInput>;\n}\n\n/**\n * Opens the version history timeline popup for a given entity reference.\n * Replaces the legacy AXPWorkflowAction-based workflow with the AXP Command system.\n */\n@Injectable({ providedIn: 'root' })\nexport class ShowVersionHistoryPopupCommand\n implements AXPCommand<ShowVersionHistoryPopupInput, void> {\n private readonly popupService = inject(AXPopupService);\n private readonly translate = inject(AXTranslationService);\n\n async execute(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): Promise<AXPExecuteCommandResult<void>> {\n const opts = this.normalizeInput(input);\n if (!opts.refId || !opts.refType) {\n return {\n success: false,\n message: {\n text: await this.translate.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n const comp = (\n await import(\n '../components/timeline-version-history-popup/timeline-version-history-popup.component'\n )\n ).AXMTimelineVersionHistoryPopupComponent;\n\n this.popupService.open(comp, {\n title: await this.translate.translateAsync('@activity-log:actions.view-history.title'),\n data: {\n refId: opts.refId,\n refType: opts.refType,\n fieldTitles: opts.fieldTitles ?? {},\n fromDate: opts.fromDate,\n toDate: opts.toDate,\n limit: opts.limit,\n offset: opts.offset,\n },\n });\n\n return { success: true };\n }\n\n private normalizeInput(\n input: ShowVersionHistoryPopupInput | Record<string, unknown>\n ): ShowVersionHistoryPopupInput {\n const ctx = (input as any).__context__;\n const options = (input as any).options ?? ctx?.options ?? {};\n return {\n refId: (input as any).refId ?? options.refId,\n refType: (input as any).refType ?? options.refType,\n fieldTitles: (input as any).fieldTitles ?? options.fieldTitles,\n fromDate: (input as any).fromDate ?? options.fromDate,\n toDate: (input as any).toDate ?? options.toDate,\n limit: (input as any).limit ?? options.limit,\n offset: (input as any).offset ?? options.offset,\n };\n }\n}\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { HISTORY_PAGE_COMPONENT_KEY } from '../../history.plugin';\n\n//#region ---- Version History Page Component Provider ----\n\n@Injectable()\nexport class AXMVersionHistoryPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: HISTORY_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./version-history-page.component').then(\n (m) => m.AXMVersionHistoryPageComponent\n ),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\n\nexport const AXPHistoryAuditInfoWidget: AXPWidgetConfig = {\n name: 'audit-info-column',\n title: 'Audit Info',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n type: 'editor',\n icon: 'fa-light fa-info-circle',\n properties: [],\n components: {\n view: {\n component: () =>\n import('./components/audit-info-view.component').then(\n (c) => c.AXPAuditInfoViewComponent\n ),\n },\n edit: {\n component: () =>\n import('./components/audit-info-edit.component').then(\n (c) => c.AXPAuditInfoEditComponent\n ),\n },\n column: {\n component: () =>\n import('./components/audit-info-column.component').then(\n (c) => c.AXPAuditInfoColumnComponent\n ),\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPHistoryAuditInfoWidget } from '../audit-info-widget.config';\n\n//#endregion\n\n//#region ---- Audit Info Widgets Provider ----\n\n@Injectable()\nexport class AXPAuditInfoWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXPHistoryAuditInfoWidget];\n }\n}\n\n//#endregion","import { NgModule } from '@angular/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex/platform/layout/components';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';\nimport { historyPlugin } from './history.plugin';\nimport { ShowVersionHistoryPopupCommand } from './commands/show-version-history-popup.command';\nimport { AXMVersionHistoryPageComponentProvider } from './components/version-history-page/version-history-page-component.provider';\nimport { AXPAuditInfoWidgetsProvider } from './components/widget-definition.provider';\n\n@NgModule({\n imports: [],\n providers: [\n { provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMVersionHistoryPageComponentProvider },\n { provide: AXP_WIDGET_DEFINITION_PROVIDER, useClass: AXPAuditInfoWidgetsProvider, multi: true },\n ShowVersionHistoryPopupCommand,\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: historyPlugin,\n multi: true,\n },\n provideCommandSetups([\n {\n key: 'show-version-history-popup',\n command: () =>\n import('./commands/show-version-history-popup.command').then(\n (m) => m.ShowVersionHistoryPopupCommand\n ),\n },\n ]),\n ],\n})\nexport class AXPHistoryModule {}\n","import { AXPVersionEntry, AXVChangeType } from '@acorex/platform/common';\nimport {\n AXPActivityLog,\n AXPActivityLogChange,\n AXPSystemActionType,\n} from '@acorex/platform/core';\n\n//#region ---- Version History Utils ----\n\nconst ACTIVITY_LOG_CHANGES_SCOPE = '@activity-log:changes';\n\n/** Removes field names from summary to avoid repetition (e.g. \"Fields changed: 3 (title, desc)\" → \"Fields changed: 3\"). */\nfunction stripFieldNamesFromSummary(summary: string): string {\n return summary.replace(/Fields changed:\\s*(\\d+)\\s*\\([^)]+\\)/g, 'Fields changed: $1');\n}\n\nexport function mapChangeType(\n t: AXVChangeType\n): AXPSystemActionType.Create | AXPSystemActionType.Update | AXPSystemActionType.Delete {\n switch (t) {\n case AXVChangeType.Create:\n return AXPSystemActionType.Create;\n case AXVChangeType.Delete:\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\nexport function mapOpToAction(op: string): AXPSystemActionType {\n switch (op) {\n case 'add':\n return AXPSystemActionType.Create;\n case 'remove':\n return AXPSystemActionType.Delete;\n default:\n return AXPSystemActionType.Update;\n }\n}\n\n/** Kebab-case to camelCase for fieldTitles lookup (e.g. is-disabled -> isDisabled). */\nfunction toCamelCase(str: string): string {\n return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n}\n\n/**\n * Resolves the field lookup key from a JSON Pointer path. Uses last segment for leaf properties.\n * Handles path validation and [object Object] edge cases.\n * Exported for use by history layout resolver (path -> property lookup).\n */\nexport function resolvePathKey(path: unknown): string {\n if (path == null) return '';\n const str = typeof path === 'string' ? path : String(path);\n if (str.includes('[object Object]')) return '';\n const trimmed = str.startsWith('/') ? str.slice(1) : str;\n const segments = trimmed.split('/').filter(Boolean);\n return segments[segments.length - 1] ?? '';\n}\n\n/**\n * Resolves i18n fieldKey and actionKey for a patch change.\n * Returns structured keys for translate pipe.\n */\nfunction humanizeChangeToKeys(\n path: unknown,\n op: string,\n fieldTitles?: Record<string, string>\n): { fieldKey: string; actionKey: string; fieldKeyParams?: Record<string, string> } {\n const key = resolvePathKey(path);\n const camelKey = toCamelCase(key);\n const resolved =\n fieldTitles?.[camelKey] ?? fieldTitles?.[key];\n const actionKey = getActionKey(op);\n\n if (resolved) {\n return { fieldKey: resolved, actionKey };\n }\n const humanized = key ? humanizeKeyAsFallback(key) : 'Field';\n return {\n fieldKey: `${ACTIVITY_LOG_CHANGES_SCOPE}.unknown-field`,\n actionKey,\n fieldKeyParams: { name: humanized },\n };\n}\n\nfunction getActionKey(op: string): string {\n switch (op) {\n case 'add':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.added`;\n case 'remove':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.removed`;\n case 'rename':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.renamed`;\n case 'metadata':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.metadata-updated`;\n case 'replace':\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.replaced`;\n default:\n return `${ACTIVITY_LOG_CHANGES_SCOPE}.updated`;\n }\n}\n\n/** For unknown field, use last path segment as fallback humanized text. */\nfunction humanizeKeyAsFallback(key: string): string {\n if (!key || key.includes('unknown-field')) return 'Field';\n return key\n .replace(/([A-Z])/g, ' $1')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n .trim();\n}\n\n/**\n * @deprecated Use humanizeChangeToKeys. Kept for backward compatibility.\n */\nexport function humanizeChange(\n path: string,\n op: string,\n fieldTitles?: Record<string, string>\n): string {\n const fieldLabel = humanizeKeyAsFallback(resolvePathKey(path));\n switch (op) {\n case 'add':\n return `${fieldLabel}: added`;\n case 'remove':\n return `${fieldLabel}: removed`;\n case 'rename':\n return `${fieldLabel}: renamed`;\n case 'metadata':\n return `${fieldLabel}: metadata updated`;\n case 'replace':\n return `${fieldLabel}: replaced`;\n default:\n return `${fieldLabel}: updated`;\n }\n}\n\n/**\n * Resolver to obtain a custom history layout for a given change path.\n * When the page provides this, it can resolve path -> property -> widget config -> historyLayout.\n */\nexport type GetHistoryLayoutResolver = (path: string) => unknown | undefined;\n\nconst MAX_SUMMARY_VALUE_LENGTH = 40;\n\n/** Converts a value to a short display string for notification-style summary. */\nfunction toShortDisplayString(val: unknown): string {\n if (val == null) return '—';\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (typeof val === 'number') return String(val);\n if (val instanceof Date) return val.toLocaleString();\n if (typeof val === 'object' && 'title' in (val as object)) return String((val as { title: string }).title);\n if (typeof val === 'object' && 'label' in (val as object)) return String((val as { label: string }).label);\n const str = String(val);\n if (str.length > MAX_SUMMARY_VALUE_LENGTH) return str.slice(0, MAX_SUMMARY_VALUE_LENGTH) + '…';\n return str;\n}\n\n/** Builds a short, human-readable notification-style summary for a change. */\nfunction buildChangeSummary(op: string, oldVal: unknown, newVal: unknown): string {\n const oldStr = toShortDisplayString(oldVal);\n const newStr = toShortDisplayString(newVal);\n switch (op) {\n case 'add':\n return newStr !== '—' ? `Added: ${newStr}` : 'Added';\n case 'remove':\n return oldStr !== '—' ? `Removed: ${oldStr}` : 'Removed';\n case 'replace':\n if (oldStr !== '—' && newStr !== '—') return `${oldStr} → ${newStr}`;\n if (newStr !== '—') return `Updated to: ${newStr}`;\n if (oldStr !== '—') return `Cleared (was: ${oldStr})`;\n return 'Updated';\n default:\n return newStr !== '—' ? `Updated: ${newStr}` : 'Updated';\n }\n}\n\nexport function versionEntriesToActivityLogs(\n entries: AXPVersionEntry[],\n refId: string,\n refType: string,\n fieldTitles?: Record<string, string>,\n getHistoryLayout?: GetHistoryLayoutResolver\n): AXPActivityLog[] {\n return entries.map((e) => {\n const rawChanges = (e.patchFromPrevJson ?? []).slice(0, 20);\n const seenFields = new Set<string>();\n const changes: AXPActivityLogChange[] = [];\n\n for (const c of rawChanges) {\n const { fieldKey, actionKey, fieldKeyParams } = humanizeChangeToKeys(\n c.path,\n c.op,\n fieldTitles\n );\n const dedupeKey = fieldKeyParams ? `${fieldKey}:${fieldKeyParams['name'] ?? ''}` : fieldKey;\n if (seenFields.has(dedupeKey)) continue;\n seenFields.add(dedupeKey);\n\n const pathStr = typeof c.path === 'string' ? c.path : String(c.path ?? '');\n const layout = getHistoryLayout?.(pathStr);\n const summary = buildChangeSummary(c.op, c.oldValue, c.newValue);\n const fallbackDesc = `${humanizeKeyAsFallback(resolvePathKey(c.path))}: ${c.op}`;\n\n changes.push({\n type: mapOpToAction(c.op),\n description: fallbackDesc,\n fieldKey,\n fieldKeyParams,\n actionKey,\n oldValue: c.oldValue,\n newValue: c.newValue,\n summary,\n ...(layout != null && { layout }),\n });\n }\n\n const rawTitle = e.summary ?? `${e.changeType} v${e.versionNumber}`;\n const title = stripFieldNamesFromSummary(rawTitle);\n\n return {\n id: e.id,\n title,\n date: new Date(e.changedAt),\n user: { id: 'system', name: 'System', title: 'System' },\n reference: { id: refId, type: refType },\n changeType: mapChangeType(e.changeType),\n data: e.snapshotJson as Record<string, unknown>,\n changes,\n };\n });\n}\n\n//#endregion\n","\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n OnInit,\n signal,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPVersionEntry, AXPVersioningService } from '@acorex/platform/common';\nimport { AXPActivityLogComponent } from '@acorex/platform/layout/components';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\nimport { AXPWidgetRegistryService } from '@acorex/platform/layout/widget-core';\nimport { resolvePathKey, versionEntriesToActivityLogs } from '../../utils/version-history.utils';\n\n//#region ---- Version History Page Component ----\n\n/**\n * Entity page component that shows version history for the current record.\n * Used when history plugin has display: 'page'. Resolves refId/refType from rootContext or route.\n */\n@Component({\n selector: 'axm-version-history-page',\n standalone: true,\n imports: [\n AXDecoratorModule,\n AXTranslationModule,\n AXLoadingModule,\n AXPActivityLogComponent\n],\n template: `\n <div class=\"ax-p-4 ax-min-h-[30vh] ax-overflow-y-auto\">\n <axp-activity-log [activities]=\"activities()\" [loading]=\"isBusy()\"></axp-activity-log>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMVersionHistoryPageComponent implements OnInit {\n rootContext = input.required<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n options = input<Record<string, unknown>>({});\n\n protected readonly isBusy = signal(false);\n protected readonly versions = signal<AXPVersionEntry[]>([]);\n\n protected readonly activities = computed(() => {\n const props = this.entityProperties();\n const getHistoryLayout = (path: string) => this.resolveHistoryLayout(path, props);\n return versionEntriesToActivityLogs(\n this.versions(),\n this.refId,\n this.refType,\n this.fieldTitles,\n getHistoryLayout\n );\n });\n\n private refId = '';\n private refType = '';\n private fieldTitles: Record<string, string> = {};\n private readonly entityProperties = signal<\n Array<{ name: string; schema?: { interface?: { type?: string } } }>\n >([]);\n\n private readonly versioning = inject(AXPVersioningService);\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly widgetRegistry = inject(AXPWidgetRegistryService);\n private readonly route = inject(ActivatedRoute);\n\n /** Resolves custom history layout for a change path via property -> widget config -> historyLayout. */\n private resolveHistoryLayout(\n path: string,\n properties: Array<{ name: string; schema?: { interface?: { type?: string } } }>\n ): unknown {\n const key = resolvePathKey(path);\n const camelKey = key.replace(/-([a-z])/g, (_, c: string) => c.toUpperCase());\n const prop = properties.find(\n (p) => p.name === key || p.name === camelKey\n );\n const widgetType = prop?.schema?.interface?.type;\n if (!widgetType) return undefined;\n const config = this.widgetRegistry.resolve(widgetType);\n return config?.historyLayout;\n }\n\n async ngOnInit(): Promise<void> {\n this.isBusy.set(true);\n const { refId, refType } = this.resolveEntityRef();\n if (!refId || !refType) {\n this.isBusy.set(false);\n return;\n }\n this.refId = refId;\n this.refType = refType;\n\n const [moduleName, entityName] = refType.split('.');\n if (moduleName && entityName) {\n try {\n const entity = await this.entityRegistry.resolve(moduleName, entityName);\n const props = entity.properties ?? [];\n this.entityProperties.set(props as Array<{ name: string; schema?: { interface?: { type?: string } } }>);\n this.fieldTitles = Object.fromEntries(\n props.map((p: { name: string; title: string }) => [\n p.name,\n p.title ?? p.name,\n ])\n );\n } catch {\n this.entityProperties.set([]);\n this.fieldTitles = {};\n }\n }\n\n const streamId = await this.versioning.getStreamIdIfExists(refType, refId);\n if (streamId) {\n const entries = await this.versioning.listEntries(streamId, {\n limit: 50,\n offset: 0,\n });\n this.versions.set(entries);\n } else {\n this.versions.set([]);\n }\n this.isBusy.set(false);\n }\n\n private resolveEntityRef(): { refId: string | null; refType: string | null } {\n const context = this.rootContext() ?? {};\n const ctx = context as Record<string, unknown>;\n\n let refType: string | null = null;\n const config = this.pageConfig();\n const opts = this.options();\n if (config && typeof (config as { refType?: string }).refType === 'string') {\n refType = (config as { refType: string }).refType;\n }\n if (!refType && opts && typeof (opts as { refType?: string }).refType === 'string') {\n refType = (opts as { refType: string }).refType;\n }\n if (!refType) {\n const moduleName = typeof ctx['moduleName'] === 'string' ? ctx['moduleName'] : null;\n const entityName = typeof ctx['entityName'] === 'string' ? ctx['entityName'] : null;\n if (moduleName && entityName) {\n refType = `${moduleName}.${entityName}`;\n }\n }\n if (!refType) {\n const module = this.route.snapshot.parent?.paramMap.get('module');\n const entity = this.route.snapshot.paramMap.get('entity');\n if (module && entity) {\n refType = `${module}.${entity}`;\n }\n }\n\n const refId =\n (typeof ctx['id'] === 'string' ? ctx['id'] : null) ??\n (typeof ctx['recordId'] === 'string' ? ctx['recordId'] : null) ??\n null;\n\n return { refId, refType };\n }\n}\n\n//#endregion\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPAvatarPluginOptions {\n group?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\nexport const avatarPlugin: AXPEntityActionPlugin = {\n name: 'avatar',\n order: 75,\n apply: (ctx, options?: AXPAvatarPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'avatar')) {\n ctx.properties.add({\n name: 'avatar',\n title: '@general:terms.common.avatar',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.Image,\n options: {\n type: 'card',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(\n next,\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6 } } } } as any,\n );\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { avatarPlugin } from './avatar.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: avatarPlugin }],\n})\nexport class AXPAvatarPluginModule {}\n","import { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPCategoryPluginOptions {\n /** Full entity key (e.g. 'myModule.Topic') to use instead of default {module}.{baseEntity}Category. When set, that entity must be defined elsewhere. */\n categoryEntity?: string;\n propertyName?: string; // default: categoryIds\n allowMultiple?: boolean; // default: true\n /** Display field name on the category entity (default: 'title') */\n textField?: string;\n /** Value field name on the category entity (default: 'id') */\n valueField?: string;\n /** Parent field name for hierarchy (default: 'parentId'). Used when category tree reads from entity definition. */\n parentKey?: string;\n /** When true, user cannot add/edit/delete categories from the category selector or sidebar. */\n readonly?: boolean;\n appearance?: {\n icon?: boolean;\n color?: boolean;\n };\n metaData?: {\n enabled: boolean;\n title?: string;\n };\n}\n\nexport const categoryPlugin: AXPEntityActionPlugin = {\n name: 'category',\n order: 45,\n apply: async (ctx, options?: AXPCategoryPluginOptions) => {\n const moduleName = ctx.entity.module;\n const baseEntityName = ctx.entity.name;\n const defaultCategoryEntityName = `${baseEntityName}Category`;\n\n const categoryEntityKey =\n options?.categoryEntity?.trim()?.length ? options.categoryEntity.trim() : `${moduleName}.${defaultCategoryEntityName}`;\n const textField = options?.textField?.trim()?.length ? options.textField!.trim() : 'title';\n const valueField = options?.valueField?.trim()?.length ? options.valueField!.trim() : 'id';\n\n const propertyName = options?.propertyName?.trim()?.length ? options.propertyName : 'categoryIds';\n const allowMultiple = options?.allowMultiple ?? true;\n const enableAppearance = options?.appearance ? (options.appearance.icon === true || options.appearance.color === true) : false;\n const enableMetaDataSelector = options?.metaData?.enabled ?? false;\n // Ensure group exists (prefer basic-info)\n const groupId = 'classification';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.classification' } as any);\n }\n\n const settings = inject(AXPSettingsService);\n const showCategoryColumnsByDefault =\n (await settings.get(AXPCommonSettings.ShowCategoryColumnsByDefault)) !== false;\n ctx.columns.add({\n name: propertyName,\n options: {\n dataPath: 'categories',\n visible: showCategoryColumnsByDefault,\n },\n });\n\n // Ensure property exists\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === propertyName)) {\n ctx.properties.add({\n name: propertyName,\n title: '@general:terms.classification.categories',\n groupId: groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: {\n entity: categoryEntityKey,\n multiple: allowMultiple,\n textField,\n valueField,\n readonly: options?.readonly === true,\n expose: [\n { source: valueField, target: `categories.{${valueField}}` },\n { source: textField, target: `categories.{${textField}}` },\n ],\n },\n },\n },\n } as any);\n }\n\n // Ensure category sidebar/filter block\n ctx.category.update((cat) => {\n return {\n entity: categoryEntityKey,\n title: '@general:terms.classification.categories',\n textField,\n valueField,\n applyConditions: [\n {\n name: propertyName,\n operator: { type: 'contains' },\n value: valueField,\n },\n ],\n };\n });\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: propertyName,\n layout: { positions: { lg: { colSpan: 6, order: 12 } } },\n } as any);\n return next;\n };\n\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Mark extension for dynamic category entity generation (or reference to custom entity)\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.category = {\n entity: categoryEntityKey,\n propertyName,\n allowMultiple,\n textField,\n valueField,\n parentKey: options?.parentKey?.trim()?.length ? options.parentKey : undefined,\n readonly: options?.readonly === true,\n appearance: options?.appearance,\n metaData: options?.metaData,\n };\n },\n};\n","import { AXPEntity, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport {\n AXP_ENTITY_DEFINITION_LOADER,\n AXMEntityCrudServiceImpl,\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionRegistryService,\n entityMasterCrudActions,\n entityMasterDeleteAction,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injectable, Injector, inject, runInInjectionContext } from '@angular/core';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n@Injectable()\nexport class AXMEntityCategoryProvider implements AXPEntityDefinitionLoader {\n private injector = inject(Injector);\n\n\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n // Generic per-entity Category provider (works for any module)\n if (entityName.endsWith('Category')) {\n // Prefer custom entity definition: if another loader provides this category entity, skip generation\n const customEntity = await this.tryOtherLoaders(moduleName, entityName);\n if (customEntity) {\n return null;\n }\n\n const fullKey = `${moduleName}.${entityName}`;\n const dataService = runInInjectionContext(this.injector, () => new AXMEntityCrudServiceImpl<any, any>(fullKey));\n\n // Check if base entity has appearance enabled using lazy injection\n const baseEntityName = entityName.replace('Category', '');\n let enableAppearance = false;\n let enableMetaDataSelector = false;\n let appearanceConfig: { icon?: boolean; color?: boolean } | undefined;\n let metaDataConfig: { enabled: boolean; title?: string } | undefined;\n\n try {\n // Use lazy injection to avoid circular dependency\n const entityRegistry = runInInjectionContext(this.injector, () => {\n try {\n return inject(AXPEntityDefinitionRegistryService);\n } catch {\n return null;\n }\n });\n\n if (entityRegistry) {\n try {\n const baseEntity = await entityRegistry.resolve(moduleName, baseEntityName);\n const categoryExt = (baseEntity as any)?.extensions?.category;\n if (categoryExt) {\n // Handle new structure\n if (categoryExt.appearance) {\n appearanceConfig = categoryExt.appearance;\n enableAppearance = categoryExt.appearance.icon === true || categoryExt.appearance.color === true;\n } else if (categoryExt.enableAppearance) {\n // Backward compatibility: if old structure exists, enable both icon and color\n enableAppearance = true;\n appearanceConfig = { icon: true, color: true };\n }\n\n if (categoryExt.metaData) {\n metaDataConfig = categoryExt.metaData;\n enableMetaDataSelector = categoryExt.metaData.enabled ?? false;\n } else if (categoryExt.enableMetaDataSelector) {\n // Backward compatibility\n enableMetaDataSelector = true;\n metaDataConfig = { enabled: true };\n }\n }\n\n // Check base entity's plugins for meta-data-form plugin to get its title\n // This title should be passed to meta-data-builder plugin\n const basePlugins = (baseEntity as any)?.plugins as Array<{ name: string; options?: any }> | undefined;\n const metaDataFormPlugin = basePlugins?.find((p) => p.name === 'meta-data-form');\n const metaDataFormTitle = metaDataFormPlugin?.options?.title;\n\n // Also check base entity's extensions in case meta-data-form plugin has already run\n const baseMetaDataFormExt = (baseEntity as any)?.extensions?.metaDataForm;\n const baseMetaDataFormExtTitle = baseMetaDataFormExt\n ? Object.values(baseMetaDataFormExt).find((ext: any) => ext?.title) as { title?: string } | undefined\n : undefined;\n\n // If we found a title from meta-data-form, store it in metaDataConfig for meta-data-builder to use\n if (enableMetaDataSelector) {\n if (!metaDataConfig) {\n metaDataConfig = { enabled: true };\n }\n if (!metaDataConfig.title) {\n metaDataConfig.title = metaDataFormTitle || baseMetaDataFormExtTitle?.title;\n }\n }\n } catch (error) {\n // Base entity not found or error loading, continue with default behavior\n console.warn(\n `Could not load base entity ${moduleName}.${baseEntityName} to check category plugin configuration:`,\n error,\n );\n }\n }\n } catch (error) {\n // Registry not available, continue with default behavior\n console.warn(`Entity registry not available, using default category configuration:`, error);\n }\n\n const entityDef: AXPEntity = {\n module: moduleName,\n name: entityName,\n parentKey: 'parentId',\n plugins: [\n // { name: 'lock' },\n // { name: 'compare' },\n ...(enableMetaDataSelector ? [{\n name: 'meta-data-builder',\n options: metaDataConfig?.title ? { title: metaDataConfig.title } : undefined\n }] : []),\n ],\n title: '@general:terms.classification.category',\n formats: {\n individual: '@general:terms.classification.category',\n plural: '@general:terms.classification.categories',\n searchResult: {\n title: '{{ title }}',\n description: '{{ module }}',\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n ...(enableAppearance ? [{ id: 'appearance', title: '@general:terms.interface.appearance' }] : []),\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n options: {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: true } },\n },\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.text } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'parentId',\n title: '@general:terms.classification.parent',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.EntityCategory,\n options: { entity: `${moduleName}.${entityName}` },\n },\n },\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsCatalog.largeText } },\n },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [\n {\n name: 'color',\n title: '@general:terms.common.color',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorPalette,\n options: {},\n },\n },\n },\n ] : []),\n ...(appearanceConfig?.icon !== false ? [\n {\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId: 'appearance',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n },\n ] : []),\n ] : []),\n ],\n columns: [{ name: 'title' }, { name: 'description' }],\n\n queries: {\n list: {\n execute: async (e: any) => {\n const res = await dataService.query(e);\n // enrich hasChild for tree views if childrenCount is available\n return {\n items: res.items.map((item: any) => ({ ...item, hasChild: (item.childrenCount ?? 0) > 0 })),\n total: res.total,\n };\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, ...(enableAppearance ? [{ id: 'appearance' }] : [])],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n { id: 'basic-info', layout: { positions: { lg: { colSpan: 12 } } } },\n ...(enableAppearance ? [{ id: 'appearance', layout: { positions: { lg: { colSpan: 12 } } } }] : []),\n ],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 1 } } } },\n { name: 'parentId', layout: { positions: { lg: { colSpan: 12, order: 2 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 3 } } } },\n // Appearance properties (only if enabled)\n ...(enableAppearance ? [\n ...(appearanceConfig?.color !== false ? [{ name: 'color', layout: { positions: { lg: { colSpan: 12, order: 4 } } } }] : []),\n ...(appearanceConfig?.icon !== false ? [{ name: 'icon', layout: { positions: { lg: { colSpan: 12, order: 5 } } } }] : []),\n ] : []),\n ],\n actions: [entityMasterDeleteAction()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n }\n return null;\n }\n\n /**\n * Asks other entity loaders (excluding this provider) if they provide the given category entity.\n * If a custom entity file exists for this key, that loader will return it and we skip generating.\n */\n private async tryOtherLoaders(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n try {\n const raw = runInInjectionContext(this.injector, () => inject(AXP_ENTITY_DEFINITION_LOADER));\n const arr: unknown[] = Array.isArray(raw) ? raw : raw ? [raw] : [];\n for (const p of arr) {\n const loader = p instanceof Promise ? await p : (p as AXPEntityDefinitionLoader);\n if (loader === this) continue;\n const entity = await loader.get(moduleName, entityName);\n if (entity) return entity;\n }\n } catch {\n // Loaders not available (e.g. circular context), proceed with generation\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n return Promise.resolve([]);\n }\n}\n","import { NgModule, inject } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { categoryPlugin } from './category.plugin';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER, AXPPermissionDefinitionProvider } from '@acorex/platform/auth';\nimport { AXMEntityCategoryProvider } from './entity.provider';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: categoryPlugin },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n multi: true,\n useFactory: () => {\n const provider: AXPPermissionDefinitionProvider = {\n define: async (context) => {\n // Generate permissions for any entity that declared category extension\n // We can’t scan registry here reliably at bootstrap; rely on generic pattern per module via wildcard\n // Consumers can still override with module-level providers.\n // No-op here; permissions will be added when category entity is resolved via provideEntity elsewhere if needed.\n },\n };\n return provider;\n },\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityCategoryProvider,\n multi: true,\n },\n ],\n})\nexport class AXPCategoryModule { }\n\n\n","import { AXPEntityAction, AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex/platform/layout/entity';\n\nexport const clonePlugin: AXPEntityActionPlugin = {\n name: 'clone',\n order: 60,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const cmdName = 'clone-entity';\n\n // Add clone action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, cmdName)) {\n listActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n\n // Add clone action to single view\n const singleActions = (i as any).master?.single?.actions as AXPEntityAction[] || [];\n if (!actionExists(singleActions, cmdName)) {\n singleActions.push({\n title: '@general:actions.clone.title',\n command: {\n name: cmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'copy',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n\n return i as any;\n });\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityClonedEvent = createWorkFlowEvent<{ entity: string; originalId: string; newId: string; meta?: any }>(\n '[Entity] Cloned',\n);\n\n@Injectable()\nexport class AXPEntityCloneAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.clone.confirm.title'),\n await this.translationService.translateAsync('@general:actions.clone.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.clone.confirm.processing'),\n mode: 'indeterminate',\n status: 'Cloning...',\n });\n\n try {\n // Get the original entity data\n const originalData = await this.getEntityData(refType, refId);\n\n // Clone the data (remove id and other unique fields)\n const clonedData = this.prepareClonedData(originalData, entityDefinition);\n\n // Create the new entity\n if (entityDefinition.commands?.create) {\n const createExec = entityDefinition.commands.create.execute as Function;\n const newId = await createExec(clonedData);\n\n context.setOutput('originalId', refId);\n context.setOutput('newId', newId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: clonedData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support create operation');\n }\n } catch (error) {\n console.error('Clone operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareClonedData(originalData: any, entityDefinition: AXPEntity): any {\n const clonedData = { ...originalData };\n\n // Remove unique identifiers and system fields\n delete clonedData.id;\n delete clonedData.createdAt;\n delete clonedData.updatedAt;\n delete clonedData.createdBy;\n delete clonedData.updatedBy;\n delete clonedData.version;\n delete clonedData.isArchived;\n delete clonedData.archivedAt;\n\n // Update title to indicate it's a clone\n if (clonedData.title) {\n clonedData.title = `${clonedData.title} (Copy)`;\n }\n\n // Update name to indicate it's a clone\n if (clonedData.name) {\n clonedData.name = `${clonedData.name} (Copy)`;\n }\n\n // Update code if it exists\n if (clonedData.code) {\n clonedData.code = `${clonedData.code}_COPY`;\n }\n\n // Handle parent relationships if they exist\n if (entityDefinition.parentKey && clonedData[entityDefinition.parentKey]) {\n // Keep the parent relationship - don't delete\n }\n\n // Reset status fields to default values\n if (clonedData.isActive !== undefined) {\n clonedData.isActive = true;\n }\n if (clonedData.status !== undefined) {\n clonedData.status = 'draft'; // or appropriate default status\n }\n\n return clonedData;\n }\n}\n\n@Injectable()\nexport class AXPEntityCloneSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const originalId = context.getOutput<string>('originalId');\n const newId = context.getOutput<string>('newId');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch clone event\n this.dispatch(\n AXPEntityClonedEvent({\n entity: refType,\n originalId,\n newId,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPCloneEntityWorkflow: AXPWorkflow = {\n startStepId: 'clone-entity',\n steps: {\n 'clone-entity': {\n action: 'AXPEntityCloneAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-cloned',\n content: 'workflow.entity-cloned-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'clone-success',\n },\n ],\n },\n 'clone-success': {\n action: 'AXPEntityCloneSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { clonePlugin } from './clone.plugin';\nimport { AXPCloneEntityWorkflow, AXPEntityCloneAction, AXPEntityCloneSuccessAction } from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityCloneAction,\n AXPEntityCloneSuccessAction,\n },\n workflows: {\n 'clone-entity': AXPCloneEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: clonePlugin },\n ],\n})\nexport class AXPClonePluginModule { }\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPColorPluginOptions {\n /**\n * Color swatches to display in the palette\n * - String: Palette name to resolve from AXPColorPaletteService\n * - String[]: Direct array of color codes\n */\n swatches?: string | string[];\n group?: string;\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\n\nexport const colorPlugin: AXPEntityActionPlugin = {\n name: 'color',\n order: 70,\n apply: (ctx, options?: AXPColorPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = options?.group ?? 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: `@general:terms.interface.${options?.group ?? 'appearance'}` } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'color')) {\n ctx.properties.add({\n name: 'color',\n title: '@general:terms.common.color',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.ColorPalette,\n options: {\n swatches: options?.swatches,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ---- Add Column to List View ----\n\n // Add color column to list view if enabled (default: true)\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'color')) {\n ctx.columns.add({\n name: 'color',\n title: '@general:terms.common.color',\n sort: { enabled: false },\n options: {\n visible: options?.column?.visible ?? true,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.modify.update((update) => {\n const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId } as any);\n ensureLayoutPropertyView(next, { name: 'color', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n });\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { colorPlugin } from './color.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: colorPlugin }],\n})\nexport class AXPColorPluginModule { }\n","import { Component, ViewEncapsulation, input, signal, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPCompareViewComponent, AXPCompareViewInputs, AXPCompareViewMode } from '@acorex/platform/layout/components';\n\n@Component({\n selector: 'axp-compare-popup',\n standalone: true,\n imports: [\n // Angular\n CommonModule,\n // ACoreX\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n // Compare View\n AXPCompareViewComponent\n ],\n templateUrl: './compare-popup.component.html',\n encapsulation: ViewEncapsulation.None,\n providers: [],\n})\nexport class AXPComparePopupComponent extends AXBasePageComponent implements OnInit {\n inputs = input<AXPCompareViewInputs>();\n isBusy = signal(false);\n mode = input<AXPCompareViewMode>('compare');\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n} ","<ax-content>\n <div class=\"ax-p-6 ax-min-h-[30vh] ax-overflow-y-auto\">\n <axp-compare-view [inputs]=\"inputs()\" [mode]=\"mode()\"></axp-compare-view>\n </div>\n</ax-content>\n<ax-footer>\n <ax-prefix></ax-prefix>\n <ax-suffix>\n <ax-button\n [text]=\"'@general:actions.close.title' | translate | async\"\n look=\"solid\"\n color=\"primary\"\n (onClick)=\"close()\"\n >\n </ax-button>\n </ax-suffix>\n</ax-footer>\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXFormatService } from '@acorex/core/format';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPVersioningService } from '@acorex/platform/common';\nimport { AXPFileListItem } from '@acorex/platform/core';\nimport {\n AXPCompareViewField,\n AXPCompareViewInputs,\n AXPCompareViewMode,\n AXPCompareViewObject,\n} from '@acorex/platform/layout/components';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject, Injectable, signal } from '@angular/core';\n\n@Injectable()\nexport class AXMComparePopupStartAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private translate = inject(AXTranslationService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const comp = (await import('../compare-popup.component')).AXPComparePopupComponent;\n this.popupService.open(comp, {\n title: await this.translate.translateAsync('Compare'),\n size: 'lg',\n data: {\n inputs: signal(context.getVariable('inputs')),\n mode: signal(context.getVariable('mode') as AXPCompareViewMode),\n },\n });\n }\n}\n\n@Injectable()\nexport class AXMCompareEntityRecordsAction extends AXPWorkflowAction {\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const entityRef = await this.entityRegistry.resolve(moduleName, entityName);\n const records = context.getVariable<any>('data') as any[];\n const ids = records?.map((r: any) => r.id) as string[];\n const getById = entityRef.queries?.byKey?.execute as Function;\n //\n const fields: AXPCompareViewField[] = entityRef.properties\n .filter((p) => p.schema.interface && p.schema.visible !== false)\n .map((p) => ({\n path: p.name,\n title: p.title,\n description: p.description,\n widget: {\n type: p.schema.interface?.type!,\n name: p.name,\n path: p.name,\n options: p.schema.interface?.options,\n },\n }));\n const objects: AXPCompareViewObject[] = await Promise.all(\n ids.map(async (c) => {\n const object = await getById(c);\n return {\n id: object.id,\n title: object.title,\n description: object.description,\n context: object,\n };\n }),\n );\n\n const inputs: AXPCompareViewInputs = {\n fields: fields,\n objects: objects,\n };\n\n //\n context.setVariable('inputs', inputs);\n context.setVariable('mode', 'records');\n context.setOutput('result', true);\n }\n}\n\n@Injectable()\nexport class AXMCompareEntityRecordVersionsAction extends AXPWorkflowAction {\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private versioning = inject<AXPVersioningService>(AXPVersioningService as any);\n private formatService = inject(AXFormatService);\n private translate = inject(AXTranslationService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const [moduleName, entityName] = context.getVariable<string>('entity').split('.');\n const entityRef = await this.entityRegistry.resolve(moduleName, entityName);\n const refId = context.getVariable<any>('data.refId') as string;\n const refType = context.getVariable<any>('data.refType') as string;\n const ids = context.getVariable<any>('data.ids') as string[];\n const streamId = await this.versioning.getStreamIdIfExists(refType, refId);\n const histories = streamId\n ? (await this.versioning.listEntries(streamId)).filter((e: any) => ids.includes(e.id))\n : [];\n //\n const fields: AXPCompareViewField[] = entityRef.properties\n .filter((p) => p.schema.interface && p.schema.visible !== false)\n .map((p) => ({\n path: p.name,\n title: p.title,\n description: p.description,\n widget: {\n type: p.schema.interface?.type!,\n name: p.name,\n path: p.name,\n options: p.schema.interface?.options,\n },\n }));\n const objects: AXPCompareViewObject[] = await Promise.all(\n histories.map(async (h: any) => {\n const title = await this.translate.translateAsync(\n `@activity-log:terms.${h.changeType === 'Create' ? 'created' : h.changeType === 'Delete' ? 'deleted' : 'updated'}-by-title`,\n {\n params: {\n user: h.changedBy ?? 'system',\n date: this.formatService.format(new Date(h.changedAt), 'datetime', { format: 'short' }),\n },\n },\n );\n\n const snapshot = structuredClone(h.snapshotJson ?? {});\n\n return {\n id: h.id,\n title,\n description: h.changedBy ?? 'system',\n context: snapshot,\n } as AXPCompareViewObject;\n }),\n );\n const inputs: AXPCompareViewInputs = {\n fields: fields,\n objects: objects,\n };\n //\n context.setVariable('inputs', inputs);\n context.setVariable('mode', 'changes');\n context.setOutput('result', true);\n }\n}\n\nexport const AXMCompareEntityRecordsWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'show-entity-records-compare-action',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-popup',\n },\n ],\n },\n 'show-popup': {\n action: 'show-compare-popup-action',\n },\n },\n};\n\nexport const AXMCompareEntityRecordVersionsWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'show-entity-record-versions-compare-action',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-popup',\n },\n ],\n },\n 'show-popup': {\n action: 'show-compare-popup-action',\n },\n },\n};\n\n// Utilities\nfunction getByPath(obj: any, path: string): any {\n const parts = path.split('.');\n let curr = obj;\n for (const p of parts) {\n if (curr == null) return undefined;\n curr = curr[p];\n }\n return curr;\n}\n\nfunction setByPath(obj: any, path: string, value: any): void {\n const parts = path.split('.');\n let curr = obj;\n for (let i = 0; i < parts.length - 1; i++) {\n const p = parts[i];\n if (curr[p] == null) curr[p] = {};\n curr = curr[p];\n }\n curr[parts[parts.length - 1]] = value;\n}\n\nfunction mapFilesForView(files: any[]): AXPFileListItem[] {\n return files.map<AXPFileListItem>((f) => ({\n id: f.id,\n name: f.name,\n size: f.size,\n status: 'remote',\n source: { kind: 'url', value: f.url },\n }));\n}\n","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport { AXPEntityActionPlugin, ensureListActions, actionExists } from '@acorex/platform/layout/entity';\n\nexport const comparePlugin: AXPEntityActionPlugin = {\n name: 'compare',\n order: 50,\n apply: (ctx) => {\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = (i as any).master.list.actions as any[];\n const cmdName = 'show-entity-records-compare';\n if (!actionExists(actions, cmdName)) {\n actions.push({\n title: '@activity-log:actions.compare-records.title',\n command: { name: cmdName },\n priority: 'secondary',\n type: 'compare',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n return i as any;\n });\n },\n};\n\n\n","import { NgModule } from '@angular/core';\nimport { AXPComparePopupComponent } from './compare-popup.component';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXMCompareEntityRecordsAction, AXMCompareEntityRecordsWorkflow, AXMCompareEntityRecordVersionsAction, AXMCompareEntityRecordVersionsWorkflow, AXMComparePopupStartAction } from './workflows/compare.workflow';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { comparePlugin } from './compare.plugin';\n\n@NgModule({\n imports: [\n AXPComparePopupComponent,\n AXPWorkflowModule.forChild({\n actions: {\n 'show-compare-popup-action': AXMComparePopupStartAction,\n 'show-entity-records-compare-action': AXMCompareEntityRecordsAction,\n 'show-entity-record-versions-compare-action': AXMCompareEntityRecordVersionsAction,\n },\n workflows: {\n 'show-entity-records-compare': AXMCompareEntityRecordsWorkflow,\n 'show-entity-record-versions-compare': AXMCompareEntityRecordVersionsWorkflow,\n },\n }),\n ],\n exports: [AXPComparePopupComponent],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: comparePlugin },\n ],\n})\nexport class AXPCompareModule { } ","import { AXPEntity } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService, getSmart } from '@acorex/platform/core';\nimport {\n AXPEntityDefinitionRegistryService,\n AXPEntityStorageMiddleware,\n AXP_ENTITY_STORAGE_BACKEND,\n} from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { get, set } from 'lodash-es';\n\nfunction extractTemplateTokens(template: string): string[] {\n const tokens: string[] = [];\n if (!template) {\n return tokens;\n }\n const regex = /\\{\\{\\s*([\\s\\S]*?)\\s*\\}\\}/g; // capture lazily until closing }}\n let match: RegExpExecArray | null;\n while ((match = regex.exec(template)) !== null) {\n const token = (match[1] || '').trim();\n if (token) {\n tokens.push(token);\n }\n }\n return tokens;\n}\n\nfunction getRootFromPath(path: string): string {\n const trimmed = path.trim();\n const clean = trimmed.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n const first = clean.split('.')[0];\n return first.replace(/\\{.*\\}$/, '');\n}\n\n/** Roots used for hydration (e.g. `positionAssignments` from `context.eval('positionAssignments')` inside larger expressions). */\nfunction extractContextEvalRoots(template: string): string[] {\n const roots: string[] = [];\n if (!template) {\n return roots;\n }\n const re = /context\\.eval\\(\\s*['\"]([^'\"]+)['\"]\\s*\\)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(template)) !== null) {\n const path = (m[1] || '').trim();\n if (!path) continue;\n const root = path.split('.')[0];\n if (root) {\n roots.push(root);\n }\n }\n return roots;\n}\n\nfunction defaultIdField(dataPath?: string) {\n const leaf = (dataPath || '').split('.').filter(Boolean).pop() || 'related';\n return `${leaf}Id`;\n}\n\nexport const computedPropertiesMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['getOne', 'getAll', 'query'], order: 12 },\n execute: async (ctx, next) => {\n const backend = inject(AXP_ENTITY_STORAGE_BACKEND);\n const registry = inject(AXPEntityDefinitionRegistryService);\n const expressionEvaluator = inject(AXPExpressionEvaluatorService);\n\n await next();\n\n try {\n const [moduleName, entityName] = ctx.entityName.split('.');\n const def: AXPEntity = await registry.resolve(moduleName, entityName);\n const plugin = (def?.plugins || []).find((p: any) => p?.name === 'computed-property');\n if (!plugin?.options?.['fields']?.length) return;\n const fields: Array<any> = plugin.options['fields'];\n\n const related: any[] = def?.relatedEntities || [];\n\n const rows: any[] = Array.isArray(ctx.result)\n ? ctx.result\n : Array.isArray(ctx.result?.items)\n ? ctx.result.items\n : ctx.result\n ? [ctx.result]\n : [];\n\n if (!rows.length) return;\n\n // Pre-hydrate merge-detail children used by fields (by root token)\n const roots = new Set<string>();\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n tokens.forEach((t) => roots.add(getRootFromPath(t)));\n extractContextEvalRoots(f.value).forEach((r) => roots.add(r));\n }\n\n // For merge-detail referenced children, batch hydrate\n for (const root of roots) {\n const re = related.find(\n (r: any) => r?.persistence?.dataPath === root && (r?.persistence?.strategy || 'embedded') === 'referenced',\n );\n if (!re) continue;\n const p = re.persistence || {};\n const idField = p.idField || defaultIdField(p.dataPath);\n const ids = Array.from(new Set(rows.map((r) => get(r, idField)).filter((v) => v != null)));\n if (!ids.length) continue;\n try {\n const resp = await backend.query(re.entity, {\n skip: 0,\n take: ids.length || 1000,\n filter: { field: 'id', operator: { type: 'in' }, value: ids },\n });\n const items = resp?.items ?? [];\n const map = new Map<any, any>();\n for (const it of items) map.set((it as any).id, it);\n for (const row of rows) {\n const cid = get(row, idField);\n if (!cid) continue;\n const child = map.get(cid);\n if (child && p?.dataPath) set(row, p.dataPath, child);\n }\n } catch {}\n }\n\n // Compute per field for each row\n for (const row of rows) {\n for (const f of fields) {\n const tokens = extractTemplateTokens(f.value);\n const fieldRoots = new Set<string>();\n for (const t of tokens) {\n const raw = String(t).trim();\n const path = raw.replace(/^context\\.eval\\(['\"]|['\"]\\)$/g, '');\n fieldRoots.add(getRootFromPath(path));\n }\n extractContextEvalRoots(f.value).forEach((r) => fieldRoots.add(r));\n\n // Try to ensure data availability for each dependency root\n for (const root of fieldRoots) {\n if (!root) continue;\n let current = getSmart(row, root);\n if (current == null) {\n // Try merge-detail already covered above. If still missing, try list-related entities by entity name\n const reList = related.find(\n (r: any) =>\n (r?.layout?.type === 'page-list' || r?.layout?.type === 'tab-list') &&\n r?.persistence?.dataPath === root,\n );\n if (reList) {\n // Build filters: reList.conditions + field.conditions\n const baseFilters = (reList.conditions ?? []).map((c: any) => ({ ...c }));\n const extraFilters = (f.conditions ?? []).map((c: any) => ({ ...c }));\n const buildScope = () => ({ ...(row ?? {}), context: { eval: (path: string) => get(row, path) } });\n const evaluateValue = async (val: any) => {\n if (typeof val === 'string' && expressionEvaluator.isExpression(val)) {\n return await expressionEvaluator.evaluate(val, buildScope() as any);\n }\n return val;\n };\n let allFilters = await Promise.all(\n [...baseFilters, ...extraFilters].map(async (fl: any) => ({\n field: fl.name ?? fl.field,\n operator: fl.operator,\n value: await evaluateValue(fl.value),\n })),\n );\n\n // If no explicit parent filter exists, infer it: child.parentKey == row.id\n try {\n const [cm, ce] = (reList.entity || '').split('.');\n const childDef: any = await registry.resolve(cm, ce);\n const parentKey: string | undefined = childDef?.parentKey;\n if (parentKey && !allFilters.some((fl: any) => fl.field === parentKey)) {\n allFilters.push({ field: parentKey, operator: { type: 'equal' }, value: row?.id });\n }\n } catch {}\n try {\n const resp = await backend.query(reList.entity, {\n skip: 0,\n take: 1000,\n filter: allFilters.length ? { logic: 'and', filters: allFilters } : undefined,\n });\n const items = resp?.items ?? [];\n set(row, root, items);\n } catch {}\n }\n }\n }\n\n // Evaluate template and set computed value using expression evaluator\n const scope: any = {\n ...(row ?? {}),\n context: {\n eval: (path: string) => {\n return getSmart(row, path);\n },\n },\n };\n const evaluated = await expressionEvaluator.evaluate(f.value, scope);\n set(row, f.name, evaluated || undefined);\n }\n }\n } catch {\n // swallow to avoid breaking main flow\n }\n },\n};\n","import { AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';\nimport {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n} from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\nexport type AXPComputedPropertyField = {\n name: string;\n title: string;\n value: string; // Expression-supported string, e.g. \"{{ context.eval('...') }}\"\n group: {\n id: string;\n title: string;\n };\n /** Whether the field is visible in forms and lists. Defaults to true. */\n visible?: boolean;\n layout?: { order?: number; colSpan?: number; colStart?: number };\n conditions?: any[]; // Reserved for future logic (visibility/calculation)\n showAs?: {\n type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;\n options?: Record<string, any>;\n };\n};\n\nexport type AXPComputedPropertiesPluginOptions = {\n fields?: AXPComputedPropertyField[];\n};\n\n//#endregion\n\n//#region ---- Plugin ----\n\nexport const computedPropertiesPlugin: AXPEntityActionPlugin = {\n name: 'computed-property',\n order: 55,\n apply: (ctx, options?: AXPComputedPropertiesPluginOptions) => {\n const fields = options?.fields ?? [];\n if (!fields.length) {\n return;\n }\n\n // Ensure default group exists\n const defaultGroupId = 'additional';\n const ensureGroup = (group: { id: string; title: string }) => {\n const id = group?.id || defaultGroupId;\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === id)) {\n ctx.groups.add({ id, title: group?.title } as any);\n }\n return id;\n };\n\n for (const f of fields) {\n const groupId = ensureGroup(f.group || { id: defaultGroupId });\n // If group is newly created and a custom title is provided, update it\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId) && f.group?.title) {\n ctx.groups.add({ id: groupId, title: f.group.title } as any);\n }\n\n // Ensure property exists on entity\n const existing = ctx.properties.list().some((p: any) => p.name === f.name);\n if (!existing) {\n ctx.properties.add({\n name: f.name,\n title: f.title,\n groupId,\n schema: {\n dataType: 'string',\n readonly: true,\n defaultValue: f.value,\n interface: {\n type: f.showAs?.type || 'text-editor',\n options: { ...(f.showAs?.options ?? {}), readonly: true },\n },\n },\n } as any);\n }\n\n const isVisible = f.visible !== false;\n\n // Ensure the field appears in list columns when visible\n if (isVisible) {\n const entityAny: any = ctx.entity as any;\n const currentColumns: any[] = Array.isArray(entityAny.columns) ? entityAny.columns : [];\n const hasColumn = currentColumns.some((c: any) => (typeof c === 'string' ? c === f.name : c?.name === f.name));\n if (!hasColumn) {\n entityAny.columns = [...currentColumns, { name: f.name }];\n }\n }\n\n // Ensure Single (details) view shows it when visible\n if (isVisible) {\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: groupId, order: 90 } as any);\n ensureLayoutPropertyView(next, {\n name: f.name,\n layout: {\n positions: {\n lg: {\n colSpan: f.layout?.colSpan ?? 12,\n order: f.layout?.order ?? 99,\n ...(f.layout?.colStart != null ? { colStart: f.layout.colStart } : {}),\n },\n },\n label: { visible: true },\n },\n } as any);\n return next;\n });\n }\n }\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { computedPropertiesMiddleware } from './computed-properties.middleware';\nimport { computedPropertiesPlugin } from './computed-properties.plugin';\n\n@NgModule({\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: computedPropertiesPlugin },\n { provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: computedPropertiesMiddleware },\n ],\n})\nexport class AXPComputedPropertiesModule {}\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n} from '@acorex/platform/common';\n\nexport interface AXPDescriptionPluginOptions {\n /**\n * Optional title for the `description` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.description'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to false.\n */\n column?: boolean;\n}\n\nexport const descriptionPlugin: AXPEntityActionPlugin = {\n name: 'description',\n order: 23,\n apply: (ctx, options?: AXPDescriptionPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.description';\n const groupId = options?.groupId ?? 'basic-info';\n const addColumn = options?.column ?? false;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Description Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'description')) {\n ctx.properties.add({\n name: 'description',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Description Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'description')) {\n ctx.columns.add({\n name: 'description',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'description')) {\n layout.properties.push({\n name: 'description',\n layout: {\n positions: { lg: { colSpan: 12, order: 30 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { descriptionPlugin } from './description.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: descriptionPlugin }],\n})\nexport class AXPDescriptionPluginModule {}\n\n","import {\n AXPEntityAction,\n AXPEntityCommandScope,\n createQueryView,\n type AXPEntityMasterSingleLayoutView,\n type AXPEntityMasterUpdateLayoutView,\n} from '@acorex/platform/common';\nimport { actionExists, AXPEntityActionPlugin, ensureListActions } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\n//#region ---- Types ----\n\n/** Options for the disable plugin. */\nexport interface DisablePluginOptions {\n /** Name of the boolean field used for disabled state. Defaults to `'isDisabled'`. */\n fieldName?: string;\n /**\n * When set, applied to the disable field schema `readonly`\n * (boolean or expression string, e.g. derived from another form field).\n */\n disableFieldReadonly?: boolean | string;\n}\n\nconst DEFAULT_DISABLE_FIELD_NAME = 'isDisabled';\n\n//#endregion\n\nexport const disablePlugin: AXPEntityActionPlugin = {\n name: 'disable',\n order: 70,\n apply: (ctx, options?: DisablePluginOptions) => {\n ensureListActions(ctx);\n\n const fieldName = options?.fieldName ?? DEFAULT_DISABLE_FIELD_NAME;\n\n //#region ---- Add Disable Field Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add disable field property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.states.is-disabled',\n groupId,\n schema: {\n dataType: 'boolean',\n ...(options?.disableFieldReadonly !== undefined\n ? { readonly: options.disableFieldReadonly }\n : {}),\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not disabled)\n defaultValue: false,\n // When isDisabled is true → show \"Disabled\" with danger visual (negative=true)\n // When isDisabled is false → show \"Enabled\" with success visual\n trulyText: '@general:terms.status.options.disabled',\n falsyText: '@general:terms.status.options.enabled',\n negative: true,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n // Add disable field to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.states.is-enabled',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Disable Actions ----\n\n ctx.interfaces.update((i) => {\n const disableCmdName = 'disable-entity';\n const enableCmdName = 'enable-entity';\n const bulkDisableCmdName = 'bulk-disable-entity';\n const bulkEnableCmdName = 'bulk-enable-entity';\n\n // Add disable action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, disableCmdName)) {\n listActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to list view\n if (!actionExists(listActions, enableCmdName)) {\n listActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add bulk disable action to list view\n if (!actionExists(listActions, bulkDisableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-disable.title',\n command: {\n name: bulkDisableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add bulk enable action to list view\n if (!actionExists(listActions, bulkEnableCmdName)) {\n listActions.push({\n title: '@general:actions.bulk-enable.title',\n command: {\n name: bulkEnableCmdName,\n options: {\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Selected,\n });\n }\n\n // Add disable action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, disableCmdName)) {\n singleActions.push({\n title: '@general:actions.disable.title',\n command: {\n name: disableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'disable',\n icon: 'fa-light fa-ban',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"${fieldName}\") }}`,\n });\n }\n\n // Add enable action to single view\n if (!actionExists(singleActions, enableCmdName)) {\n singleActions.push({\n title: '@general:actions.enable.title',\n command: {\n name: enableCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'enable',\n icon: 'fa-light fa-check',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"${fieldName}\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in modify/single\n const ensureIsDisabledLayout = <TLayout extends { sections: unknown[]; properties?: unknown[] }>(\n base: TLayout,\n ): TLayout => {\n // IMPORTANT:\n // Many entities reuse the same `sections` / `properties` arrays across create/update/single (shared reference).\n // Never mutate those arrays in-place; always clone before pushing to avoid leaking changes into other interfaces.\n const sections = [...base.sections] as TLayout['sections'];\n const properties = [...(base.properties ?? [])] as NonNullable<TLayout['properties']>;\n\n if (!sections.some((s: any) => s.id === groupId)) {\n sections.push({ id: groupId, order: 150 } as any);\n }\n\n if (!properties.some((p: any) => p.name === fieldName)) {\n properties.push({\n name: fieldName,\n layout: {\n positions: { lg: { colSpan: 6, order: 95 } },\n },\n } as any);\n }\n\n return {\n ...base,\n sections,\n properties,\n } as TLayout;\n };\n\n const ensureUpdateLayoutProperty = (\n layout: AXPEntityMasterUpdateLayoutView | undefined,\n ): AXPEntityMasterUpdateLayoutView => {\n const base: AXPEntityMasterUpdateLayoutView = layout ?? { sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n const ensureSingleLayoutProperty = (\n layout: AXPEntityMasterSingleLayoutView | undefined,\n ): AXPEntityMasterSingleLayoutView => {\n const base: AXPEntityMasterSingleLayoutView = layout ?? { title: ctx.entity.title, sections: [], properties: [] };\n return ensureIsDisabledLayout(base);\n };\n\n ctx.interfaces.master.modify.update((modify) => ensureUpdateLayoutProperty(modify));\n ctx.interfaces.master.single.update((single) => ensureSingleLayoutProperty(single));\n\n // Add disabled view to show only disabled items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if disabled view already exists\n if (!next.views.some((v: any) => v.name === 'disabled')) {\n next.views.push(\n createQueryView('disabled', '@general:terms.status.states.is-disabled', false, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'disabledAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n\n //#endregion\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityDisabledEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Disabled',\n);\n\n@Injectable()\nexport class AXPEntityDisableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.disable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.disable.confirm.message'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.disable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Disabling...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare disable data\n const disableData = this.prepareDisableData(currentData);\n\n // Update the entity to mark it as disabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(disableData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Disable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareDisableData(currentData: any): any {\n const disableData = { ...currentData };\n\n // Set the disabled flag\n disableData.isDisabled = true;\n\n // Optionally add disable timestamp\n disableData.disabledAt = new Date();\n\n return disableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityDisableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch disable event\n this.dispatch(\n AXPEntityDisabledEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPDisableEntityWorkflow: AXPWorkflow = {\n startStepId: 'disable-entity',\n steps: {\n 'disable-entity': {\n action: 'AXPEntityDisableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-disabled',\n content: 'workflow.entity-disabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'disable-success',\n },\n ],\n },\n 'disable-success': {\n action: 'AXPEntityDisableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPRefreshEvent, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityEnabledEvent = createWorkFlowEvent<{ entity: string; id: string; meta?: any }>(\n '[Entity] Enabled',\n);\n\n@Injectable()\nexport class AXPEntityEnableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n if (!refId || !refType) {\n throw new Error('Missing required parameters: refId and refType');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.enable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.enable.confirm.message'),\n 'success',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', ENABLE_WORKFLOW_USER_CANCEL_MESSAGE);\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.enable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Enabling...',\n });\n\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare enable data\n const enableData = this.prepareEnableData(currentData);\n\n // Update the entity to mark it as enabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(enableData);\n\n context.setOutput('id', refId);\n context.setOutput('isCanceled', false);\n\n // Set refresh metadata\n if (entityDefinition.parentKey && currentData[entityDefinition.parentKey]) {\n context.setVariable('meta', { refreshTargetId: currentData[entityDefinition.parentKey] });\n }\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error('Enable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareEnableData(currentData: any): any {\n const enableData = { ...currentData };\n\n // Set the disabled flag to false\n enableData.isDisabled = false;\n\n // Optionally add enable timestamp\n enableData.enabledAt = new Date();\n\n return enableData;\n }\n}\n\nconst ENABLE_WORKFLOW_USER_CANCEL_MESSAGE = 'Operation cancelled by user';\n\n/**\n * Shows an error toast with the workflow {@link AXPWorkflowContext.getOutput} `error` string.\n * Skips user-cancel and empty messages. Respects {@link AXPCommonSettings.EnableOperationToasts} like {@link AXPToastAction}.\n */\n@Injectable()\nexport class AXPEntityEnableFailureToastAction extends AXPWorkflowAction {\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n private readonly settingsService = inject(AXPSettingsService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const enabled = await this.settingsService.get(AXPCommonSettings.EnableOperationToasts);\n if (!enabled) {\n return;\n }\n const message = context.getOutput<string>('error')?.trim() ?? '';\n if (!message || message === ENABLE_WORKFLOW_USER_CANCEL_MESSAGE) {\n return;\n }\n this.toastService.show({\n color: 'danger',\n title: await this.translationService.translateAsync('@general:state-message.error.title'),\n content: message,\n closeButton: true,\n timeOut: 6000,\n timeOutProgress: true,\n });\n }\n}\n\n@Injectable()\nexport class AXPEntityEnableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const id = context.getOutput<string>('id');\n const meta = context.getVariable<any>('meta');\n\n // Dispatch enable event\n this.dispatch(\n AXPEntityEnabledEvent({\n entity: refType,\n id,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n }\n}\n\nexport const AXPEnableEntityWorkflow: AXPWorkflow = {\n startStepId: 'enable-entity',\n steps: {\n 'enable-entity': {\n action: 'AXPEntityEnableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n {\n conditions: [\n {\n type: 'SINGLE',\n expression:\n 'context.getOutput(\"isCanceled\") == true && context.getOutput(\"error\") != \"' +\n ENABLE_WORKFLOW_USER_CANCEL_MESSAGE +\n '\"',\n },\n ],\n nextStepId: 'show-failure-toast',\n },\n ],\n },\n 'show-failure-toast': {\n action: 'AXPEntityEnableFailureToastAction',\n nextSteps: [],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-enabled',\n content: 'workflow.entity-enabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'enable-success',\n },\n ],\n },\n 'enable-success': {\n action: 'AXPEntityEnableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkDisabledEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Disabled',\n);\n\n@Injectable()\nexport class AXPEntityBulkDisableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-disable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Disabling items...',\n });\n\n try {\n const results = [];\n const errors = [];\n\n // Process each selected item\n for (const refId of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare disable data\n const disableData = this.prepareDisableData(currentData);\n\n // Update the entity to mark it as disabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(disableData);\n results.push(refId);\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error(`Failed to disable entity ${refId}:`, error);\n errors.push({ id: refId, error: error instanceof Error ? error.message : 'Unknown error' });\n }\n }\n\n context.setOutput('processedIds', results);\n context.setOutput('errors', errors);\n context.setOutput('isCanceled', false);\n\n } catch (error) {\n console.error('Bulk disable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareDisableData(currentData: any): any {\n const disableData = { ...currentData };\n\n // Set the disabled flag\n disableData.isDisabled = true;\n\n // Optionally add disable timestamp\n disableData.disabledAt = new Date();\n\n return disableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkDisableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const errors = context.getOutput<any[]>('errors') || [];\n const meta = context.getVariable<any>('meta');\n\n // Dispatch bulk disable event\n this.dispatch(\n AXPEntityBulkDisabledEvent({\n entity: refType,\n ids: processedIds,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n\n // Show error summary if there were any errors\n if (errors.length > 0) {\n const errorMessage = errors.map(e => `${e.id}: ${e.error}`).join('\\n');\n console.warn('Some items failed to disable:', errorMessage);\n }\n }\n}\n\nexport const AXPBulkDisableEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-disable-entity',\n steps: {\n 'bulk-disable-entity': {\n action: 'AXPEntityBulkDisableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-disabled',\n content: 'workflow.entity-bulk-disabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-disable-success',\n },\n ],\n },\n 'bulk-disable-success': {\n action: 'AXPEntityBulkDisableSuccessAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPEntity, AXPRefreshEvent } from '@acorex/platform/common';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, createWorkFlowEvent } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPEntityDefinitionRegistryService } from '@acorex/platform/layout/entity';\n\nexport const AXPEntityBulkEnabledEvent = createWorkFlowEvent<{ entity: string; ids: string[]; meta?: any }>(\n '[Entity] Bulk Enabled',\n);\n\n@Injectable()\nexport class AXPEntityBulkEnableAction extends AXPWorkflowAction {\n private entityRegistery = inject(AXPEntityDefinitionRegistryService);\n private dialogService = inject(AXDialogService);\n private loadingDialog = inject(AXLoadingDialogService);\n private translationService = inject(AXTranslationService);\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const data = context.getVariable<any>('data');\n const selectedIds = Array.isArray(data) ? data.map((c) => c.id) : data ? [data.id] : [];\n\n if (!refType || selectedIds.length === 0) {\n throw new Error('Missing required parameters: refType and data');\n }\n\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.title'),\n await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.message', {\n params: { count: selectedIds.length }\n }),\n 'success',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (!dialogResult.result) {\n context.setOutput('isCanceled', true);\n context.setOutput('error', 'Operation cancelled by user');\n return;\n }\n\n // Show loading dialog\n const loadingDialog = this.loadingDialog.show({\n title: await this.translationService.translateAsync('@general:actions.bulk-enable.confirm.processing'),\n mode: 'indeterminate',\n status: 'Enabling items...',\n });\n\n try {\n const results = [];\n const errors = [];\n\n // Process each selected item\n for (const refId of selectedIds) {\n try {\n // Get the current entity data\n const currentData = await this.getEntityData(refType, refId);\n\n // Prepare enable data\n const enableData = this.prepareEnableData(currentData);\n\n // Update the entity to mark it as enabled\n if (entityDefinition.commands?.update) {\n const updateExec = entityDefinition.commands.update.execute as Function;\n await updateExec(enableData);\n results.push(refId);\n } else {\n throw new Error('Entity does not support update operation');\n }\n } catch (error) {\n console.error(`Failed to enable entity ${refId}:`, error);\n errors.push({ id: refId, error: error instanceof Error ? error.message : 'Unknown error' });\n }\n }\n\n context.setOutput('processedIds', results);\n context.setOutput('errors', errors);\n context.setOutput('isCanceled', false);\n\n } catch (error) {\n console.error('Bulk enable operation failed:', error);\n context.setOutput('error', error instanceof Error ? error.message : 'Unknown error');\n context.setOutput('isCanceled', true);\n } finally {\n loadingDialog.close();\n }\n }\n\n private async getEntityData(refType: string, refId: string): Promise<any> {\n try {\n // Use the entity's byKey query to get actual data\n const [moduleName, entityName] = refType.split('.');\n const entityDefinition = await this.entityRegistery.resolve(moduleName, entityName);\n\n if (entityDefinition.queries?.byKey) {\n const queryExec = entityDefinition.queries.byKey.execute as Function;\n return await queryExec(refId);\n }\n\n // Fallback to basic structure if no query available\n return { id: refId };\n } catch (error) {\n console.error('Failed to retrieve entity data:', error);\n throw new Error(`Failed to retrieve entity data: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n }\n\n private prepareEnableData(currentData: any): any {\n const enableData = { ...currentData };\n\n // Set the disabled flag to false\n enableData.isDisabled = false;\n\n // Optionally add enable timestamp\n enableData.enabledAt = new Date();\n\n return enableData;\n }\n}\n\n@Injectable()\nexport class AXPEntityBulkEnableSuccessAction extends AXPWorkflowAction {\n async execute(context: AXPWorkflowContext): Promise<void> {\n const refType = context.getVariable<string>('options.refType');\n const processedIds = context.getOutput<string[]>('processedIds') || [];\n const errors = context.getOutput<any[]>('errors') || [];\n const meta = context.getVariable<any>('meta');\n\n // Dispatch bulk enable event\n this.dispatch(\n AXPEntityBulkEnabledEvent({\n entity: refType,\n ids: processedIds,\n meta\n }),\n );\n\n // Refresh the entity list\n this.dispatch(\n AXPRefreshEvent({\n entity: refType,\n meta\n }),\n );\n\n // Show error summary if there were any errors\n if (errors.length > 0) {\n const errorMessage = errors.map(e => `${e.id}: ${e.error}`).join('\\n');\n console.warn('Some items failed to enable:', errorMessage);\n }\n }\n}\n\nexport const AXPBulkEnableEntityWorkflow: AXPWorkflow = {\n startStepId: 'bulk-enable-entity',\n steps: {\n 'bulk-enable-entity': {\n action: 'AXPEntityBulkEnableAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: 'workflow.entity-bulk-enabled',\n content: 'workflow.entity-bulk-enabled-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'bulk-enable-success',\n },\n ],\n },\n 'bulk-enable-success': {\n action: 'AXPEntityBulkEnableSuccessAction',\n },\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { disablePlugin } from './disable.plugin';\nimport {\n AXPDisableEntityWorkflow,\n AXPEntityDisableAction,\n AXPEntityDisableSuccessAction,\n AXPEnableEntityWorkflow,\n AXPEntityEnableAction,\n AXPEntityEnableFailureToastAction,\n AXPEntityEnableSuccessAction,\n AXPBulkDisableEntityWorkflow,\n AXPEntityBulkDisableAction,\n AXPEntityBulkDisableSuccessAction,\n AXPBulkEnableEntityWorkflow,\n AXPEntityBulkEnableAction,\n AXPEntityBulkEnableSuccessAction\n} from './workflows';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXPEntityDisableAction,\n AXPEntityDisableSuccessAction,\n AXPEntityEnableAction,\n AXPEntityEnableFailureToastAction,\n AXPEntityEnableSuccessAction,\n AXPEntityBulkDisableAction,\n AXPEntityBulkDisableSuccessAction,\n AXPEntityBulkEnableAction,\n AXPEntityBulkEnableSuccessAction,\n },\n workflows: {\n 'disable-entity': AXPDisableEntityWorkflow,\n 'enable-entity': AXPEnableEntityWorkflow,\n 'bulk-disable-entity': AXPBulkDisableEntityWorkflow,\n 'bulk-enable-entity': AXPBulkEnableEntityWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: disablePlugin },\n ],\n})\nexport class AXPDisablePluginModule { }\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPDefaultPluginOptions {\n /**\n * Optional title for the `isDefault` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.status.states.is-default'.\n */\n title?: string;\n}\n\nexport const defaultPlugin: AXPEntityActionPlugin = {\n name: 'default',\n order: 67,\n apply: (ctx, options?: AXPDefaultPluginOptions) => {\n ensureListActions(ctx);\n\n const title = options?.title ?? '@general:terms.status.states.is-default';\n\n //#region ---- Add isDefault Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isDefault property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isDefault')) {\n ctx.properties.add({\n name: 'isDefault',\n title,\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not default)\n defaultValue: false,\n negative: false,\n nullValue: false,\n trulyText: '@general:terms.common.yes-no.yes',\n falsyText: '@general:terms.common.yes-no.no',\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add isDefault Column ----\n\n // Add isDefault to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isDefault')) {\n ctx.columns.add({\n name: 'isDefault',\n title,\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isDefault',\n layout: { positions: { lg: { colSpan: 6, order: 92 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { defaultPlugin } from './default.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: defaultPlugin }],\n})\nexport class AXPDefaultPluginModule {}\n\n\n","import { InjectionToken, Type } from \"@angular/core\";\n\nexport interface AXPGlobalSearchConfigs {\n window: () => Type<any>;\n}\n\nexport const AXP_GLOBAL_SEARCH_CONFIG_TOKEN = new InjectionToken<AXPGlobalSearchConfigs>('AXP_GLOBAL_SEARCH_CONFIG_TOKEN');","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { ChangeDetectionStrategy, Component, HostListener, inject } from '@angular/core';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXTextBoxModule } from '@acorex/components/text-box';\nimport { AsyncPipe } from '@angular/common';\n\n@Component({\n template: `\n <ax-button color=\"primary\" class=\"ax-flex md:ax-hidden\" (onClick)=\"startSearch()\">\n <ax-icon class=\"fa-regular fa-search\">\n </ax-icon>\n </ax-button>\n <div class=\"ax-bg-primary-200/15 ax-h-10 ax-w-72 ax-rounded-default ax-cursor-pointer ax-justify-between ax-hidden md:ax-flex ax-items-center ax-px-3 hover:ax-bg-primary-200/30 ax-text-primary-text\" (click)=\"startSearch()\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <i class=\"fa-light fa-search ax-text-xl\"></i>\n <span>{{ '@global-search:terms.search-placeholder' | translate | async}}</span>\n </div>\n <kbd class=\"ax-text-sm\">Ctrl+K</kbd>\n </div>\n `,\n imports: [AXButtonModule, AXDecoratorModule, AXTranslationModule, AXTextBoxModule, AsyncPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPGlobalSearchSlotComponent {\n\n protected workflow = inject(AXPWorkflowService);\n\n protected async startSearch() {\n await this.workflow.execute('global-search')\n }\n\n @HostListener('document:keydown', ['$event'])\n protected async handleKeyboardEvent(event: KeyboardEvent) {\n if (event.ctrlKey) {\n switch (event.code) {\n case 'KeyK':\n event.preventDefault();\n event.stopPropagation();\n await this.startSearch();\n break;\n }\n }\n\n }\n}\n","import { AXPopupService } from '@acorex/components/popup';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowService } from '@acorex/platform/workflow';\nimport { AXPCommandExecutor } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from '../search.config';\nimport { AXPSearchDisplayResult } from '@acorex/platform/common';\n\n@Injectable()\nexport class AXPGlobalSearchStartAction extends AXPWorkflowAction {\n private popupService = inject(AXPopupService);\n private workflow = inject(AXPWorkflowService);\n private commandExecutor = inject(AXPCommandExecutor);\n private config = inject(AXP_GLOBAL_SEARCH_CONFIG_TOKEN);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const component = await this.config.window();\n const popup = await this.popupService.open(component, {\n title: 'Search...',\n size: 'fit',\n closeOnBackdropClick: true,\n data: {\n text: context.getVariable('text'),\n },\n header: false,\n });\n if (popup.data) {\n const result = popup.data as AXPSearchDisplayResult;\n if (result && result.command) {\n const commandName = result.command.name;\n const commandOptions = result.command.options ?? {};\n if (this.workflow.exists(commandName)) {\n await this.workflow.execute(commandName, commandOptions);\n } else {\n await this.commandExecutor.execute(commandName, commandOptions);\n }\n }\n }\n }\n}\n\nexport const AXPGlobalSearchWorkflow: AXPWorkflow = {\n startStepId: 'start',\n steps: {\n start: {\n action: 'AXPGlobalSearchStartAction',\n },\n },\n};\n","export const AXPCommonFeatureKeys = {\n GlobalSearch: 'Common:Feature:GlobalSearch',\n AdvancedExport: 'Common:Feature:AdvancedExport',\n ActivityLog: 'Common:Feature:ActivityLog',\n DataImport: 'Common:Feature:DataImport',\n BulkOperations: 'Common:Feature:BulkOperations',\n AdvancedFiltering: 'Common:Feature:AdvancedFiltering',\n DataSynchronization: 'Common:Feature:DataSynchronization',\n} as const;\n\n","import { Injector, NgModule } from '@angular/core';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXPGlobalSearchSlotComponent } from './search-slot.component';\nimport { AXPGlobalSearchStartAction, AXPGlobalSearchWorkflow } from './workflows/search.workflow';\nimport { AXPAppStartUpService } from '@acorex/platform/core';\nimport { AXP_GLOBAL_SEARCH_CONFIG_TOKEN } from './search.config';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXPCommonFeatureKeys } from '../../features.keys';\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'root-header-start': [\n {\n priority: 0,\n name: 'search',\n component: AXPGlobalSearchSlotComponent,\n features: [AXPCommonFeatureKeys.GlobalSearch],\n },\n ],\n }),\n //\n AXPWorkflowModule.forChild({\n actions: {\n AXPGlobalSearchStartAction\n },\n workflows: {\n 'global-search': AXPGlobalSearchWorkflow,\n },\n })\n ],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXP_GLOBAL_SEARCH_CONFIG_TOKEN,\n useValue: {\n window: () =>\n import('./search-popup.component').then((c) => c.AXPGlobalSearchPopupComponent),\n },\n },\n ]\n})\nexport class AXPGlobalSearchModule {\n constructor(\n appInitService: AXPAppStartUpService,\n injector: Injector\n ) {\n\n }\n}\n","import { AXPSearchDisplayGroupResult, AXPSearchDisplayResult, AXPSearchService, AXPSettingsService } from \"@acorex/platform/common\";\nimport { AXPPlatformScope } from \"@acorex/platform/core\";\nimport { computed, inject, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\nexport class AXPGlobalSearchViewModel {\n\n private settingKeys = {\n recent: \"global-search:recents:items\",\n pinned: \"global-search:pinned:items\"\n }\n\n private searchService = inject(AXPSearchService);\n private settingsService = inject(AXPSettingsService);\n\n private _text = signal<string | null>(null);\n public text = this._text.asReadonly();\n\n private _results = signal<AXPSearchDisplayGroupResult[]>([]);\n public results = this._results.asReadonly();\n\n private _isBusy = signal(false);\n public isBusy = this._isBusy.asReadonly();\n\n public isEmpty = computed(() => this.text() && this.results().length == 0);\n\n public isValid = computed(() => (this.text()?.length ?? 0) > 2);\n\n public isStart = computed(() => !this.isEmpty() && this.results().length == 0);\n\n public isWelcome = computed(() => this.isStart() && this.pinnedItems().length == 0 && this.recentItems().length == 0);\n\n private _recentItems = signal<AXPSearchDisplayResult[]>([]);\n private _pinnedItems = signal<AXPSearchDisplayResult[]>([]);\n public pinnedItems = this._pinnedItems.asReadonly();\n public recentItems = computed(() => this.getTopRecentItems());\n\n public readonly onItemSelected = new Subject<AXPSearchDisplayResult>();\n\n constructor() {\n this.loadSettings();\n }\n\n public async search(text: string): Promise<void> {\n this._isBusy.set(true);\n this._text.set(text);\n\n if (!this.isValid()) {\n this._results.set([]);\n } else {\n await new Promise((resolve) => setTimeout(resolve, 250));\n const results = await this.searchService.search(text);\n this._results.set(results);\n }\n\n this._isBusy.set(false);\n }\n\n public async execute(item: AXPSearchDisplayResult): Promise<void> {\n this.onItemSelected.next(item);\n await this.updateSelectionHistory(item);\n }\n\n public async pin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n if (!currentPinned.some(i => i.id === item.id)) {\n this._pinnedItems.set([item, ...currentPinned].slice(0, 5));\n await this.saveSettings();\n }\n }\n\n public async unpin(item: AXPSearchDisplayResult): Promise<void> {\n const currentPinned = this._pinnedItems();\n this._pinnedItems.set(currentPinned.filter(i => i.id !== item.id));\n await this.saveSettings();\n }\n\n public async togglePin(item: AXPSearchDisplayResult): Promise<void> {\n if (this.isPinned(item)) {\n await this.unpin(item);\n } else {\n await this.pin(item);\n }\n }\n\n public isPinned(item: AXPSearchDisplayResult): boolean {\n const currentPinned = this._pinnedItems();\n return currentPinned.some(i => i.id === item.id);\n }\n\n private async updateSelectionHistory(item: AXPSearchDisplayResult): Promise<void> {\n // Update recent selections\n const currentHistory = this._recentItems();\n const updatedHistory = [item, ...currentHistory.filter(i => i.id !== item.id)].slice(0, 5);\n this._recentItems.set(updatedHistory);\n\n // Save updated settings\n await this.saveSettings();\n }\n\n private getTopRecentItems(): AXPSearchDisplayResult[] {\n const pinnedIds = new Set(this._pinnedItems().map(item => item.id));\n return this._recentItems().filter(item => !pinnedIds.has(item.id)).slice(0, 5);\n }\n\n public async clearRecentItems() {\n this._recentItems.set([]);\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, []);\n }\n\n private async loadSettings(): Promise<void> {\n // Load recent selections\n const recent = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.recent);\n if (recent) {\n this._recentItems.set(recent.slice(0, 5));\n }\n\n // Load pinned items\n const pinned = await this.settingsService.get<AXPSearchDisplayResult[]>(this.settingKeys.pinned);\n if (pinned) {\n this._pinnedItems.set(pinned.slice(0, 5));\n }\n }\n\n private async saveSettings(): Promise<void> {\n // Save recent selections\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.recent, this._recentItems().slice(0, 5));\n\n // Save pinned items\n await this.settingsService.scope(AXPPlatformScope.User).set(this.settingKeys.pinned, this._pinnedItems().slice(0, 5));\n }\n}\n","import {\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport interface AXPIconPluginOptions {\n column?: {\n enabled?: boolean; // default: true\n visible?: boolean; // default: true\n width?: number; // default: 120\n };\n}\n\nexport const iconPlugin: AXPEntityActionPlugin = {\n name: 'icon',\n order: 75,\n apply: (ctx, options?: AXPIconPluginOptions) => {\n ensureListActions(ctx);\n\n const groupId = 'appearance';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.appearance' } as any);\n }\n\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'icon')) {\n ctx.properties.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Theme.IconChooser,\n options: {},\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: false },\n inline: { enabled: false },\n },\n },\n } as any);\n }\n\n //#region ---- Add Column to List View ----\n\n // Add icon column to list view if enabled (default: true)\n const columnEnabled = options?.column?.enabled ?? true;\n if (columnEnabled) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'icon')) {\n ctx.columns.add({\n name: 'icon',\n title: '@general:terms.common.icon',\n sort: { enabled: false },\n options: {\n visible: options?.column?.visible ?? false,\n width: `${options?.column?.width ?? 120}px`,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, { name: 'icon', layout: { positions: { lg: { colSpan: 6 } } } } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) => applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }));\n\n //#endregion\n },\n};\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { iconPlugin } from './icon.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: iconPlugin }],\n})\nexport class AXPIconPluginModule {}\n","import { inject } from '@angular/core';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPEntityStorageMiddleware } from '@acorex/platform/layout/entity';\n\nexport const lockGuardMiddleware: AXPEntityStorageMiddleware = {\n target: { ops: ['update', 'delete'], order: 10 },\n execute: async (ctx, next) => {\n const lockService = inject(AXPLockService);\n const session = inject(AXPSessionService);\n\n const lock = await lockService.check({ refId: ctx.id!, refType: ctx.entityName });\n if (lock) {\n const info = await lockService.getInfo({ refId: ctx.id!, refType: ctx.entityName });\n if (info && session.user && info.lockedBy.id !== session.user.id) {\n throw new Error('This record is locked and cannot be edited.');\n }\n }\n\n await next();\n },\n};\n\n\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject, Injectable } from '@angular/core';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';\nimport { AXPActionMenuItem } from '@acorex/platform/core';\n\n@Injectable()\nexport class AXMLockPopupWorkflowAction extends AXPWorkflowAction {\n private readonly translationService = inject(AXTranslationService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly lockService = inject(AXPLockService);\n private readonly sessionService = inject(AXPSessionService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n const durationOptions = [\n {\n value: '1h',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1h'),\n hours: 1,\n },\n {\n value: '1d',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.1d'),\n hours: 24,\n },\n {\n value: 'infinite',\n text: await this.translationService.translateAsync('@lock-system:components.lock-dialog.fields.duration.options.infinite'),\n },\n ];\n\n const dialogTitle = await this.translationService.translateAsync('@lock-system:components.lock-dialog.title');\n\n const dialogRef = await this.layoutBuilder\n .create()\n .dialog(dialog => {\n dialog\n .setTitle(dialogTitle)\n .setContext({ duration: '1h', reason: '' })\n .content(flex => {\n flex\n .setDirection('column')\n .formField('@lock-system:components.lock-dialog.fields.duration.title', field => {\n field.path('duration');\n field.selectBox({\n valueField: 'value',\n textField: 'text',\n dataSource: durationOptions,\n validations: [{ rule: 'required' }],\n });\n })\n .formField('@lock-system:components.lock-dialog.fields.reason.title', field => {\n field.path('reason');\n field.largeTextBox({\n rows: 3,\n placeholder: '@lock-system:components.lock-dialog.fields.reason.placeholder',\n });\n });\n })\n .setActions(actions => {\n actions.cancel('@lock-system:components.lock-dialog.actions.cancel');\n const confirmAction: AXPActionMenuItem = {\n title: '@lock-system:components.lock-dialog.actions.confirm',\n color: 'primary',\n command: { name: 'submit', options: { validate: true } },\n } as AXPActionMenuItem;\n actions.custom(confirmAction);\n });\n })\n .show();\n const action = dialogRef.action();\n if (action === 'cancel') {\n context.setOutput('isCanceled', true);\n dialogRef.close();\n return;\n }\n\n const form = dialogRef.context() as { duration?: string; reason?: string };\n const selected = form?.duration ?? '1h';\n const selectedDuration = durationOptions.find((d) => d.value === selected);\n const expireAt = selectedDuration?.hours\n ? new Date(Date.now() + selectedDuration.hours * 60 * 60 * 1000)\n : undefined;\n\n await this.lockService.lock({\n refId,\n refType,\n type: 'user',\n date: new Date().toISOString(),\n expireAt,\n lockedBy: {\n id: this.sessionService.user?.id ?? 'system',\n type: 'oidc.users',\n },\n });\n\n dialogRef.close();\n context.setOutput('isCanceled', false);\n context.setOutput('lockDuration', form?.duration ?? '1h');\n context.setOutput('lockReason', form?.reason ?? '');\n }\n}\n\n\n\nexport const AXMLockPopupWorkflow: AXPWorkflow = {\n startStepId: 'lock-popup',\n steps: {\n 'lock-popup': {\n action: 'AXMLockPopupWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"isCanceled\") == false' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: '@general:workflow.entity-modified-title',\n content: '@general:workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n};\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPLockService } from '@acorex/platform/common';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { Injectable, inject } from '@angular/core';\n\n@Injectable()\nexport class AXMUnlockConfirmWorkflowAction extends AXPWorkflowAction {\n private dialogService = inject(AXDialogService);\n private translationService = inject(AXTranslationService);\n private lockService = inject(AXPLockService);\n private sessionService = inject(AXPSessionService);\n\n override async execute(context: AXPWorkflowContext): Promise<void> {\n const refId = context.getVariable<string>('options.refId');\n const refType = context.getVariable<string>('options.refType');\n\n // Show confirmation dialog\n const dialogResult = await this.dialogService.confirm(\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.title'),\n await this.translationService.translateAsync('@lock-system:components.unlock-dialog.description'),\n 'warning',\n 'horizontal',\n false,\n 'cancel'\n );\n\n if (dialogResult.result) {\n try {\n // Perform unlock\n await this.lockService.unlock({\n refId: refId,\n refType: refType,\n type: 'user',\n });\n\n context.setOutput('isCanceled', false);\n context.setOutput('unlocked', true);\n } catch (error) {\n console.error('Unlock failed:', error);\n\n // Show error dialog\n await this.dialogService.alert(\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.title'),\n await this.translationService.translateAsync('@lock-system:messages.error.unlock.description'),\n 'danger'\n );\n\n context.setOutput('isCanceled', true);\n context.setOutput('unlocked', false);\n }\n } else {\n context.setOutput('isCanceled', true);\n context.setOutput('unlocked', false);\n }\n }\n}\n\nexport const AXMUnlockConfirmWorkflow: AXPWorkflow = {\n startStepId: 'unlock-confirm',\n steps: {\n 'unlock-confirm': {\n action: 'AXMUnlockConfirmWorkflowAction',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"unlocked\") == true' }],\n nextStepId: 'successToast',\n },\n ],\n },\n successToast: {\n id: 'successToast',\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: '@general:workflow.entity-modified-title',\n content: '@general:workflow.entity-modified-body',\n },\n nextSteps: [\n {\n conditions: [],\n nextStepId: 'modifyConfirmed',\n },\n ],\n },\n modifyConfirmed: {\n id: 'modifyConfirmed',\n action: 'AXPEntityModifyConfirmedAction',\n },\n },\n}; ","import { AXPLockService } from \"@acorex/platform/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMLockEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n protected lockService = inject(AXPLockService , {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('lock', {\n check: async (refId: string, refType: string) => {\n if(this.lockService){\n const lock = await this.lockService.check({\n refId, refType\n });\n return lock;\n }\n return false;\n }\n })\n }\n}","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_STORAGE_MIDDLEWARE } from '@acorex/platform/layout/entity';\nimport { lockGuardMiddleware } from './lock-guard.middleware';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { AXMLockPopupWorkflow, AXMLockPopupWorkflowAction, AXMUnlockConfirmWorkflow, AXMUnlockConfirmWorkflowAction } from './workflows';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER } from '@acorex/platform/core';\nimport { AXMLockEvaluatorScopeProvider } from './lock-evaluator-scope.provider';\nimport { lockPlugin } from './lock.plugin';\n\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n actions: {\n AXMLockPopupWorkflowAction,\n AXMUnlockConfirmWorkflowAction,\n },\n workflows: {\n 'lock-popup': AXMLockPopupWorkflow,\n 'unlock-confirm': AXMUnlockConfirmWorkflow,\n },\n }),\n ],\n providers: [\n { provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, multi: true, useClass: AXMLockEvaluatorScopeProvider },\n // { provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: lockPlugin },\n { provide: AXP_ENTITY_STORAGE_MIDDLEWARE, multi: true, useValue: lockGuardMiddleware },\n ],\n})\nexport class AXMLockSystemModule { } ","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n AXPEntityPropertyGroup,\n AXPEntityProperty,\n AXPEntityTableColumn,\n} from '@acorex/platform/common';\n\nexport interface AXPNamePluginOptions {\n /**\n * Optional title for the `name` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.name'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to false.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const namePlugin: AXPEntityActionPlugin = {\n name: 'name',\n order: 20,\n apply: (ctx, options?: AXPNamePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.name';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? false;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Name Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'name')) {\n ctx.properties.add({\n name: 'name',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Name Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'name')) {\n ctx.columns.add({\n name: 'name',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n sort: {\n enabled: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'name')) {\n layout.properties.push({\n name: 'name',\n layout: {\n // Width is applied by layout-ordering middleware (4+8 with title on md/lg).\n positions: { lg: { order: 10 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { namePlugin } from './name.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: namePlugin }],\n})\nexport class AXPNamePluginModule {}\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n} from '@acorex/platform/common';\n\nexport interface AXPNotesPluginOptions {\n /**\n * Optional title for the `notes` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.notes'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'additional-info'.\n */\n groupId?: string;\n /**\n * Whether to add a column in list view. Defaults to true.\n * When added, the column has visible: false by default (user can enable via column picker).\n */\n column?: boolean;\n}\n\nexport const notesPlugin: AXPEntityActionPlugin = {\n name: 'notes',\n order: 22,\n apply: (ctx, options?: AXPNotesPluginOptions) => {\n const title = options?.title ?? '@general:terms.common.notes';\n const groupId = options?.groupId ?? 'additional-info';\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Additional Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.additional-info' });\n }\n\n //#endregion\n\n //#region ---- Add Notes Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'notes')) {\n ctx.properties.add({\n name: 'notes',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n options: {\n rows: 4,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: false },\n filter: {\n advance: { enabled: true },\n inline: { enabled: false },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Notes Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'notes')) {\n ctx.columns.add({\n name: 'notes',\n title,\n options: {\n width: '300px',\n visible: false,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'notes')) {\n layout.properties.push({\n name: 'notes',\n layout: {\n positions: { lg: { colSpan: 12, order: 40 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n\n\n\n\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { notesPlugin } from './notes.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: notesPlugin }],\n})\nexport class AXPNotesPluginModule { }\n\n\n\n\n\n\n","import { AXPEntityAction, AXPEntityCommandScope, createQueryView } from '@acorex/platform/common';\nimport {\n AXPEntityActionPlugin,\n actionExists,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n} from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\n\nexport const primaryPlugin: AXPEntityActionPlugin = {\n name: 'primary',\n order: 66,\n apply: (ctx) => {\n ensureListActions(ctx);\n\n //#region ---- Add isPrimary Property ----\n\n // Ensure settings group exists\n const groupId = 'settings';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.settings' } as any);\n }\n\n // Add isPrimary property if it doesn't exist\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === 'isPrimary')) {\n ctx.properties.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n groupId,\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n // Default to false (not primary)\n defaultValue: false,\n negative: false,\n nullValue: false,\n },\n },\n },\n validations: [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n //#endregion\n\n // Add isPrimary to columns for list view\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === 'isPrimary')) {\n ctx.columns.add({\n name: 'isPrimary',\n title: '@general:terms.status.states.is-primary',\n width: 100,\n sortable: true,\n filterable: true,\n } as any);\n }\n\n //#endregion\n\n //#region ---- Add Primary Actions ----\n\n ctx.interfaces.update((i) => {\n const setPrimaryCmdName = 'set-primary-entity';\n\n // Add set primary action to list view\n const listActions = (i as any).master.list.actions as AXPEntityAction[];\n if (!actionExists(listActions, setPrimaryCmdName)) {\n listActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n // Add set primary action to single view\n const singleActions = ((i as any).master?.single?.actions as AXPEntityAction[]) || [];\n if (!actionExists(singleActions, setPrimaryCmdName)) {\n singleActions.push({\n title: '@general:actions.set-primary.title',\n command: {\n name: setPrimaryCmdName,\n options: {\n refId: '{{ context.eval(\"id\") }}',\n refType: `${ctx.entity.module}.${ctx.entity.name}`,\n },\n },\n priority: 'secondary',\n type: 'update',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ context.eval(\"isPrimary\") }}`,\n });\n }\n\n return i as any;\n });\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n // Ensure layout includes property in create/modify/single\n const applyLayoutPatch = (layout: any) => {\n const next = cloneLayoutArrays(layout);\n ensureLayoutSection(next, { id: groupId, order: 150 } as any);\n ensureLayoutPropertyView(next, {\n name: 'isPrimary',\n layout: { positions: { lg: { colSpan: 6, order: 90 } } },\n } as any);\n return next;\n };\n\n ctx.interfaces.master.create.update((create) => applyLayoutPatch(create ?? { sections: [], properties: [] }));\n ctx.interfaces.master.modify.update((modify) => applyLayoutPatch(modify ?? { sections: [], properties: [] }));\n ctx.interfaces.master.single.update((single) =>\n applyLayoutPatch(single ?? { title: ctx.entity.title, sections: [], properties: [] }),\n );\n\n // Add primary view to show only primary items\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { actions: [], views: [] };\n next.views = next.views ?? [];\n\n // Check if primary view already exists\n if (!next.views.some((v: any) => v.name === 'primary')) {\n next.views.push(\n createQueryView('primary', '@general:terms.status.states.is-primary', false, {\n conditions: [\n {\n name: 'isPrimary',\n operator: { type: 'equal' },\n value: true,\n hidden: true,\n },\n ],\n sorts: [\n { name: 'updatedAt', dir: 'desc' },\n { name: 'title', dir: 'asc' },\n ],\n }),\n );\n }\n\n return next;\n });\n //#endregion\n },\n};\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { primaryPlugin } from './primary.plugin';\n\n@NgModule({\n providers: [\n // Register the primary plugin\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: primaryPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPPrimaryPluginModule { }\n","import {\n AXPEntityActionPlugin,\n} from '@acorex/platform/layout/entity';\nimport { createQueryView } from '@acorex/platform/common';\nimport { AXPStatusPluginOptions } from './status.types';\nimport { inject, Injector, runInInjectionContext } from '@angular/core';\nimport {\n AXPStatusProvider,\n AXPStatusDefinitionProviderService,\n} from '@acorex/platform/common';\nimport { AXPWidgetsList } from '../../../widgets-names-list';\n\nexport const statusPlugin: AXPEntityActionPlugin = {\n name: 'status',\n order: 70,\n apply: async (ctx, options: AXPStatusPluginOptions = {}) => {\n\n const config = options ?? {};\n\n const injector = inject(Injector);\n const statusService = runInInjectionContext(injector, () => inject(AXPStatusDefinitionProviderService));\n\n let statusProvider: AXPStatusProvider | undefined;\n if (config.definition && typeof config.definition === 'string') {\n // Get provider by key from service\n statusProvider = await statusService.getStatus(config.definition);\n if (!statusProvider) {\n console.warn(`Status provider with key \"${config.definition}\" not found.`);\n }\n } else if (config.definition && typeof config.definition === 'object') {\n // Direct provider object provided\n statusProvider = {\n key: `custom.${config.field ?? 'statusId'}`,\n statuses: config.definition.statuses,\n transitions: config.definition.transitions,\n defaultStatus: config.definition.defaultStatus,\n };\n }\n\n // If no status provider found, return early\n if (!statusProvider) {\n console.warn('No status provider found. Please provide a valid definition key or provider object.');\n return;\n }\n\n //#region ---- Add Status Group ----\n\n const groupId = 'status';\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g: any) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.status.title' } as any);\n }\n\n //#endregion\n\n //#region ---- Add Status Property ----\n\n const fieldName = config.field ?? 'statusId';\n const generateOptions = config.generate ?? {};\n const viewsGenerateConfig = generateOptions.views ?? {};\n const required = config.required !== false;\n const showInCreate = config.showInCreate !== false;\n const defaultStatus =\n config.defaultStatus ?? statusProvider.defaultStatus ?? statusProvider.statuses?.[0]?.name ?? null;\n\n const shouldGenerateViews = viewsGenerateConfig.enabled !== false;\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === fieldName)) {\n ctx.properties.add({\n name: fieldName,\n title: '@general:terms.status.title',\n groupId,\n schema: {\n dataType: 'string',\n defaultValue: defaultStatus,\n interface: {\n type: AXPWidgetsList.Advanced.Status,\n options: {\n definitionKey: statusProvider.key,\n },\n },\n },\n validations: required ? [{ rule: 'required' }] : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n } as any);\n }\n\n // Exclude status from create form when showInCreate is false\n if (!showInCreate) {\n ctx.interfaces.master.create.update((create) => {\n const next = {\n ...create,\n sections: create?.sections ?? [],\n properties: (create?.properties ?? []).filter((p: any) => p.name !== fieldName),\n };\n return next as any;\n });\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n\n // Add status to update view\n // ctx.interfaces.master.modify.update((update) => {\n // const next = cloneLayoutArrays((update ?? { sections: [], properties: [] }) as any);\n // ensureLayoutSection(next, { id: groupId } as any);\n // ensureLayoutPropertyView(next, { name: fieldName, layout: { positions: { lg: { colSpan: 6 } } } } as any);\n // return next;\n // });\n\n // // Add status to single view\n // ctx.interfaces.master.single.update((single) => {\n // const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n // ensureLayoutSection(next, { id: groupId } as any);\n // ensureLayoutPropertyView(next, { name: fieldName, layout: { positions: { lg: { colSpan: 6 } } } } as any);\n // return next;\n // });\n\n // Add status to list view columns\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c: any) => c.name === fieldName)) {\n ctx.columns.add({\n name: fieldName,\n title: '@general:terms.status.title',\n width: 120,\n sortable: true,\n filterable: true,\n options: {\n definitionKey: statusProvider.key,\n entity: `${ctx.entity.module}.${ctx.entity.name}`,\n fieldName: fieldName,\n },\n } as any);\n }\n\n //#endregion\n\n //#region ---- Generate Status Views ----\n\n if (shouldGenerateViews) {\n const statusesForViews = statusProvider.statuses.filter((status) => status.generateView);\n\n if (statusesForViews.length > 0) {\n ctx.interfaces.master.list.update((list) => {\n const next = list ?? { views: [] };\n const views = next.views ?? [];\n\n if (!next.views) {\n next.views = views;\n }\n const existingViewNames = new Set(views.map((view: any) => view.name));\n\n statusesForViews.forEach((status) => {\n if (existingViewNames.has(status.name)) {\n return;\n }\n\n const viewTitle = status.title ?? status.name;\n\n views.push(\n createQueryView(status.name, viewTitle, true, {\n conditions: [\n {\n name: fieldName,\n operator: { type: 'equal' },\n value: status.name,\n },\n ],\n }),\n );\n\n existingViewNames.add(status.name);\n });\n\n next.views = views;\n\n return next;\n });\n }\n }\n\n //#endregion\n },\n};\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { statusPlugin } from './status.plugin';\n\n/**\n * Status plugin: adds status property and UI. Default value on create is handled by\n * backend (e.g. connectivity/mock status-default.middleware) for security.\n */\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n multi: true,\n useValue: statusPlugin,\n },\n ],\n})\nexport class AXPStatusPluginModule {}\n","/**\n * Comprehensive status management types and predefined statuses\n * This file contains all standard statuses with their transitions and metadata\n */\n\n//#region ---- Imports ----\n\nimport {\n AXPStatusProvider,\n AXPStatusDefinition,\n AXPStatusTransition,\n} from '@acorex/platform/common';\n\n//#endregion\n\n//#region ---- Status Config Interface ----\n\n/**\n * Status configuration for entity status plugin\n */\nexport interface AXPStatusPluginOptions {\n /**\n * Field name for status in entity\n */\n field?: string;\n\n /**\n * Status definition key (from provider) or direct provider data\n */\n definition?: string | Pick<AXPStatusProvider, 'statuses' | 'transitions' | 'defaultStatus'>;\n\n /**\n * Whether the status field is required. When false, backend fills default on create if empty.\n * Default: true\n */\n required?: boolean;\n\n /**\n * Whether to show status field in create form. When false, status is hidden; backend fills default.\n * Default: true\n */\n showInCreate?: boolean;\n\n /**\n * Default status value when creating. Overrides provider's defaultStatus.\n * Used by backend middleware to fill status when empty on create.\n */\n defaultStatus?: string;\n\n /**\n * Generation behaviours for status integration\n */\n generate?: AXPStatusPluginGenerateOptions;\n}\n\n//#endregion\n\n//#region ---- Utility Functions ----\n\n/**\n * Get status definition by name from provider\n */\nexport function getStatusByName(\n statusName: string,\n provider: AXPStatusProvider\n): AXPStatusDefinition | undefined {\n return provider.statuses.find((status) => status.name === statusName);\n}\n\n/**\n * Get all possible transitions from a status\n */\nexport function getTransitionsFromStatus(\n fromStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.from === fromStatus);\n}\n\n/**\n * Get all possible transitions to a status\n */\nexport function getTransitionsToStatus(\n toStatus: string,\n provider: AXPStatusProvider\n): AXPStatusTransition[] {\n return provider.transitions.filter((transition) => transition.to === toStatus);\n}\n\n/**\n * Check if a transition is valid\n */\nexport function isValidTransition(\n fromStatus: string,\n toStatus: string,\n provider: AXPStatusProvider\n): boolean {\n return provider.transitions.some(\n (transition) => transition.from === fromStatus && transition.to === toStatus\n );\n}\n\n/**\n * Get initial statuses\n */\nexport function getInitialStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isInitial);\n}\n\n/**\n * Get final statuses\n */\nexport function getFinalStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses.filter((status) => status.isFinal);\n}\n\n/**\n * Get active statuses\n */\nexport function getActiveStatuses(provider: AXPStatusProvider): AXPStatusDefinition[] {\n return provider.statuses;\n}\n\n//#endregion\n\n//#region ---- Generate Options ----\n\nexport interface AXPStatusPluginGenerateOptions {\n /**\n * List view generation config\n */\n views?: AXPStatusPluginGenerateViewsOptions;\n}\n\nexport interface AXPStatusPluginGenerateViewsOptions {\n /**\n * Enable view generation. Defaults to true.\n */\n enabled?: boolean;\n}\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- Task Status Provider ----\n\n/**\n * Task status provider for task management workflows\n * Provides statuses: Todo, InProgress, InReview, Blocked, Done, Cancelled\n */\nexport class TaskStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.task';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Todo,\n AXPSystemStatuses.InProgress,\n AXPSystemStatuses.InReview,\n AXPSystemStatuses.Blocked,\n AXPSystemStatuses.Done,\n AXPSystemStatuses.Cancelled,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.start',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.InReview,\n title: '@general:statuses.transitions.submit-review',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Blocked,\n title: '@general:statuses.transitions.block',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.Done,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.InReview,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Blocked,\n to: AXPSystemStatusType.InProgress,\n title: '@general:statuses.transitions.unblock',\n },\n {\n from: AXPSystemStatusType.Todo,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n {\n from: AXPSystemStatusType.InProgress,\n to: AXPSystemStatusType.Cancelled,\n title: '@general:statuses.transitions.cancel',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Todo;\n}\n\n//#endregion\n\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- Approval Status Provider ----\n\n/**\n * Approval status provider for content approval workflows\n * Provides statuses: Draft, PendingReview, Approved, Published, Archived, Rejected\n */\nexport class ApprovalStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.approval';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Draft,\n AXPSystemStatuses.PendingReview,\n AXPSystemStatuses.Approved,\n AXPSystemStatuses.Published,\n AXPSystemStatuses.Archived,\n AXPSystemStatuses.Rejected,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.PendingReview,\n title: '@general:statuses.transitions.submit',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Approved,\n title: '@general:statuses.transitions.approve',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Rejected,\n title: '@general:statuses.transitions.reject',\n },\n {\n from: AXPSystemStatusType.PendingReview,\n to: AXPSystemStatusType.Draft,\n title: '@general:statuses.transitions.request-changes',\n },\n {\n from: AXPSystemStatusType.Approved,\n to: AXPSystemStatusType.Published,\n title: '@general:statuses.transitions.publish',\n },\n {\n from: AXPSystemStatusType.Published,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n {\n from: AXPSystemStatusType.Draft,\n to: AXPSystemStatusType.Archived,\n title: '@general:statuses.transitions.archive',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Draft;\n}\n\n//#endregion\n\n","import { AXPStatusProvider, AXPSystemStatuses, AXPSystemStatusType, AXPStatusDefinition, AXPStatusTransition } from '@acorex/platform/common';\n\n//#region ---- State Status Provider ----\n\n/**\n * State status provider for entity state management\n * Provides statuses: Active, Inactive, Pending, Completed, Suspended, Failed\n */\nexport class StateStatusProvider extends AXPStatusProvider {\n readonly key = 'common.status.state';\n\n readonly statuses: AXPStatusDefinition[] = [\n AXPSystemStatuses.Active,\n AXPSystemStatuses.Inactive,\n AXPSystemStatuses.Pending,\n AXPSystemStatuses.Completed,\n AXPSystemStatuses.Suspended,\n AXPSystemStatuses.Failed,\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.activate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Inactive,\n title: '@general:statuses.transitions.deactivate',\n },\n {\n from: AXPSystemStatusType.Active,\n to: AXPSystemStatusType.Suspended,\n title: '@general:statuses.transitions.suspend',\n },\n {\n from: AXPSystemStatusType.Suspended,\n to: AXPSystemStatusType.Active,\n title: '@general:statuses.transitions.resume',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Completed,\n title: '@general:statuses.transitions.complete',\n },\n {\n from: AXPSystemStatusType.Pending,\n to: AXPSystemStatusType.Failed,\n title: '@general:statuses.transitions.fail',\n },\n ];\n\n readonly defaultStatus = AXPSystemStatusType.Pending;\n}\n\n//#endregion\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsList } from '../../widgets-names-list';\nimport {\n AXPEntityMasterLayoutView,\n AXPEntityMasterCreateLayoutView,\n AXPEntityMasterUpdateLayoutView,\n AXPEntityMasterSingleLayoutView,\n AXPEntityPropertyGroup,\n AXPEntityProperty,\n AXPEntityTableColumn,\n} from '@acorex/platform/common';\n\nexport interface AXPTitlePluginOptions {\n /**\n * Optional title for the `title` field and column.\n * Can be a raw string or an i18n key. Defaults to '@general:terms.common.title'.\n */\n title?: string;\n /**\n * Optional group ID for the property. Defaults to 'basic-info'.\n */\n groupId?: string;\n /**\n * Whether the field is required. Defaults to true.\n */\n required?: boolean;\n /**\n * Whether to add a column in list view. Defaults to true.\n */\n column?: boolean;\n}\n\nexport const titlePlugin: AXPEntityActionPlugin = {\n name: 'title',\n order: 21,\n apply: (ctx, options?: AXPTitlePluginOptions) => {\n const title = options?.title ?? '@general:terms.common.title';\n const groupId = options?.groupId ?? 'basic-info';\n const required = options?.required ?? true;\n const addColumn = options?.column ?? true;\n\n //#region ---- Ensure Basic Info Group ----\n\n const groups = ctx.groups.list() ?? [];\n if (!groups.some((g) => g.id === groupId)) {\n ctx.groups.add({ id: groupId, title: '@general:terms.interface.basic-info' });\n }\n\n //#endregion\n\n //#region ---- Add Title Property ----\n\n const props = ctx.properties.list();\n if (!props.some((p) => p.name === 'title')) {\n ctx.properties.add({\n name: 'title',\n title,\n groupId,\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: required\n ? [\n {\n rule: 'required',\n },\n ]\n : [],\n options: {\n sort: { enabled: true },\n filter: {\n advance: { enabled: true },\n inline: { enabled: true },\n },\n },\n });\n }\n\n //#endregion\n\n //#region ---- Add Title Column ----\n\n if (addColumn) {\n const columns = ctx.columns.list() ?? [];\n if (!columns.some((c) => c.name === 'title')) {\n ctx.columns.add({\n name: 'title',\n title,\n options: {\n width: '200px',\n visible: true,\n },\n sort: {\n enabled: true,\n },\n });\n }\n }\n\n //#endregion\n\n //#region ---- Update Interface Layouts ----\n\n const ensureLayoutProperty = <T extends AXPEntityMasterLayoutView>(layout: T): T => {\n layout.sections = layout.sections ?? [];\n if (!layout.sections.some((s) => s.id === groupId)) {\n layout.sections.push({ id: groupId, order: 10 });\n }\n\n layout.properties = layout.properties ?? [];\n if (!layout.properties.some((p) => p.name === 'title')) {\n layout.properties.push({\n name: 'title',\n layout: {\n positions: { lg: { colSpan: 12, order: 20 } },\n },\n });\n }\n\n return layout;\n };\n\n ctx.interfaces.master.create.update((create) =>\n ensureLayoutProperty((create ?? { sections: [], properties: [] }) as AXPEntityMasterCreateLayoutView)\n );\n ctx.interfaces.master.modify.update((modify) =>\n ensureLayoutProperty((modify ?? { sections: [], properties: [] }) as AXPEntityMasterUpdateLayoutView)\n );\n ctx.interfaces.master.single.update((single) =>\n ensureLayoutProperty((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as AXPEntityMasterSingleLayoutView)\n );\n\n //#endregion\n },\n};\n\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { titlePlugin } from './title.plugin';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: titlePlugin }],\n})\nexport class AXPTitlePluginModule {}\n\n","import { AXPEntityActionPlugin } from '@acorex/platform/layout/entity';\n\n//#region ---- Types ----\n\nexport interface UniqueFieldsPluginOptions {\n /**\n * Field name(s) to enforce uniqueness on.\n * Can be a single field name or an array of field names for composite uniqueness.\n */\n fields: string | string[];\n\n /**\n * Uniqueness scope:\n * - 'global': Unique across all records\n * - 'tenant': Unique within tenant (requires tenantId field)\n * - 'parent': Unique within parent entity (requires parentField option)\n */\n scope?: 'global' | 'tenant' | 'parent';\n\n /**\n * Parent field name for parent-scoped uniqueness.\n * Required when scope is 'parent'.\n */\n parentField?: string;\n\n /**\n * Custom error message template.\n * Use {{fieldTitle}} placeholder for field title.\n * If not provided, uses default message with field title.\n */\n message?: string;\n}\n\ninterface UniqueFieldConfig {\n fields: string[];\n scope: 'global' | 'tenant' | 'parent';\n parentField?: string;\n message?: string;\n}\n\n//#endregion\n\n//#region ---- Plugin Definition ----\n\n/**\n * Unique Fields Plugin\n * \n * Enforces uniqueness constraints on one or more entity fields.\n * Supports single-field and composite (multiple fields) uniqueness.\n * \n * Usage:\n * ```typescript\n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'email', // Single field\n * scope: 'global'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: ['firstName', 'lastName'], // Composite uniqueness\n * scope: 'tenant'\n * })\n * \n * .applyPlugin(uniqueFieldsPlugin, {\n * fields: 'code',\n * scope: 'parent',\n * parentField: 'categoryId'\n * })\n * ```\n */\nexport const uniqueFieldsPlugin: AXPEntityActionPlugin = {\n name: 'unique-fields',\n order: 55, // After core plugins (45-50), before status management (65-70)\n apply: (ctx, options?: UniqueFieldsPluginOptions) => {\n if (!options || !options.fields) {\n console.warn('[unique-fields-plugin] No fields specified. Plugin will not be applied.');\n return;\n }\n\n // Normalize fields to array\n const fields = Array.isArray(options.fields) ? options.fields : [options.fields];\n if (fields.length === 0) {\n console.warn('[unique-fields-plugin] Empty fields array. Plugin will not be applied.');\n return;\n }\n\n // Validate scope and parentField\n const scope = options.scope ?? 'global';\n if (scope === 'parent' && !options.parentField) {\n console.warn('[unique-fields-plugin] Parent scope requires parentField option. Plugin will not be applied.');\n return;\n }\n\n // Verify all fields exist in entity properties\n const props = ctx.properties.list();\n const missingFields = fields.filter(field => !props.some((p: any) => p.name === field));\n if (missingFields.length > 0) {\n console.warn(\n `[unique-fields-plugin] Fields not found in entity: ${missingFields.join(', ')}. Plugin will not be applied.`\n );\n return;\n }\n\n // Build configuration\n const config: UniqueFieldConfig = {\n fields,\n scope,\n parentField: options.parentField,\n message: options.message,\n };\n\n // Store configuration in entity extensions\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.uniqueFields ??= [];\n (ctx.entity as any).extensions.uniqueFields.push(config);\n\n // Debug logging\n if (typeof console !== 'undefined' && console.debug) {\n console.debug('[unique-fields-plugin] Applied to entity:', ctx.entity.name, 'with config:', config);\n }\n\n // Add client-side validation hint to properties\n // Note: Actual validation will be handled by middleware, but we can add a hint\n // for UI feedback if needed\n fields.forEach(fieldName => {\n const prop = props.find((p: any) => p.name === fieldName);\n if (prop && prop.schema) {\n // Mark schema as unique for potential UI hints\n // Only add if schema already exists (schema is required and must have dataType)\n prop.schema.unique = { enabled: true };\n }\n });\n },\n};\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { uniqueFieldsPlugin } from './unique-fields.plugin';\n\n@NgModule({\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n useValue: uniqueFieldsPlugin,\n multi: true,\n },\n ],\n})\nexport class AXPUniqueFieldsPluginModule {}\n\n","import { Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\n\n//#region ---- Unique Validation Rule Class ----\n\n/**\n * Unique Validation Rule (client-side no-op).\n *\n * Uniqueness is enforced by the backend (entity-validation middleware). This rule is\n * registered so that entity properties with `validations: [{ rule: 'unique' }]` do not\n * trigger \"Invalid rule name: unique\" in the form. On create/update, the backend\n * validates uniqueness and excludes the current record on update.\n *\n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@Injectable()\nexport class UniqueValidationRule implements AXValidationRule {\n get name(): string {\n return 'unique';\n }\n\n async validate(\n value: unknown,\n _options?: AXValidationRuleOptions\n ): Promise<AXValidationRuleResult> {\n return {\n rule: this.name,\n result: true,\n message: '',\n value,\n };\n }\n}\n\n//#endregion\n","import { inject, Injectable } from '@angular/core';\nimport {\n AXValidationRule,\n AXValidationRuleOptions,\n AXValidationRuleResult,\n} from '@acorex/core/validation';\nimport { AXTranslationService } from '@acorex/core/translation';\n\n\n/**\n * Variable Name Validation Pattern\n * \n * Regex pattern that validates variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n * - No spaces or special characters allowed\n */\nexport const VARIABLE_NAME_VALIDATION_PATTERN = '^[a-zA-Z_][a-zA-Z0-9_-]*$';\n\n\n//#region ---- Variable Name Validation Rule Class ----\n\n/**\n * Variable Name Validation Rule Options\n */\nexport interface AXVariableNameValidationRuleOptions extends AXValidationRuleOptions {\n message?: string;\n}\n\n/**\n * Variable Name Validation Rule Class\n * \n * Validates that a field value follows variable naming conventions:\n * - Must start with a letter (a-z, A-Z) or underscore (_)\n * - Can contain letters, numbers, underscores (_), and hyphens (-)\n * - No spaces or special characters allowed\n * \n * Usage in entity definitions:\n * ```typescript\n * validations: [\n * { rule: 'variable-name' }\n * ]\n * ```\n */\n@Injectable()\nexport class VariableNameValidationRule implements AXValidationRule {\n private translationService = inject(AXTranslationService);\n\n\n get name(): string {\n return 'variable-name';\n }\n\n async validate(\n value: any,\n options?: AXVariableNameValidationRuleOptions,\n ): Promise<AXValidationRuleResult> {\n const defaultMessageKey = await this.translationService.translateAsync('@general:terms.validation.messages.variable-name-format');\n\n if (!value || typeof value !== 'string') {\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n\n const pattern = new RegExp(VARIABLE_NAME_VALIDATION_PATTERN);\n const isValid = pattern.test(value);\n\n if (isValid) {\n return {\n rule: this.name,\n result: true,\n message: '',\n value: value,\n };\n }\n\n // Return translation key - UI component will handle translation\n const message = options?.message || defaultMessageKey;\n\n return {\n rule: this.name,\n result: false,\n message: message,\n value: value,\n };\n }\n}\n\n//#endregion\n\n","import { NgModule } from '@angular/core';\nimport { AXValidationModule } from '@acorex/core/validation';\nimport { UniqueValidationRule } from './rules/unique-validation-rule.class';\nimport { VariableNameValidationRule } from './rules/variable-name-validation-rule.class';\n\n//#region ---- Validation Rules Module ----\n\n/**\n * Validation Rules Module\n *\n * Registers custom validation rules globally using AXValidationModule.forChild.\n *\n * - 'variable-name': validates variable naming conventions.\n * - 'unique': client-side no-op; uniqueness is enforced by backend (entity-validation middleware).\n *\n * ```typescript\n * validations: [\n * { rule: 'required' },\n * { rule: 'variable-name' },\n * { rule: 'unique' }\n * ]\n * ```\n */\n@NgModule({\n imports: [\n AXValidationModule.forChild({\n rules: [VariableNameValidationRule, UniqueValidationRule],\n }),\n ],\n exports: [],\n})\nexport class AXPValidationRulesModule {}\n\n//#endregion\n\n","import { AXCalendarService } from \"@acorex/core/date-time\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPDateTimeEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private calendarService = inject(AXCalendarService);\n\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('date', {\n today: () => {\n return this.calendarService.now();\n },\n tomorrow: () => {\n return this.calendarService.create(this.calendarService.now()).add('day', 1).startOf('day').date;\n },\n yesterday: () => {\n return this.calendarService.create(this.calendarService.now()).add('day', -1).startOf('day').date;\n },\n addDays: (date: string, days: number) => {\n return this.calendarService.create(date).add('day', days).date;\n },\n });\n }\n} ","import { AXTranslateOptions, AXTranslationService } from \"@acorex/core/translation\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXPTranslateEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n private translateService = inject(AXTranslationService);\n\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('translate', {\n resolve: async (text:string , options? : AXTranslateOptions) => {\n return await this.translateService.translateAsync(text, options);\n },\n });\n }\n} ","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPCommonSettings, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPCommandMiddleware } from '@acorex/platform/runtime';\nimport { inject } from '@angular/core';\n\n//#region ---- Middleware ----\n\n/**\n * Displays a toast based on command execution outcome.\n */\nexport const commandMessageToastMiddleware: AXPCommandMiddleware = async (input, next) => {\n const toastService = inject(AXToastService);\n const translationService = inject(AXTranslationService);\n const settingService = inject(AXPSettingsService);\n //\n const enableOperationToasts = await settingService.get(AXPCommonSettings.EnableOperationToasts);\n if (!enableOperationToasts) {\n return await next(input);\n }\n const result = await next(input);\n const message = result.message?.text;\n const color = result.message?.type ?? (result.success ? 'success' : 'danger');\n if (message) {\n const title = result.success\n ? await translationService.translateAsync('@general:messages.generic.success.title')\n : await translationService.translateAsync('@general:messages.generic.error.title');\n\n const content =\n typeof message === 'string'\n ? message.startsWith('@')\n ? await translationService.translateAsync(message)\n : message\n : translationService.resolve(message);\n\n toastService.show({\n color: color as AXStyleColorType,\n title: title,\n content: content,\n });\n }\n return result;\n};\n\n//#endregion\n","import { AXPBroadcastEventService } from '@acorex/platform/core';\nimport { AXPEntityEventsKeys } from '@acorex/platform/layout/entity';\nimport { AXPCommandMiddleware } from '@acorex/platform/runtime';\nimport { inject } from '@angular/core';\n\n//#region ---- Middleware ----\n\n/**\n * Dispatches an entity refresh event after successful command execution.\n */\nexport const commandRefreshMiddleware: AXPCommandMiddleware = async (input, next) => {\n const broadcastEventService = inject(AXPBroadcastEventService);\n const result = await next(input);\n\n if (result.success && result.metadata?.['refresh'] !== false) {\n const payload = input as Record<string, unknown> | null | undefined;\n const context = payload ? (payload['__context__'] as Record<string, unknown> | undefined) : undefined;\n const entity = context ? (context['entity'] as string | undefined) : undefined;\n if (entity) {\n const meta = context ? context['meta'] : undefined;\n broadcastEventService.publish(AXPEntityEventsKeys.REFRESH_LAYOUT, {\n name: entity,\n ...(meta !== undefined ? { meta } : {}),\n });\n }\n }\n\n return result;\n};\n\n//#endregion\n","import { NgModule } from '@angular/core';\nimport { provideCommandMiddleware } from '@acorex/platform/runtime';\nimport { commandMessageToastMiddleware } from './command-message-toast.middleware';\nimport { commandRefreshMiddleware } from './command-refresh.middleware';\n\n@NgModule({\n providers: [\n provideCommandMiddleware([commandMessageToastMiddleware, commandRefreshMiddleware]),\n ],\n})\nexport class AXMCommonMiddlewaresModule { }\n\n","export const AXPCommonMenuKeys = {\n Home: 'Common:Menu:Home',\n Administration: 'Common:Menu:Administration',\n Help: 'Common:Menu:Help',\n Configuration: 'Common:Menu:Configuration',\n Contacts: 'Common:Menu:Contacts',\n Platform: 'Common:Menu:Platform',\n /** Administration > Content (Promotions, Page Builder, Dashboards) */\n Content: 'Common:Menu:Administration:Content',\n /** Administration > Workflows (Workflow Definitions, Instances, Studio, Activities) */\n Workflows: 'Common:Menu:Administration:Workflows',\n /** Commerce (Products, Orders, Supplier Products) */\n Commerce: 'Common:Menu:Commerce',\n /** Configuration > Meeting (Meeting Types, Meeting Role Types) */\n Meeting: 'Common:Menu:Configuration:Meeting',\n /** Organization (Teams, Positions, Employees, Leave - merged with Staff) */\n Organization: 'Common:Menu:Organization',\n /** Configuration > Organization (Job Definitions, Employment Types, etc.) */\n OrganizationConfig: 'Common:Menu:Configuration:Organization',\n /** Configuration > Help Desk (Issue Types) */\n HelpDeskConfig: 'Common:Menu:Configuration:HelpDesk',\n /** Configuration > Document Management (Document Types) */\n DocumentManagementConfig: 'Common:Menu:Configuration:DocumentManagement',\n /** Configuration > Forms & Assessments (Question Bank, Questionnaires, Form Templates) */\n FormsAndAssessments: 'Common:Menu:Configuration:FormsAndAssessments',\n /** Configuration > Reservation (Types, Statuses, Classes) */\n ReservationConfig: 'Common:Menu:Configuration:Reservation',\n /** Configuration > Date and Time (Timezones, Calendars, Calendar Event Types) */\n DateAndTime: 'Common:Menu:Configuration:DateAndTime',\n /** Configuration > Region and Locale (Location Types, Geographic Regions, Languages) */\n Region: 'Common:Menu:Configuration:Region',\n /** Configuration > People and Demographics (Personal + Health reference data) */\n PeopleAndDemographics: 'Common:Menu:Configuration:PeopleAndDemographics',\n /** Configuration > Projects (Project + Task reference data) */\n Projects: 'Common:Menu:Configuration:Projects',\n /** Configuration > Scheduling and Events (Meeting + Reservation types) */\n SchedulingAndEvents: 'Common:Menu:Configuration:SchedulingAndEvents',\n /** Configuration > Data and Content (Documents + Data Definitions) */\n DataAndContent: 'Common:Menu:Configuration:DataAndContent',\n /** Configuration > AI Management (models, assists) */\n AiManagementConfig: 'Common:Menu:Configuration:AiManagement',\n /** Plan & Equipment (top-level menu group) */\n PlanEquipment: 'Common:Menu:PlanEquipment',\n\n} as const;\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPHomePageService, AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { RootConfig } from './const';\nimport { AXPCommonMenuKeys } from './menu.keys';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n private homePageService = inject(AXPHomePageService);\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const module = RootConfig.module;\n const appName = this.sessionService.application?.name;\n\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n //\n const homePagePath = this.homePageService.getCurrent().path;\n if (homePagePath) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Home,\n priority: -10,\n text: '@general:terms.interface.navigation.home',\n path: homePagePath,\n icon: 'fa-light fa-grid-2',\n },\n {\n name: 'module-divider',\n priority: 100,\n text: '@general:menus.modules.title',\n type: 'group',\n },\n ]);\n }\n\n // Check if Foundation Data menu exists, create it if not\n const foundationDataMenu = context.find(AXPCommonMenuKeys.Configuration);\n if (!foundationDataMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Configuration,\n priority: 10000001,\n text: '@general:menus.foundation-data.title',\n icon: 'fa-light fa-database',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Date and Time menu exists under Configuration\n const dateAndTimeMenu = context.find(AXPCommonMenuKeys.DateAndTime);\n if (!dateAndTimeMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DateAndTime,\n priority: 8500,\n text: '@general:menus.date-and-time.title',\n icon: 'fa-light fa-clock',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Region menu exists under Configuration\n const regionMenu = context.find(AXPCommonMenuKeys.Region);\n if (!regionMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Region,\n priority: 8600,\n text: '@general:menus.region.title',\n icon: 'fa-light fa-globe',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure People and Demographics menu exists under Configuration\n const peopleAndDemographicsMenu = context.find(AXPCommonMenuKeys.PeopleAndDemographics);\n if (!peopleAndDemographicsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.PeopleAndDemographics,\n priority: 8440,\n text: '@general:menus.people-and-demographics.title',\n icon: 'fa-light fa-user',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Project and Task menu exists under Configuration\n const ProjectMenu = context.find(AXPCommonMenuKeys.Projects);\n if (!ProjectMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.Projects,\n priority: 8450,\n text: '@general:menus.projects.title',\n icon: 'fa-light fa-clipboard-list-check',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Scheduling and Events menu exists under Configuration\n const schedulingAndEventsMenu = context.find(AXPCommonMenuKeys.SchedulingAndEvents);\n if (!schedulingAndEventsMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.SchedulingAndEvents,\n priority: 8930,\n text: '@general:menus.scheduling-and-events.title',\n icon: 'fa-light fa-calendar-days',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // Ensure Data and Content menu exists under Configuration\n const dataAndContentMenu = context.find(AXPCommonMenuKeys.DataAndContent);\n if (!dataAndContentMenu.exists) {\n context.find(AXPCommonMenuKeys.Configuration).addItems([\n {\n name: AXPCommonMenuKeys.DataAndContent,\n priority: 8945,\n text: '@general:menus.data-and-content.title',\n icon: 'fa-light fa-folder-tree',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n const planEquipmentMenu = context.find(AXPCommonMenuKeys.PlanEquipment);\n if (!planEquipmentMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.PlanEquipment,\n priority: 8950,\n text: '@general:menus.plan-equipment.title',\n icon: 'fa-light fa-screwdriver-wrench',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n\n // Check if Administration group exists, create it if not\n const administrationGroup = context.find(AXPCommonMenuKeys.Administration);\n if (!administrationGroup.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Administration,\n priority: 10000002,\n text: '@general:menus.administration.title',\n type: 'menu',\n icon: 'fa-light fa-screwdriver-wrench',\n children: [],\n },\n ]);\n }\n\n // Check if Platform menu exists, create it if not (Applications, Tenants, Subscriptions)\n const platformMenu = context.find(AXPCommonMenuKeys.Platform);\n if (!platformMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Platform,\n priority: 1000,\n text: '@general:menus.platform.title',\n type: 'menu',\n icon: 'fa-light fa-cubes',\n children: [],\n },\n ]);\n }\n\n // Check if Commerce menu exists (Products, Orders, Supplier Products)\n const commerceMenu = context.find(AXPCommonMenuKeys.Commerce);\n if (!commerceMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Commerce,\n priority: 9020,\n text: '@general:menus.commerce.title',\n type: 'menu',\n icon: 'fa-light fa-cart-shopping',\n children: [],\n },\n ]);\n }\n\n // Check if Help menu exists, create it if not\n const helpMenu = context.find(AXPCommonMenuKeys.Help);\n if (!helpMenu.exists) {\n context.addItems([\n {\n name: AXPCommonMenuKeys.Help,\n priority: 100090001,\n text: '@general:menus.help.title',\n icon: 'fa-light fa-circle-question',\n type: 'menu',\n children: [],\n },\n ]);\n }\n\n // const PlanEquipmentMenu = context.find(AXPCommonMenuKeys.PlanEquipmentConfig);\n // if (!PlanEquipmentMenu.exists) {\n // context.addItems([\n // {\n // name: AXPCommonMenuKeys.PlanEquipmentAssets,\n // priority: 100090001,\n // text: '@general:menus.plan-equipment-assets.title',\n // icon: 'fa-light fa-boxes-stacked',\n // type: 'menu',\n // children: [],\n // },\n // {\n // name: AXPCommonMenuKeys.PlanEquipmentMaintenances,\n // priority: 100090001,\n // text: '@general:menus.plan-equipment-maintenances.title',\n // icon: 'fa-light fa-screwdriver-wrench',\n // type: 'menu',\n // children: [],\n // },\n // ]);\n // }\n\n }\n}\n","import { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPPlatformScope, objectKeyValueTransforms } from '@acorex/platform/core';\nimport { AXMLockSystemSettings } from './features/lock-system/settings.keys';\nimport { Injectable, Injector } from '@angular/core';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\n\n@Injectable()\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n\n private readonly translateService = this.injector.get(AXTranslationService);\n constructor(private injector: Injector) {\n }\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n\n const trans = async (key: string) => await this.translateService.translateAsync(`@general:settings.${key}`);\n\n // Find the 'General Settings' group\n const group = context.group('general');\n if (!group) {\n return;\n }\n\n // Add the 'Release Notes' setting\n // group.addSection('lock-system', await trans('general.lock-system.lock.title'), await trans('general.lock-system.lock.description')).addSetting({\n // key: AXMLockSystemSettings.LockSystem, \n // title: await trans('general.lock-system.lock.title'),\n // scope: AXPPlatformScope.Tenant,\n // isInherited: true,\n // defaultValue: false,\n // valueTransforms: objectKeyValueTransforms('id'),\n // widget: {\n // type: AXPWidgetsCatalog.toggle,\n // options: {\n // label: null,\n // }\n // },\n // description: await trans('general.lock-system.lock.description'),\n // })\n\n }\n}\n","import { AXTranslationService } from \"@acorex/core/translation\";\nimport { ALL_DEFAULT_OPERATORS } from \"@acorex/platform/common\";\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from \"@acorex/platform/core\";\nimport { inject } from \"@angular/core\";\n\nexport class AXMFilterOperatorEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n\n\n protected translateService = inject(AXTranslationService, {\n optional: true,\n });\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n\n context.addScope('filter', {\n getTitle: async (operator: string) => {\n //return await this.translateService?.translateAsync(ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '');\n const result = ALL_DEFAULT_OPERATORS.find((o) => o.name === operator)?.title ?? '';\n return result;\n }\n })\n }\n}","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex/platform/core';\nimport { AXPCommonFeatureKeys } from './features.keys';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Common Module Feature Definition Provider.\n * Provides feature definitions for the Common module.\n */\nexport class AXPCommonFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n // Global Search feature\n context.addFeature(AXPCommonFeatureKeys.GlobalSearch, {\n title: '@general:common.features.global-search.title',\n description: '@general:common.features.global-search.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Export feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedExport, {\n title: '@general:common.features.advanced-export.title',\n description: '@general:common.features.advanced-export.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Activity Log feature\n context.addFeature(AXPCommonFeatureKeys.ActivityLog, {\n title: '@general:common.features.activity-log.title',\n description: '@general:common.features.activity-log.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Import feature\n context.addFeature(AXPCommonFeatureKeys.DataImport, {\n title: '@general:common.features.data-import.title',\n description: '@general:common.features.data-import.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Bulk Operations feature\n context.addFeature(AXPCommonFeatureKeys.BulkOperations, {\n title: '@general:common.features.bulk-operations.title',\n description: '@general:common.features.bulk-operations.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Advanced Filtering feature\n context.addFeature(AXPCommonFeatureKeys.AdvancedFiltering, {\n title: '@general:common.features.advanced-filtering.title',\n description: '@general:common.features.advanced-filtering.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n // Data Synchronization feature\n context.addFeature(AXPCommonFeatureKeys.DataSynchronization, {\n title: '@general:common.features.data-synchronization.title',\n description: '@general:common.features.data-synchronization.description',\n defaultValue: false,\n type: 'boolean',\n });\n }\n}\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport {\n AXPMultiSourceDefinitionProvider,\n AXPMultiSourceDefinitionProviderContext,\n AXPMultiSourceDefinition,\n AXPMultiSourceItem,\n AXPMultiSourceType,\n} from '@acorex/platform/layout/entity';\n\n/**\n * Multi-source definition provider for assignment scenarios\n * Supports selecting from: Employee User, Position, Role, Department, Team\n */\n@Injectable()\nexport class AXCAssignmentMultiSourceDefinitionProvider implements AXPMultiSourceDefinitionProvider {\n //#region ---- Public Methods ----\n\n async provide(context: AXPMultiSourceDefinitionProviderContext): Promise<void> {\n // Define sources for assignment\n const sources: AXPMultiSourceItem[] = [\n {\n key: 'employee-user',\n title: '@security-management:users.terms.user',\n icon: 'far fa-user',\n description: '@security-management:users.terms.user-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.User',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'employee-user',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'position',\n title: '@organization-management:positions.terms.position',\n icon: 'far fa-briefcase',\n description: '@organization-management:positions.terms.position-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Position',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'position',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'role',\n title: '@security-management:roles.terms.role',\n icon: 'far fa-user-shield',\n description: '@security-management:roles.terms.role-description',\n type: AXPMultiSourceType.Entity,\n entity: 'SecurityManagement.Role',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'role',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'department',\n title: '@organization-management:departments.terms.department',\n icon: 'far fa-sitemap',\n description: '@organization-management:departments.terms.department-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Department',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'department',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n {\n key: 'team',\n title: '@organization-management:teams.terms.team',\n icon: 'far fa-users',\n description: '@organization-management:teams.terms.team-description',\n type: AXPMultiSourceType.Entity,\n entity: 'OrganizationManagement.Team',\n displayFormat: '{title} ({code})',\n valueTransform: (item: any) => ({\n sourceKey: 'team',\n refId: item.id,\n displayName: item.title || item.name || item.code,\n data: item,\n }),\n },\n ];\n\n const definition: AXPMultiSourceDefinition = {\n name: 'assignment',\n title: '@common:terms.assignment',\n searchStrategy: 'tabs',\n defaultMultiple: true,\n sources,\n };\n\n context.addDefinition(definition);\n }\n\n //#endregion\n}\n\n","import { AXPEntityCommandScope } from '@acorex/platform/common';\nimport {\n actionExists,\n AXPEntityActionPlugin,\n cloneLayoutArrays,\n ensureLayoutPropertyView,\n ensureLayoutSection,\n ensureListActions,\n resolveEntityPluginDetailPageOrder,\n} from '@acorex/platform/layout/entity';\n\n/** How to show attachments in entity single/create/update: as a section (default) or as a separate page. */\nexport type AttachmentsDisplayMode = 'section' | 'page';\n\n/** Component key used when display is 'page'. Register a page component with this key via AXP_PAGE_COMPONENT_PROVIDER. */\nexport const ATTACHMENTS_PAGE_COMPONENT_KEY = 'entity-attachments-page';\n\nexport type AttachmentsPluginOptions = {\n // property name to hold file list, e.g., default is 'attachments'\n field?: string;\n // field and group title\n title?: string;\n // icon for the attachments page (when display is 'page'). Default 'fa-light fa-paperclip'\n icon?: string;\n // where to show attachments: section (inline) or page (separate tab). Default 'section'\n display?: AttachmentsDisplayMode;\n // accept: string (e.g., '.jpg,.png')\n accept?: string;\n // multiple: boolean (default true)\n multiple?: boolean;\n // titleKey: string (i18n key for action title)\n titleKey?: string;\n // label: string (fallback action label)\n label?: string;\n // fileEditable: boolean (default true)\n fileEditable?: boolean;\n /** When true, attachments field and list action run in read-only mode (widget option `readonly`). */\n 'readonly'?: boolean;\n // show edit dialog (name/title/description + plugin hooks) after file select; default false\n showEditDialogAfterSelect?: boolean;\n // enable title and description fields in file edit dialog; default false\n enableTitleDescription?: boolean;\n // file-uploader plugins\n plugins?: { name: string; options?: unknown }[];\n excludePlugins?: string[];\n};\n\n/**\n * Attachments plugin.\n * - Always ensures an attachments group and property; when display is 'section' (default), adds a section to single/create/update layouts.\n * - When display is 'page', adds a page to entity.pages with ATTACHMENTS_PAGE_COMPONENT_KEY; register a page component with that key via AXP_PAGE_COMPONENT_PROVIDER.\n * - Uses provided accept/multiple/fileEditable; others are fixed.\n */\nexport const attachmentsPlugin: AXPEntityActionPlugin = {\n name: 'attachments',\n order: 50,\n apply: (ctx, options?: AttachmentsPluginOptions) => {\n const opts = options ?? {};\n const field = opts.field && opts.field.trim().length > 0 ? opts.field : 'attachments';\n const displayTitle = opts.title && opts.title.trim().length > 0 ? opts.title : '@document-management:terms.common.attachments';\n const displayMode: AttachmentsDisplayMode = opts.display ?? 'section';\n\n // Ensure group and section ids (unique per field)\n const sectionId = `attachments-${field}`;\n const groupIdForProperty = `attachments-${field}`;\n const existingGroups = ctx.groups.list() ?? [];\n if (!existingGroups.some((g: any) => g.id === groupIdForProperty)) {\n ctx.groups.add({ id: groupIdForProperty, title: displayTitle } as any);\n }\n\n // Ensure property exists (using a generic file-uploader interface)\n const props = ctx.properties.list();\n if (!props.some((p: any) => p.name === field)) {\n ctx.properties.add({\n name: field,\n title: displayTitle,\n groupId: groupIdForProperty,\n schema: {\n dataType: 'string',\n interface: {\n type: 'file-uploader',\n options: {\n multiple: opts.multiple ?? true,\n accept: opts.accept,\n readonly: opts['readonly'] ?? false,\n fileEditable: opts.fileEditable ?? true,\n showEditDialogAfterSelect: opts.showEditDialogAfterSelect ?? false,\n enableTitleDescription: opts.enableTitleDescription ?? false,\n fileIds: `{{ Array.isArray(context.eval(\"${field}\")) ? context.eval(\"${field}\") : [context.eval(\"${field}\")] }}`,\n plugins: opts.plugins ?? [],\n excludePlugins: opts.excludePlugins ?? [],\n },\n },\n },\n } as any);\n }\n\n // Ensure column exists\n const cols = ctx.columns.list() ?? [];\n if (!cols?.some((c: any) => c.name === field)) {\n ctx.columns.add({ name: field } as any);\n }\n\n if (displayMode === 'section') {\n const sectionOrder = 8;\n const colSpan = 12;\n ctx.interfaces.master.single.update((single) => {\n const next = cloneLayoutArrays((single ?? { title: ctx.entity.title, sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle, order: 100 } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: sectionOrder } } },\n } as any);\n return next;\n });\n\n ctx.interfaces.master.create.update((create) => {\n const next = cloneLayoutArrays((create ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: 6 } } },\n } as any);\n return next;\n });\n\n ctx.interfaces.master.modify.update((modify) => {\n const next = cloneLayoutArrays((modify ?? { sections: [], properties: [] }) as any);\n ensureLayoutSection(next, { id: sectionId, title: displayTitle } as any);\n ensureLayoutPropertyView(next, {\n name: field,\n layout: { label: { visible: false }, positions: { lg: { colSpan, order: 6 } } },\n } as any);\n return next;\n });\n } else {\n ctx.entity.pages ??= [];\n const pageExists = ctx.entity.pages.some(\n (p: any) => p.componentKey === ATTACHMENTS_PAGE_COMPONENT_KEY && (p as any).field === field,\n );\n const pageOrder = resolveEntityPluginDetailPageOrder(\n { relatedEntities: ctx.entity.relatedEntities, pages: ctx.entity.pages },\n 'attachments',\n {\n componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY,\n field,\n skipPage: pageExists\n ? { componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY, field }\n : undefined,\n },\n );\n const page: any = {\n componentKey: ATTACHMENTS_PAGE_COMPONENT_KEY,\n title: displayTitle,\n icon: opts.icon ?? 'fa-light fa-paperclip',\n layout: { order: pageOrder },\n field,\n };\n if (!pageExists) {\n ctx.entity.pages.push(page);\n } else {\n const pages = ctx.entity.pages as any[];\n const index = pages.findIndex(\n (p) => p.componentKey === ATTACHMENTS_PAGE_COMPONENT_KEY && p.field === field,\n );\n if (index >= 0) {\n pages[index] = { ...pages[index], ...page };\n }\n }\n }\n\n // Ensure list action to open file uploader popup exists\n ensureListActions(ctx);\n ctx.interfaces.update((i) => {\n const actions = (i as any).master.list.actions as any[];\n const cmdName = 'show-file-uploader-popup';\n const actionName = `attachments-${field}`;\n if (!actionExists(actions, cmdName, actionName)) {\n actions.push({\n name: actionName,\n title: opts.titleKey ?? opts.label ?? '@document-management:actions.upload-files',\n command: {\n name: cmdName,\n options: {\n id: '{{ context.eval(\"id\") }}',\n files: `{{ Array.isArray(context.eval(\"${field}\")) ? context.eval(\"${field}\") : [context.eval(\"${field}\")] }}`,\n multiple: opts.multiple ?? true,\n accept: opts.accept ?? '.jpg,.jpeg,.png,.gif,.webp',\n readonly: opts['readonly'] ?? false,\n key: field,\n fileEditable: opts.fileEditable ?? true,\n showEditDialogAfterSelect: opts.showEditDialogAfterSelect ?? false,\n enableTitleDescription: opts.enableTitleDescription ?? false,\n },\n },\n priority: 'secondary',\n type: 'upload',\n scope: AXPEntityCommandScope.Individual,\n });\n }\n return i as any;\n });\n\n // Stamp normalized config for middleware\n (ctx.entity as any).extensions ??= {};\n (ctx.entity as any).extensions.attachments ??= {};\n (ctx.entity as any).extensions.attachments[field] = { title: displayTitle, display: displayMode };\n },\n};\n","import {\n AXPPageComponentDefinition,\n AXPPageComponentProvider,\n} from '@acorex/platform/layout/components';\nimport { Injectable } from '@angular/core';\nimport { ATTACHMENTS_PAGE_COMPONENT_KEY } from '../attachments.plugin';\n\n//#region ---- Attachments Page Component Provider ----\n\n@Injectable()\nexport class AXMAttachmentsPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: ATTACHMENTS_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./attachments-page.component').then((m) => m.AXMAttachmentsPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","import { AXP_ENTITY_ACTION_PLUGIN } from '@acorex/platform/layout/entity';\nimport { NgModule } from '@angular/core';\nimport { attachmentsPlugin } from './attachments.plugin';\nimport { AXMAttachmentsPageComponentProvider } from './attachments-page/attachments-page-component.provider';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex/platform/layout/components';\n\n@NgModule({\n declarations: [],\n imports: [],\n exports: [],\n providers: [{ provide: AXP_ENTITY_ACTION_PLUGIN, multi: true, useValue: attachmentsPlugin },\n { provide: AXP_PAGE_COMPONENT_PROVIDER, multi: true, useClass: AXMAttachmentsPageComponentProvider },\n ],\n})\nexport class AXPAttachmentsPluginModule { }\n","//#region ---- Platform Imports ----\n\nimport { AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER } from '@acorex/platform/core';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { CommonManifest } from './manifest';\nimport { AXP_STATUS_PROVIDERS } from '@acorex/platform/common';\nimport { AXPWidgetsModule } from '@acorex/platform/layout/widgets';\nimport { NgModule } from '@angular/core';\n\n//#endregion\n\n//#region ---- Feature Plugin Modules ----\n\nimport { AXPArchivePluginModule } from './features/archive-plugin';\nimport { AXPHistoryModule } from './features/history-plugin';\nimport { AXPAvatarPluginModule } from './features/avatar-plugin';\nimport { AXPCategoryModule } from './features/category-plugin';\nimport { AXPClonePluginModule } from './features/clone-plugin';\nimport { AXPColorPluginModule } from './features/color-plugin';\nimport { AXPCompareModule } from './features/compare';\nimport { AXPComputedPropertiesModule } from './features/computed-properties/computed-properties.module';\nimport { AXPDescriptionPluginModule } from './features/description-plugin';\nimport { AXPDisablePluginModule } from './features/disable-plugin';\nimport { AXPDefaultPluginModule } from './features/default-plugin';\nimport { AXPGlobalSearchModule } from './features/global-search';\nimport { AXPIconPluginModule } from './features/icon-plugin';\nimport { AXMLockSystemModule } from './features/lock-system/lock-system.module';\nimport { AXPNamePluginModule } from './features/name-plugin';\nimport { AXPNotesPluginModule } from './features/notes-plugin';\nimport { AXPPrimaryPluginModule } from './features/primary-plugin';\nimport { AXPStatusPluginModule } from './features/status';\nimport { AXPTitlePluginModule } from './features/title-plugin';\nimport { AXPUniqueFieldsPluginModule } from './features/unique-fields-plugin';\nimport { AXPValidationRulesModule } from './validations';\n\n//#endregion\n\n//#region ---- Shared Providers & Evaluators ----\n\nimport { AXPDateTimeEvaluatorScopeProvider } from './evaluators/datetime.evaluator-scope.provider';\nimport { AXPTranslateEvaluatorScopeProvider } from './evaluators/translate.evaluator-scope.provider';\nimport { TaskStatusProvider, ApprovalStatusProvider, StateStatusProvider } from './features/status/providers';\n\n//#endregion\n\n//#region ---- Module Providers ----\n\nimport { AXMCommonMiddlewaresModule } from './middlewares/command-middleware.module';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMSettingProvider } from './settings.provider';\nimport { AXMFilterOperatorEvaluatorScopeProvider } from './evaluators/filter/filter-operator-evaluator-scope.provider';\nimport { AXPCommonFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXP_MULTI_SOURCE_DEFINITION_PROVIDER } from '@acorex/platform/layout/entity';\nimport { AXCAssignmentMultiSourceDefinitionProvider } from './multi-source-definitions';\nimport { AXPAttachmentsPluginModule } from './features/attachment-plugin/attachments-plugin.module';\n\n//#endregion\n\n@NgModule({\n imports: [\n //#region ---- Extension & System Plugins ----\n\n AXPCategoryModule,\n AXMLockSystemModule,\n AXPHistoryModule,\n AXPAttachmentsPluginModule,\n //#endregion\n\n //#region ---- Operation Plugins ----\n\n AXPClonePluginModule,\n\n //#endregion\n\n //#region ---- Status Management Plugins ----\n\n AXPArchivePluginModule,\n AXPDisablePluginModule,\n AXPDefaultPluginModule,\n AXPPrimaryPluginModule,\n AXPUniqueFieldsPluginModule,\n\n //#endregion\n\n //#region ---- Property Plugins ----\n\n AXPNamePluginModule,\n AXPTitlePluginModule,\n AXPNotesPluginModule,\n AXPDescriptionPluginModule,\n AXPIconPluginModule,\n AXPColorPluginModule,\n AXPAvatarPluginModule,\n\n //#endregion\n\n //#region ---- Feature Modules ----\n\n AXPGlobalSearchModule,\n AXPCompareModule,\n AXPStatusPluginModule,\n AXPComputedPropertiesModule,\n AXPValidationRulesModule,\n\n //#endregion\n\n //#region ---- Platform Modules ----\n\n AXPWidgetsModule,\n AXMCommonMiddlewaresModule,\n\n //#endregion\n ],\n exports: [],\n declarations: [],\n providers: [\n //#region ---- Menu Provider ----\n\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Settings Provider ----\n\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMSettingProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Expression Evaluator Scope Providers ----\n\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPDateTimeEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXPTranslateEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMFilterOperatorEvaluatorScopeProvider,\n multi: true,\n },\n\n //#endregion\n\n\n //#region ---- Status Providers ----\n\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: TaskStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: ApprovalStatusProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: StateStatusProvider,\n multi: true,\n },\n //#endregion\n\n //#region ---- Module Manifest Provider ----\n\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: CommonManifest,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Feature Definition Provider ----\n\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXPCommonFeatureDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Multi-Source Definition Provider ----\n\n {\n provide: AXP_MULTI_SOURCE_DEFINITION_PROVIDER,\n useClass: AXCAssignmentMultiSourceDefinitionProvider,\n multi: true,\n },\n\n //#endregion\n\n //#region ---- Sample catalog commands (AI utilities) ----\n\n provideCommandSetups([\n {\n key: 'common.get_current_time',\n command: () =>\n import('./tools/get-current-time.command').then((m) => m.CommonGetCurrentTimeCommand),\n },\n ]),\n\n //#endregion\n ],\n})\nexport class AXMCommonModule { }\n","//#region ---- Imports ----\n\nimport { AXPBreadcrumbItem } from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\n\n//#endregion\n\n//#region ---- Config Interface ----\n\n/**\n * Configuration for the resource appointment page.\n * Provide via AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG to customize title, description, breadcrumbs, and board options.\n */\nexport interface AXPResourceAppointmentPageConfig {\n /** Page title (translation key e.g. '@module:feature.page-title' or literal). */\n pageTitle: string;\n /** Optional page description (translation key or literal). */\n pageDescription?: string | null;\n /** Optional page icon (e.g. 'fa-light fa-calendar-lines'). */\n pageIcon?: string | null;\n /** Optional breadcrumb items (in addition to default home). */\n breadcrumbs?: AXPBreadcrumbItem[];\n /** Whether to show resource headers in timeline views. Default true. */\n showResourceHeaders?: boolean;\n /** Whether to show appointments that have no resourceId. Default true. */\n showUnassignedAppointments?: boolean;\n}\n\n//#endregion\n\n//#region ---- Injection Token ----\n\nexport const AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG = new InjectionToken<AXPResourceAppointmentPageConfig>(\n 'AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG',\n);\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPBreadcrumbItem } from '@acorex/platform/core';\nimport { AXPResourceAppointmentComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\n\nimport { ChangeDetectionStrategy, Component, inject, OnInit, signal, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport {\n AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG,\n AXPResourceAppointmentPageConfig,\n} from './resource-appointment-page.config';\n\n//#endregion\n\n@Component({\n selector: 'axp-resource-appointment-page',\n templateUrl: './resource-appointment-page.component.html',\n styleUrls: ['./resource-appointment-page.component.scss'],\n imports: [\n AXTranslationModule,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPResourceAppointmentComponent\n],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXPResourceAppointmentPageComponent,\n },\n ],\n})\nexport class AXPResourceAppointmentPageComponent extends AXPPageLayoutBaseComponent implements OnInit {\n //#region ---- Services & Dependencies ----\n\n private readonly pageConfig = inject(AXP_RESOURCE_APPOINTMENT_PAGE_CONFIG, { optional: true });\n private readonly route = inject(ActivatedRoute);\n\n //#endregion\n\n //#region ---- Route / Params ----\n\n /** Active provider name from route param 'provider-name'. */\n protected readonly providerName = signal<string | undefined>(undefined);\n\n //#endregion\n\n //#region ---- Computed / Config ----\n\n protected get config(): AXPResourceAppointmentPageConfig | null {\n return this.pageConfig ?? null;\n }\n\n protected get showResourceHeaders(): boolean {\n return this.config?.showResourceHeaders ?? true;\n }\n\n protected get showUnassignedAppointments(): boolean {\n return this.config?.showUnassignedAppointments ?? true;\n }\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n const initial = this.route.snapshot.paramMap.get('provider-name') ?? undefined;\n this.providerName.set(initial);\n this.route.paramMap.subscribe((params) => {\n const name = params.get('provider-name') ?? undefined;\n if (name !== this.providerName()) {\n this.providerName.set(name);\n }\n });\n }\n\n //#endregion\n\n //#region ---- Page Metadata Overrides ----\n\n override async getPageTitle(): Promise<string> {\n if (this.config?.pageTitle) {\n const translated = await this.translateService.translateAsync(this.config.pageTitle);\n if (translated !== this.config.pageTitle) return translated;\n return this.config.pageTitle;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-title');\n }\n\n override async getPageDescription(): Promise<string | null> {\n if (this.config?.pageDescription != null && this.config.pageDescription !== '') {\n const translated = await this.translateService.translateAsync(this.config.pageDescription);\n if (translated !== this.config.pageDescription) return translated;\n return this.config.pageDescription;\n }\n return this.translateService.translateAsync('@common:pages.resource-appointment.page-description');\n }\n\n override getPageIcon(): string | null {\n return this.config?.pageIcon ?? null;\n }\n\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return this.config?.breadcrumbs ?? [];\n }\n\n //#endregion\n}\n","<axp-page-layout>\n <!-- <axp-layout-start-side class=\"ax-border-e ax-lightest-surface ax-h-full ax-min-w-0\">\n <axp-layout-header class=\"ax-flex !ax-flex-row ax-items-center ax-justify-center ax-gap-2 ax-border-b\">\n <span class=\"ax-text-sm ax-font-medium\">\n {{ title() || ('@general:terms.resource-appointment' | translate | async) || 'Resource appointment' }}\n </span>\n </axp-layout-header>\n </axp-layout-start-side> -->\n\n <axp-page-content class=\"ax-flex ax-flex-col ax-min-h-0\">\n <axp-resource-appointment\n [showResourceHeaders]=\"showResourceHeaders\"\n [showUnassignedAppointments]=\"showUnassignedAppointments\"\n [providerName]=\"providerName()\"\n class=\"axp-resource-appointment-page__board ax-flex-1 ax-min-h-0\"\n />\n </axp-page-content>\n</axp-page-layout>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3","i2"],"mappings":"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"}