@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,6 +1,6 @@
1
1
  import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';
2
2
  import { AXP_MENU_PROVIDER, AXP_SEARCH_PROVIDER, AXP_STATUS_PROVIDERS, AXPSearchCommandProvider, createEntityCommandOptions, AXPStatusProvider } from '@acorex/platform/common';
3
- import { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER, AXPDataGenerator, resolveMultiLanguageString } from '@acorex/platform/core';
3
+ import { AXP_MODULE_MANIFEST_PROVIDER, provideLazyProvider, AXP_FEATURE_DEFINITION_PROVIDER, AXPDataGenerator } from '@acorex/platform/core';
4
4
  import { AXP_PAGE_COMPONENT_PROVIDER, AXPStandardSectionItemsBuilderComponent } from '@acorex/platform/layout/components';
5
5
  import { AXMEntityCrudServiceImpl, AXP_ENTITY_DEFINITION_LOADER, AXPEntityService } from '@acorex/platform/layout/entity';
6
6
  import { provideCommand, AXPCommandService } from '@acorex/platform/runtime';
@@ -12,7 +12,7 @@ import { AXButtonModule } from '@acorex/components/button';
12
12
  import * as i2 from '@acorex/components/decorators';
13
13
  import { AXDecoratorModule } from '@acorex/components/decorators';
14
14
  import * as i4 from '@acorex/core/translation';
15
- import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
15
+ import { AXTranslationService, resolveMultiLanguageString, AXTranslationModule } from '@acorex/core/translation';
16
16
  import { AXPLayoutBuilderService } from '@acorex/platform/layout/builder';
