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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/fesm2022/{acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs → acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs} +260 -80
  2. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs.map +1 -0
  3. package/fesm2022/{acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs → acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs} +14 -19
  4. package/fesm2022/acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs.map +1 -0
  5. package/fesm2022/{acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs → acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs} +52 -8
  6. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs} +49 -7
  8. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs.map → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs → acorex-modules-ai-management-index-CjTjfydP.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs.map → acorex-modules-ai-management-index-CjTjfydP.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs.map → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs.map → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs.map} +1 -1
  17. package/fesm2022/acorex-modules-ai-management.mjs +1 -1
  18. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs} +509 -436
  19. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-assessment-management-index-B2SncZAW.mjs → acorex-modules-assessment-management-index-B2l5Se1l.mjs} +25 -26
  27. package/fesm2022/acorex-modules-assessment-management-index-B2l5Se1l.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs → acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs} +10 -11
  29. package/fesm2022/acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs.map +1 -0
  30. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs} +3 -3
  39. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs} +3 -3
  41. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs.map → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs.map} +1 -1
  46. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  47. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs → acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs} +519 -81
  48. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs.map → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs → acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs} +60 -38
  52. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs → acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs} +6 -48
  56. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs → acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs} +53 -100
  58. package/fesm2022/acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-asset-management-asset.entity-CamZGWTM.mjs → acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs} +66 -56
  60. package/fesm2022/acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs.map → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs.map} +1 -1
  63. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  64. package/fesm2022/acorex-modules-common.mjs +38 -41
  65. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  66. package/fesm2022/acorex-modules-conversation.mjs +1046 -249
  67. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-dashboard-management.mjs +1098 -706
  69. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  70. package/fesm2022/acorex-modules-data-management.mjs +63 -35
  71. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  72. package/fesm2022/acorex-modules-document-management.mjs +101 -57
  73. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  74. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs → acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs} +48 -21
  75. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  77. package/fesm2022/acorex-modules-location-management.mjs +18 -99
  78. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs +7137 -0
  80. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs.map +1 -0
  81. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs → acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs} +3 -3
  96. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs.map +1 -0
  97. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs} +2 -2
  98. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs.map} +1 -1
  99. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs +443 -0
  100. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs.map +1 -0
  101. package/fesm2022/acorex-modules-maintenance-management.mjs +1 -3579
  102. package/fesm2022/acorex-modules-maintenance-management.mjs.map +1 -1
  103. package/fesm2022/acorex-modules-notification-management.mjs +11 -5
  104. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  105. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs +356 -0
  106. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs +181 -0
  108. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs.map +1 -0
  109. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs +359 -0
  110. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs.map +1 -0
  111. package/fesm2022/{acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs → acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs} +33 -29
  112. package/fesm2022/acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs.map +1 -0
  113. package/fesm2022/{acorex-modules-organization-management-company.entity-BohMJQNi.mjs → acorex-modules-organization-management-company.entity-wpNiu8g3.mjs} +6 -8
  114. package/fesm2022/acorex-modules-organization-management-company.entity-wpNiu8g3.mjs.map +1 -0
  115. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs +48 -0
  116. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs.map +1 -0
  117. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs +59 -0
  118. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs.map +1 -0
  119. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs +19 -0
  120. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs.map +1 -0
  121. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs} +2 -2
  122. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs.map → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs.map} +1 -1
  123. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs +95 -0
  124. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs.map +1 -0
  125. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs +274 -0
  126. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs.map +1 -0
  127. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs +193 -0
  128. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs.map +1 -0
  129. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs +1081 -0
  130. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs.map +1 -0
  131. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs +77 -0
  132. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs.map +1 -0
  133. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
  134. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
  135. package/fesm2022/{acorex-modules-organization-management-position.entity-DLPufeWz.mjs → acorex-modules-organization-management-position.entity-BveMCKMd.mjs} +108 -106
  136. package/fesm2022/acorex-modules-organization-management-position.entity-BveMCKMd.mjs.map +1 -0
  137. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs} +25 -29
  138. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs.map +1 -0
  139. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs} +2 -2
  140. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs.map} +1 -1
  141. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs → acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs} +14 -21
  142. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs.map +1 -0
  143. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs +137 -0
  144. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs.map +1 -0
  145. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs} +2 -2
  146. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs.map → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs.map} +1 -1
  147. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs +228 -0
  148. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs → acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs} +68 -8
  150. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs} +2 -2
  152. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs.map → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs.map} +1 -1
  153. package/fesm2022/{acorex-modules-organization-management-team.entity-CGR0UlYl.mjs → acorex-modules-organization-management-team.entity-uVffZPeg.mjs} +100 -37
  154. package/fesm2022/acorex-modules-organization-management-team.entity-uVffZPeg.mjs.map +1 -0
  155. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs +48 -0
  156. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs.map +1 -0
  157. package/fesm2022/acorex-modules-organization-management.mjs +1 -2216
  158. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  159. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs +40 -0
  160. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs.map +1 -0
  161. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs +33 -0
  162. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs.map +1 -0
  163. package/fesm2022/acorex-modules-platform-dev-tools.mjs +14 -94
  164. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  165. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs → acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs} +107 -107
  166. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs.map +1 -0
  167. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  168. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs} +65 -76
  169. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs.map +1 -0
  170. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs} +2 -2
  171. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs.map} +1 -1
  172. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs} +2 -2
  173. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs.map} +1 -1
  174. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs} +2 -2
  175. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs.map} +1 -1
  176. package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
  177. package/fesm2022/acorex-modules-security-management.mjs +269 -190
  178. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  179. package/fesm2022/{acorex-modules-task-management-task-board.page-C1H_GTqy.mjs → acorex-modules-task-management-task-board.page-DA2563QE.mjs} +15 -10
  180. package/fesm2022/acorex-modules-task-management-task-board.page-DA2563QE.mjs.map +1 -0
  181. package/fesm2022/acorex-modules-task-management.mjs +27 -13
  182. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  183. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs +5 -0
  184. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs.map +1 -0
  185. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs} +14 -6
  186. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs.map +1 -0
  187. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs} +31 -16
  188. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs.map +1 -0
  189. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs → acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs} +10 -12
  190. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs.map +1 -0
  191. package/fesm2022/{acorex-modules-workflow-management-index-DWIDQsWq.mjs → acorex-modules-workflow-management-index-C9Qc07oK.mjs} +125 -3
  192. package/fesm2022/acorex-modules-workflow-management-index-C9Qc07oK.mjs.map +1 -0
  193. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs +726 -0
  194. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs.map +1 -0
  195. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs +294 -0
  196. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs.map +1 -0
  197. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs +56 -0
  198. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs.map +1 -0
  199. package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs → acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs} +101 -140
  200. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs.map +1 -0
  201. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs → acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs} +10 -1
  202. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs.map +1 -0
  203. package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs → acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs} +11 -7
  204. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs.map +1 -0
  205. package/fesm2022/acorex-modules-workflow-management.mjs +746 -402
  206. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  207. package/organization-management/README.md +1 -1
  208. package/package.json +2 -2
  209. package/types/acorex-modules-ai-management.d.ts +64 -16
  210. package/types/acorex-modules-asset-management.d.ts +115 -58
  211. package/types/acorex-modules-common.d.ts +2 -4
  212. package/types/acorex-modules-dashboard-management.d.ts +226 -109
  213. package/types/acorex-modules-data-management.d.ts +2 -2
  214. package/types/acorex-modules-document-management.d.ts +1 -2
  215. package/types/acorex-modules-human-capital-management.d.ts +6 -0
  216. package/types/acorex-modules-maintenance-management.d.ts +561 -41
  217. package/types/acorex-modules-notification-management.d.ts +7 -3
  218. package/types/acorex-modules-organization-management.d.ts +52 -107
  219. package/types/acorex-modules-security-management.d.ts +15 -1
  220. package/types/acorex-modules-task-management.d.ts +8 -13
  221. package/types/acorex-modules-workflow-management.d.ts +67 -13
  222. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-assessment-management-index-B2SncZAW.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-asset-management-asset.entity-CamZGWTM.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs +0 -91
  237. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-organization-management-company.entity-BohMJQNi.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs +0 -784
  241. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-organization-management-position.entity-DLPufeWz.mjs.map +0 -1
  243. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs.map +0 -1
  245. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs.map +0 -1
  246. package/fesm2022/acorex-modules-organization-management-team.entity-CGR0UlYl.mjs.map +0 -1
  247. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs.map +0 -1
  248. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs.map +0 -1
  249. package/fesm2022/acorex-modules-task-management-task-board.page-C1H_GTqy.mjs.map +0 -1
  250. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs.map +0 -1
  251. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs.map +0 -1
  252. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs.map +0 -1
  253. package/fesm2022/acorex-modules-workflow-management-index-DWIDQsWq.mjs.map +0 -1
  254. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs.map +0 -1
  255. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs.map +0 -1
  256. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/employee-card/employee-card.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/employee-card/employee-card.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart-host.token.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/default-card/org-chart-default-node-card.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/default-card/org-chart-default-node-card.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/business-unit/org-chart-business-unit-node.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/business-unit/org-chart-business-unit-node.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/company/org-chart-company-node.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/company/org-chart-company-node.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/employee/org-chart-employee-node.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/employee/org-chart-employee-node.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/position/org-chart-position-node.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/position/org-chart-position-node.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/org-chart-node-outlet.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/nodes/org-chart-node-outlet.component.html","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart-vacant-filter.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart.service.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart.page.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/org-chart.page.html"],"sourcesContent":["//#region ---- Imports ----\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { AXPAvatarComponent } from '@acorex/platform/layout/components';\n\n//#endregion\n\n//#region ---- Employee card (org chart node) ----\n\n/**\n * Compact row for org-chart employee nodes: initials avatar, full name, and optional position line.\n */\n@Component({\n selector: 'axm-org-chart-employee-card',\n templateUrl: './employee-card.component.html',\n imports: [AXPAvatarComponent],\n host: {\n class: '--org-chart-person-row',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXMOrgChartEmployeeCardComponent {\n /** When true, shows {@link vacantLabel} and placeholder avatar instead of the name. */\n readonly isVacant = input(false);\n\n /** Resolved display name (e.g. employee full name); ignored when {@link isVacant} is true. */\n readonly fullName = input('');\n\n /** Resolved “Vacant” (or equivalent) label when {@link isVacant} is true. */\n readonly vacantLabel = input<string | undefined>(undefined);\n\n /** Resolved job title, description, or other secondary line; omit or empty to hide. */\n readonly position = input<string | undefined>(undefined);\n\n /** Whether the avatar uses placeholder styling (vacant or missing name). */\n protected readonly avatarPlaceholder = computed(() => this.isVacant() || !this.fullName().trim());\n}\n\n//#endregion\n","<axp-avatar [fullName]=\"fullName()\" [placeholder]=\"avatarPlaceholder()\" [size]=\"44\" />\n<div class=\"--merged-role-text\">\n @if (isVacant()) {\n @if (vacantLabel(); as vacant) {\n <span class=\"--merged-vacant\">{{ vacant }}</span>\n }\n @if (position()) {\n <span class=\"--merged-position\">{{ position() }}</span>\n }\n } @else {\n @if (fullName()) {\n <span class=\"--merged-name\">{{ fullName() }}</span>\n }\n @if (position()) {\n <span class=\"--merged-position\">{{ position() }}</span>\n }\n }\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { AXPMultiLanguageString } from '@acorex/platform/core';\nimport { AXMOrganizationNode } from './org-chart.type';\n\n/**\n * Injected by org chart node components to access colors, i18n labels, and expand/collapse.\n */\nexport interface AXMOrgChartHostApi {\n getNodeColors(color: string): Record<string, string>;\n readonly chartML: {\n vacant: AXPMultiLanguageString;\n directReports: AXPMultiLanguageString;\n teams: AXPMultiLanguageString;\n people: AXPMultiLanguageString;\n positions: AXPMultiLanguageString;\n };\n getTeamsMembershipCount(data: AXMOrganizationNode): number | null;\n /** Subtree / seat strip: BU & company snapshot stats, or `position-ic` seats (1 position; people from vacant state or subtree). */\n getSubtreeRosterCounts(data: AXMOrganizationNode): { people: number; positions: number } | null;\n getNodeInfoItems(data: AXMOrganizationNode): Array<{ label: AXPMultiLanguageString; value: string }>;\n toggleNode(data: AXMOrganizationNode, el?: HTMLDivElement | null): void;\n}\n\nexport const AXM_ORG_CHART_HOST = new InjectionToken<AXMOrgChartHostApi>('AXM_ORG_CHART_HOST');\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXM_ORG_CHART_HOST } from '../../org-chart-host.token';\nimport { AXMOrganizationNode } from '../../org-chart.type';\n\n//#endregion\n\n//#region ---- Component ----\n\n/** Standard icon + title card used when a node is not using a merged template. */\n@Component({\n selector: 'axm-org-chart-default-node-card',\n templateUrl: './org-chart-default-node-card.component.html',\n imports: [AXButtonModule, AXDecoratorModule, AXTranslationModule, AsyncPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMOrgChartDefaultNodeCardComponent {\n protected readonly host = inject(AXM_ORG_CHART_HOST);\n\n readonly data = input.required<AXMOrganizationNode>();\n /** Semantic color token passed to {@link AXMOrgChartHostApi.getNodeColors}. */\n readonly colorKey = input.required<string>();\n}\n\n//#endregion\n","<div #node class=\"--node-container\" [style]=\"host.getNodeColors(colorKey())\">\n <div class=\"--container\">\n <div class=\"--heading-container\">\n <div class=\"--content\">\n <div class=\"--icon\">\n <i class=\"fa-light fa-xl fa-fw\" [class]=\"data().icon\"></i>\n </div>\n <div class=\"--titles\">\n <span class=\"--title\" [title]=\"data().title | translate | async\">{{ data().title | translate | async }}</span>\n @if (data().subtitle) {\n <span class=\"--sub-title\" [title]=\"data().subtitle! | translate | async\">{{\n data().subtitle! | translate | async\n }}</span>\n }\n </div>\n @if (data().children?.length) {\n <div class=\"--badge\">\n <span>{{ data().children?.length ?? 0 }}</span>\n </div>\n }\n </div>\n </div>\n @if (data().description) {\n <div class=\"--body-container\">\n <div class=\"--description\" [class.ax-pb-3]=\"data().children && data().children!.length > 0\">\n <span>{{ data().description | translate | async }}</span>\n </div>\n </div>\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n @if (data().children && data().children!.length > 0) {\n <div class=\"--toggle\">\n <ax-button class=\"ax-xs ax-rounded-sm\" (onClick)=\"host.toggleNode(data(), node)\">\n <ax-icon\n icon=\"fa-solid\"\n [class]=\"data().isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n</div>\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXMOrgChartEmployeeCardComponent } from '../../employee-card/employee-card.component';\nimport { AXM_ORG_CHART_HOST } from '../../org-chart-host.token';\nimport { AXMOrganizationNode } from '../../org-chart.type';\nimport { AXMOrgChartDefaultNodeCardComponent } from '../default-card/org-chart-default-node-card.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/** Business unit node (division / department / branch): merged unit or default card. */\n@Component({\n selector: 'axm-org-chart-business-unit-node',\n templateUrl: './org-chart-business-unit-node.component.html',\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXMOrgChartEmployeeCardComponent,\n AXMOrgChartDefaultNodeCardComponent,\n AXTranslationModule,\n AsyncPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMOrgChartBusinessUnitNodeComponent {\n protected readonly host = inject(AXM_ORG_CHART_HOST);\n\n readonly data = input.required<AXMOrganizationNode>();\n\n protected isRegional(): boolean {\n return this.data().metadata?.['isRegional'] === true;\n }\n\n protected getColorKey(): string {\n return this.isRegional() ? 'accent1' : 'accent2';\n }\n}\n\n//#endregion\n","<div>\n @if (data().metadata?.['chartTemplate'] === 'merged-unit') {\n <div\n #node\n class=\"--node-container --merged-card --merged-unit\"\n [class.--vacant]=\"data().metadata?.['unitHead']?.['vacant']\"\n [style]=\"host.getNodeColors(getColorKey())\"\n >\n <div class=\"--container\">\n <div class=\"--merged-top\">\n <span class=\"--merged-entity-title\" [title]=\"data().title | translate | async\">{{\n data().title | translate | async\n }}</span>\n @if (data().description) {\n <span class=\"--merged-entity-desc\">{{ data().description | translate | async }}</span>\n }\n </div>\n @if (data().metadata?.['unitHead']; as unitHead) {\n <axm-org-chart-employee-card\n [isVacant]=\"unitHead['vacant'] || !unitHead['employeeName']\"\n [fullName]=\"unitHead['employeeName'] ?? ''\"\n [vacantLabel]=\"(host.chartML.vacant | translate | async) || ''\"\n [position]=\"(unitHead['positionTitle'] | translate | async) || ''\"\n />\n }\n @if (host.getSubtreeRosterCounts(data()); as roster) {\n <div class=\"--merged-stats-row\">\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.people }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.people | translate | async }}</span>\n </div>\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.positions }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.positions | translate | async }}</span>\n </div>\n </div>\n }\n @if (host.getTeamsMembershipCount(data()); as teamsCount) {\n <div class=\"--merged-stats\">\n <span class=\"--merged-stat-n\">{{ teamsCount }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.teams | translate | async }}</span>\n </div>\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n @if (data().children && data().children!.length > 0) {\n <div class=\"--toggle\">\n <ax-button class=\"ax-xs ax-rounded-sm\" (onClick)=\"host.toggleNode(data(), node)\">\n <ax-icon\n icon=\"fa-solid\"\n [class]=\"data().isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n } @else {\n <axm-org-chart-default-node-card [data]=\"data()\" [colorKey]=\"getColorKey()\" />\n }\n</div>\n","//#region ---- Imports ----\n\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXMOrgChartEmployeeCardComponent } from '../../employee-card/employee-card.component';\nimport { AXM_ORG_CHART_HOST } from '../../org-chart-host.token';\nimport { AXMOrganizationNode } from '../../org-chart.type';\nimport { AXMOrgChartDefaultNodeCardComponent } from '../default-card/org-chart-default-node-card.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/** Company node: merged executive (CEO block) or default card. */\n@Component({\n selector: 'axm-org-chart-company-node',\n templateUrl: './org-chart-company-node.component.html',\n imports: [AXMOrgChartEmployeeCardComponent, AXMOrgChartDefaultNodeCardComponent, AXTranslationModule, AsyncPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMOrgChartCompanyNodeComponent {\n protected readonly host = inject(AXM_ORG_CHART_HOST);\n\n readonly data = input.required<AXMOrganizationNode>();\n}\n\n//#endregion\n","<div>\n @if (data().metadata?.['chartTemplate'] === 'merged-executive') {\n <div\n #node\n class=\"--node-container --merged-card\"\n [class.--vacant]=\"data().metadata?.['topRole']?.['vacant']\"\n [style]=\"host.getNodeColors('primary')\"\n >\n <div class=\"--container\">\n <div class=\"--merged-top\">\n <span class=\"--merged-entity-title\" [title]=\"data().title | translate | async\">{{\n data().title | translate | async\n }}</span>\n </div>\n @if (data().metadata?.['topRole']; as topRole) {\n <axm-org-chart-employee-card\n [isVacant]=\"topRole['vacant'] || !topRole['employeeName']\"\n [fullName]=\"topRole['employeeName'] ?? ''\"\n [vacantLabel]=\"(host.chartML.vacant | translate | async) || ''\"\n [position]=\"(topRole['positionTitle'] | translate | async) || ''\"\n />\n }\n @if (host.getSubtreeRosterCounts(data()); as roster) {\n <div class=\"--merged-stats-row\">\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.people }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.people | translate | async }}</span>\n </div>\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.positions }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.positions | translate | async }}</span>\n </div>\n </div>\n }\n @if (host.getTeamsMembershipCount(data()); as teamsCount) {\n <div class=\"--merged-stats\">\n <span class=\"--merged-stat-n\">{{ teamsCount }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.teams | translate | async }}</span>\n </div>\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n } @else {\n <axm-org-chart-default-node-card [data]=\"data()\" colorKey=\"primary\" />\n }\n</div>\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXMOrgChartEmployeeCardComponent } from '../../employee-card/employee-card.component';\nimport { AXM_ORG_CHART_HOST } from '../../org-chart-host.token';\nimport { AXMOrganizationNode } from '../../org-chart.type';\nimport { AXMOrgChartDefaultNodeCardComponent } from '../default-card/org-chart-default-node-card.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/** Employee node: compact employee card or default card. */\n@Component({\n selector: 'axm-org-chart-employee-node',\n templateUrl: './org-chart-employee-node.component.html',\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXMOrgChartEmployeeCardComponent,\n AXMOrgChartDefaultNodeCardComponent,\n AXTranslationModule,\n AsyncPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMOrgChartEmployeeNodeComponent {\n protected readonly host = inject(AXM_ORG_CHART_HOST);\n\n readonly data = input.required<AXMOrganizationNode>();\n\n /** Frame color for employee merged cards — distinct from business units (`accent2`). */\n protected getColorKey(): string {\n return 'accent3';\n }\n}\n\n//#endregion\n","<div>\n @if (data().metadata?.['chartTemplate'] === 'employee-card') {\n <div\n #node\n class=\"--node-container --merged-card --merged-employee\"\n [style]=\"host.getNodeColors(getColorKey())\"\n >\n <div class=\"--container\">\n <axm-org-chart-employee-card\n [fullName]=\"(data().title | translate | async) || ''\"\n [position]=\"data().subtitle ? ((data().subtitle! | translate | async) || '') : undefined\"\n />\n @if (host.getTeamsMembershipCount(data()); as teamsCount) {\n <div class=\"--merged-stats\">\n <span class=\"--merged-stat-n\">{{ teamsCount }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.teams | translate | async }}</span>\n </div>\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n @if (data().children && data().children!.length > 0) {\n <div class=\"--toggle\">\n <ax-button class=\"ax-xs ax-rounded-sm\" (onClick)=\"host.toggleNode(data(), node)\">\n <ax-icon\n icon=\"fa-solid\"\n [class]=\"data().isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n } @else {\n <axm-org-chart-default-node-card [data]=\"data()\" colorKey=\"surface\" />\n }\n</div>\n","//#region ---- Imports ----\n\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, ViewEncapsulation } from '@angular/core';\nimport { AXMOrgChartEmployeeCardComponent } from '../../employee-card/employee-card.component';\nimport { AXM_ORG_CHART_HOST } from '../../org-chart-host.token';\nimport { AXMOrganizationNode } from '../../org-chart.type';\nimport { AXMOrgChartDefaultNodeCardComponent } from '../default-card/org-chart-default-node-card.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/** Position node: merged manager, IC seat, or default card. */\n@Component({\n selector: 'axm-org-chart-position-node',\n templateUrl: './org-chart-position-node.component.html',\n imports: [\n AXButtonModule,\n AXDecoratorModule,\n AXMOrgChartEmployeeCardComponent,\n AXMOrgChartDefaultNodeCardComponent,\n AXTranslationModule,\n AsyncPipe,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMOrgChartPositionNodeComponent {\n protected readonly host = inject(AXM_ORG_CHART_HOST);\n\n readonly data = input.required<AXMOrganizationNode>();\n}\n\n//#endregion\n","<div>\n @if (data().metadata?.['chartTemplate'] === 'merged-manager') {\n <div\n #node\n class=\"--node-container --merged-card --merged-manager\"\n [class.--vacant]=\"data().metadata?.['vacant']\"\n [style]=\"host.getNodeColors('accent3')\"\n >\n <div class=\"--container\">\n <div class=\"--merged-top --merged-top-compact\">\n <i class=\"fa-light fa-user-tie fa-fw --merged-type-icon\"></i>\n <span class=\"--merged-entity-title\" [title]=\"data().title | translate | async\">{{\n data().title | translate | async\n }}</span>\n </div>\n <axm-org-chart-employee-card\n [isVacant]=\"!!data().metadata?.['vacant'] || !data().metadata?.['occupant']?.['displayName']\"\n [fullName]=\"data().metadata?.['occupant']?.['displayName'] ?? ''\"\n [vacantLabel]=\"(host.chartML.vacant | translate | async) || ''\"\n [position]=\"\n data().description && !data().metadata?.['vacant'] && data().metadata?.['occupant']?.['displayName']\n ? (data().description! | translate | async) || ''\n : undefined\n \"\n />\n @if (data().metadata?.['stats']; as s) {\n @if (s['directReports'] != null && s['directReports'] > 0) {\n <div class=\"--merged-stats\">\n <span class=\"--merged-stat-n\">{{ s['directReports'] }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.directReports | translate | async }}</span>\n </div>\n }\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n @if (data().children && data().children!.length > 0) {\n <div class=\"--toggle\">\n <ax-button class=\"ax-xs ax-rounded-sm\" (onClick)=\"host.toggleNode(data(), node)\">\n <ax-icon\n icon=\"fa-solid\"\n [class]=\"data().isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n } @else if (data().metadata?.['chartTemplate'] === 'position-ic') {\n <div\n #node\n class=\"--node-container --merged-card --ic-position\"\n [class.--vacant]=\"data().metadata?.['vacant']\"\n [style]=\"host.getNodeColors('accent3')\"\n >\n <div class=\"--container\">\n <div class=\"--heading-container\">\n <div class=\"--content\">\n <div class=\"--icon\">\n <i class=\"fa-light fa-xl fa-fw\" [class]=\"data().icon\"></i>\n </div>\n <div class=\"--titles\">\n <span class=\"--title\" [title]=\"data().title | translate | async\">{{\n data().title | translate | async\n }}</span>\n @if (data().metadata?.['vacant']) {\n <span class=\"--sub-title\">{{ host.chartML.vacant | translate | async }}</span>\n }\n </div>\n @if (data().children?.length) {\n <div class=\"--badge\">\n <span>{{ data().children?.length ?? 0 }}</span>\n </div>\n }\n </div>\n </div>\n @if (host.getSubtreeRosterCounts(data()); as roster) {\n <div class=\"--merged-stats-row\">\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.people }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.people | translate | async }}</span>\n </div>\n <div class=\"--merged-stats-cell\">\n <span class=\"--merged-stat-n\">{{ roster.positions }}</span>\n <span class=\"--merged-stat-label\">{{ host.chartML.positions | translate | async }}</span>\n </div>\n </div>\n }\n @if (host.getNodeInfoItems(data()).length > 0) {\n <div class=\"--merged-info-list\">\n @for (item of host.getNodeInfoItems(data()); track item.label + ':' + item.value) {\n <div class=\"--merged-info-item\">\n <span class=\"--merged-info-label\">{{ item.label | translate | async }}</span>\n <span class=\"--merged-info-value\">{{ item.value }}</span>\n </div>\n }\n </div>\n }\n @if (data().children && data().children!.length > 0) {\n <div class=\"--toggle\">\n <ax-button class=\"ax-xs ax-rounded-sm\" (onClick)=\"host.toggleNode(data(), node)\">\n <ax-icon\n icon=\"fa-solid\"\n [class]=\"data().isExpanded === false ? 'fa-chevron-down' : 'fa-chevron-up'\"\n ></ax-icon>\n </ax-button>\n </div>\n }\n </div>\n </div>\n } @else {\n <axm-org-chart-default-node-card [data]=\"data()\" colorKey=\"accent3\" />\n }\n</div>\n","//#region ---- Imports ----\n\nimport { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { AXMOrgChartNodeType, AXMOrganizationNode } from '../org-chart.type';\nimport { AXMOrgChartBusinessUnitNodeComponent } from './business-unit/org-chart-business-unit-node.component';\nimport { AXMOrgChartCompanyNodeComponent } from './company/org-chart-company-node.component';\nimport { AXMOrgChartEmployeeNodeComponent } from './employee/org-chart-employee-node.component';\nimport { AXMOrgChartPositionNodeComponent } from './position/org-chart-position-node.component';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * Picks the org chart card by node type. Uses a static @switch (not NgComponentOutlet) so\n * components render reliably when the host is created in code and moved into an SVG foreignObject.\n */\n@Component({\n selector: 'axm-org-chart-node-outlet',\n templateUrl: './org-chart-node-outlet.component.html',\n imports: [\n AXMOrgChartCompanyNodeComponent,\n AXMOrgChartBusinessUnitNodeComponent,\n AXMOrgChartPositionNodeComponent,\n AXMOrgChartEmployeeNodeComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'axm-org-chart-node-outlet',\n style: 'display: block; width: 100%; min-height: 1px; box-sizing: border-box;',\n },\n})\nexport class AXMOrgChartNodeOutletComponent {\n protected readonly NodeTypes = AXMOrgChartNodeType;\n\n readonly data = input.required<AXMOrganizationNode>();\n}\n\n//#endregion\n","@switch (data().type) {\n@case (NodeTypes.Company) {\n<axm-org-chart-company-node [data]=\"data()\" />\n} @case (NodeTypes.BusinessUnit) {\n<axm-org-chart-business-unit-node [data]=\"data()\" />\n} @case (NodeTypes.Position) {\n<axm-org-chart-position-node [data]=\"data()\" />\n} @case (NodeTypes.Employee) {\n<axm-org-chart-employee-node [data]=\"data()\" />\n} @default {\n<axm-org-chart-company-node [data]=\"data()\" />\n} }","import { AXMOrganizationNode, AXMOrgChartNodeType } from './org-chart.type';\n\n/**\n * Drops leaf vacant seat position nodes from the persisted chart tree (matches generator behavior when\n * `showVacantLeafSeats` is false).\n */\nexport function omitVacantLeafSeatNodes(root: AXMOrganizationNode): AXMOrganizationNode {\n const clone = structuredClone(root);\n const visit = (node: AXMOrganizationNode): void => {\n if (!node.children?.length) {\n return;\n }\n node.children = node.children.filter((child) => {\n const hideVacantSeat =\n child.type === AXMOrgChartNodeType.Position && child.metadata?.['vacant'] === true;\n return !hideVacantSeat;\n });\n for (const child of node.children) {\n visit(child);\n }\n };\n visit(clone);\n return clone;\n}\n","import { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXLoadingDialogService } from '@acorex/components/loading-dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPExportService, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPCommandService } from '@acorex/platform/runtime';\n\nimport { createMultiLanguageString } from '@acorex/core/translation';\nimport { AXPDataGenerator, AXPPlatformScope } from '@acorex/platform/core';\nimport { inject, Injectable, signal } from '@angular/core';\n\nimport { RootConfig } from '../../const';\nimport {\n AXMOrgChartStructurePayload,\n AXMOrganizationManagementChartEntityModel,\n} from '../../entities/chart/chart.types';\nimport { AXPOrganizationManagementSettings } from '../../settings.keys';\nimport { omitVacantLeafSeatNodes } from './org-chart-vacant-filter';\nimport {\n normalizeVacantLeafSeatsSetting,\n type OrgChartHydratedUiPrefs,\n parseOrgChartMode,\n} from './org-chart-user-ui.helper';\nimport { type OrgChartMode, AXMOrganizationNode, AXMOrgChartNodeType } from './org-chart.type';\n\nexport type { OrgChartMode } from './org-chart.type';\n\n@Injectable()\nexport class AXMOrgChartService {\n private readonly entityService = inject(AXPEntityService);\n private readonly chartData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.chart.name)\n .data<string, AXMOrganizationManagementChartEntityModel>();\n\n private loadingDialog = inject(AXLoadingDialogService);\n private exportService = inject(AXPExportService);\n private translationService = inject(AXTranslationService);\n private commandService = inject(AXPCommandService);\n private readonly settingsService = inject(AXPSettingsService);\n\n private readonly _modesBundle = signal<AXMOrgChartStructurePayload | null>(null);\n private readonly _selectedMode = signal<OrgChartMode>('structure');\n private readonly _showVacantLeafSeats = signal(true);\n\n private readonly _rootNode = signal<AXMOrganizationNode>({\n id: AXPDataGenerator.uuid(),\n type: AXMOrgChartNodeType.Company,\n title: createMultiLanguageString('Company', 'شرکت'),\n });\n\n public readonly rootNode = this._rootNode.asReadonly();\n public readonly selectedMode = this._selectedMode.asReadonly();\n public readonly showVacantLeafSeats = this._showVacantLeafSeats.asReadonly();\n\n /**\n * Applies user prefs resolved before first paint (route resolver). Does not persist.\n */\n applyHydratedUiPrefs(prefs: OrgChartHydratedUiPrefs | undefined): void {\n if (!prefs) {\n return;\n }\n if (prefs.selectedMode !== undefined) {\n this._selectedMode.set(prefs.selectedMode);\n }\n if (prefs.showVacantLeafSeats !== undefined) {\n this._showVacantLeafSeats.set(prefs.showVacantLeafSeats);\n }\n }\n\n /**\n * Applies current mode + vacant visibility from the cached bundle onto {@link rootNode}.\n */\n applyDisplayRoot(): void {\n const bundle = this._modesBundle();\n if (!bundle?.modes) {\n return;\n }\n const modeKey = this._selectedMode();\n let tree = structuredClone(bundle.modes[modeKey]) as AXMOrganizationNode;\n if (!this._showVacantLeafSeats()) {\n tree = omitVacantLeafSeatNodes(tree);\n }\n this._rootNode.set(tree);\n }\n\n public setChartMode(mode: OrgChartMode): void {\n this._selectedMode.set(mode);\n this.applyDisplayRoot();\n this.persistChartMode(mode);\n }\n\n public setShowVacantLeafSeats(value: unknown): void {\n const normalized = normalizeVacantLeafSeatsSetting(value);\n if (normalized === undefined) {\n return;\n }\n this._showVacantLeafSeats.set(normalized);\n this.applyDisplayRoot();\n this.persistShowVacantLeafSeats(normalized);\n }\n\n //#region ---- User chart preferences (settings) ----\n\n /**\n * Reads persisted chart UI preferences into signals (does not persist).\n */\n private async restoreChartUiFromSettings(): Promise<void> {\n try {\n const userScope = this.settingsService.scope(AXPPlatformScope.User);\n const modeRaw = await userScope.get<string | undefined>(\n AXPOrganizationManagementSettings.HierarchyChartMode,\n );\n const mode = parseOrgChartMode(modeRaw);\n if (mode !== undefined) {\n this._selectedMode.set(mode);\n }\n\n const vacantRaw = await userScope.get<unknown>(\n AXPOrganizationManagementSettings.HierarchyChartShowVacantLeafSeats,\n );\n const vacant = normalizeVacantLeafSeatsSetting(vacantRaw);\n if (vacant !== undefined) {\n this._showVacantLeafSeats.set(vacant);\n }\n } catch {\n // Keep constructor defaults when settings are unavailable.\n }\n }\n\n private persistChartMode(mode: OrgChartMode): void {\n void this.settingsService\n .scope(AXPPlatformScope.User)\n .set(AXPOrganizationManagementSettings.HierarchyChartMode, mode)\n .catch(() => {});\n }\n\n private persistShowVacantLeafSeats(value: boolean): void {\n void this.settingsService\n .scope(AXPPlatformScope.User)\n .set(AXPOrganizationManagementSettings.HierarchyChartShowVacantLeafSeats, value)\n .catch(() => {});\n }\n\n //#endregion\n\n public async load(): Promise<void> {\n const first = (\n await this.chartData.query({\n skip: 0,\n take: 1,\n sort: [{ field: 'version', dir: 'desc' }],\n })\n ).items[0];\n\n const structure = first?.structure;\n if (\n structure?.modes?.structure &&\n structure?.modes?.location &&\n structure?.modes?.reporting &&\n structure?.modes?.positionHierarchy\n ) {\n this._modesBundle.set(structure);\n await this.restoreChartUiFromSettings();\n this.applyDisplayRoot();\n return;\n }\n\n await this.generate();\n await this.load();\n }\n\n public async generate(): Promise<void> {\n await this.commandService.execute('OrganizationManagement.OrgChart:Generate', {});\n }\n\n //#region ---- Printing ----\n\n async printChart(element: HTMLElement): Promise<void> {\n const d = this.loadingDialog.show({\n title: 'Printing Organization Chart...',\n mode: 'determinate',\n progressColor: 'primary',\n progressValue: 0,\n status: '0/10',\n text: 'Initializing print process...',\n buttons: [{ text: 'Cancel', color: 'danger', onClick: () => d.close() }],\n });\n\n try {\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.preparing-document'),\n 10,\n '1/10',\n );\n const chartElement = element;\n const { originalStyles, modifiedStyles } = this.expandChart(chartElement);\n\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.rendering-chart-image'),\n 25,\n '2.5/10',\n );\n const blob = await this.exportService.generateBlobFromElement(chartElement, {\n popup: true,\n filter: (node: Node) => !(node instanceof Element && node.classList.contains('--toggle')),\n bgcolor: 'transparent',\n scale: 2,\n quality: 1,\n height: Number.parseInt(modifiedStyles.modifiedHeight),\n width: Number.parseInt(modifiedStyles.modifiedWidth),\n });\n\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.finalizing-image-processing'),\n 50,\n '5/10',\n );\n this.restoreChartStyles(chartElement, originalStyles);\n\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.downloading-image'),\n 75,\n '7.5/10',\n );\n this.exportService.download(blob, 'org-chart.png');\n\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.process-complete'),\n 100,\n '10/10',\n );\n setTimeout(() => d.close(), 1500);\n } catch (err) {\n console.error('Error capturing chart:', err);\n await this.updateStep(\n d,\n await this.translate('@organization-management:organization-chart.states.failed-to-generate-chart-image'),\n 100,\n 'Error',\n 'danger',\n );\n d.close();\n }\n }\n\n private expandChart(chartElement: HTMLElement) {\n const originalStyles = {\n originalOverflow: chartElement.style.overflow,\n originalWidth: chartElement.style.width,\n originalHeight: chartElement.style.height,\n };\n const modifiedStyles = {\n modifiedOverflow: 'visible',\n modifiedWidth: `${chartElement.scrollWidth}px`,\n modifiedHeight: `${chartElement.scrollHeight}px`,\n };\n chartElement.style.overflow = modifiedStyles.modifiedOverflow;\n chartElement.style.width = modifiedStyles.modifiedWidth;\n chartElement.style.height = modifiedStyles.modifiedHeight;\n return { originalStyles, modifiedStyles };\n }\n\n private restoreChartStyles(\n chartElement: HTMLElement,\n originalStyles: { originalOverflow: string; originalWidth: string; originalHeight: string },\n ): void {\n chartElement.style.overflow = originalStyles.originalOverflow;\n chartElement.style.width = originalStyles.originalWidth;\n chartElement.style.height = originalStyles.originalHeight;\n }\n\n private async updateStep(\n dialog: any,\n text: string,\n progress: number,\n status: string,\n color: AXStyleColorType = 'primary',\n ): Promise<void> {\n return new Promise((resolve) => {\n dialog.setProgressColor(color);\n dialog.setProgressText(text);\n dialog.setProgressValue(progress);\n dialog.setProgressStatus(status);\n resolve();\n });\n }\n\n private async translate(key: string): Promise<string> {\n return (await this.translationService.translateAsync(key)) + '...';\n }\n\n //#endregion\n}\n","import { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXPanViewDirective } from '@acorex/cdk/pan-view';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXBreadcrumbsModule } from '@acorex/components/breadcrumbs';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXContextMenuComponent, AXContextMenuItemsClickEvent, AXMenuModule } from '@acorex/components/menu';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTranslationModule, createMultiLanguageString, resolveMultiLanguageString } from '@acorex/core/translation';\nimport {\n AXPActionMenuItem,\n AXPBreadcrumbItem,\n AXPExecuteCommand,\n AXPMultiLanguageString,\n getActionButton,\n} from '@acorex/platform/core';\nimport { AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { CommonModule } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n ElementRef,\n inject,\n Injector,\n LOCALE_ID,\n NgZone,\n signal,\n viewChild,\n ViewContainerRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute, RouterModule } from '@angular/router';\nimport set from 'lodash-es/set';\nimport { RootConfig } from '../../const';\nimport { AXMOrgChartNodeOutletComponent } from './nodes/org-chart-node-outlet.component';\nimport { AXM_ORG_CHART_HOST, type AXMOrgChartHostApi } from './org-chart-host.token';\nimport { AXMOrgChartService, OrgChartMode } from './org-chart.service';\nimport type { OrgChartHydratedUiPrefs } from './org-chart-user-ui.helper';\nimport { AXMOrganizationNode, AXMOrgChartCategory, AXMOrgChartNodeType } from './org-chart.type';\n/**\n * Component for displaying and interacting with an organizational chart.\n */\n@Component({\n templateUrl: './org-chart.page.html',\n styleUrls: ['./org-chart.page.scss'],\n imports: [\n CommonModule,\n FormsModule,\n RouterModule,\n //\n AXMenuModule,\n AXButtonModule,\n AXDropdownButtonModule,\n AXTranslationModule,\n AXDecoratorModule,\n AXPanViewDirective,\n AXLoadingModule,\n AXBreadcrumbsModule,\n AXBadgeModule,\n AXSwitchModule,\n //\n AXPThemeLayoutBlockComponent,\n AXPPageLayoutComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n AXMOrgChartService,\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMOrgChartPage,\n },\n { provide: AXM_ORG_CHART_HOST, useExisting: AXMOrgChartPage },\n ],\n})\nexport class AXMOrgChartPage extends AXPPageLayoutBaseComponent implements AXMOrgChartHostApi {\n protected readonly rootConfig = RootConfig;\n\n private d3!: typeof import('d3');\n\n private treeContainer = viewChild.required<ElementRef<HTMLDivElement>>('chart');\n private parent = viewChild.required<ElementRef<HTMLDivElement>>('parent');\n private contextMenu = viewChild(AXContextMenuComponent);\n private panView = viewChild(AXPanViewDirective);\n\n private ngzone = inject(NgZone);\n private pageInjector = inject(Injector);\n private viewContainerRef = inject(ViewContainerRef);\n // printing is handled by service itself\n protected chartService = inject(AXMOrgChartService);\n\n private readonly route = inject(ActivatedRoute);\n\n private readonly localeId = inject(LOCALE_ID);\n\n constructor() {\n super();\n this.chartService.applyHydratedUiPrefs(\n this.route.snapshot.data['orgChartUi'] as OrgChartHydratedUiPrefs | undefined,\n );\n }\n\n private readonly NODE_STROKE_COLOR = 'rgba(var(--ax-sys-color-primary-400))';\n private readonly LINK_STROKE_WIDTH = 1;\n\n protected isFullscreen = signal(false);\n protected panX = signal(0);\n protected panY = signal(0);\n protected panZoomLevel = signal(100);\n\n protected isChartRendered = false;\n\n protected nodeTypes = [\n { title: 'Company', color: 'primary', icon: 'fal fa-building', category: AXMOrgChartCategory.Company },\n { title: 'Business Unit', color: 'accent2', icon: 'fal fa-sitemap', category: AXMOrgChartCategory.BusinessUnit },\n { title: 'Position', color: 'accent3', icon: 'fal fa-user-tie', category: AXMOrgChartCategory.Position },\n { title: 'Employee', color: 'surface', icon: 'fal fa-address-card', category: AXMOrgChartCategory.Employee },\n ];\n\n /**\n * UI chrome for chart cards; align copy with `organization-chart.organization-chart.nodes` / mock `org-chart-labels`.\n */\n public readonly chartML = {\n vacant: createMultiLanguageString('Vacant', 'خالی'),\n directReports: createMultiLanguageString('Direct reports', 'گزارش مستقیم'),\n teams: createMultiLanguageString('Teams', 'تیم‌ها'),\n people: createMultiLanguageString('People', 'اعضا'),\n positions: createMultiLanguageString('Positions', 'سمت‌ها'),\n unitType: createMultiLanguageString('Unit type', 'نوع واحد'),\n businessUnit: createMultiLanguageString('Business unit', 'واحد سازمانی'),\n location: createMultiLanguageString('Location', 'موقعیت'),\n code: createMultiLanguageString('Code', 'کد'),\n capacity: createMultiLanguageString('Capacity', 'ظرفیت'),\n level: createMultiLanguageString('Level', 'سطح'),\n email: createMultiLanguageString('Email', 'ایمیل'),\n phone: createMultiLanguageString('Phone', 'تلفن'),\n employmentType: createMultiLanguageString('Employment type', 'نوع همکاری'),\n workMode: createMultiLanguageString('Work mode', 'نحوه کار'),\n };\n\n #initialize = afterNextRender(async () => {\n this.d3 = await import('d3');\n\n await this.refresh();\n });\n\n /**\n * Zooms in the chart.\n */\n protected zoomIn() {\n this.panView()?.zoomIn();\n }\n\n /**\n * Zooms out the chart.\n */\n protected zoomOut() {\n this.panView()?.zoomOut();\n }\n\n /**\n * Resets the zoom level and pan position of the chart.\n */\n protected zoomReset() {\n this.panView()?.resetPosition();\n }\n\n /**\n * Toggles fullscreen mode for the chart.\n */\n protected toggleFullscreen() {\n if (this.isFullscreen()) {\n document.exitFullscreen();\n this.isFullscreen.set(false);\n } else {\n this.parent().nativeElement.requestFullscreen();\n this.isFullscreen.set(true);\n }\n document.querySelector(`foreignObject[node=\"node-${this.chartService.rootNode().id}\"]`)?.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n inline: 'center',\n });\n }\n\n /**\n * Calculates the maximum depth of the organizational chart.\n * @param node - The root node of the chart.\n * @returns The maximum depth of the chart.\n */\n private calculateMaxDepth(node: AXMOrganizationNode): number {\n if (!node.children || node.children.length === 0 || node.isExpanded === false) {\n return 1;\n }\n return 1 + Math.max(...node.children.map((child) => this.calculateMaxDepth(child)));\n }\n\n /**\n * Calculates the maximum breadth of the organizational chart.\n * @param node - The root node of the chart.\n * @returns The maximum breadth of the chart.\n */\n private calculateMaxBreadth(node: AXMOrganizationNode): number {\n if (!node.children || node.children.length === 0 || node.isExpanded === false) {\n return 1;\n }\n return node.children.reduce((acc, child) => acc + this.calculateMaxBreadth(child), 0);\n }\n\n /**\n * Creates and renders the organizational chart.\n * @param el - The container element for the chart.\n * @param data - The root node of the organizational chart.\n */\n createChart(el: Element, data: AXMOrganizationNode): void {\n if (!this.d3) {\n return;\n }\n this.ngzone.runOutsideAngular(() => {\n const NODE_WIDTH_BASE = 300;\n const NODE_HEIGHT_BASE = 220;\n const HORIZONTAL_SPACING = 20;\n const VERTICAL_SPACING = 40;\n const NODE_Y_OFFSET = 10;\n\n this.clearChart(el);\n const newSvg = this.d3.select(el).append('svg');\n\n const root = this.d3.hierarchy(data);\n\n root.descendants().forEach((node: any) => {\n if (node.data.isExpanded === false) {\n node.children = undefined;\n }\n });\n\n const treeLayout = this.d3\n .tree<AXMOrganizationNode>()\n .nodeSize([NODE_WIDTH_BASE + HORIZONTAL_SPACING, NODE_HEIGHT_BASE + VERTICAL_SPACING]);\n\n treeLayout(root);\n\n let minX = Infinity,\n maxX = -Infinity,\n minY = Infinity,\n maxY = -Infinity;\n root.descendants().forEach((d: any) => {\n if (d.x < minX) minX = d.x;\n if (d.x > maxX) maxX = d.x;\n if (d.y < minY) minY = d.y;\n if (d.y > maxY) maxY = d.y;\n });\n\n const CONTAINER_WIDTH = maxX - minX + NODE_WIDTH_BASE + 2 * HORIZONTAL_SPACING;\n const CONTAINER_HEIGHT = maxY - minY + NODE_HEIGHT_BASE + 2 * VERTICAL_SPACING;\n\n newSvg.attr('width', CONTAINER_WIDTH).attr('height', CONTAINER_HEIGHT);\n\n const g = newSvg\n .append('g')\n .attr(\n 'transform',\n `translate(${-minX + NODE_WIDTH_BASE / 2 + HORIZONTAL_SPACING / 2}, ${\n -minY + NODE_HEIGHT_BASE / 2 + VERTICAL_SPACING / 2\n })`,\n );\n\n g.selectAll('.axp-chart-node')\n .data(root.descendants())\n .enter()\n .append('foreignObject')\n .attr('class', 'axp-chart-node')\n .attr('node', (d: any) => `node-${d.data.id}`)\n .attr('x', (d: any) => d.x - NODE_WIDTH_BASE / 2)\n .attr('y', (d: any) => d.y - NODE_HEIGHT_BASE / 2 + NODE_Y_OFFSET)\n .attr('width', NODE_WIDTH_BASE)\n .attr('height', NODE_HEIGHT_BASE)\n .each((d: any) => this.renderNodeTemplate(d.data, d.x, d.y));\n\n g.selectAll('.link')\n .data(root.links())\n .enter()\n .append('path')\n .attr('class', 'link')\n .attr('d', (d: any) => {\n const source = d.source;\n const target = d.target;\n const sourceBounds = this.getRenderedNodeBounds(source.data.id);\n const targetBounds = this.getRenderedNodeBounds(target.data.id);\n const EDGE_PADDING = 1;\n const MIN_VERTICAL_GAP = 8;\n\n let sourceBottomY =\n sourceBounds != null\n ? source.y - NODE_HEIGHT_BASE / 2 + NODE_Y_OFFSET + sourceBounds.topOffset + sourceBounds.height\n : source.y;\n let targetTopY =\n targetBounds != null\n ? target.y - NODE_HEIGHT_BASE / 2 + NODE_Y_OFFSET + targetBounds.topOffset\n : target.y - 10;\n\n // Keep connectors outside card bounds and avoid inverted elbows that cut through nodes.\n sourceBottomY += EDGE_PADDING;\n targetTopY -= EDGE_PADDING;\n\n if (sourceBottomY >= targetTopY - MIN_VERTICAL_GAP) {\n sourceBottomY = source.y + NODE_Y_OFFSET;\n targetTopY = target.y - 10;\n }\n\n return `M${source.x},${sourceBottomY}V${(sourceBottomY + targetTopY) / 2}H${target.x}V${targetTopY}`;\n })\n .attr('fill', 'none')\n .attr('stroke', this.NODE_STROKE_COLOR)\n .attr('stroke-width', this.LINK_STROKE_WIDTH)\n .attr('from', (d: any) => `node-${d.source.data.id}`)\n .attr('to', (d: any) => `node-${d.target.data.id}`);\n\n this.contextMenu()?.refresh();\n });\n if (!this.isChartRendered) {\n // document.querySelector(`foreignObject[node=\"node-${data.id}\"] .--heading-container`)?.scrollIntoView({\n // behavior: 'smooth',\n // block: 'center',\n // inline: 'center',\n // });\n this.isChartRendered = true;\n this.panView()?.resetPosition();\n }\n }\n\n /**\n * Reads rendered bounds for a node card inside its foreignObject.\n */\n private getRenderedNodeBounds(nodeId: string | number): { topOffset: number; height: number } | null {\n const foreignObject = document.querySelector(`foreignObject[node=\"node-${nodeId}\"]`) as HTMLElement | null;\n const nodeContainer = foreignObject?.querySelector('.--node-container') as HTMLElement | null;\n if (!foreignObject || !nodeContainer) {\n return null;\n }\n return {\n topOffset: nodeContainer.offsetTop,\n height: nodeContainer.offsetHeight,\n };\n }\n\n /**\n * Renders the node template for a given organizational node.\n * @param data - The node data.\n * @param x - The x-coordinate of the node.\n * @param y - The y-coordinate of the node.\n */\n private renderNodeTemplate(data: AXMOrganizationNode, _x: number, _y: number): void {\n if (data.type == null) {\n set(data, 'type', AXMOrgChartNodeType.Company);\n }\n set(data, 'category', data.type);\n\n // D3 runs inside runOutsideAngular; created views must be updated inside the zone.\n this.ngzone.run(() => {\n // Dynamic subviews can use an injector that does not inherit the page `providers`.\n // Bridge `AXM_ORG_CHART_HOST` explicitly so child node components can inject it.\n const nodeTreeInjector = Injector.create({\n parent: this.pageInjector,\n providers: [{ provide: AXM_ORG_CHART_HOST, useValue: this as AXMOrgChartHostApi }],\n });\n\n const ref: ComponentRef<AXMOrgChartNodeOutletComponent> = this.viewContainerRef.createComponent(\n AXMOrgChartNodeOutletComponent,\n { injector: nodeTreeInjector },\n );\n ref.setInput('data', data);\n\n const nodeElement = this.d3.select(this.treeContainer().nativeElement).select(`[node=\"node-${data.id}\"]`);\n const element = nodeElement.node() as HTMLElement | null;\n if (element) {\n element.appendChild(ref.location.nativeElement);\n ref.changeDetectorRef.detectChanges();\n } else {\n ref.destroy();\n }\n });\n }\n\n /**\n * Toggles the expansion state of a node.\n * @param data - The node data.\n * @param el - The HTML element representing the node.\n */\n public toggleNode(data: AXMOrganizationNode, _el?: HTMLDivElement | null) {\n data.isExpanded = data.isExpanded === undefined ? false : !data.isExpanded;\n this.createChart(this.treeContainer().nativeElement, this.chartService.rootNode());\n // el.scrollIntoView({\n // behavior: 'smooth',\n // });\n }\n\n /**\n * Clears the chart from the container element.\n * @param el - The container element.\n */\n private clearChart(el: Element): void {\n if (this.d3) {\n this.d3.select(el).select('svg').remove();\n this.viewContainerRef.clear();\n }\n }\n\n private redrawChart(): void {\n if (!this.d3 || !this.treeContainer()?.nativeElement) {\n return;\n }\n this.createChart(this.treeContainer().nativeElement, this.chartService.rootNode());\n }\n\n private async refresh() {\n if (this.d3) {\n await this.chartService.load();\n this.redrawChart();\n }\n }\n\n protected onVacantLeafSeatsChange(event: AXValueChangedEvent<boolean>): void {\n if (!event.isUserInteraction) {\n return;\n }\n this.chartService.setShowVacantLeafSeats(event.value);\n this.redrawChart();\n }\n\n //#region Context Menu\n\n // protected async handleContextMenuOnOpening(e: AXContextMenuOpeningEvent) {\n // const node = get(e.targetElement, '__data__.data') as any as AXMOrganizationNode;\n // const allowedAddItems = await this.chartService.getAllowedAddMenuItems(node);\n // const allowDelete = node.type != AXMOrganizationNodeType.Company;\n // const isPasteAvailable = await this.chartService.isPasteAvailable();\n // const allowPaste = await this.chartService.allowPaste(node);\n // //\n // if (allowedAddItems.length) {\n // e.items.push({\n // text: 'Add New',\n // icon: 'fa-light fa-plus',\n // items: allowedAddItems,\n // break: allowDelete,\n // });\n // }\n // //\n // if (allowDelete) {\n // e.items.push({\n // name: 'cut',\n // text: 'Cut',\n // icon: 'fa-light fa-cut',\n // data: node,\n // });\n // e.items.push({\n // name: 'copy',\n // text: 'Copy',\n // icon: 'fa-light fa-copy',\n // data: node,\n // break: !isPasteAvailable,\n // });\n // }\n // if (isPasteAvailable) {\n // e.items.push({\n // name: 'paste',\n // text: 'Paste',\n // icon: 'fa-light fa-paste',\n // data: node,\n // break: true,\n // disabled: !allowPaste,\n // });\n // }\n // //\n // if (allowDelete) {\n // e.items.push({\n // name: 'remove',\n // text: 'Remove',\n // color: 'danger',\n // icon: 'fa-light fa-trash-can',\n // data: node,\n // });\n // }\n // //\n // if (e.items.length == 0) {\n // e.canceled = true;\n // }\n // }\n\n protected async handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {}\n\n //#endregion\n\n /**\n * Prints the organizational chart.\n */\n protected async printChart() {\n let [panX, panY, panZoomLevel] = [this.panX(), this.panY(), this.panZoomLevel()];\n (this.panX.set(0), this.panY.set(0), this.panZoomLevel.set(100));\n await this.chartService.printChart(this.treeContainer().nativeElement);\n (this.panX.set(panX), this.panY.set(panY), this.panZoomLevel.set(panZoomLevel));\n }\n\n /**\n * Gets the node colors based on the provided color.\n * @param color - The color to use for the node.\n * @returns An object containing the node's background, text, and border colors.\n */\n public getNodeColors(color: string) {\n if (color.includes('surface')) {\n return {\n '--node-bg-color': `var(--ax-sys-color-${color})`,\n '--node-text-color': `var(--ax-sys-color-on-${color})`,\n '--node-border-color': `var(--ax-sys-color-border-${color})`,\n };\n }\n return {\n '--node-bg-color': `var(--ax-sys-color-${color}-surface)`,\n '--node-text-color': `var(--ax-sys-color-on-${color}-surface)`,\n '--node-border-color': `var(--ax-sys-color-border-${color}-surface)`,\n };\n }\n\n public getSubtreeRosterCounts(data: AXMOrganizationNode): { people: number; positions: number } | null {\n if (\n data.type === AXMOrgChartNodeType.Position &&\n data.metadata?.['chartTemplate'] === 'position-ic'\n ) {\n const stats = data.metadata?.['stats'] as Record<string, unknown> | undefined;\n const subtreePeopleRaw = stats?.['subtreePeople'];\n let people: number;\n if (typeof subtreePeopleRaw === 'number' && Number.isFinite(subtreePeopleRaw)) {\n people = Math.max(0, Math.floor(subtreePeopleRaw));\n } else if (data.metadata?.['vacant'] === true) {\n people = 0;\n } else {\n const childCount = data.children?.length ?? 0;\n people = childCount > 0 ? childCount : 1;\n }\n /** One catalog seat row in the chart. */\n return { people, positions: 1 };\n }\n if (data.type !== AXMOrgChartNodeType.BusinessUnit && data.type !== AXMOrgChartNodeType.Company) {\n return null;\n }\n if (data.metadata?.['isRegional'] === true) {\n return null;\n }\n const stats = data.metadata?.['stats'] as Record<string, unknown> | undefined;\n const peopleRaw = stats?.['subtreePeople'];\n const positionsRaw = stats?.['subtreePositionSeatCount'];\n if (typeof peopleRaw !== 'number' || !Number.isFinite(peopleRaw)) {\n return null;\n }\n if (typeof positionsRaw !== 'number' || !Number.isFinite(positionsRaw)) {\n return null;\n }\n return {\n people: Math.max(0, Math.floor(peopleRaw)),\n positions: Math.max(0, Math.floor(positionsRaw)),\n };\n }\n\n public getTeamsMembershipCount(data: AXMOrganizationNode): number | null {\n const stats = data.metadata?.['stats'];\n const candidates: unknown[] = [\n stats?.['teamMemberships'],\n stats?.['teamMembershipCount'],\n stats?.['teams'],\n stats?.['teamsCount'],\n data.metadata?.['teamMemberships'],\n data.metadata?.['teamMembershipCount'],\n data.metadata?.['teamsCount'],\n data.metadata?.['teams'],\n ];\n for (const candidate of candidates) {\n if (typeof candidate === 'number' && Number.isFinite(candidate) && candidate >= 0) {\n return candidate;\n }\n }\n return null;\n }\n\n public getNodeInfoItems(data: AXMOrganizationNode): Array<{ label: AXPMultiLanguageString; value: string }> {\n const metadata = data.metadata ?? {};\n const toText = (value: unknown): string | null => {\n if (value == null) {\n return null;\n }\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n if (typeof value === 'string') {\n const trimmed = value.trim();\n return trimmed.length ? trimmed : null;\n }\n return null;\n };\n const resolveFirst = (...candidates: unknown[]): string | null => {\n for (const candidate of candidates) {\n const text = toText(candidate);\n if (text != null) {\n return text;\n }\n }\n return null;\n };\n const createInfo = (\n label: AXPMultiLanguageString,\n value: string | null,\n ): { label: AXPMultiLanguageString; value: string } | null => {\n return value == null ? null : { label, value };\n };\n const items: Array<{ label: AXPMultiLanguageString; value: string }> = [];\n const teamMembershipCount = this.getTeamsMembershipCount(data);\n\n if (data.type === AXMOrgChartNodeType.BusinessUnit || data.type === AXMOrgChartNodeType.Company) {\n const unitType = resolveFirst(metadata['unitTypeTitle'], metadata['unitType'], metadata['typeLabel']);\n const location = resolveFirst(metadata['locationName'], metadata['regionName'], metadata['countryName']);\n const infoCandidates = [\n createInfo(this.chartML.unitType, unitType),\n createInfo(this.chartML.location, location),\n ];\n if (teamMembershipCount != null) {\n infoCandidates.push({ label: this.chartML.teams, value: String(teamMembershipCount) });\n }\n items.push(\n ...infoCandidates.filter((item): item is { label: AXPMultiLanguageString; value: string } => item != null),\n );\n }\n\n if (data.type === AXMOrgChartNodeType.Position) {\n const vacantIcSeat =\n metadata['vacant'] === true && metadata['chartTemplate'] === 'position-ic';\n const ouMl = metadata['organizationalUnitTitle'] as AXPMultiLanguageString | undefined;\n const ouDisplay =\n ouMl != null && typeof ouMl === 'object'\n ? resolveMultiLanguageString(ouMl, this.localeId)\n : null;\n const level = resolveFirst(metadata['jobLevelTitle'], metadata['jobLevel'], metadata['grade']);\n const code = resolveFirst(metadata['code'], metadata['positionCode']);\n const capacity = resolveFirst(metadata['capacity']);\n const positionItems = vacantIcSeat\n ? [createInfo(this.chartML.businessUnit, ouDisplay)]\n : [\n createInfo(this.chartML.businessUnit, ouDisplay),\n createInfo(this.chartML.level, level),\n createInfo(this.chartML.code, code),\n createInfo(this.chartML.capacity, capacity),\n ];\n items.push(\n ...positionItems.filter((item): item is { label: AXPMultiLanguageString; value: string } => item != null),\n );\n }\n\n if (data.type === AXMOrgChartNodeType.Employee || data.metadata?.['chartTemplate'] === 'employee-card') {\n const email = resolveFirst(metadata['email'], metadata['workEmail']);\n const phone = resolveFirst(metadata['phone'], metadata['mobile']);\n const employmentType = resolveFirst(metadata['employmentTypeTitle'], metadata['employmentType']);\n const workMode = resolveFirst(metadata['workModeTitle'], metadata['workMode']);\n const employeeInfo = [\n createInfo(this.chartML.email, email),\n createInfo(this.chartML.phone, phone),\n createInfo(this.chartML.employmentType, employmentType),\n createInfo(this.chartML.workMode, workMode),\n ];\n /** Teams count is rendered in the `--merged-stats` strip on employee cards — omit here to avoid duplicate rows. */\n items.push(\n ...employeeInfo.filter((item): item is { label: AXPMultiLanguageString; value: string } => item != null),\n );\n }\n\n return items.slice(0, 4);\n }\n\n /**\n * Translation key for the hierarchy chart mode shown under the page title.\n */\n private chartModeDescriptionTranslationKey(mode: OrgChartMode): string {\n const keys: Record<OrgChartMode, string> = {\n structure: '@organization-management:organization-chart.options.mode.structure',\n location: '@organization-management:organization-chart.options.mode.location',\n reporting: '@organization-management:organization-chart.options.mode.reporting',\n positionHierarchy:\n '@organization-management:organization-chart.options.mode.positionHierarchy',\n };\n return keys[mode];\n }\n\n protected updateVar(oldValue: any, newValue: AXMOrgChartCategory) {\n oldValue.cat = newValue;\n }\n\n override async getPageTitle(): Promise<string> {\n return await this.translateService.translateAsync(\n '@organization-management:organization-chart.components.chart.title',\n );\n }\n\n override async getPageDescription(): Promise<string> {\n const mode = this.chartService.selectedMode();\n const modeKey = this.chartModeDescriptionTranslationKey(mode);\n return await this.translateService.translateAsync(modeKey);\n }\n\n protected override getTitleActions(): AXPActionMenuItem[] | Promise<AXPActionMenuItem[]> {\n const mode = this.chartService.selectedMode();\n const modes: OrgChartMode[] = ['structure', 'location', 'reporting', 'positionHierarchy'];\n return modes.map((m) => ({\n title: this.chartModeDescriptionTranslationKey(m),\n command: {\n name: 'chart-mode',\n metadata: { mode: m, isSelected: mode === m, hideSelectionCheckSuffix: true },\n },\n // Prefix renders `fa-light {{ icon }}` (matches dashboard title-action check placement).\n icon: mode === m ? 'fa-check' : '',\n }));\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n return [\n {\n ...getActionButton('print'),\n command: {\n name: 'print',\n },\n },\n {\n ...getActionButton('refresh'),\n command: {\n name: 'refresh',\n },\n },\n ];\n }\n override async getPageBreadcrumbs(): Promise<AXPBreadcrumbItem[]> {\n return [\n {\n title: await this.translateService.translateAsync('@organization-management:module.menus.root.title'),\n },\n ];\n }\n\n override async execute(command: AXPExecuteCommand) {\n if (command.name === 'chart-mode') {\n const mode = command.metadata?.['mode'] as OrgChartMode | undefined;\n if (mode) {\n this.chartService.setChartMode(mode);\n this.redrawChart();\n this.recompute();\n }\n return;\n }\n if (command.name == 'print') {\n await this.printChart();\n }\n if (command.name == 'refresh') {\n await this.chartService.generate();\n await this.refresh();\n this.recompute();\n }\n }\n\n ngOnDestroy(): void {\n this.clearChart(this.treeContainer().nativeElement);\n }\n}\n","<axp-page-layout *translate=\"let t\">\n <axp-page-content class=\"ax-overflow-hidden\">\n <div class=\"ax-h-[calc(100vh-290px)]\" #parent id=\"parent\">\n <div #chart axPanView [(panX)]=\"panX\" [(panY)]=\"panY\" [freeMode]=\"true\" [(zoom)]=\"panZoomLevel\"\n [fitContent]=\"true\" wrapperClasses=\"h\" class=\"ax-light\"></div>\n </div>\n </axp-page-content>\n <axp-page-footer>\n @if (chartService.selectedMode() !== 'reporting') {\n <axp-layout-prefix>\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-flex-wrap ax-light\">\n <span class=\"ax-text-sm ax-whitespace-nowrap\">{{\n '@organization-management:organization-chart.components.generate-dialog.fields.show-vacant-leaf-seats.label'\n | translate\n | async\n }}</span>\n <ax-switch\n [ngModel]=\"chartService.showVacantLeafSeats()\"\n (onValueChanged)=\"onVacantLeafSeatsChange($event)\"\n ></ax-switch>\n </div>\n </axp-layout-prefix>\n }\n <!-- <axp-layout-prefix>\n <div class=\"ax-flex ax-gap-1 ax-light ax-flex-wrap ax-justify-center\">\n @let v = {cat:'Company'}; @for (item of nodeTypes; track $index) {\n <div class=\"axp-node-hint\" [style]=\"getNodeColors(item.color)\" [class.ax-ms-4]=\"v.cat!=item.category\">\n <div class=\"--badge\"></div>\n {{item.title}}\n </div>\n {{updateVar(v, item.category)}} }\n </div>\n </axp-layout-prefix> -->\n <axp-layout-suffix>\n <div class=\"ax-flex ax-gap-2\">\n <ax-button (onClick)=\"zoomOut()\">\n <ax-icon class=\"fa-solid fa-minus\"> </ax-icon>\n </ax-button>\n <ax-button [text]=\"panZoomLevel()\" (onClick)=\"zoomReset()\"></ax-button>\n <ax-button (onClick)=\"zoomIn()\">\n <ax-icon class=\"fa-solid fa-add\"> </ax-icon>\n </ax-button>\n <ax-button (onClick)=\"toggleFullscreen()\">\n <ax-icon>\n <i class=\"fa-solid\" [class]=\"isFullscreen()? 'fa-compress' : 'fa-expand'\"></i>\n </ax-icon>\n </ax-button>\n </div>\n </axp-layout-suffix>\n </axp-page-footer>\n</axp-page-layout>"],"names":["i1","i2","i4"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { A as AXPOrganizationManagementPermissionKeys } from './acorex-modules-organization-management-permission.keys-DwZNBc12.mjs';