17
17
  import { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';
18
18
  import * as i3 from '@angular/common';
@@ -32,7 +32,7 @@ const RootConfig = {
32
32
  route: config.route,
33
33
  name: config.module,
34
34
  title: '@asset-management:module.title',
35
- icon: 'fa-light fa-box',
35
+ icon: 'fa-light fa-industry',
36
36
  },
37
37
  entities: {
38
38
  assetSystemHistory: {
@@ -47,14 +47,14 @@ const RootConfig = {
47
47
  source: `${config.module}.Asset`,
48
48
  title: '@asset-management:assets.entities.asset.title',
49
49
  titlePlural: '@asset-management:assets.entities.asset.plural',
50
- icon: 'fa-light fa-boxes-stacked',
50
+ icon: 'fa-light fa-box',
51
51
  },
52
52
  assetType: {
53
53
  name: 'AssetType',
54
54
  source: `${config.module}.AssetType`,
55
55
  title: '@asset-management:assetTypes.entities.assetType.title',
56
56
  titlePlural: '@asset-management:assetTypes.entities.assetType.plural',
57
- icon: 'fa-light fa-boxes-stacked',
57
+ icon: 'fa-light fa-cubes',
58
58
  },
59
59
  assetTypeSection: {
60
60
  name: 'AssetTypeSection',
@@ -68,14 +68,14 @@ const RootConfig = {
68
68
  source: `${config.module}.AssetTypeSectionComponent`,
69
69
  title: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.title',
70
70
  titlePlural: '@asset-management:assetTypeSectionComponents.entities.assetTypeSectionComponent.plural',
71
- icon: 'fa-light fa-table-cells-large',
71
+ icon: 'fa-light fa-puzzle-piece',
72
72
  },
73
73
  assetSystemType: {
74
74
  name: 'AssetSystemType',
75
75
  source: `${config.module}.AssetSystemType`,
76
76
  title: '@asset-management:assetSystemTypes.entities.assetSystemType.title',
77
77
  titlePlural: '@asset-management:assetSystemTypes.entities.assetSystemType.plural',
78
- icon: 'fa-light fa-sitemap',
78
+ icon: 'fa-light fa-diagram-subtask',
79
79
  },
80
80
  assetSystem: {
81
81
  name: 'AssetSystem',
@@ -503,19 +503,19 @@ class AXMAssetManagementEntityProvider {
503
503
  if (moduleName === RootConfig.module.name) {
504
504
  switch (entityName) {
505
505
  case RootConfig.entities.asset.name:
506
- return (await import('./acorex-modules-asset-management-asset.entity-CamZGWTM.mjs')).factory(this.injector);
506
+ return (await import('./acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs')).factory(this.injector);
507
507
  case RootConfig.entities.assetType.name:
508
- return (await import('./acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs')).factory(this.injector);
508
+ return (await import('./acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs')).factory(this.injector);
509
509
  case RootConfig.entities.assetTypeSection.name:
510
- return (await import('./acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs')).factory(this.injector);
510
+ return (await import('./acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs')).factory(this.injector);
511
511
  case RootConfig.entities.assetTypeSectionComponent.name:
512
- return (await import('./acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs')).factory(this.injector);
512
+ return (await import('./acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs')).factory(this.injector);
513
513
  case RootConfig.entities.assetSystemType.name:
514
- return (await import('./acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs')).factory(this.injector);
514
+ return (await import('./acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs')).factory(this.injector);
515
515
  case RootConfig.entities.assetSystem.name:
516
- return (await import('./acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs')).factory(this.injector);
516
+ return (await import('./acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs')).factory(this.injector);
517
517
  case RootConfig.entities.assetSystemHistory.name:
518
- return (await import('./acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs')).factory(this.injector);
518
+ return (await import('./acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs')).factory(this.injector);
519
519
  }
520
520
  }
521
521
  return null;
@@ -587,6 +587,7 @@ var featureDefinition_provider = /*#__PURE__*/Object.freeze({
587
587
 
588
588
  const AXMAssetManagementMenuKeys = {
589
589
  Root: 'AssetManagement:Menu',
590
+ PlanEquipmentAssets: 'AssetManagement:Menu:PlanEquipment:Assets',
590
591
  Assets: 'AssetManagement:Menu:Assets',
591
592
  AssetSystems: 'AssetManagement:Menu:AssetSystems',
592
593
  AssetTypes: 'AssetManagement:Menu:AssetTypes',
@@ -608,71 +609,85 @@ class AXMAssetManagementMenuProvider {
608
609
  }
609
610
  async provide(context) {
610
611
  const module = RootConfig.module;
611
- const assetConfigMenu = context.find(AXPCommonMenuKeys.AssetConfig);
612
- if (!assetConfigMenu.exists) {
612
+ const PLAN_EQUIPMENT_MENU_KEY = 'Configuration:Menu:PlanEquipment';
613
+ const mainAssetsGroup = context.find(AXMAssetManagementMenuKeys.Root);
614
+ if (!mainAssetsGroup.exists) {
615
+ context.find(AXPCommonMenuKeys.PlanEquipment).addItems([
616
+ {
617
+ name: AXMAssetManagementMenuKeys.Root,
618
+ priority: 1,
619
+ text: '@general:menus.assets.title',
620
+ icon: module.icon,
621
+ policy: {
622
+ features: [module.name],
623
+ },
624
+ },
625
+ ]);
626
+ }
627
+ context.find(AXMAssetManagementMenuKeys.Root).addItems([
628
+ {
629
+ name: AXMAssetManagementMenuKeys.Assets,
630
+ text: '@asset-management:assets.menus.root.title',
631
+ path: this.entityService.createPath(module.name, RootConfig.entities.asset.name),
632
+ priority: 5,
633
+ icon: RootConfig.entities.asset.icon,
634
+ policy: {
635
+ features: [module.name],
636
+ },
637
+ },
638
+ {
639
+ name: AXMAssetManagementMenuKeys.AssetSystems,
640
+ text: '@asset-management:assetSystems.menus.root.title',
641
+ path: this.entityService.createPath(module.name, RootConfig.entities.assetSystem.name),
642
+ priority: 20,
643
+ icon: RootConfig.entities.assetSystem.icon,
644
+ policy: {
645
+ features: [module.name],
646
+ },
647
+ },
648
+ ]);
649
+ const planEquipmentMenu = context.find(PLAN_EQUIPMENT_MENU_KEY);
650
+ if (!planEquipmentMenu.exists) {
613
651
  context.find(AXPCommonMenuKeys.Configuration).addItems([
614
652
  {
615
- name: AXPCommonMenuKeys.AssetConfig,
653
+ name: PLAN_EQUIPMENT_MENU_KEY,
616
654
  priority: 9000,
617
- text: '@asset-management:assetSetup.menus.assetSetup.title',
655
+ text: '@general:menus.plan-equipment.title',
618
656
  icon: module.icon,
619
- children: [
620
- {
621
- name: AXMAssetManagementMenuKeys.AssetTypes,
622
- text: '@asset-management:assetTypes.menus.root.title',
623
- path: this.entityService.createPath(module.name, RootConfig.entities.assetType.name),
624
- priority: 10,
625
- icon: RootConfig.entities.assetType.icon,
626
- policy: {
627
- features: [module.name],
628
- },
629
- },
630
- {
631
- name: AXMAssetManagementMenuKeys.AssetSystemTypes,
632
- text: '@asset-management:assetSystemTypes.menus.root.title',
633
- path: this.entityService.createPath(module.name, RootConfig.entities.assetSystemType.name),
634
- priority: 15,
635
- icon: RootConfig.entities.assetSystemType.icon,
636
- policy: {
637
- features: [module.name],
638
- },
639
- },
640
- ],
641
657
  },
642
658
  ]);
643
659
  }
644
- context.addItems([
660
+ const assetsGroup = context.find(AXMAssetManagementMenuKeys.PlanEquipmentAssets);
661
+ if (!assetsGroup.exists) {
662
+ context.find(PLAN_EQUIPMENT_MENU_KEY).addItems([
663
+ {
664
+ name: AXMAssetManagementMenuKeys.PlanEquipmentAssets,
665
+ text: '@general:menus.assets.title',
666
+ icon: 'fa-light fa-boxes-stacked',
667
+ priority: 1,
668
+ },
669
+ ]);
670
+ }
671
+ context.find(AXMAssetManagementMenuKeys.PlanEquipmentAssets).addItems([
645
672
  {
646
- name: AXMAssetManagementMenuKeys.Root,
647
- priority: 9050,
648
- text: '@general:menus.assets.title', //module.title,
649
- icon: module.icon,
650
- // path: this.entityService.createPath(module.name, RootConfig.entities.asset.name),
673
+ name: AXMAssetManagementMenuKeys.AssetTypes,
674
+ text: '@asset-management:assetTypes.menus.root.title',
675
+ path: this.entityService.createPath(module.name, RootConfig.entities.assetType.name),
676
+ priority: 10,
677
+ icon: RootConfig.entities.assetType.icon,
678
+ policy: {
679
+ features: [module.name],
680
+ },
681
+ },
682
+ {
683
+ name: AXMAssetManagementMenuKeys.AssetSystemTypes,
684
+ text: '@asset-management:assetSystemTypes.menus.root.title',
685
+ path: this.entityService.createPath(module.name, RootConfig.entities.assetSystemType.name),
686
+ priority: 15,
687
+ icon: RootConfig.entities.assetSystemType.icon,
651
688
  policy: {
652
689
  features: [module.name],
653
690
  },
654
- children: [
655
- {
656
- name: AXMAssetManagementMenuKeys.AssetTypes,
657
- text: '@asset-management:assets.menus.root.title',
658
- path: this.entityService.createPath(module.name, RootConfig.entities.asset.name),
659
- priority: 10,
660
- icon: RootConfig.entities.asset.icon,
661
- policy: {
662
- features: [module.name],
663
- },
664
- },
665
- {
666
- name: AXMAssetManagementMenuKeys.AssetSystems,
667
- text: '@asset-management:assetSystems.menus.root.title',
668
- path: this.entityService.createPath(module.name, RootConfig.entities.assetSystem.name),
669
- priority: 15,
670
- icon: RootConfig.entities.assetSystem.icon,
671
- policy: {
672
- features: [module.name],
673
- },
674
- },
675
- ],
676
691
  },
677
692
  ]);
678
693
  }
@@ -1030,12 +1045,27 @@ function normalizeAssetTypeSectionBuilderValue(value, assetTypeId) {
1030
1045
  assetTypeSectionId: typeof itemData.assetTypeSectionId === 'string' && itemData.assetTypeSectionId
1031
1046
  ? itemData.assetTypeSectionId
1032
1047
  : id,
1048
+ assetTypeSectionComponentId: typeof itemData.assetTypeSectionComponentId === 'string' && itemData.assetTypeSectionComponentId
1049
+ ? itemData.assetTypeSectionComponentId
1050
+ : undefined,
1033
1051
  assetTypeId: normalizedAssetTypeId,
1034
1052
  assetType: assetTypeRef,
1035
1053
  assetTypeSection: itemData.assetTypeSection,
1036
1054
  roleName: normalizeAssetTypeBuilderLocalizedField(itemData.roleName, `Component ${itemIndex + 1}`),
1037
1055
  count: typeof itemData.count === 'number' ? itemData.count : 1,
1038
1056
  hasMaintenance: itemData.hasMaintenance === true,
1057
+ assetId: typeof itemData.assetId === 'string' && itemData.assetId ? itemData.assetId : undefined,
1058
+ asset: itemData.asset && typeof itemData.asset === 'object'
1059
+ ? {
1060
+ id: typeof itemData.asset.id === 'string'
1061
+ ? (itemData.asset.id ?? '')
1062
+ : '',
1063
+ code: typeof itemData.asset.code === 'string'
1064
+ ? itemData.asset.code
1065
+ : undefined,
1066
+ title: normalizeAssetTypeBuilderLocalizedField(itemData.asset.title, ''),
1067
+ }
1068
+ : undefined,
1039
1069
  };
1040
1070
  }),
1041
1071
  };
@@ -1052,8 +1082,8 @@ class AXMAssetTypeSectionBuilderComponent {
1052
1082
  this.standardRef = viewChild(AXPStandardSectionItemsBuilderComponent, ...(ngDevMode ? [{ debugName: "standardRef" }] : /* istanbul ignore next */ []));
1053
1083
  this.layoutBuilder = inject(AXPLayoutBuilderService);
1054
1084
  this.translationService = inject(AXTranslationService);
1055
- this.disabledSectionPrompt = null;
1056
- this.disabledAddSectionPrompt = null;
1085
+ this.disabledSectionPrompt = false;
1086
+ this.disabledAddSectionPrompt = async () => null;
1057
1087
  this.builderValue = signal({ sections: [] }, ...(ngDevMode ? [{ debugName: "builderValue" }] : /* istanbul ignore next */ []));
1058
1088
  this.standardConfig = computed(() => ({
1059
1089
  mapItemToView: (item, _section) => this.mapItemToView(item),
@@ -1062,7 +1092,13 @@ class AXMAssetTypeSectionBuilderComponent {
1062
1092
  ? (section, value) => this.promptEditSection(section, value)
1063
1093
  : this.disabledSectionPrompt,
1064
1094
  promptAddItems: this.allowAddItems() ? (sectionId, value) => this.promptAddItems(sectionId, value) : undefined,
1065
- promptEditItem: (item, sectionId, value) => this.promptEditItem(item, sectionId, value),
1095
+ promptEditItem: (item, sectionId, value) => this.linkAssetMode()
1096
+ ? this.promptEditLinkedAssetItem(item, sectionId, value)
1097
+ : this.promptEditItem(item, sectionId, value),
1098
+ confirmRemoveSection: this.linkAssetMode() ? async () => false : undefined,
1099
+ confirmRemoveItem: this.linkAssetMode()
1100
+ ? (item, sectionId) => this.confirmRemoveLinkedAssetItem(item, sectionId)
1101
+ : undefined,
1066
1102
  showSectionTechnicalName: false,
1067
1103
  allowReorderSections: this.allowReorderSections(),
1068
1104
  minSectionCount: this.allowAddSection() ? 1 : Number.MAX_SAFE_INTEGER,
@@ -1073,13 +1109,20 @@ class AXMAssetTypeSectionBuilderComponent {
1073
1109
  }), ...(ngDevMode ? [{ debugName: "standardConfig" }] : /* istanbul ignore next */ []));
1074
1110
  this.hideHeaderActions = computed(() => this.options()['hideHeaderActions'] === true, ...(ngDevMode ? [{ debugName: "hideHeaderActions" }] : /* istanbul ignore next */ []));
1075
1111
  this.allowAddSection = computed(() => this.options()['allowAddSection'] !== false, ...(ngDevMode ? [{ debugName: "allowAddSection" }] : /* istanbul ignore next */ []));
1076
- this.allowEditSection = computed(() => this.options()['allowEditSection'] !== false, ...(ngDevMode ? [{ debugName: "allowEditSection" }] : /* istanbul ignore next */ []));
1112
+ this.allowEditSection = computed(() => {
1113
+ if (this.linkAssetMode()) {
1114
+ return false;
1115
+ }
1116
+ return this.options()['allowEditSection'] !== false;
1117
+ }, ...(ngDevMode ? [{ debugName: "allowEditSection" }] : /* istanbul ignore next */ []));
1077
1118
  this.allowAddItems = computed(() => this.options()['allowAddItems'] !== false, ...(ngDevMode ? [{ debugName: "allowAddItems" }] : /* istanbul ignore next */ []));
1078
1119
  this.allowReorderSections = computed(() => {
1079
1120
  const option = this.options()['allowReorderSections'];
1080
1121
  return typeof option === 'boolean' ? option : true;
1081
1122
  }, ...(ngDevMode ? [{ debugName: "allowReorderSections" }] : /* istanbul ignore next */ []));
1082
1123
  this.readonly = computed(() => this.options()['readonly'] === true, ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
1124
+ this.linkAssetMode = computed(() => this.options()['linkAssetMode'] === true, ...(ngDevMode ? [{ debugName: "linkAssetMode" }] : /* istanbul ignore next */ []));
1125
+ this.selectedLinkedAssetTypeId = signal('', ...(ngDevMode ? [{ debugName: "selectedLinkedAssetTypeId" }] : /* istanbul ignore next */ []));
1083
1126
  this.#syncValueToBuilder = effect(() => {
1084
1127
  const normalized = normalizeAssetTypeSectionBuilderValue(this.value(), this.assetTypeId());
1085
1128
  this.builderValue.set(this.toBuilderValue(normalized));
@@ -1196,6 +1239,40 @@ class AXMAssetTypeSectionBuilderComponent {
1196
1239
  const assetTypeName = this.resolveLocalizedTextForDialog(item['assetType']?.name ?? '');
1197
1240
  const count = Number(item['count'] ?? 0);
1198
1241
  const hasMaintenance = item['hasMaintenance'] === true;
1242
+ const linkedAsset = item['asset'];
1243
+ const linkedAssetCode = typeof linkedAsset?.code === 'string' ? linkedAsset.code : '';
1244
+ const linkedAssetTitle = this.resolveLocalizedTextForDialog(linkedAsset?.title ?? '');
1245
+ if (this.linkAssetMode()) {
1246
+ const hasLinkedAsset = !!item['assetId'];
1247
+ const linkedAssetName = linkedAssetTitle || '@asset-management:assets.entities.asset.components.asset-component.no-link';
1248
+ const linkedAssetDisplay = linkedAssetCode ? `${linkedAssetName} (${linkedAssetCode})` : linkedAssetName;
1249
+ return {
1250
+ icon: hasLinkedAsset ? 'fa-light fa-link' : 'fa-light fa-link-slash',
1251
+ iconTone: hasLinkedAsset ? 'easy' : 'hard',
1252
+ title: roleName,
1253
+ name: linkedAssetDisplay,
1254
+ badges: [
1255
+ {
1256
+ text: hasLinkedAsset
1257
+ ? '@asset-management:assets.entities.asset.components.asset-component.assigned'
1258
+ : '@asset-management:assets.entities.asset.components.asset-component.unassigned',
1259
+ variant: hasLinkedAsset ? 'success' : 'warning',
1260
+ },
1261
+ ...(hasLinkedAsset && linkedAssetTitle
1262
+ ? [
1263
+ {
1264
+ text: linkedAssetTitle,
1265
+ variant: 'neutral',
1266
+ },
1267
+ ]
1268
+ : []),
1269
+ {
1270
+ text: assetTypeName,
1271
+ variant: 'neutral',
1272
+ },
1273
+ ],
1274
+ };
1275
+ }
1199
1276
  return {
1200
1277
  icon: 'fa-light fa-cube',
1201
1278
  title: roleName,
@@ -1262,6 +1339,162 @@ class AXMAssetTypeSectionBuilderComponent {
1262
1339
  assetType: dialogValue.assetType,
1263
1340
  };
1264
1341
  }
1342
+ async promptEditLinkedAssetItem(item, _sectionId, _value) {
1343
+ const seed = {
1344
+ assetId: String(item['assetId'] ?? ''),
1345
+ assetTypeId: String(item['assetTypeId'] ?? ''),
1346
+ asset: item['asset'] ?? {
1347
+ id: '',
1348
+ code: '',
1349
+ title: '',
1350
+ },
1351
+ };
1352
+ const result = await this.promptLinkAssetForm(seed);
1353
+ if (!result) {
1354
+ return null;
1355
+ }
1356
+ return {
1357
+ ...item,
1358
+ assetId: result.assetId || undefined,
1359
+ asset: result.assetId ? result.asset : undefined,
1360
+ };
1361
+ }
1362
+ async promptLinkAssetForm(seed) {
1363
+ const title = (await this.translationService.translateAsync('@asset-management:assets.entities.asset.components.asset-component.actions.edit.title')) || 'Edit Component Asset';
1364
+ this.selectedLinkedAssetTypeId.set(seed.assetTypeId);
1365
+ const result = await this.layoutBuilder
1366
+ .create()
1367
+ .dialog((dialog) => {
1368
+ dialog
1369
+ .setTitle(title)
1370
+ .setSize('sm')
1371
+ .setCloseButton(true)
1372
+ .setContext({ ...seed })
1373
+ .content((layout) => {
1374
+ layout.mode('edit');
1375
+ layout.dynamicForm(this.buildLinkAssetFormDefinition());
1376
+ })
1377
+ .setActions((actions) => {
1378
+ actions.cancel('@general:actions.cancel.title').submit('@general:actions.save.title');
1379
+ })
1380
+ .onAction((dialogRef) => {
1381
+ if (dialogRef.action() === 'cancel') {
1382
+ return { success: false };
1383
+ }
1384
+ const context = dialogRef.context();
1385
+ const assetId = String(context.assetId ?? '').trim();
1386
+ const asset = context.asset ?? { id: assetId, code: '', title: '' };
1387
+ return {
1388
+ success: true,
1389
+ value: {
1390
+ assetId,
1391
+ assetTypeId: String(context.assetTypeId ?? ''),
1392
+ asset: {
1393
+ id: String(asset.id ?? assetId),
1394
+ code: String(asset.code ?? ''),
1395
+ title: String(asset.title ?? ''),
1396
+ },
1397
+ },
1398
+ };
1399
+ });
1400
+ })
1401
+ .show();
1402
+ this.selectedLinkedAssetTypeId.set('');
1403
+ return result?.success && result.value ? result.value : null;
1404
+ }
1405
+ async confirmRemoveLinkedAssetItem(item, sectionId) {
1406
+ const hasLinkedAsset = typeof item['assetId'] === 'string' && item['assetId'].length > 0;
1407
+ if (!hasLinkedAsset) {
1408
+ return false;
1409
+ }
1410
+ const deleteTitle = (await this.translationService.translateAsync('@asset-management:assets.entities.asset.components.asset-component.actions.delete.title')) || 'Remove Component Asset';
1411
+ const linkedAsset = item['asset'];
1412
+ const linkedAssetTitle = this.resolveLocalizedTextForDialog(linkedAsset?.title ?? '');
1413
+ const linkedAssetCode = typeof linkedAsset?.code === 'string' ? linkedAsset.code : '';
1414
+ const assetDisplay = linkedAssetTitle || linkedAssetCode || String(item['assetId'] ?? '');
1415
+ const assetLabel = `${assetDisplay}${linkedAssetCode && linkedAssetTitle ? ` (${linkedAssetCode})` : ''}`;
1416
+ const deleteResult = await this.layoutBuilder
1417
+ .create()
1418
+ .dialog((dialog) => {
1419
+ dialog
1420
+ .setTitle(deleteTitle)
1421
+ .setMessage('@general:workflow.confirm-delete')
1422
+ .setSize('sm')
1423
+ .setCloseButton(true)
1424
+ .setContext({ assetLabel })
1425
+ .content((layout) => {
1426
+ layout.mode('edit');
1427
+ layout.dynamicForm(this.buildRemoveLinkedAssetFormDefinition());
1428
+ })
1429
+ .setActions((actions) => {
1430
+ actions.cancel('@general:actions.cancel.title').custom({
1431
+ title: '@general:actions.delete.title',
1432
+ color: 'danger',
1433
+ command: {
1434
+ name: 'delete',
1435
+ options: {
1436
+ validate: false,
1437
+ },
1438
+ },
1439
+ });
1440
+ })
1441
+ .onAction((dialogRef) => {
1442
+ if (dialogRef.action() !== 'delete') {
1443
+ return { success: false };
1444
+ }
1445
+ return { success: true };
1446
+ });
1447
+ })
1448
+ .show();
1449
+ if (deleteResult?.success === true) {
1450
+ this.unlinkLinkedAssetItem(item.id, sectionId);
1451
+ }
1452
+ // Prevent structural row removal; only unlink asset assignment.
1453
+ return false;
1454
+ }
1455
+ buildRemoveLinkedAssetFormDefinition() {
1456
+ const group = {
1457
+ name: 'unlink-asset',
1458
+ title: '@asset-management:assets.entities.asset.components.asset-component.title',
1459
+ parameters: [
1460
+ {
1461
+ path: 'assetLabel',
1462
+ title: '@asset-management:assets.entities.asset.title',
1463
+ widget: {
1464
+ path: 'assetLabel',
1465
+ type: AXPWidgetsCatalog.text,
1466
+ options: {
1467
+ disabled: true,
1468
+ },
1469
+ },
1470
+ },
1471
+ ],
1472
+ };
1473
+ return { groups: [group] };
1474
+ }
1475
+ unlinkLinkedAssetItem(itemId, sectionId) {
1476
+ const nextValue = {
1477
+ sections: this.builderValue().sections.map((section) => {
1478
+ if (section.id !== sectionId) {
1479
+ return section;
1480
+ }
1481
+ return {
1482
+ ...section,
1483
+ items: section.items.map((item) => {
1484
+ if (item.id !== itemId) {
1485
+ return item;
1486
+ }
1487
+ return {
1488
+ ...item,
1489
+ assetId: undefined,
1490
+ asset: undefined,
1491
+ };
1492
+ }),
1493
+ };
1494
+ }),
1495
+ };
1496
+ this.onBuilderValueChange(nextValue);
1497
+ }
1265
1498
  async promptItemForm(mode, seed) {
1266
1499
  const defaultSeed = seed ?? {
1267
1500
  assetTypeId: '',
@@ -1373,6 +1606,76 @@ class AXMAssetTypeSectionBuilderComponent {
1373
1606
  };
1374
1607
  return { groups: [group] };
1375
1608
  }
1609
+ buildLinkAssetFormDefinition() {
1610
+ const currentAssetId = this.options()['mainAssetId'];
1611
+ const selectedAssetTypeId = this.selectedLinkedAssetTypeId();
1612
+ const filtersFromContext = [];
1613
+ const filters = [];
1614
+ if (typeof currentAssetId === 'string' && currentAssetId) {
1615
+ filters.push({ field: 'id', operator: { type: 'notEqual' }, value: currentAssetId });
1616
+ }
1617
+ if (typeof selectedAssetTypeId === 'string' && selectedAssetTypeId) {
1618
+ filters.push({ field: 'assetTypeId', operator: { type: 'equal' }, value: selectedAssetTypeId });
1619
+ }
1620
+ // Optional user filters inside the popup form (asset type + asset type category)
1621
+ const filterAssetTypeId = this.options()['filterAssetTypeId'];
1622
+ if (typeof filterAssetTypeId === 'string' && filterAssetTypeId) {
1623
+ filtersFromContext.push({ field: 'assetTypeId', operator: { type: 'equal' }, value: filterAssetTypeId });
1624
+ }
1625
+ const mergedFilters = [...filters, ...filtersFromContext];
1626
+ const group = {
1627
+ name: 'asset-link',
1628
+ title: '@asset-management:assets.entities.asset.title',
1629
+ parameters: [
1630
+ {
1631
+ path: 'filterAssetTypeId',
1632
+ title: '@asset-management:assetTypes.entities.assetType.title',
1633
+ widget: {
1634
+ path: 'filterAssetTypeId',
1635
+ type: AXPWidgetsCatalog.lookup,
1636
+ options: {
1637
+ entity: `${RootConfig.module.name}.${RootConfig.entities.assetType.name}`,
1638
+ textField: 'title',
1639
+ valueField: 'id',
1640
+ look: 'lookup',
1641
+ allowSearch: true,
1642
+ hasClearButton: true,
1643
+ columns: ['code', 'title'],
1644
+ },
1645
+ },
1646
+ },
1647
+ {
1648
+ path: 'assetId',
1649
+ title: '@asset-management:assets.entities.asset.title',
1650
+ widget: {
1651
+ path: 'assetId',
1652
+ type: AXPWidgetsCatalog.lookup,
1653
+ options: {
1654
+ entity: `${RootConfig.module.name}.${RootConfig.entities.asset.name}`,
1655
+ textField: 'title',
1656
+ valueField: 'id',
1657
+ look: 'lookup',
1658
+ allowSearch: true,
1659
+ hasClearButton: true,
1660
+ columns: ['code', 'title', 'assetTypeId', 'statusId', 'locationId'],
1661
+ expose: [
1662
+ { source: 'id', target: 'asset.id' },
1663
+ { source: 'code', target: 'asset.code' },
1664
+ { source: 'title', target: 'asset.title' },
1665
+ ],
1666
+ ...(mergedFilters.length === 1
1667
+ ? { filter: mergedFilters[0] }
1668
+ : mergedFilters.length > 1
1669
+ ? { filter: { logic: 'and', filters: mergedFilters } }
1670
+ : {}),
1671
+ validations: [{ rule: 'required' }],
1672
+ },
1673
+ },
1674
+ },
1675
+ ],
1676
+ };
1677
+ return { groups: [group] };
1678
+ }
1376
1679
  toFieldDefinition(path, title, widgetType, validations = []) {
1377
1680
  return {
1378
1681
  path,
@@ -1403,6 +1706,9 @@ class AXMAssetTypeSectionBuilderComponent {
1403
1706
  hasMaintenance: item.hasMaintenance,
1404
1707
  assetTypeId: item.assetTypeId,
1405
1708
  assetTypeSectionId: item.assetTypeSectionId || section.id,
1709
+ assetTypeSectionComponentId: item.assetTypeSectionComponentId || item.id,
1710
+ assetId: item.assetId,
1711
+ asset: item.asset,
1406
1712
  })),
1407
1713
  })),
1408
1714
  };
@@ -1439,6 +1745,17 @@ class AXMAssetTypeSectionBuilderComponent {
1439
1745
  roleName: normalizeAssetTypeBuilderLocalizedField(item['roleName'], 'Component'),
1440
1746
  count: Number(item['count'] ?? 1),
1441
1747
  hasMaintenance: item['hasMaintenance'] === true,
1748
+ assetTypeSectionComponentId: String(item['assetTypeSectionComponentId'] ?? ''),
1749
+ assetId: typeof item['assetId'] === 'string' ? item['assetId'] : undefined,
1750
+ asset: item['asset'] && typeof item['asset'] === 'object'
1751
+ ? {
1752
+ id: String(item['asset'].id ?? ''),
1753
+ code: typeof item['asset'].code === 'string'
1754
+ ? (item['asset'].code ?? '')
1755
+ : undefined,
1756
+ title: normalizeAssetTypeBuilderLocalizedField(item['asset'].title, ''),
1757
+ }
1758
+ : undefined,
1442
1759
  };
1443
1760
  }
1444
1761
  resolveLocalizedTextForDialog(value) {
@@ -1487,6 +1804,11 @@ class AXMSaveAssetTypeComponentsCommand {
1487
1804
  const payload = { [field]: value };
1488
1805
  const isAssetTypeComponentsUpdate = entityRef === `${RootConfig.module.name}.${RootConfig.entities.assetType.name}` && field === 'components';
1489
1806
  if (isAssetTypeComponentsUpdate) {
1807
+ const context = input?.__context__;
1808
+ payload['name'] = this.ensureLatinName(context?.name, {
1809
+ fallback: context?.title,
1810
+ id,
1811
+ });
1490
1812
  payload['hasMaintenance'] = this.hasMaintenanceByComponents(value);
1491
1813
  }
1492
1814
  await this.entityService.withEntity(entityRef).data().update(id, payload);
@@ -1513,6 +1835,30 @@ class AXMSaveAssetTypeComponentsCommand {
1513
1835
  hasMaintenanceByComponents(value) {
1514
1836
  return value.sections.some((section) => section.items.some((item) => item.hasMaintenance === true));
1515
1837
  }
1838
+ ensureLatinName(raw, context) {
1839
+ const fromRaw = this.toLatinIdentifier(raw);
1840
+ if (fromRaw) {
1841
+ return fromRaw;
1842
+ }
1843
+ const fromTitle = this.toLatinIdentifier(context?.fallback);
1844
+ if (fromTitle) {
1845
+ return fromTitle;
1846
+ }
1847
+ const fromId = this.toLatinIdentifier(context?.id);
1848
+ if (fromId) {
1849
+ return fromId;
1850
+ }
1851
+ return 'asset_type';
1852
+ }
1853
+ toLatinIdentifier(value) {
1854
+ if (typeof value !== 'string') {
1855
+ return '';
1856
+ }
1857
+ return value
1858
+ .replace(/[^A-Za-z0-9_-]+/g, '_')
1859
+ .replace(/^_+|_+$/g, '')
1860
+ .replace(/_{2,}/g, '_');
1861
+ }
1516
1862
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMSaveAssetTypeComponentsCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1517
1863
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMSaveAssetTypeComponentsCommand, providedIn: 'root' }); }
1518
1864
  }
@@ -1584,6 +1930,7 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1584
1930
  return typeof id === 'string' ? id : undefined;
1585
1931
  }, ...(ngDevMode ? [{ debugName: "targetRecordId" }] : /* istanbul ignore next */ []));
1586
1932
  this.readonly = computed(() => this.readBooleanConfig('readonly'), ...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
1933
+ this.linkAssetMode = computed(() => this.readBooleanConfig('linkAssetMode'), ...(ngDevMode ? [{ debugName: "linkAssetMode" }] : /* istanbul ignore next */ []));
1587
1934
  this.allowAddSection = computed(() => this.readBooleanConfig('allowAddSection', true), ...(ngDevMode ? [{ debugName: "allowAddSection" }] : /* istanbul ignore next */ []));
1588
1935
  this.allowAddItems = computed(() => this.readBooleanConfig('allowAddItems', true), ...(ngDevMode ? [{ debugName: "allowAddItems" }] : /* istanbul ignore next */ []));
1589
1936
  this.allowEditSection = computed(() => this.readBooleanConfig('allowEditSection', true), ...(ngDevMode ? [{ debugName: "allowEditSection" }] : /* istanbul ignore next */ []));
@@ -1591,6 +1938,8 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1591
1938
  this.builderOptions = computed(() => ({
1592
1939
  hideHeaderActions: true,
1593
1940
  readonly: this.readonly(),
1941
+ linkAssetMode: this.linkAssetMode(),
1942
+ mainAssetId: this.targetRecordId(),
1594
1943
  allowAddSection: this.allowAddSection(),
1595
1944
  allowEditSection: this.allowEditSection(),
1596
1945
  allowAddItems: this.allowAddItems(),
@@ -1605,9 +1954,14 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1605
1954
  const ctx = this.context();
1606
1955
  const id = this.sourceRecordId();
1607
1956
  const value = get(ctx, this.fieldName());
1957
+ const linkedValue = get(ctx, this.fieldName());
1958
+ const sourceValue = get(ctx, this.sourceFieldName());
1608
1959
  const sourceField = this.sourceFieldName();
1609
- this.baselineValue.set(value ?? null);
1610
- this.committedValue.set(value ?? null);
1960
+ const immediateValue = this.linkAssetMode()
1961
+ ? this.buildLinkedAssetValue(sourceValue ?? null, linkedValue ?? null)
1962
+ : (value ?? null);
1963
+ this.baselineValue.set(immediateValue);
1964
+ this.committedValue.set(immediateValue);
1611
1965
  untracked(() => this.recompute());
1612
1966
  if (!id) {
1613
1967
  return;
@@ -1621,8 +1975,12 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1621
1975
  .then((record) => {
1622
1976
  if (cancelled)
1623
1977
  return;
1978
+ const targetField = this.fieldName();
1979
+ const targetValue = get(record, targetField);
1624
1980
  const fallbackValue = get(record, sourceField);
1625
- const resolved = this.hasSections(value) ? value : (fallbackValue ?? null);
1981
+ const resolved = this.linkAssetMode()
1982
+ ? this.buildLinkedAssetValue(sourceValue ?? fallbackValue ?? null, linkedValue ?? targetValue ?? null)
1983
+ : (this.hasSections(value) ? value : (fallbackValue ?? null));
1626
1984
  this.baselineValue.set(resolved);
1627
1985
  this.committedValue.set(resolved);
1628
1986
  untracked(() => this.recompute());
@@ -1630,8 +1988,8 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1630
1988
  .catch(() => {
1631
1989
  if (cancelled)
1632
1990
  return;
1633
- this.baselineValue.set(value ?? null);
1634
- this.committedValue.set(value ?? null);
1991
+ this.baselineValue.set(immediateValue);
1992
+ this.committedValue.set(immediateValue);
1635
1993
  untracked(() => this.recompute());
1636
1994
  });
1637
1995
  onCleanup(() => {
@@ -1719,13 +2077,14 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1719
2077
  id,
1720
2078
  entity,
1721
2079
  field,
1722
- value: value ?? { sections: [] },
2080
+ value: this.linkAssetMode() ? this.toAssetComponentValue(value ?? { sections: [] }) : (value ?? { sections: [] }),
2081
+ __context__: this.rootContext(),
1723
2082
  });
1724
2083
  if (result?.success) {
1725
2084
  const saved = value ?? { sections: [] };
1726
2085
  this.baselineValue.set(saved);
1727
2086
  this.committedValue.set(saved);
1728
- this.updateRootContextField(field, saved);
2087
+ this.updateRootContextField(field, this.linkAssetMode() ? this.toAssetComponentValue(saved) : saved);
1729
2088
  this.recompute();
1730
2089
  if (!silent) {
1731
2090
  this.toastService.show({
@@ -1753,6 +2112,85 @@ class AXMAssetTypeSectionBuilderPageComponent extends AXPPageLayoutBaseComponent
1753
2112
  return;
1754
2113
  ctx[field] = value;
1755
2114
  }
2115
+ buildLinkedAssetValue(source, links) {
2116
+ if (!source || !Array.isArray(source.sections)) {
2117
+ return { sections: [] };
2118
+ }
2119
+ const groupedLinks = new Map();
2120
+ for (const link of links ?? []) {
2121
+ const key = String(link.assetTypeSectionComponentId ?? '');
2122
+ if (!key)
2123
+ continue;
2124
+ if (!groupedLinks.has(key))
2125
+ groupedLinks.set(key, []);
2126
+ groupedLinks.get(key).push(link);
2127
+ }
2128
+ return {
2129
+ sections: source.sections.map((section) => ({
2130
+ ...section,
2131
+ items: (section.items ?? []).flatMap((item) => {
2132
+ const componentId = String(item.id ?? '');
2133
+ const count = Math.max(1, Number(item.count ?? 1));
2134
+ const existing = groupedLinks.get(componentId) ?? [];
2135
+ return Array.from({ length: count }).map((_, index) => {
2136
+ const linked = existing[index];
2137
+ return {
2138
+ ...item,
2139
+ id: `${componentId}__slot_${index + 1}`,
2140
+ count: 1,
2141
+ assetTypeSectionComponentId: componentId,
2142
+ roleName: this.withSlotSuffix(item.roleName, index + 1),
2143
+ assetId: linked?.assetId,
2144
+ asset: linked?.asset
2145
+ ? {
2146
+ id: linked.asset.id,
2147
+ code: linked.asset.code,
2148
+ title: linked.asset.title,
2149
+ }
2150
+ : undefined,
2151
+ };
2152
+ });
2153
+ }),
2154
+ })),
2155
+ };
2156
+ }
2157
+ withSlotSuffix(value, slotIndex) {
2158
+ const normalized = normalizeAssetTypeBuilderLocalizedField(value, 'Component');
2159
+ const suffix = `#${slotIndex}`;
2160
+ if (typeof normalized === 'string') {
2161
+ return `${normalized} ${suffix}`;
2162
+ }
2163
+ return Object.fromEntries(Object.entries(normalized).map(([locale, text]) => {
2164
+ const safeText = typeof text === 'string' && text.trim().length > 0 ? text : 'Component';
2165
+ return [locale, `${safeText} ${suffix}`];
2166
+ }));
2167
+ }
2168
+ toAssetComponentValue(value) {
2169
+ const mainAssetId = this.targetRecordId() ?? '';
2170
+ return value.sections.flatMap((section) => (section.items ?? [])
2171
+ .filter((item) => typeof item.assetId === 'string' && item.assetId)
2172
+ .map((item) => ({
2173
+ id: item.id,
2174
+ assetId: String(item.assetId),
2175
+ asset: {
2176
+ id: String(item.asset?.id ?? item.assetId),
2177
+ code: String(item.asset?.code ?? ''),
2178
+ title: String(item.asset?.title ?? ''),
2179
+ },
2180
+ mainAssetId,
2181
+ mainAsset: {
2182
+ id: mainAssetId,
2183
+ code: '',
2184
+ title: '',
2185
+ },
2186
+ assetTypeSectionComponentId: String(item.assetTypeSectionComponentId ?? ''),
2187
+ assetTypeSectionComponent: {
2188
+ id: String(item.assetTypeSectionComponentId ?? ''),
2189
+ code: String(item.assetTypeSectionId ?? ''),
2190
+ title: String(item.roleName ?? ''),
2191
+ },
2192
+ })));
2193
+ }
1756
2194
  async enqueueAutoSave() {
1757
2195
  this.pendingAutoSave = true;
1758
2196
  if (this.autoSaveInFlight)
@@ -1865,5 +2303,5 @@ var index = /*#__PURE__*/Object.freeze({
1865
2303
  * Generated bundle index. Do not edit.
1866
2304
  */
1867
2305
 
1868
- export { ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY as A, RootConfig as R, AXMAssetManagementAssetTypeEntityService as a, ASSET_TYPE_COMPONENTS_SAVE_COMMAND as b, AXMAssetManagementAssetStatusProvider as c, AXMAssetManagementEntityProvider as d, AXMAssetManagementFeatureDefinitionProvider as e, AXMAssetManagementFeatureKeys as f, AXMAssetManagementMenuKeys as g, AXMAssetManagementMenuProvider as h, AXMAssetManagementModule as i, AXMAssetManagementPermissionDefinitionProvider as j, AXMAssetManagementPermissionKeys as k, AXMAssetManagementSearchCommandProvider as l, AXMAssetStatus as m, AXMAssetTypeComponentsPageComponentProvider as n, AXMAssetTypeSectionBuilderComponent as o, AXMAssetTypeSectionBuilderPageComponent as p, AXMSaveAssetTypeComponentsCommand as q, createAssetTypeSectionBuilderDefaultValue as r, normalizeAssetTypeBuilderLocalizedField as s, normalizeAssetTypeSectionBuilderValue as t };
1869
- //# sourceMappingURL=acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs.map
2306
+ export { ASSET_TYPE_COMPONENTS_PAGE_COMPONENT_KEY as A, RootConfig as R, AXMAssetManagementAssetTypeEntityService as a, AXMAssetManagementAssetSystemTypeEntityService as b, ASSET_TYPE_COMPONENTS_SAVE_COMMAND as c, AXMAssetManagementAssetStatusProvider as d, AXMAssetManagementEntityProvider as e, AXMAssetManagementFeatureDefinitionProvider as f, AXMAssetManagementFeatureKeys as g, AXMAssetManagementMenuKeys as h, AXMAssetManagementMenuProvider as i, AXMAssetManagementModule as j, AXMAssetManagementPermissionDefinitionProvider as k, AXMAssetManagementPermissionKeys as l, AXMAssetManagementSearchCommandProvider as m, AXMAssetStatus as n, AXMAssetTypeComponentsPageComponentProvider as o, AXMAssetTypeSectionBuilderComponent as p, AXMAssetTypeSectionBuilderPageComponent as q, AXMSaveAssetTypeComponentsCommand as r, createAssetTypeSectionBuilderDefaultValue as s, normalizeAssetTypeBuilderLocalizedField as t, normalizeAssetTypeSectionBuilderValue as u };
2307
+ //# sourceMappingURL=acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs.map