4
+ import { R as RootConfig } from './acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs';
5
+
6
+ //#endregion
7
+ //#region ---- Permission Definition Provider ----
8
+ /**
9
+ * Permission Definition Provider for Organization Management Module.
10
+ * Defines permissions based on aggregate roots following domain-driven design principles.
11
+ */
12
+ class AXMPermissionDefinitionProvider {
13
+ async define(context) {
14
+ const keys = AXPOrganizationManagementPermissionKeys;
15
+ // I18n path constants for cleaner code
16
+ const MODULE_PERMISSIONS = '@organization-management:module.permissions';
17
+ const TEAM_PERMISSIONS = '@organization-management:team.permissions';
18
+ const POSITION_PERMISSIONS = '@organization-management:position.permissions';
19
+ const JOB_DEFINITION_PERMISSIONS = '@organization-management:job-definition.permissions';
20
+ const JOB_LEVEL_PERMISSIONS = '@organization-management:job-level.permissions';
21
+ const RESPONSIBILITY_PERMISSIONS = '@organization-management:responsibility.permissions';
22
+ const BUSINESS_UNIT_PERMISSIONS = '@organization-management:business-unit.permissions';
23
+ const BUSINESS_UNIT_TYPE_PERMISSIONS = '@organization-management:business-unit-type.permissions';
24
+ const CHART_PERMISSIONS = '@organization-management:chart.permissions';
25
+ context
26
+ .addGroup(RootConfig.module.name, `${MODULE_PERMISSIONS}.title`, `${MODULE_PERMISSIONS}.description`)
27
+ // Aggregate Root: Team (Important Entity - Full CRUD)
28
+ .addPermission(keys.Team.Management, `${TEAM_PERMISSIONS}.title`, `${TEAM_PERMISSIONS}.description`)
29
+ .addChild(keys.Team.View, `${TEAM_PERMISSIONS}.view.title`, `${TEAM_PERMISSIONS}.view.description`)
30
+ .addChild(keys.Team.Create, `${TEAM_PERMISSIONS}.create.title`, `${TEAM_PERMISSIONS}.create.description`)
31
+ .addChild(keys.Team.Update, `${TEAM_PERMISSIONS}.edit.title`, `${TEAM_PERMISSIONS}.edit.description`)
32
+ .addChild(keys.Team.Delete, `${TEAM_PERMISSIONS}.delete.title`, `${TEAM_PERMISSIONS}.delete.description`)
33
+ .endPermission()
34
+ // Aggregate Root: Position (Important Entity - Full CRUD)
35
+ .addPermission(keys.Position.Management, `${POSITION_PERMISSIONS}.title`, `${POSITION_PERMISSIONS}.description`)
36
+ .addChild(keys.Position.View, `${POSITION_PERMISSIONS}.view.title`, `${POSITION_PERMISSIONS}.view.description`)
37
+ .addChild(keys.Position.Create, `${POSITION_PERMISSIONS}.create.title`, `${POSITION_PERMISSIONS}.create.description`)
38
+ .addChild(keys.Position.Update, `${POSITION_PERMISSIONS}.edit.title`, `${POSITION_PERMISSIONS}.edit.description`)
39
+ .addChild(keys.Position.Delete, `${POSITION_PERMISSIONS}.delete.title`, `${POSITION_PERMISSIONS}.delete.description`)
40
+ .endPermission()
41
+ // Aggregate Root: JobDefinition (Important Entity - Full CRUD)
42
+ .addPermission(keys.JobDefinition.Management, `${JOB_DEFINITION_PERMISSIONS}.title`, `${JOB_DEFINITION_PERMISSIONS}.description`)
43
+ .addChild(keys.JobDefinition.View, `${JOB_DEFINITION_PERMISSIONS}.view.title`, `${JOB_DEFINITION_PERMISSIONS}.view.description`)
44
+ .addChild(keys.JobDefinition.Create, `${JOB_DEFINITION_PERMISSIONS}.create.title`, `${JOB_DEFINITION_PERMISSIONS}.create.description`)
45
+ .addChild(keys.JobDefinition.Update, `${JOB_DEFINITION_PERMISSIONS}.edit.title`, `${JOB_DEFINITION_PERMISSIONS}.edit.description`)
46
+ .addChild(keys.JobDefinition.Delete, `${JOB_DEFINITION_PERMISSIONS}.delete.title`, `${JOB_DEFINITION_PERMISSIONS}.delete.description`)
47
+ .endPermission()
48
+ // Aggregate Root: JobLevel (Simple Entity - Management Only)
49
+ .addPermission(keys.JobLevel.Management, `${JOB_LEVEL_PERMISSIONS}.title`, `${JOB_LEVEL_PERMISSIONS}.description`)
50
+ .endPermission()
51
+ // Aggregate Root: Responsibility (Simple Entity - Management Only)
52
+ .addPermission(keys.Responsibility.Management, `${RESPONSIBILITY_PERMISSIONS}.title`, `${RESPONSIBILITY_PERMISSIONS}.description`)
53
+ .endPermission()
54
+ // Aggregate Root: BusinessUnit (Important Entity - Full CRUD)
55
+ .addPermission(keys.BusinessUnit.Management, `${BUSINESS_UNIT_PERMISSIONS}.title`, `${BUSINESS_UNIT_PERMISSIONS}.description`)
56
+ .addChild(keys.BusinessUnit.View, `${BUSINESS_UNIT_PERMISSIONS}.view.title`, `${BUSINESS_UNIT_PERMISSIONS}.view.description`)
57
+ .addChild(keys.BusinessUnit.Create, `${BUSINESS_UNIT_PERMISSIONS}.create.title`, `${BUSINESS_UNIT_PERMISSIONS}.create.description`)
58
+ .addChild(keys.BusinessUnit.Update, `${BUSINESS_UNIT_PERMISSIONS}.edit.title`, `${BUSINESS_UNIT_PERMISSIONS}.edit.description`)
59
+ .addChild(keys.BusinessUnit.Delete, `${BUSINESS_UNIT_PERMISSIONS}.delete.title`, `${BUSINESS_UNIT_PERMISSIONS}.delete.description`)
60
+ .endPermission()
61
+ // Aggregate Root: BusinessUnitType (Simple Entity - Management Only)
62
+ .addPermission(keys.BusinessUnitType.Management, `${BUSINESS_UNIT_TYPE_PERMISSIONS}.title`, `${BUSINESS_UNIT_TYPE_PERMISSIONS}.description`)
63
+ .endPermission()
64
+ // Aggregate Root: Chart (Simple Entity - Management Only)
65
+ .addPermission(keys.Chart.Management, `${CHART_PERMISSIONS}.title`, `${CHART_PERMISSIONS}.description`)
66
+ .endPermission()
67
+ .endGroup();
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMPermissionDefinitionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
70
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMPermissionDefinitionProvider }); }
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMPermissionDefinitionProvider, decorators: [{
73
+ type: Injectable
74
+ }] });
75
+
76
+ export { AXMPermissionDefinitionProvider };
77
+ //# sourceMappingURL=acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs","sources":["../../../../libs/modules/organization-management/src/lib/permission-definition.provider.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\nimport { Injectable } from '@angular/core';\nimport { AXPOrganizationManagementPermissionKeys } from './permission.keys';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Permission Definition Provider for Organization Management Module.\n * Defines permissions based on aggregate roots following domain-driven design principles.\n */\n@Injectable()\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPOrganizationManagementPermissionKeys;\n\n // I18n path constants for cleaner code\n const MODULE_PERMISSIONS = '@organization-management:module.permissions';\n const TEAM_PERMISSIONS = '@organization-management:team.permissions';\n const POSITION_PERMISSIONS = '@organization-management:position.permissions';\n const JOB_DEFINITION_PERMISSIONS = '@organization-management:job-definition.permissions';\n const JOB_LEVEL_PERMISSIONS = '@organization-management:job-level.permissions';\n const RESPONSIBILITY_PERMISSIONS = '@organization-management:responsibility.permissions';\n const BUSINESS_UNIT_PERMISSIONS = '@organization-management:business-unit.permissions';\n const BUSINESS_UNIT_TYPE_PERMISSIONS = '@organization-management:business-unit-type.permissions';\n const CHART_PERMISSIONS = '@organization-management:chart.permissions';\n\n context\n .addGroup(\n RootConfig.module.name,\n `${MODULE_PERMISSIONS}.title`,\n `${MODULE_PERMISSIONS}.description`\n )\n // Aggregate Root: Team (Important Entity - Full CRUD)\n .addPermission(\n keys.Team.Management,\n `${TEAM_PERMISSIONS}.title`,\n `${TEAM_PERMISSIONS}.description`\n )\n .addChild(\n keys.Team.View,\n `${TEAM_PERMISSIONS}.view.title`,\n `${TEAM_PERMISSIONS}.view.description`\n )\n .addChild(\n keys.Team.Create,\n `${TEAM_PERMISSIONS}.create.title`,\n `${TEAM_PERMISSIONS}.create.description`\n )\n .addChild(\n keys.Team.Update,\n `${TEAM_PERMISSIONS}.edit.title`,\n `${TEAM_PERMISSIONS}.edit.description`\n )\n .addChild(\n keys.Team.Delete,\n `${TEAM_PERMISSIONS}.delete.title`,\n `${TEAM_PERMISSIONS}.delete.description`\n )\n .endPermission()\n // Aggregate Root: Position (Important Entity - Full CRUD)\n .addPermission(\n keys.Position.Management,\n `${POSITION_PERMISSIONS}.title`,\n `${POSITION_PERMISSIONS}.description`\n )\n .addChild(\n keys.Position.View,\n `${POSITION_PERMISSIONS}.view.title`,\n `${POSITION_PERMISSIONS}.view.description`\n )\n .addChild(\n keys.Position.Create,\n `${POSITION_PERMISSIONS}.create.title`,\n `${POSITION_PERMISSIONS}.create.description`\n )\n .addChild(\n keys.Position.Update,\n `${POSITION_PERMISSIONS}.edit.title`,\n `${POSITION_PERMISSIONS}.edit.description`\n )\n .addChild(\n keys.Position.Delete,\n `${POSITION_PERMISSIONS}.delete.title`,\n `${POSITION_PERMISSIONS}.delete.description`\n )\n .endPermission()\n // Aggregate Root: JobDefinition (Important Entity - Full CRUD)\n .addPermission(\n keys.JobDefinition.Management,\n `${JOB_DEFINITION_PERMISSIONS}.title`,\n `${JOB_DEFINITION_PERMISSIONS}.description`\n )\n .addChild(\n keys.JobDefinition.View,\n `${JOB_DEFINITION_PERMISSIONS}.view.title`,\n `${JOB_DEFINITION_PERMISSIONS}.view.description`\n )\n .addChild(\n keys.JobDefinition.Create,\n `${JOB_DEFINITION_PERMISSIONS}.create.title`,\n `${JOB_DEFINITION_PERMISSIONS}.create.description`\n )\n .addChild(\n keys.JobDefinition.Update,\n `${JOB_DEFINITION_PERMISSIONS}.edit.title`,\n `${JOB_DEFINITION_PERMISSIONS}.edit.description`\n )\n .addChild(\n keys.JobDefinition.Delete,\n `${JOB_DEFINITION_PERMISSIONS}.delete.title`,\n `${JOB_DEFINITION_PERMISSIONS}.delete.description`\n )\n .endPermission()\n // Aggregate Root: JobLevel (Simple Entity - Management Only)\n .addPermission(\n keys.JobLevel.Management,\n `${JOB_LEVEL_PERMISSIONS}.title`,\n `${JOB_LEVEL_PERMISSIONS}.description`\n )\n .endPermission()\n // Aggregate Root: Responsibility (Simple Entity - Management Only)\n .addPermission(\n keys.Responsibility.Management,\n `${RESPONSIBILITY_PERMISSIONS}.title`,\n `${RESPONSIBILITY_PERMISSIONS}.description`\n )\n .endPermission()\n // Aggregate Root: BusinessUnit (Important Entity - Full CRUD)\n .addPermission(\n keys.BusinessUnit.Management,\n `${BUSINESS_UNIT_PERMISSIONS}.title`,\n `${BUSINESS_UNIT_PERMISSIONS}.description`\n )\n .addChild(\n keys.BusinessUnit.View,\n `${BUSINESS_UNIT_PERMISSIONS}.view.title`,\n `${BUSINESS_UNIT_PERMISSIONS}.view.description`\n )\n .addChild(\n keys.BusinessUnit.Create,\n `${BUSINESS_UNIT_PERMISSIONS}.create.title`,\n `${BUSINESS_UNIT_PERMISSIONS}.create.description`\n )\n .addChild(\n keys.BusinessUnit.Update,\n `${BUSINESS_UNIT_PERMISSIONS}.edit.title`,\n `${BUSINESS_UNIT_PERMISSIONS}.edit.description`\n )\n .addChild(\n keys.BusinessUnit.Delete,\n `${BUSINESS_UNIT_PERMISSIONS}.delete.title`,\n `${BUSINESS_UNIT_PERMISSIONS}.delete.description`\n )\n .endPermission()\n // Aggregate Root: BusinessUnitType (Simple Entity - Management Only)\n .addPermission(\n keys.BusinessUnitType.Management,\n `${BUSINESS_UNIT_TYPE_PERMISSIONS}.title`,\n `${BUSINESS_UNIT_TYPE_PERMISSIONS}.description`\n )\n .endPermission()\n // Aggregate Root: Chart (Simple Entity - Management Only)\n .addPermission(\n keys.Chart.Management,\n `${CHART_PERMISSIONS}.title`,\n `${CHART_PERMISSIONS}.description`\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n\n"],"names":[],"mappings":";;;;;AAOA;AAEA;AAEA;;;AAGG;MAEU,+BAA+B,CAAA;IAC1C,MAAM,MAAM,CAAC,OAA+C,EAAA;QAC1D,MAAM,IAAI,GAAG,uCAAuC;;QAGpD,MAAM,kBAAkB,GAAG,6CAA6C;QACxE,MAAM,gBAAgB,GAAG,2CAA2C;QACpE,MAAM,oBAAoB,GAAG,+CAA+C;QAC5E,MAAM,0BAA0B,GAAG,qDAAqD;QACxF,MAAM,qBAAqB,GAAG,gDAAgD;QAC9E,MAAM,0BAA0B,GAAG,qDAAqD;QACxF,MAAM,yBAAyB,GAAG,oDAAoD;QACtF,MAAM,8BAA8B,GAAG,yDAAyD;QAChG,MAAM,iBAAiB,GAAG,4CAA4C;QAEtE;AACG,aAAA,QAAQ,CACP,UAAU,CAAC,MAAM,CAAC,IAAI,EACtB,CAAA,EAAG,kBAAkB,CAAA,MAAA,CAAQ,EAC7B,CAAA,EAAG,kBAAkB,cAAc;;AAGpC,aAAA,aAAa,CACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EACpB,CAAA,EAAG,gBAAgB,CAAA,MAAA,CAAQ,EAC3B,CAAA,EAAG,gBAAgB,cAAc;AAElC,aAAA,QAAQ,CACP,IAAI,CAAC,IAAI,CAAC,IAAI,EACd,CAAA,EAAG,gBAAgB,CAAA,WAAA,CAAa,EAChC,CAAA,EAAG,gBAAgB,mBAAmB;AAEvC,aAAA,QAAQ,CACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,CAAA,EAAG,gBAAgB,CAAA,aAAA,CAAe,EAClC,CAAA,EAAG,gBAAgB,qBAAqB;AAEzC,aAAA,QAAQ,CACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,CAAA,EAAG,gBAAgB,CAAA,WAAA,CAAa,EAChC,CAAA,EAAG,gBAAgB,mBAAmB;AAEvC,aAAA,QAAQ,CACP,IAAI,CAAC,IAAI,CAAC,MAAM,EAChB,CAAA,EAAG,gBAAgB,CAAA,aAAA,CAAe,EAClC,CAAA,EAAG,gBAAgB,qBAAqB;AAEzC,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,CAAA,EAAG,oBAAoB,CAAA,MAAA,CAAQ,EAC/B,CAAA,EAAG,oBAAoB,cAAc;AAEtC,aAAA,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,IAAI,EAClB,CAAA,EAAG,oBAAoB,CAAA,WAAA,CAAa,EACpC,CAAA,EAAG,oBAAoB,mBAAmB;AAE3C,aAAA,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,CAAA,EAAG,oBAAoB,CAAA,aAAA,CAAe,EACtC,CAAA,EAAG,oBAAoB,qBAAqB;AAE7C,aAAA,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,CAAA,EAAG,oBAAoB,CAAA,WAAA,CAAa,EACpC,CAAA,EAAG,oBAAoB,mBAAmB;AAE3C,aAAA,QAAQ,CACP,IAAI,CAAC,QAAQ,CAAC,MAAM,EACpB,CAAA,EAAG,oBAAoB,CAAA,aAAA,CAAe,EACtC,CAAA,EAAG,oBAAoB,qBAAqB;AAE7C,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,aAAa,CAAC,UAAU,EAC7B,CAAA,EAAG,0BAA0B,CAAA,MAAA,CAAQ,EACrC,CAAA,EAAG,0BAA0B,cAAc;AAE5C,aAAA,QAAQ,CACP,IAAI,CAAC,aAAa,CAAC,IAAI,EACvB,CAAA,EAAG,0BAA0B,CAAA,WAAA,CAAa,EAC1C,CAAA,EAAG,0BAA0B,mBAAmB;AAEjD,aAAA,QAAQ,CACP,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,CAAA,EAAG,0BAA0B,CAAA,aAAA,CAAe,EAC5C,CAAA,EAAG,0BAA0B,qBAAqB;AAEnD,aAAA,QAAQ,CACP,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,CAAA,EAAG,0BAA0B,CAAA,WAAA,CAAa,EAC1C,CAAA,EAAG,0BAA0B,mBAAmB;AAEjD,aAAA,QAAQ,CACP,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,CAAA,EAAG,0BAA0B,CAAA,aAAA,CAAe,EAC5C,CAAA,EAAG,0BAA0B,qBAAqB;AAEnD,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,QAAQ,CAAC,UAAU,EACxB,CAAA,EAAG,qBAAqB,CAAA,MAAA,CAAQ,EAChC,CAAA,EAAG,qBAAqB,cAAc;AAEvC,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,cAAc,CAAC,UAAU,EAC9B,CAAA,EAAG,0BAA0B,CAAA,MAAA,CAAQ,EACrC,CAAA,EAAG,0BAA0B,cAAc;AAE5C,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,YAAY,CAAC,UAAU,EAC5B,CAAA,EAAG,yBAAyB,CAAA,MAAA,CAAQ,EACpC,CAAA,EAAG,yBAAyB,cAAc;AAE3C,aAAA,QAAQ,CACP,IAAI,CAAC,YAAY,CAAC,IAAI,EACtB,CAAA,EAAG,yBAAyB,CAAA,WAAA,CAAa,EACzC,CAAA,EAAG,yBAAyB,mBAAmB;AAEhD,aAAA,QAAQ,CACP,IAAI,CAAC,YAAY,CAAC,MAAM,EACxB,CAAA,EAAG,yBAAyB,CAAA,aAAA,CAAe,EAC3C,CAAA,EAAG,yBAAyB,qBAAqB;AAElD,aAAA,QAAQ,CACP,IAAI,CAAC,YAAY,CAAC,MAAM,EACxB,CAAA,EAAG,yBAAyB,CAAA,WAAA,CAAa,EACzC,CAAA,EAAG,yBAAyB,mBAAmB;AAEhD,aAAA,QAAQ,CACP,IAAI,CAAC,YAAY,CAAC,MAAM,EACxB,CAAA,EAAG,yBAAyB,CAAA,aAAA,CAAe,EAC3C,CAAA,EAAG,yBAAyB,qBAAqB;AAElD,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAChC,CAAA,EAAG,8BAA8B,CAAA,MAAA,CAAQ,EACzC,CAAA,EAAG,8BAA8B,cAAc;AAEhD,aAAA,aAAa;;AAEb,aAAA,aAAa,CACZ,IAAI,CAAC,KAAK,CAAC,UAAU,EACrB,CAAA,EAAG,iBAAiB,CAAA,MAAA,CAAQ,EAC5B,CAAA,EAAG,iBAAiB,cAAc;AAEnC,aAAA,aAAa;AACb,aAAA,QAAQ,EAAE;IACf;8GA9JW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA/B,+BAA+B,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C;;;;;"}
@@ -0,0 +1,56 @@
1
+ const AXPOrganizationManagementPermissionKeys = {
2
+ OrganizationManagement: {
3
+ Management: 'OrganizationManagement:Permission:OrganizationManagement.Management',
4
+ },
5
+ // Important Entity - Full CRUD
6
+ Team: {
7
+ Management: 'OrganizationManagement:Permission:Team.Management',
8
+ View: 'OrganizationManagement:Permission:Team.View',
9
+ Create: 'OrganizationManagement:Permission:Team.Create',
10
+ Update: 'OrganizationManagement:Permission:Team.Update',
11
+ Delete: 'OrganizationManagement:Permission:Team.Delete',
12
+ },
13
+ // Important Entity - Full CRUD
14
+ Position: {
15
+ Management: 'OrganizationManagement:Permission:Position.Management',
16
+ View: 'OrganizationManagement:Permission:Position.View',
17
+ Create: 'OrganizationManagement:Permission:Position.Create',
18
+ Update: 'OrganizationManagement:Permission:Position.Update',
19
+ Delete: 'OrganizationManagement:Permission:Position.Delete',
20
+ },
21
+ // Important Entity - Full CRUD
22
+ JobDefinition: {
23
+ Management: 'OrganizationManagement:Permission:JobDefinition.Management',
24
+ View: 'OrganizationManagement:Permission:JobDefinition.View',
25
+ Create: 'OrganizationManagement:Permission:JobDefinition.Create',
26
+ Update: 'OrganizationManagement:Permission:JobDefinition.Update',
27
+ Delete: 'OrganizationManagement:Permission:JobDefinition.Delete',
28
+ },
29
+ // Simple Entity - Management Only
30
+ JobLevel: {
31
+ Management: 'OrganizationManagement:Permission:JobLevel.Management',
32
+ },
33
+ // Simple Entity - Management Only
34
+ Responsibility: {
35
+ Management: 'OrganizationManagement:Permission:Responsibility.Management',
36
+ },
37
+ // Important Entity - Full CRUD
38
+ BusinessUnit: {
39
+ Management: 'OrganizationManagement:Permission:BusinessUnit.Management',
40
+ View: 'OrganizationManagement:Permission:BusinessUnit.View',
41
+ Create: 'OrganizationManagement:Permission:BusinessUnit.Create',
42
+ Update: 'OrganizationManagement:Permission:BusinessUnit.Update',
43
+ Delete: 'OrganizationManagement:Permission:BusinessUnit.Delete',
44
+ },
45
+ // Simple Entity - Management Only
46
+ BusinessUnitType: {
47
+ Management: 'OrganizationManagement:Permission:BusinessUnitType.Management',
48
+ },
49
+ // Simple Entity - Management Only
50
+ Chart: {
51
+ Management: 'OrganizationManagement:Permission:Chart.Management',
52
+ },
53
+ };
54
+
55
+ export { AXPOrganizationManagementPermissionKeys as A };
56
+ //# sourceMappingURL=acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-permission.keys-DwZNBc12.mjs","sources":["../../../../libs/modules/organization-management/src/lib/permission.keys.ts"],"sourcesContent":["export const AXPOrganizationManagementPermissionKeys = {\n OrganizationManagement: {\n Management: 'OrganizationManagement:Permission:OrganizationManagement.Management',\n },\n // Important Entity - Full CRUD\n Team: {\n Management: 'OrganizationManagement:Permission:Team.Management',\n View: 'OrganizationManagement:Permission:Team.View',\n Create: 'OrganizationManagement:Permission:Team.Create',\n Update: 'OrganizationManagement:Permission:Team.Update',\n Delete: 'OrganizationManagement:Permission:Team.Delete',\n },\n // Important Entity - Full CRUD\n Position: {\n Management: 'OrganizationManagement:Permission:Position.Management',\n View: 'OrganizationManagement:Permission:Position.View',\n Create: 'OrganizationManagement:Permission:Position.Create',\n Update: 'OrganizationManagement:Permission:Position.Update',\n Delete: 'OrganizationManagement:Permission:Position.Delete',\n },\n // Important Entity - Full CRUD\n JobDefinition: {\n Management: 'OrganizationManagement:Permission:JobDefinition.Management',\n View: 'OrganizationManagement:Permission:JobDefinition.View',\n Create: 'OrganizationManagement:Permission:JobDefinition.Create',\n Update: 'OrganizationManagement:Permission:JobDefinition.Update',\n Delete: 'OrganizationManagement:Permission:JobDefinition.Delete',\n },\n // Simple Entity - Management Only\n JobLevel: {\n Management: 'OrganizationManagement:Permission:JobLevel.Management',\n },\n // Simple Entity - Management Only\n Responsibility: {\n Management: 'OrganizationManagement:Permission:Responsibility.Management',\n },\n // Important Entity - Full CRUD\n BusinessUnit: {\n Management: 'OrganizationManagement:Permission:BusinessUnit.Management',\n View: 'OrganizationManagement:Permission:BusinessUnit.View',\n Create: 'OrganizationManagement:Permission:BusinessUnit.Create',\n Update: 'OrganizationManagement:Permission:BusinessUnit.Update',\n Delete: 'OrganizationManagement:Permission:BusinessUnit.Delete',\n },\n // Simple Entity - Management Only\n BusinessUnitType: {\n Management: 'OrganizationManagement:Permission:BusinessUnitType.Management',\n },\n // Simple Entity - Management Only\n Chart: {\n Management: 'OrganizationManagement:Permission:Chart.Management',\n },\n} as const;\n\n"],"names":[],"mappings":"AAAO,MAAM,uCAAuC,GAAG;AACrD,IAAA,sBAAsB,EAAE;AACtB,QAAA,UAAU,EAAE,qEAAqE;AAClF,KAAA;;AAED,IAAA,IAAI,EAAE;AACJ,QAAA,UAAU,EAAE,mDAAmD;AAC/D,QAAA,IAAI,EAAE,6CAA6C;AACnD,QAAA,MAAM,EAAE,+CAA+C;AACvD,QAAA,MAAM,EAAE,+CAA+C;AACvD,QAAA,MAAM,EAAE,+CAA+C;AACxD,KAAA;;AAED,IAAA,QAAQ,EAAE;AACR,QAAA,UAAU,EAAE,uDAAuD;AACnE,QAAA,IAAI,EAAE,iDAAiD;AACvD,QAAA,MAAM,EAAE,mDAAmD;AAC3D,QAAA,MAAM,EAAE,mDAAmD;AAC3D,QAAA,MAAM,EAAE,mDAAmD;AAC5D,KAAA;;AAED,IAAA,aAAa,EAAE;AACb,QAAA,UAAU,EAAE,4DAA4D;AACxE,QAAA,IAAI,EAAE,sDAAsD;AAC5D,QAAA,MAAM,EAAE,wDAAwD;AAChE,QAAA,MAAM,EAAE,wDAAwD;AAChE,QAAA,MAAM,EAAE,wDAAwD;AACjE,KAAA;;AAED,IAAA,QAAQ,EAAE;AACR,QAAA,UAAU,EAAE,uDAAuD;AACpE,KAAA;;AAED,IAAA,cAAc,EAAE;AACd,QAAA,UAAU,EAAE,6DAA6D;AAC1E,KAAA;;AAED,IAAA,YAAY,EAAE;AACZ,QAAA,UAAU,EAAE,2DAA2D;AACvE,QAAA,IAAI,EAAE,qDAAqD;AAC3D,QAAA,MAAM,EAAE,uDAAuD;AAC/D,QAAA,MAAM,EAAE,uDAAuD;AAC/D,QAAA,MAAM,EAAE,uDAAuD;AAChE,KAAA;;AAED,IAAA,gBAAgB,EAAE;AAChB,QAAA,UAAU,EAAE,+DAA+D;AAC5E,KAAA;;AAED,IAAA,KAAK,EAAE;AACL,QAAA,UAAU,EAAE,oDAAoD;AACjE,KAAA;;;;;"}