@acorex/modules 21.0.0-next.43 → 21.0.0-next.45
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.
- package/fesm2022/acorex-modules-ai-management.mjs +31 -225
- package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-c8OrTwDw.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-BD5oxehv.mjs} +59 -75
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BD5oxehv.mjs.map +1 -0
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DEsJE7x3.mjs → acorex-modules-assessment-management-assessment-case.entity-BWj2PB39.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-DEsJE7x3.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BWj2PB39.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-eNFfu-Jq.mjs → acorex-modules-assessment-management-assessment-session.entity-BQnYnNOz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-eNFfu-Jq.mjs.map → acorex-modules-assessment-management-assessment-session.entity-BQnYnNOz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-BeSUBkI9.mjs → acorex-modules-assessment-management-fill-assessment-session.command-BiS7QO_E.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-BeSUBkI9.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-BiS7QO_E.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-index-3GB9Xkyv.mjs → acorex-modules-assessment-management-index-BXw0Lf5c.mjs} +4 -4
- package/fesm2022/{acorex-modules-assessment-management-index-3GB9Xkyv.mjs.map → acorex-modules-assessment-management-index-BXw0Lf5c.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-QinKZtTz.mjs → acorex-modules-assessment-management-preview-question.command-Bm1v6ngB.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-question.command-QinKZtTz.mjs.map → acorex-modules-assessment-management-preview-question.command-Bm1v6ngB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-CKZYSyOv.mjs → acorex-modules-assessment-management-preview-questionnaire.command-Dja4PbGz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-CKZYSyOv.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-Dja4PbGz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-qZXANgNr.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BbkWs23A.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-qZXANgNr.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-BbkWs23A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-Dp4eYR3O.mjs → acorex-modules-assessment-management-question-bank-item.entity-X8s42nZH.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-Dp4eYR3O.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-X8s42nZH.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-BMB9IEIv.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-d8HUAvWp.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-BMB9IEIv.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-d8HUAvWp.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DgC1xuH9.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-YUDOSypz.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-DgC1xuH9.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-YUDOSypz.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-ChUNq9Bc.mjs → acorex-modules-assessment-management-questionnaire.entity-q3Z4VIiA.mjs} +3 -3
- package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-ChUNq9Bc.mjs.map → acorex-modules-assessment-management-questionnaire.entity-q3Z4VIiA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-sji05ut4.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-4OLYEn35.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-sji05ut4.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-4OLYEn35.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BIpotfIE.mjs → acorex-modules-assessment-management-view-session-answers.command-DWEd-ZM_.mjs} +2 -2
- package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-BIpotfIE.mjs.map → acorex-modules-assessment-management-view-session-answers.command-DWEd-ZM_.mjs.map} +1 -1
- package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
- package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-fQ0rp8vu.mjs → acorex-modules-asset-management-acorex-modules-asset-management-B1mg2dIR.mjs} +8 -19
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-B1mg2dIR.mjs.map +1 -0
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-DuFgujR6.mjs → acorex-modules-asset-management-asset-system-assignment.entity-lL1FBlzA.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-DuFgujR6.mjs.map → acorex-modules-asset-management-asset-system-assignment.entity-lL1FBlzA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-sszGMFny.mjs → acorex-modules-asset-management-asset-system-type.entity-DFHVqE7a.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-sszGMFny.mjs.map → acorex-modules-asset-management-asset-system-type.entity-DFHVqE7a.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-tWUPNYQq.mjs → acorex-modules-asset-management-asset-system.entity-DlpOp7Xj.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-system.entity-tWUPNYQq.mjs.map → acorex-modules-asset-management-asset-system.entity-DlpOp7Xj.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-l3xXMo2l.mjs → acorex-modules-asset-management-asset-type-section-component.entity-CIkXc51V.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-l3xXMo2l.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-CIkXc51V.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-CldvQBUW.mjs → acorex-modules-asset-management-asset-type-section.entity-Ctxh5hGa.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-CldvQBUW.mjs.map → acorex-modules-asset-management-asset-type-section.entity-Ctxh5hGa.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CP0dryvp.mjs → acorex-modules-asset-management-asset-type.entity-CN6K0Uw3.mjs} +2 -2
- package/fesm2022/{acorex-modules-asset-management-asset-type.entity-CP0dryvp.mjs.map → acorex-modules-asset-management-asset-type.entity-CN6K0Uw3.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-asset-management-asset.entity-Du_fWe9V.mjs → acorex-modules-asset-management-asset.entity-2XZut6JS.mjs} +6 -5
- package/fesm2022/acorex-modules-asset-management-asset.entity-2XZut6JS.mjs.map +1 -0
- package/fesm2022/acorex-modules-asset-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +399 -399
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bwk3-2wy.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-B37ZqEql.mjs} +301 -25
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-B37ZqEql.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs → acorex-modules-human-capital-management-approve-leave-request.command-Bf8iPUE-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-Bf8iPUE-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-DqX9OAq4.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-DqX9OAq4.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-DQG0Al0X.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-DQG0Al0X.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management-employee-lifecycle-process.entity-DSsgKG8S.mjs +225 -0
- package/fesm2022/acorex-modules-human-capital-management-employee-lifecycle-process.entity-DSsgKG8S.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs → acorex-modules-human-capital-management-employee.entity-C8PaZEDs.mjs} +38 -2
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-C8PaZEDs.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs → acorex-modules-human-capital-management-employment-type.entity-DhqHdESk.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs.map → acorex-modules-human-capital-management-employment-type.entity-DhqHdESk.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs → acorex-modules-human-capital-management-leave-request.entity-CPdV6kiR.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs.map → acorex-modules-human-capital-management-leave-request.entity-CPdV6kiR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs → acorex-modules-human-capital-management-leave-type.entity-D3iarVMG.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs.map → acorex-modules-human-capital-management-leave-type.entity-D3iarVMG.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-process-type.entity-EazvPSR6.mjs +175 -0
- package/fesm2022/acorex-modules-human-capital-management-lifecycle-process-type.entity-EazvPSR6.mjs.map +1 -0
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs → acorex-modules-human-capital-management-position-assignment.entity-mROyAoz-.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-mROyAoz-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs → acorex-modules-human-capital-management-reject-leave-request.command-Bq7OtST6.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-Bq7OtST6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-BpklMLve.mjs} +2 -2
- package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-BpklMLve.mjs.map} +1 -1
- package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-acorex-modules-maintenance-management-C0LLBxMR.mjs → acorex-modules-maintenance-management-acorex-modules-maintenance-management-coPYjl8-.mjs} +321 -151
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-coPYjl8-.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-D8yOqKWQ.mjs → acorex-modules-maintenance-management-failure-effect.entity-BdnnavfB.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-D8yOqKWQ.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-BdnnavfB.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-CHXkbEHG.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-tlcqWco6.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-CHXkbEHG.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-tlcqWco6.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-yR11e9TU.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-DivWl32L.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-yR11e9TU.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-DivWl32L.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-BD4Uz6G-.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-9FiLeySZ.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-BD4Uz6G-.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-9FiLeySZ.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZFgl-t4.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-3cq1KeYM.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-CZFgl-t4.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-3cq1KeYM.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DQE5nqiN.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-CaVb6rDn.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-DQE5nqiN.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-CaVb6rDn.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-C6mhbWzU.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-C2UKW63M.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-C6mhbWzU.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-C2UKW63M.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-DSnrVaWI.mjs → acorex-modules-maintenance-management-failure-register.entity-KghFLCIJ.mjs} +16 -3
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-KghFLCIJ.mjs.map +1 -0
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-DZoMhgW7.mjs → acorex-modules-maintenance-management-failure-severity.entity-BebswR7S.mjs} +2 -2
- package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-DZoMhgW7.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-BebswR7S.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-maintenance-management-maintenance-template.entity-qf2WNKB_.mjs → acorex-modules-maintenance-management-maintenance-template.entity-1V4swUZ4.mjs} +191 -35
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-1V4swUZ4.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-3hlrAtIr.mjs +154 -0
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-3hlrAtIr.mjs.map +1 -0
- package/fesm2022/acorex-modules-maintenance-management.mjs +1 -1
- package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-Dqhk5reQ.mjs → acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs} +141 -578
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-pnxqURIQ.mjs → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-pnxqURIQ.mjs.map → acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-DbHKd1Nd.mjs → acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-DbHKd1Nd.mjs.map → acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs +130 -0
- package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-FsF290Im.mjs → acorex-modules-organization-management-business-unit.entity-BAp38sib.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-business-unit.entity-FsF290Im.mjs.map → acorex-modules-organization-management-business-unit.entity-BAp38sib.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-chart.entity-_OJkO2zX.mjs → acorex-modules-organization-management-chart.entity-WfmpWj8R.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-chart.entity-_OJkO2zX.mjs.map → acorex-modules-organization-management-chart.entity-WfmpWj8R.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-company.entity-Dw7_BvxV.mjs → acorex-modules-organization-management-company.entity-BUVLrwjq.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-company.entity-Dw7_BvxV.mjs.map → acorex-modules-organization-management-company.entity-BUVLrwjq.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BWw2RN_V.mjs → acorex-modules-organization-management-entity.provider-DH3eUGTu.mjs} +15 -15
- package/fesm2022/{acorex-modules-organization-management-entity.provider-BWw2RN_V.mjs.map → acorex-modules-organization-management-entity.provider-DH3eUGTu.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D3WYwpy0.mjs → acorex-modules-organization-management-feature-definition.provider-DuScrBze.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D3WYwpy0.mjs.map → acorex-modules-organization-management-feature-definition.provider-DuScrBze.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-CnS_nu1v.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-D-J9JCsU.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-CnS_nu1v.mjs.map → acorex-modules-organization-management-job-definition-pages-component.provider-D-J9JCsU.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-ZTopEh2M.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-Dsy5rFGw.mjs} +3 -3
- package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-ZTopEh2M.mjs.map → acorex-modules-organization-management-job-definition-responsibilities-page.component-Dsy5rFGw.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-Yyzwqg0v.mjs → acorex-modules-organization-management-job-definition-skills-page.component-B73wLPby.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-Yyzwqg0v.mjs.map → acorex-modules-organization-management-job-definition-skills-page.component-B73wLPby.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DJjmv1hf.mjs → acorex-modules-organization-management-job-definition.entity-B7mWKYqb.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DJjmv1hf.mjs.map → acorex-modules-organization-management-job-definition.entity-B7mWKYqb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DJH3zaNN.mjs → acorex-modules-organization-management-job-level.datasource-DibRoKXR.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.datasource-DJH3zaNN.mjs.map → acorex-modules-organization-management-job-level.datasource-DibRoKXR.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-DBEFEBzu.mjs → acorex-modules-organization-management-job-level.entity-C_MzeTw5.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-job-level.entity-DBEFEBzu.mjs.map → acorex-modules-organization-management-job-level.entity-C_MzeTw5.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-menu.provider-yGn338K1.mjs → acorex-modules-organization-management-menu.provider-CQeJINzl.mjs} +3 -2
- package/fesm2022/{acorex-modules-organization-management-menu.provider-yGn338K1.mjs.map → acorex-modules-organization-management-menu.provider-CQeJINzl.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-D3hCHSr_.mjs +228 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-D3hCHSr_.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-Bv0I-45L.mjs +182 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-Bv0I-45L.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DbfYza8q.mjs +170 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-DbfYza8q.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-C9APxguL.mjs +334 -0
- package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-C9APxguL.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-C1J123cl.mjs → acorex-modules-organization-management-org-chart.page-BcHO5kKP.mjs} +104 -19
- package/fesm2022/acorex-modules-organization-management-org-chart.page-BcHO5kKP.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-B1f668X4.mjs → acorex-modules-organization-management-permission-definition.provider-BcIRJpBt.mjs} +3 -2
- package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-B1f668X4.mjs.map → acorex-modules-organization-management-permission-definition.provider-BcIRJpBt.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
- package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-position.entity-BvSjM5Hs.mjs → acorex-modules-organization-management-position.entity-DBOpLtSI.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-position.entity-BvSjM5Hs.mjs.map → acorex-modules-organization-management-position.entity-DBOpLtSI.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-CPdbVSno.mjs → acorex-modules-organization-management-remove-position-from-business-unit.command-TqYgfnsy.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-CPdbVSno.mjs.map → acorex-modules-organization-management-remove-position-from-business-unit.command-TqYgfnsy.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-CQRcVN6R.mjs → acorex-modules-organization-management-replace-position-assignee.command-BJ2gn0-A.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-CQRcVN6R.mjs.map → acorex-modules-organization-management-replace-position-assignee.command-BJ2gn0-A.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-Ce3T04Qb.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CZdMLIL-.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-Ce3T04Qb.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CZdMLIL-.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CIr7JDX-.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BBo97rDN.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CIr7JDX-.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BBo97rDN.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-BXWso7Ga.mjs → acorex-modules-organization-management-responsibilities-matrix.component-D9oH_Fbb.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-BXWso7Ga.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-D9oH_Fbb.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DB04XTJ8.mjs → acorex-modules-organization-management-responsibility-level.entity-D6IG9Zc7.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DB04XTJ8.mjs.map → acorex-modules-organization-management-responsibility-level.entity-D6IG9Zc7.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-BMqhYqJS.mjs → acorex-modules-organization-management-responsibility.entity-BosNxYjW.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-responsibility.entity-BMqhYqJS.mjs.map → acorex-modules-organization-management-responsibility.entity-BosNxYjW.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-settings.provider-BhIJkbq_.mjs → acorex-modules-organization-management-settings.provider-CL9C9UXA.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-settings.provider-BhIJkbq_.mjs.map → acorex-modules-organization-management-settings.provider-CL9C9UXA.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DkTtZv7y.mjs → acorex-modules-organization-management-team-business-unit.entity-CYFGTcHe.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-DkTtZv7y.mjs.map → acorex-modules-organization-management-team-business-unit.entity-CYFGTcHe.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-DPqEPpkP.mjs → acorex-modules-organization-management-team-member-role.entity-B5vNDne0.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-DPqEPpkP.mjs.map → acorex-modules-organization-management-team-member-role.entity-B5vNDne0.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-organization-management-team-member.entity-IN-CPv5W.mjs → acorex-modules-organization-management-team-member.entity-DsKuxCRB.mjs} +14 -2
- package/fesm2022/acorex-modules-organization-management-team-member.entity-DsKuxCRB.mjs.map +1 -0
- package/fesm2022/{acorex-modules-organization-management-team.entity-D7B8ulFX.mjs → acorex-modules-organization-management-team.entity-Cg30cho_.mjs} +2 -2
- package/fesm2022/{acorex-modules-organization-management-team.entity-D7B8ulFX.mjs.map → acorex-modules-organization-management-team.entity-Cg30cho_.mjs.map} +1 -1
- package/fesm2022/acorex-modules-organization-management.mjs +1 -1
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-B-NoGoOJ.mjs → acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs} +4 -6
- package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-B-NoGoOJ.mjs.map → acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs.map} +1 -1
- package/fesm2022/acorex-modules-report-management.mjs +36 -19
- package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-CWlgXg_u.mjs → acorex-modules-task-management-acorex-modules-task-management-DDUq9FpA.mjs} +178 -14
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-DDUq9FpA.mjs.map +1 -0
- package/fesm2022/{acorex-modules-task-management-task-board.page-Bxpga0DN.mjs → acorex-modules-task-management-task-board.page-C6j-_aSD.mjs} +106 -68
- package/fesm2022/acorex-modules-task-management-task-board.page-C6j-_aSD.mjs.map +1 -0
- package/fesm2022/acorex-modules-task-management.mjs +1 -1
- package/fesm2022/acorex-modules-workflow-management.mjs +249 -52
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
- package/organization-management/README.md +1 -1
- package/package.json +2 -2
- package/types/acorex-modules-ai-management.d.ts +25 -67
- package/types/acorex-modules-common.d.ts +14 -14
- package/types/acorex-modules-human-capital-management.d.ts +100 -2
- package/types/acorex-modules-maintenance-management.d.ts +6 -6
- package/types/acorex-modules-organization-management.d.ts +128 -69
- package/types/acorex-modules-report-management.d.ts +8 -0
- package/types/acorex-modules-task-management.d.ts +12 -1
- package/types/acorex-modules-workflow-management.d.ts +51 -4
- package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-c8OrTwDw.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-fQ0rp8vu.mjs.map +0 -1
- package/fesm2022/acorex-modules-asset-management-asset.entity-Du_fWe9V.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bwk3-2wy.mjs.map +0 -1
- package/fesm2022/acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-C0LLBxMR.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-DSnrVaWI.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-qf2WNKB_.mjs.map +0 -1
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs +0 -54
- package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-DTKNtyBF.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-Dqhk5reQ.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-C1J123cl.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-team-member.entity-IN-CPv5W.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-CWlgXg_u.mjs.map +0 -1
- package/fesm2022/acorex-modules-task-management-task-board.page-Bxpga0DN.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs","sources":["../../../../libs/modules/organization-management/src/lib/const.ts","../../../../libs/modules/organization-management/src/lib/entities/chart/chart.types.ts","../../../../libs/modules/organization-management/src/lib/entities/business-unit-type/business-unit-type.entity.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/model/org-chart.type.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/utils/org-chart-resolve-flyout-employee-id.util.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/constants/org-chart-employee-submenu.const.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/constants/org-chart-layout-submenu.const.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/constants/org-chart-communication-submenu.const.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/tokens/org-chart-node-contribution.token.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/model/org-chart-structure-refresh.hub.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/tokens/org-chart-host.token.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/views/detail-panel/org-chart-detail-panel.component.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/views/detail-panel/org-chart-detail-panel.component.html","../../../../libs/modules/organization-management/src/lib/settings.keys.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/ui/org-chart-user-ui.helper.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/ui/org-chart-ui.resolver.ts","../../../../libs/modules/organization-management/src/lib/manifest.ts","../../../../libs/modules/organization-management/src/lib/features/responsibilities-matrix/responsibilities-matrix-widget.config.ts","../../../../libs/modules/organization-management/src/lib/widget-definition.provider.ts","../../../../libs/modules/organization-management/src/lib/commands.keys.ts","../../../../libs/modules/organization-management/src/lib/features/organization-chart/organization-chart.module.ts","../../../../libs/modules/organization-management/src/lib/organization-management.module.ts","../../../../libs/modules/organization-management/src/acorex-modules-organization-management.ts"],"sourcesContent":["const config = {\n i18n: 'organization-management',\n module: 'OrganizationManagement',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'organization-management',\n name: config.module,\n title: '@organization-management:module.title',\n icon: 'fa-light fa-sitemap',\n },\n entities: {\n responsibility: {\n name: 'Responsibility',\n title: '@organization-management:responsibilities.entities.responsibility.title',\n source: `${config.module}.Responsibility`,\n icon: 'fa-light fa-tasks',\n },\n jobDefinition: {\n name: 'JobDefinition',\n title: '@organization-management:job-definitions.entities.job-definition.title',\n source: `${config.module}.JobDefinition`,\n icon: 'fa-light fa-user-tie',\n },\n jobLevel: {\n name: 'JobLevel',\n title: '@organization-management:job-levels.entities.job-level.title',\n source: `${config.module}.JobLevel`,\n icon: 'fa-light fa-layer-group',\n },\n responsibilityLevel: {\n name: 'ResponsibilityLevel',\n title: '@organization-management:responsibility-levels.entities.responsibility-level.title',\n titlePlural: '@organization-management:responsibility-levels.entities.responsibility-level.plural',\n source: `${config.module}.ResponsibilityLevel`,\n icon: 'fa-light fa-layer-group',\n },\n company: {\n name: 'Company',\n source: `${config.module}.Company`,\n title: '@organization-management:companies.entities.company.title',\n icon: 'fa-light fa-building',\n },\n team: {\n name: 'Team',\n source: `${config.module}.Team`,\n title: '@organization-management:teams.entities.team.title',\n icon: 'fa-light fa-people-group',\n },\n teamMemberRole: {\n name: 'TeamMemberRole',\n source: `${config.module}.TeamMemberRole`,\n title: '@organization-management:team-member-roles.entities.team-member-role.title',\n icon: 'fa-light fa-user-tag',\n },\n teamMember: {\n name: 'TeamMember',\n source: `${config.module}.TeamMember`,\n title: '@organization-management:team-members.entities.team-member.title',\n icon: 'fa-light fa-users',\n },\n teamBusinessUnit: {\n name: 'TeamBusinessUnit',\n source: `${config.module}.TeamBusinessUnit`,\n title: '@organization-management:team-business-units.entities.team-business-unit.title',\n icon: 'fa-light fa-link',\n },\n position: {\n name: 'Position',\n source: `${config.module}.Position`,\n title: '@organization-management:positions.entities.position.title',\n icon: 'fa-light fa-briefcase',\n },\n businessUnitType: {\n name: 'BusinessUnitType',\n source: `${config.module}.BusinessUnitType`,\n title: '@organization-management:business-unit-types.entities.business-unit-type.title',\n icon: 'fa-light fa-tag',\n },\n businessUnit: {\n name: 'BusinessUnit',\n source: `${config.module}.BusinessUnit`,\n title: '@organization-management:business-units.entities.business-unit.title',\n icon: 'fa-light fa-sitemap',\n },\n\n structure: {\n name: 'ChartStructure',\n source: `${config.module}.ChartStructure`,\n title: '@organization-management:chart-configuration.components.chart-configuration.title',\n menu: {\n title: '@organization-management:chart-configuration.menus.chart-configuration.title',\n },\n icon: 'fa-light fa-gear',\n },\n chart: {\n name: 'Chart',\n source: `${config.module}.Chart`,\n title: '@organization-management:organization-chart.components.chart.title',\n menu: {\n title: '@organization-management:organization-chart.menus.chart.title',\n },\n icon: 'fa-light fa-chart-diagram',\n },\n },\n};\n","import type { AXPEntityReference, AXPMultiLanguageString } from '@acorex/platform/core';\nimport type { AXPEntityModel } from '@acorex/platform/layout/entity';\n\n/** Persisted org-chart JSON: all chart modes in one row (`structure` column). */\nexport const AXM_ORG_CHART_STRUCTURE_SCHEMA_VERSION = 1 as const;\n\nexport interface AXMOrgChartStructurePayload {\n schemaVersion: typeof AXM_ORG_CHART_STRUCTURE_SCHEMA_VERSION;\n modes: {\n structure: AXMOrganizationManagementChartNodeEntityModel;\n location: AXMOrganizationManagementChartNodeEntityModel;\n reporting: AXMOrganizationManagementChartNodeEntityModel;\n positionHierarchy: AXMOrganizationManagementChartNodeEntityModel;\n };\n}\n\nexport interface AXMOrganizationManagementChartEntityModel extends AXPEntityModel<string> {\n version: string;\n structure: AXMOrgChartStructurePayload;\n}\n\nexport interface AXMOrganizationManagementChartNodeEntityModel extends AXPEntityModel<string> {\n id: string; // Unique identifier for the node\n title: AXPMultiLanguageString;\n subtitle?: AXPMultiLanguageString;\n description?: AXPMultiLanguageString;\n isExpanded?: boolean; // Add this property\n children?: AXMOrganizationManagementChartNodeEntityModel[];\n icon?: string;\n type?: string; // Type of the node\n parentId?: string | null; // ID of the parent node (null for root)\n entity?: AXPEntityReference;\n metadata?: Record<string, any>; // Additional metadata (e.g., roles, counts, etc.)\n}\n","import { AXPEntity, createAllQueryView } from '@acorex/platform/common';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXPWidgetsList } from '@acorex/modules/common';\n\nexport async function factory(injector: Injector): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n const entityName = 'business-unit-type';\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.businessUnitType.name,\n title: '@organization-management:business-unit-types.entities.business-unit-type.title',\n icon: 'fa-light fa-tags',\n formats: {\n individual: '@organization-management:business-unit-types.entities.business-unit-type.title',\n plural: '@organization-management:business-unit-types.entities.business-unit-type.plural',\n searchResult: { title: '{{ title }}', description: RootConfig.module.title },\n },\n groups: [{ id: 'basic-info', title: '@general:terms.interface.basic-info' }],\n plugins: [{ name: 'color' }, { name: 'icon' }],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'basic-info',\n schema: { dataType: 'uuid', visible: false, nullable: false, readonly: true, unique: { enabled: true } },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: { type: AXPWidgetsList.Editors.TextBox },\n },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n validations: [{ rule: 'required' }],\n },\n {\n name: 'isLocationBased',\n title:\n '@organization-management:business-unit-types.entities.business-unit-type.fields.is-location-based.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n trulyText: '@general:terms.common.yes-no.yes',\n falsyText: '@general:terms.common.yes-no.no',\n },\n },\n defaultValue: false,\n },\n },\n {\n name: 'allowsDirectPositions',\n title:\n '@organization-management:business-unit-types.entities.business-unit-type.fields.allows-direct-positions.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: {\n trulyText: '@general:terms.common.yes-no.yes',\n falsyText: '@general:terms.common.yes-no.no',\n },\n },\n defaultValue: true,\n },\n },\n ],\n columns: [\n { name: 'name' },\n { name: 'title' },\n { name: 'isLocationBased' },\n { name: 'allowsDirectPositions' },\n { name: 'color' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }],\n properties: [\n {\n name: 'title',\n layout: {\n order: 1,\n positions: {\n sm: { colSpan: 12, order: 1 },\n md: { colSpan: 8, order: 1 },\n lg: { colSpan: 8, order: 1 },\n },\n },\n },\n {\n name: 'name',\n layout: {\n order: 2,\n positions: {\n sm: { colSpan: 12, order: 2 },\n md: { colSpan: 4, order: 2 },\n lg: { colSpan: 4, order: 2 },\n },\n },\n },\n {\n name: 'isLocationBased',\n layout: {\n order: 3,\n positions: {\n sm: { colSpan: 12, order: 3 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n {\n name: 'allowsDirectPositions',\n layout: {\n order: 4,\n positions: {\n sm: { colSpan: 12, order: 4 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }],\n properties: [\n {\n name: 'title',\n layout: {\n order: 1,\n positions: {\n sm: { colSpan: 12, order: 1 },\n md: { colSpan: 8, order: 1 },\n lg: { colSpan: 8, order: 1 },\n },\n },\n },\n {\n name: 'name',\n layout: {\n order: 2,\n positions: {\n sm: { colSpan: 12, order: 2 },\n md: { colSpan: 4, order: 2 },\n lg: { colSpan: 4, order: 2 },\n },\n },\n },\n {\n name: 'isLocationBased',\n layout: {\n order: 3,\n positions: {\n sm: { colSpan: 12, order: 3 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n {\n name: 'allowsDirectPositions',\n layout: {\n order: 4,\n positions: {\n sm: { colSpan: 12, order: 4 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'basic-info' }],\n properties: [\n {\n name: 'title',\n layout: {\n order: 1,\n positions: {\n sm: { colSpan: 12, order: 1 },\n md: { colSpan: 8, order: 1 },\n lg: { colSpan: 8, order: 1 },\n },\n },\n },\n {\n name: 'name',\n layout: {\n order: 2,\n positions: {\n sm: { colSpan: 12, order: 2 },\n md: { colSpan: 4, order: 2 },\n lg: { colSpan: 4, order: 2 },\n },\n },\n },\n {\n name: 'isLocationBased',\n layout: {\n order: 3,\n positions: {\n sm: { colSpan: 12, order: 3 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n {\n name: 'allowsDirectPositions',\n layout: {\n order: 4,\n positions: {\n sm: { colSpan: 12, order: 4 },\n md: { colSpan: 6, order: 3 },\n lg: { colSpan: 6, order: 3 },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView({ sorts: [{ name: 'title', dir: 'asc' }] })],\n },\n },\n },\n };\n\n return entityDef;\n}\n","/**\n * Chart node data types for organization chart.\n */\nimport type { AXPEntityReference, AXPMultiLanguageString } from '@acorex/platform/core';\n\n/**\n * Chart nodes use {@link AXPMultiLanguageString} for every user-visible string on the card\n * (`title`, `subtitle`, `description`) so stored chart JSON and the UI respect locale.\n *\n * - Prefer **locale maps** `{ 'en-US': '…', 'fa-IR': '…' }` (see `createMultiLanguageString` in platform core).\n * - A **plain string** is allowed as a narrow fallback; the resolver treats it as the value for any locale.\n * - **`metadata`** fields that are shown in templates must also be `AXPMultiLanguageString` (or plain string\n * with the same rules), not English-only literals baked into feature code.\n */\nexport enum AXMOrgChartNodeType {\n Company = 'Company',\n BusinessUnit = 'BusinessUnit',\n Position = 'Position',\n Employee = 'Employee',\n}\n\n/** Card layout for organizational (and compatible geographic) charts — see README merging strategy. */\nexport type AXMOrgChartCardTemplate =\n | 'merged-executive'\n | 'merged-unit'\n | 'merged-manager'\n | 'position-ic'\n | 'employee-card'\n | 'compact';\n\n/** Structured head / CEO block for merged cards; `positionTitle` is always localized. */\nexport interface AXMOrgChartMergedRoleBlock {\n positionTitle: AXPMultiLanguageString;\n positionId?: string;\n employeeName?: string;\n employeeId?: string;\n vacant: boolean;\n}\n\n// Minimal high-level categories for rendering/legend only\nexport enum AXMOrgChartCategory {\n Company = 'Company',\n BusinessUnit = 'BusinessUnit',\n Position = 'Position',\n Employee = 'Employee',\n}\n\n/** User-selectable hierarchy chart view in the organization chart page. */\nexport type OrgChartMode = 'location' | 'structure' | 'reporting' | 'positionHierarchy';\n\nexport interface AXMOrganizationNode {\n id: string; // Unique identifier for the node\n /** Primary label; must be multi-language when content is not a proper name. */\n title: AXPMultiLanguageString;\n /** Secondary line (e.g. head summary); use locale map when mixing labels and entity titles. */\n subtitle?: AXPMultiLanguageString;\n /** Body / mission text. */\n description?: AXPMultiLanguageString;\n isExpanded?: boolean; // Add this property\n children?: AXMOrganizationNode[];\n icon?: string;\n type?: AXMOrgChartNodeType; // Type of the node\n parentId?: string | null; // ID of the parent node (null for root)\n entity?: AXPEntityReference;\n /** Rich card data; any **display** field here should use `AXPMultiLanguageString` like the core node fields. */\n metadata?: Record<string, any>;\n}\n\n/**\n * Pill badge on org chart node cards (icon + label). {@link title} is translated in the template.\n */\nexport interface AXMOrgChartNodeBadgeItem {\n /** Font Awesome class segment (e.g. `fa-light fa-building`). */\n icon: string;\n title: AXPMultiLanguageString;\n}\n\n/**\n * Footer metric cell: icon, numeric or short value, and translated label.\n */\nexport interface AXMOrgChartNodeFooterMetric {\n icon: string;\n /** Plain display value (formatted number or short text). */\n value: string;\n title: AXPMultiLanguageString;\n}\n","//#region ---- Imports ----\n\nimport { AXMOrgChartNodeContributionContext } from '../tokens/org-chart-node-contribution.token';\n\n//#endregion\n\nconst HCM_EMPLOYEE_SOURCE = 'HumanCapitalManagement.Employee';\n\n//#region ---- Resolve flyout employee ----\n\n/**\n * Employee id for org chart **Employee** flyout actions: card occupant, unit head, top role, or an `employee` node.\n * Returns undefined when the seat is vacant or no person is linked.\n */\nexport function axmResolveOrgChartFlyoutEmployeeId(\n context: AXMOrgChartNodeContributionContext,\n): string | undefined {\n if (context.nodeKind === 'employee') {\n const entity = context.node.entity;\n if (entity?.id != null && axmIsEmployeeEntityType(entity.type)) {\n const id = String(entity.id).trim();\n return id.length > 0 ? id : undefined;\n }\n return undefined;\n }\n\n if (context.nodeKind === 'company-root') {\n const topRole = context.node.metadata?.['topRole'] as Record<string, unknown> | undefined;\n if (!topRole || topRole['vacant'] === true) {\n return undefined;\n }\n const raw = topRole['employeeId'];\n return typeof raw === 'string' && raw.trim().length > 0 ? raw.trim() : undefined;\n }\n\n if (context.nodeKind === 'business-unit') {\n const unitHead = context.node.metadata?.['unitHead'] as Record<string, unknown> | undefined;\n if (!unitHead || unitHead['vacant'] === true) {\n return undefined;\n }\n const raw = unitHead['employeeId'];\n return typeof raw === 'string' && raw.trim().length > 0 ? raw.trim() : undefined;\n }\n\n if (context.nodeKind === 'position') {\n if (context.node.metadata?.['vacant'] === true) {\n return undefined;\n }\n const occ = context.node.metadata?.['occupant'] as Record<string, unknown> | undefined;\n const raw = occ?.['employeeId'];\n return typeof raw === 'string' && raw.trim().length > 0 ? raw.trim() : undefined;\n }\n\n return undefined;\n}\n\nfunction axmIsEmployeeEntityType(entityType: string | undefined): boolean {\n if (!entityType || typeof entityType !== 'string') {\n return false;\n }\n return entityType === HCM_EMPLOYEE_SOURCE || entityType.endsWith('.Employee');\n}\n\n//#endregion\n","//#region ---- Org chart: employee flyout (assigned person + employee nodes) ----\n\n/**\n * Stable {@link AXMOrgChartNodeMenuAction.submenuGroupId} for actions that target the person on a card\n * (chief executive, unit head, seat occupant) or the {@link AXMOrgChartNodeKind} `employee` node itself.\n * Private chat/email move here from the Communication group.\n */\nexport const AXM_ORG_CHART_EMPLOYEE_SUBMENU_GROUP_ID =\n 'organization-management.org-chart.employee-submenu' as const;\n\n/**\n * i18n key: `organization-chart.employee-submenu.title` in `organization-management` assets.\n */\nexport const AXM_ORG_CHART_EMPLOYEE_SUBMENU_TITLE_I18N_KEY =\n '@organization-management:organization-chart.employee-submenu.title' as const;\n\nexport const AXM_ORG_CHART_EMPLOYEE_SUBMENU_ICON = 'fa-light fa-user' as const;\n\n//#endregion\n","//#region ---- Org chart: view / layout flyout ----\n\n/**\n * Stable {@link AXMOrgChartNodeMenuAction.submenuGroupId} for panel toggle and branch expand/collapse.\n */\nexport const AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID =\n 'organization-management.org-chart.layout-submenu' as const;\n\n/**\n * i18n key: `organization-chart.layout-submenu.title` in `organization-management` assets.\n */\nexport const AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY =\n '@organization-management:organization-chart.layout-submenu.title' as const;\n\nexport const AXM_ORG_CHART_LAYOUT_SUBMENU_ICON = 'fa-light fa-sidebar' as const;\n\n//#endregion\n","//#region ---- Org chart: shared communication flyout ----\n\n/**\n * Stable {@link AXMOrgChartNodeMenuAction.submenuGroupId} so chat and email extensions merge\n * their org-chart context actions under one parent flyout.\n */\nexport const AXM_ORG_CHART_COMMUNICATION_SUBMENU_GROUP_ID =\n 'organization-management.org-chart.communication-submenu' as const;\n\n/**\n * i18n key for the flyout parent label (`apps/.../organization-management.json`:\n * `organization-chart.communication-submenu.title`).\n */\nexport const AXM_ORG_CHART_COMMUNICATION_SUBMENU_TITLE_I18N_KEY =\n '@organization-management:organization-chart.communication-submenu.title' as const;\n\n/** Parent row icon when actions from multiple modules supply the same group id. */\nexport const AXM_ORG_CHART_COMMUNICATION_SUBMENU_ICON = 'fa-light fa-comments' as const;\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXStyleColorType } from '@acorex/cdk/common';\nimport { AXPMultiLanguageString } from '@acorex/platform/core';\nimport { InjectionToken } from '@angular/core';\nimport type { AXMOrgChartHostApi } from './org-chart-host.token';\nimport { AXMOrganizationNode } from '../model/org-chart.type';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport type AXMOrgChartNodeKind = 'company-root' | 'business-unit' | 'position' | 'employee' | 'other';\n\n/** Section separator for org chart context menu rows built from {@link AXMOrgChartNodeMenuAction}. */\nexport type AXMOrgChartNodeMenuBreak = 'before' | 'after' | 'both';\n\nexport interface AXMOrgChartNodeContributionContext {\n node: AXMOrganizationNode;\n nodeKind: AXMOrgChartNodeKind;\n selectedMode: 'location' | 'structure' | 'reporting' | 'positionHierarchy';\n refreshChart: () => Promise<void>;\n /** Page host (detail panel, branch expand/collapse, selection). */\n host: AXMOrgChartHostApi;\n}\n\nexport interface AXMOrgChartNodeMenuAction {\n id: string;\n /** i18n key (`@scope:...`) or {@link AXPMultiLanguageString} locale map (`ax-menu-item` pipes `translate` without forwarding params — use maps for interpolated copy). */\n title: string | AXPMultiLanguageString;\n /** Interpolation helper for contributors; the org chart host does not pipe params into menu `translate` (use `title` maps). */\n titleParams?: Record<string, string | number>;\n icon?: string;\n color?: AXStyleColorType;\n order?: number;\n disabled?: boolean;\n /**\n * Section separator for this row (and for `submenuGroupId` buckets: `before` / `after` / `both` also move the\n * parent flyout's separator relative to siblings). `before` is implemented by setting `AXMenuItem.break` on the\n * **previous** sibling at the same level (no-op when first).\n */\n break?: AXMOrgChartNodeMenuBreak;\n /**\n * Adds a separator after this row. Applies at any menu level (including root when a `submenuGroupId` flyout is\n * flattened, e.g. Employee actions on an employee node). Does not set the parent bucket's trailing break; use\n * {@link break} `after` / `both` on a member when the parent flyout row should also end a section.\n */\n submenuSectionBreak?: boolean;\n /**\n * When true, nested under the chart **Add …** submenu (business unit kinds, add position, and similar).\n */\n nestedInAddFlyout?: boolean;\n /**\n * Optional flyout: actions that share the same `submenuGroupId` render as children of one parent row.\n * Use the same `submenuGroupTitle` for every member; `submenuGroupIcon` may be set on any member (first wins).\n * On grouped members: {@link break} `after` / `both` adds a line inside the flyout below that child and sets the\n * parent row's section break after the flyout; `before` / `both` on any member adds a line before the parent row\n * (previous top-level sibling gets `break`). Use {@link submenuSectionBreak} for a separator after that child\n * without affecting the parent bucket's trailing break.\n * Cross-module chat + email on the org chart should use the communication constants in\n * `org-chart-communication-submenu.const.ts` (`AXM_ORG_CHART_COMMUNICATION_SUBMENU_GROUP_ID`, title key, icon).\n */\n submenuGroupId?: string;\n submenuGroupTitle?: string | AXPMultiLanguageString;\n submenuGroupIcon?: string;\n execute: (context: AXMOrgChartNodeContributionContext) => Promise<void>;\n}\n\nexport interface AXMOrgChartNodeInfoContribution {\n id: string;\n title: AXPMultiLanguageString;\n order?: number;\n load: (context: AXMOrgChartNodeContributionContext) => Promise<unknown>;\n}\n\nexport interface AXMOrgChartNodeContributionProvider {\n getMenuActions(context: AXMOrgChartNodeContributionContext): Promise<AXMOrgChartNodeMenuAction[]>;\n getInfoContributions?(context: AXMOrgChartNodeContributionContext): Promise<AXMOrgChartNodeInfoContribution[]>;\n}\n\n/**\n * One multi-provider slot: an eager instance or a promise from a lazy provider factory (`provideLazyProvider`).\n */\nexport type AXMOrgChartNodeContributorRef =\n | AXMOrgChartNodeContributionProvider\n | Promise<AXMOrgChartNodeContributionProvider>;\n\n//#endregion\n\n//#region ---- Tokens ----\n\nexport const AXM_ORG_CHART_NODE_CONTRIBUTOR = new InjectionToken<AXMOrgChartNodeContributorRef>(\n 'AXM_ORG_CHART_NODE_CONTRIBUTOR',\n);\n\n//#endregion\n","import { Injectable, signal } from '@angular/core';\n\n/**\n * Broadcasts when persisted org chart structure was rebuilt (e.g. mock listener after related entity changes).\n * The chart page reloads from storage when {@link structureDataRevision} increments.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMOrgChartStructureRefreshHub {\n private readonly revision = signal(0);\n\n readonly structureDataRevision = this.revision.asReadonly();\n\n notifyStructureRebuilt(): void {\n this.revision.update((v) => v + 1);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXPMultiLanguageString } from '@acorex/platform/core';\nimport { AXMOrganizationNode } from '../model/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 isNodeSelected(data: AXMOrganizationNode): boolean;\n selectNode(data: AXMOrganizationNode): void;\n openNodeContextMenuFromMore(event: unknown, data: AXMOrganizationNode): void;\n readonly chartML: {\n vacant: AXPMultiLanguageString;\n directReports: AXPMultiLanguageString;\n teams: AXPMultiLanguageString;\n people: AXPMultiLanguageString;\n positions: AXPMultiLanguageString;\n chiefExecutive: AXPMultiLanguageString;\n /** Business unit detail rows: unit head display name and role title from `metadata.unitHead`. */\n buHead: AXPMultiLanguageString;\n buPosition: AXPMultiLanguageString;\n unitType: AXPMultiLanguageString;\n businessUnit: AXPMultiLanguageString;\n location: AXPMultiLanguageString;\n code: AXPMultiLanguageString;\n capacity: AXPMultiLanguageString;\n level: AXPMultiLanguageString;\n email: AXPMultiLanguageString;\n phone: AXPMultiLanguageString;\n employmentType: AXPMultiLanguageString;\n workMode: AXPMultiLanguageString;\n /** i18n key for the node “more” control (translate pipe). */\n more: string;\n /** i18n key when the context menu has no runnable actions. */\n noActionsAvailable: string;\n };\n getTeamsMembershipCount(data: AXMOrganizationNode): number | null;\n /** When the card body already shows the assignee (merged unit / manager seat), hide `subtitle` so it is not duplicated. */\n shouldShowOrgCardSubtitle(data: AXMOrganizationNode): boolean;\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 /** Key-value rows for the side detail panel only (not rendered on node cards). */\n getNodeInfoItems(data: AXMOrganizationNode): Array<{ label: AXPMultiLanguageString; value: string }>;\n toggleNode(data: AXMOrganizationNode, el?: HTMLDivElement | null): void;\n /** Shows or hides the chart detail panel. */\n toggleDetailPanel(): void;\n /**\n * Sets explicit expand/collapse for a branch and redraws the chart.\n * @param expanded When false, children are hidden on the next layout (`isExpanded === false`).\n */\n setNodeBranchExpanded(data: AXMOrganizationNode, expanded: boolean): 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 { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXM_ORG_CHART_HOST, type AXMOrgChartHostApi } from '../../tokens/org-chart-host.token';\nimport { AXMOrganizationNode, AXMOrgChartNodeType } from '../../model/org-chart.type';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * Side panel for the organization chart: mirrors document explorer detail-panel layout/styling for node summary and metadata rows.\n */\n@Component({\n selector: 'axm-org-chart-detail-panel',\n templateUrl: './org-chart-detail-panel.component.html',\n styleUrls: ['./org-chart-detail-panel.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXTranslationModule],\n})\nexport class AXMOrgChartDetailPanelComponent {\n //#region ---- Services & Dependencies ----\n\n protected readonly host: AXMOrgChartHostApi = inject(AXM_ORG_CHART_HOST);\n protected readonly OrgChartNodeType = AXMOrgChartNodeType;\n\n //#endregion\n\n //#region ---- Inputs / Outputs ----\n\n /** Selected tree node, or `null` when nothing is selected. */\n readonly node = input<AXMOrganizationNode | null>(null);\n\n /** Emitted when the user closes the panel (matches explorer close control). */\n readonly panelClose = output<void>();\n\n //#endregion\n\n //#region ---- Node surface (icon chip) ----\n\n /**\n * CSS custom properties for {@link AXMOrgChartHostApi.getNodeColors}. Use per-property `[style.--*]` bindings;\n * a plain `[style]` map does not reliably apply `--node-*` variables in all Angular versions.\n */\n protected surfaceVarsForNode(node: AXMOrganizationNode): Record<string, string> {\n return this.host.getNodeColors(this.nodeColorKey(node));\n }\n\n protected surfaceVarsForPrimary(): Record<string, string> {\n return this.host.getNodeColors('primary');\n }\n\n /**\n * Color argument for {@link AXMOrgChartHostApi.getNodeColors}: semantic token or `metadata.unitTypeColor` (hex/rgb) for business units.\n */\n protected nodeColorKey(node: AXMOrganizationNode): string {\n if (node.type === AXMOrgChartNodeType.Company) {\n return 'primary';\n }\n if (node.type === AXMOrgChartNodeType.BusinessUnit) {\n const typeColor = node.metadata?.['unitTypeColor'];\n if (typeof typeColor === 'string' && typeColor.trim().length > 0) {\n return typeColor.trim();\n }\n return node.metadata?.['isRegional'] === true ? 'accent1' : 'accent2';\n }\n if (node.type === AXMOrgChartNodeType.Position || node.type === AXMOrgChartNodeType.Employee) {\n return 'accent3';\n }\n return 'primary';\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n protected onClose(): void {\n this.panelClose.emit();\n }\n\n protected nodeIconClass(node: AXMOrganizationNode): string {\n const raw = node.icon?.trim() ?? '';\n const withoutWeight = raw\n .replace(/\\bfa-(solid|light|regular|thin|duotone)\\b/gi, '')\n .trim()\n .replace(/\\s+/g, ' ');\n const glyph = withoutWeight.length > 0 ? withoutWeight : 'fa-sitemap';\n return `fa-solid fa-lg fa-fw ${glyph}`;\n }\n\n //#endregion\n}\n\n//#endregion\n","@let n = node();\n@if (n) {\n @let sv = surfaceVarsForNode(n);\n <div class=\"__header\">\n <div class=\"__title\">\n <span\n class=\"detail-panel-icon\"\n [style.--node-bg-color]=\"sv['--node-bg-color']\"\n >\n <i [class]=\"nodeIconClass(n)\"></i>\n </span>\n <div class=\"ax-flex ax-flex-col ax-min-w-0 ax-flex-1\">\n <span class=\"__heading-primary\">{{ n.title | translate | async }}</span>\n @if (n.type === OrgChartNodeType.BusinessUnit) {\n @if (n.description) {\n <span class=\"ax-text-xs ax-opacity-80 ax-truncate\">{{ n.description | translate | async }}</span>\n } @else if (n.subtitle) {\n <span class=\"ax-text-xs ax-opacity-80 ax-truncate\">{{ n.subtitle | translate | async }}</span>\n }\n } @else if (n.subtitle) {\n <span class=\"ax-text-xs ax-opacity-80 ax-truncate\">{{ n.subtitle | translate | async }}</span>\n }\n </div>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"onClose()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\">\n @if (host.getNodeInfoItems(n).length > 0) {\n <div class=\"__section\">\n <div class=\"__title\">\n <span>{{\n '@organization-management:organization-chart.components.chart.detail-panel.details-section'\n | translate\n | async\n }}</span>\n </div>\n <div class=\"__content\">\n @for (item of host.getNodeInfoItems(n); track item.value + '-' + $index) {\n <div class=\"__row\">\n <div class=\"__title\">\n <span>{{ item.label | translate | async }}</span>\n </div>\n <div class=\"__content\">\n <span>{{ item.value }}</span>\n </div>\n </div>\n }\n </div>\n </div>\n } @else {\n <div class=\"__section\">\n <div class=\"__content\">\n <span class=\"ax-opacity-70 ax-text-sm\">{{\n '@organization-management:organization-chart.components.chart.detail-panel.no-rows'\n | translate\n | async\n }}</span>\n </div>\n </div>\n }\n </div>\n} @else {\n @let pv = surfaceVarsForPrimary();\n <div class=\"__header\">\n <div class=\"__title\">\n <span\n class=\"detail-panel-icon\"\n [style.--node-bg-color]=\"pv['--node-bg-color']\"\n >\n <i class=\"fa-solid fa-lg fa-fw fa-diagram-project\"></i>\n </span>\n <span class=\"__heading-primary\">{{\n '@organization-management:organization-chart.components.chart.detail-panel.title' | translate | async\n }}</span>\n </div>\n <ax-button [look]=\"'blank'\" class=\"ax-sm ax-rounded-full\" (onClick)=\"onClose()\">\n <ax-icon icon=\"fa-solid fa-xmark\"></ax-icon>\n </ax-button>\n </div>\n <div class=\"__content\">\n <div class=\"__section\">\n <div class=\"__content\">\n <span class=\"ax-opacity-70 ax-text-sm\">{{\n '@organization-management:organization-chart.components.chart.detail-panel.empty' | translate | async\n }}</span>\n </div>\n </div>\n </div>\n}\n","export enum AXPOrganizationManagementSettings {\n OrganizationName = 'OrganizationManagement:Setting:Organization.OrganizationName',\n OrganizationID = 'OrganizationManagement:Setting:Organization.OrganizationID',\n ContactEmail = 'OrganizationManagement:Setting:Organization.ContactEmail',\n ContactPhone = 'OrganizationManagement:Setting:Organization.ContactPhone',\n OrganizationAddress = 'OrganizationManagement:Setting:Organization.OrganizationAddress',\n OrganizationCity = 'OrganizationManagement:Setting:Organization.OrganizationCity',\n OrganizationCountry = 'OrganizationManagement:Setting:Organization.OrganizationCountry',\n BrandingColor = 'OrganizationManagement:Setting:Organization.Branding.Color',\n BrandingLogo = 'OrganizationManagement:Setting:Organization.Branding.Logo',\n CopyrightText = 'OrganizationManagement:Setting:Organization.CopyrightText',\n ApplicationHeaderTitle = 'OrganizationManagement:Setting:Organization.ApplicationHeaderTitle',\n SupportEmail = 'OrganizationManagement:Setting:Organization.SupportEmail',\n InfoEmail = 'OrganizationManagement:Setting:Organization.InfoEmail',\n FaxNumber = 'OrganizationManagement:Setting:Organization.FaxNumber',\n Relations = 'OrganizationManagement:Setting:Organization.Relations',\n\n /** User preference: organization hierarchy chart mode (`structure` | `location` | `reporting` | `positionHierarchy`). */\n HierarchyChartMode = 'OrganizationManagement:Setting:User.HierarchyChart.Mode',\n /** User preference: show vacant leaf seats (structure / geographic modes). */\n HierarchyChartShowVacantLeafSeats = 'OrganizationManagement:Setting:User.HierarchyChart.ShowVacantLeafSeats',\n}\n","import type { OrgChartMode } from '../model/org-chart.type';\n\n/**\n * Chart mode + vacant-seat visibility restored from user settings (route resolver or post-load hydrate).\n */\nexport interface OrgChartHydratedUiPrefs {\n selectedMode?: OrgChartMode;\n showVacantLeafSeats?: boolean;\n}\n\nexport function parseOrgChartMode(value: unknown): OrgChartMode | undefined {\n if (\n value === 'structure' ||\n value === 'location' ||\n value === 'reporting' ||\n value === 'positionHierarchy'\n ) {\n return value;\n }\n return undefined;\n}\n\n/**\n * Normalizes vacant-toggle values from persisted settings or UI widgets (some paths use strings).\n */\nexport function normalizeVacantLeafSeatsSetting(value: unknown): boolean | undefined {\n if (value === true || value === 1) {\n return true;\n }\n if (value === false || value === 0) {\n return false;\n }\n if (typeof value === 'string') {\n const s = value.trim().toLowerCase();\n if (s === 'true' || s === '1' || s === 'yes' || s === 'on') {\n return true;\n }\n if (s === 'false' || s === '0' || s === 'no' || s === 'off') {\n return false;\n }\n }\n return undefined;\n}\n","import { inject } from '@angular/core';\nimport { ResolveFn } from '@angular/router';\nimport { AXPSettingsService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPOrganizationManagementSettings } from '../../../settings.keys';\nimport {\n normalizeVacantLeafSeatsSetting,\n type OrgChartHydratedUiPrefs,\n parseOrgChartMode,\n} from './org-chart-user-ui.helper';\n\n/**\n * Loads user chart UI preferences before {@link AXMOrgChartPage} is created so the first render matches saved state.\n */\nexport const orgChartUiPrefsResolver: ResolveFn<OrgChartHydratedUiPrefs> = async () => {\n const settingsService = inject(AXPSettingsService);\n await settingsService.load();\n\n const userScope = settingsService.scope(AXPPlatformScope.User);\n const modeRaw = await userScope.get<string | undefined>(\n AXPOrganizationManagementSettings.HierarchyChartMode,\n );\n const vacantRaw = await userScope.get<unknown>(\n AXPOrganizationManagementSettings.HierarchyChartShowVacantLeafSeats,\n );\n\n const prefs: OrgChartHydratedUiPrefs = {};\n const mode = parseOrgChartMode(modeRaw);\n if (mode !== undefined) {\n prefs.selectedMode = mode;\n }\n const vacant = normalizeVacantLeafSeatsSetting(vacantRaw);\n if (vacant !== undefined) {\n prefs.showVacantLeafSeats = vacant;\n }\n return prefs;\n};\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Organization Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const OrganizationManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n\n // Module dependencies\n dependencies: ['LearningManagement'],\n};\n\n//#endregion\n\n","import { AXP_WIDGETS_EDITOR_CATEGORY, AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex/platform/layout/widget-core';\nimport { AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY, AXP_LABEL_PROPERTY, AXP_NAME_PROPERTY, AXP_READONLY_PROPERTY } from '@acorex/platform/layout/widgets';\n\nexport const AXMResponsibilitiesMatrixWidget: AXPWidgetConfig<AXMResponsibilitiesMatrixWidgetConfigType> = {\n name: 'responsibilities-matrix-editor',\n title: 'Responsibilities Matrix',\n categories: AXP_WIDGETS_EDITOR_CATEGORY,\n groups: [AXPWidgetGroupEnum.UtilityWidget],\n description: 'Matrix widget for managing responsibility levels',\n icon: 'fa-light fa-table',\n type: 'editor',\n options: {\n needLabel: false,\n },\n properties: [\n AXP_NAME_PROPERTY,\n AXP_DATA_PATH_PROPERTY,\n AXP_LABEL_PROPERTY,\n AXP_READONLY_PROPERTY,\n AXP_DISABLED_PROPERTY,\n ],\n components: {\n view: {\n component: () => import('./responsibilities-matrix-widget-view.component').then((c) => c.AXMResponsibilitiesMatrixWidgetViewComponent),\n },\n edit: {\n component: () => import('./responsibilities-matrix-widget-edit.component').then((c) => c.AXMResponsibilitiesMatrixWidgetEditComponent),\n },\n },\n};\n\nexport type AXMResponsibilitiesMatrixWidgetConfigType = {\n type: 'editor';\n};\n\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXMResponsibilitiesMatrixWidget } from './features/responsibilities-matrix/responsibilities-matrix-widget.config';\n\n//#endregion\n\n//#region ---- Organization Management Widgets Provider ----\n\n@Injectable()\nexport class AXMOrganizationManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMResponsibilitiesMatrixWidget];\n }\n}\n\n//#endregion\n","export const AXMOrganizationManagementCommandKeys = {\n OrganizationChart: {\n AddPositionToBusinessUnit: 'OrganizationManagement.OrgChart:AddPositionToBusinessUnit',\n AddBusinessUnitToBusinessUnit: 'OrganizationManagement.OrgChart:AddBusinessUnitToBusinessUnit',\n AddTeamToBusinessUnit: 'OrganizationManagement.OrgChart:AddTeamToBusinessUnit',\n RemovePositionFromBusinessUnit: 'OrganizationManagement.OrgChart:RemovePositionFromBusinessUnit',\n ReplacePositionAssignee: 'OrganizationManagement.OrgChart:ReplacePositionAssignee',\n },\n} as const;\n\n/** HCM command key (string only; avoid importing HCM from org-management). */\nexport const AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND =\n 'HumanCapitalManagement.PositionAssignment:Assign' as const;\n\n/** HCM command key (string only; avoid importing HCM from org-management). */\nexport const AXM_HCM_POSITION_ASSIGNMENT_REVOKE_COMMAND =\n 'HumanCapitalManagement.PositionAssignment:Revoke' as const;\n","//#region ---- Imports ----\n\nimport { provideLazyProvider } from '@acorex/platform/core';\nimport { provideCommand } from '@acorex/platform/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXMOrganizationManagementCommandKeys } from '../../commands.keys';\nimport { AXM_ORG_CHART_NODE_CONTRIBUTOR } from './tokens/org-chart-node-contribution.token';\n\n//#endregion\n\n//#region ---- NgModule ----\n\n/**\n * Registers organization chart node contributors and chart-scoped commands for Organization Management.\n */\n@NgModule({\n providers: [\n provideLazyProvider(AXM_ORG_CHART_NODE_CONTRIBUTOR, () =>\n import('./contributions/org-chart-default-node-contribution.provider').then(\n (m) => m.AXMOrgChartDefaultNodeContributionProvider,\n ),\n ),\n provideLazyProvider(AXM_ORG_CHART_NODE_CONTRIBUTOR, () =>\n import('./contributions/org-chart-position-employee-node-contribution.provider').then(\n (m) => m.AXMOrgChartPositionEmployeeNodeContributionProvider,\n ),\n ),\n provideLazyProvider(AXM_ORG_CHART_NODE_CONTRIBUTOR, () =>\n import('./contributions/org-chart-employee-flyout-contribution.provider').then(\n (m) => m.AXMOrgChartEmployeeFlyoutContributionProvider,\n ),\n ),\n provideLazyProvider(AXM_ORG_CHART_NODE_CONTRIBUTOR, () =>\n import('./contributions/org-chart-ux-node-contribution.provider').then(\n (m) => m.AXMOrgChartUxNodeContributionProvider,\n ),\n ),\n provideCommand(AXMOrganizationManagementCommandKeys.OrganizationChart.AddPositionToBusinessUnit, () =>\n import('./commands/add-position-to-business-unit.command').then((m) => m.AXMAddPositionToBusinessUnitCommand),\n ),\n provideCommand(AXMOrganizationManagementCommandKeys.OrganizationChart.AddBusinessUnitToBusinessUnit, () =>\n import('./commands/add-business-unit-to-business-unit.command').then(\n (m) => m.AXMAddBusinessUnitToBusinessUnitCommand,\n ),\n ),\n provideCommand(AXMOrganizationManagementCommandKeys.OrganizationChart.AddTeamToBusinessUnit, () =>\n import('./commands/add-team-to-business-unit.command').then((m) => m.AXMAddTeamToBusinessUnitCommand),\n ),\n provideCommand(AXMOrganizationManagementCommandKeys.OrganizationChart.RemovePositionFromBusinessUnit, () =>\n import('./commands/remove-position-from-business-unit.command').then(\n (m) => m.AXMRemovePositionFromBusinessUnitCommand,\n ),\n ),\n provideCommand(AXMOrganizationManagementCommandKeys.OrganizationChart.ReplacePositionAssignee, () =>\n import('./commands/replace-position-assignee.command').then((m) => m.AXMReplacePositionAssigneeCommand),\n ),\n ],\n})\nexport class AXMOrganizationChartModule {}\n\n//#endregion\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_IDENTIFIER_RULES } from '@acorex/modules/identifier-management';\nimport { AXP_HOME_PAGES, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport {\n AXP_MODULE_MANIFEST_PROVIDER,\n AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n AXP_DATASOURCE_DEFINITION_PROVIDER,\n AXP_FEATURE_DEFINITION_PROVIDER,\n provideLazyProvider,\n} from '@acorex/platform/core';\nimport { orgChartUiPrefsResolver } from './features/organization-chart/ui/org-chart-ui.resolver';\nimport { OrganizationManagementManifest } from './manifest';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex/platform/layout/components';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { CommonModule } from '@angular/common';\nimport { inject, NgModule } from '@angular/core';\nimport { Route, Routes, ROUTES } from '@angular/router';\nimport { AXMOrganizationManagementWidgetsProvider } from './widget-definition.provider';\nimport { AXMOrganizationChartModule } from './features/organization-chart/organization-chart.module';\n\nfunction routesFacory() {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n const routes: Routes = [\n {\n loadComponent: () => {\n return config.viewers.root();\n },\n path: ':app/organization',\n canActivate: [AXPAuthGuard],\n children: [\n {\n path: 'chart',\n resolve: { orgChartUi: orgChartUiPrefsResolver },\n loadComponent: () => import('./features/organization-chart/page/org-chart.page').then((c) => c.AXMOrgChartPage),\n },\n ],\n },\n ];\n return routes;\n}\n\nfunction routesFactory(): Route {\n const config = inject(AXP_ENTITY_CONFIG_TOKEN);\n return {\n path: ':app/organization',\n loadComponent: () => {\n return config.viewers.root();\n },\n children: [\n {\n path: 'chart',\n resolve: { orgChartUi: orgChartUiPrefsResolver },\n loadComponent: () => import('./features/organization-chart/page/org-chart.page').then((c) => c.AXMOrgChartPage),\n },\n ],\n };\n}\n\n@NgModule({\n imports: [\n CommonModule,\n AXPWidgetCoreModule,\n AXMOrganizationChartModule,\n ],\n providers: [\n provideLazyProvider(AXP_IDENTIFIER_RULES, () =>\n import('./features/identifiers/organization-code-identifier-rules.provider').then(\n (m) => m.AXMOrganizationBusinessUnitCodeIdentifierRule,\n ),\n ),\n provideLazyProvider(AXP_IDENTIFIER_RULES, () =>\n import('./features/identifiers/organization-code-identifier-rules.provider').then(\n (m) => m.AXMOrganizationTeamCodeIdentifierRule,\n ),\n ),\n provideLazyProvider(AXP_IDENTIFIER_RULES, () =>\n import('./features/identifiers/organization-code-identifier-rules.provider').then(\n (m) => m.AXMOrganizationPositionCodeIdentifierRule,\n ),\n ),\n // Module-specific providers (not part of manifest system)\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFacory,\n },\n\n provideLazyProvider(AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, () =>\n import('./features/shared/data-source-evaluator-scope.provider').then(\n (m) => m.AXMOrganizationManagementDataSourceEvaluatorScopeProvider,\n ),\n ),\n provideLazyProvider(AXP_DATASOURCE_DEFINITION_PROVIDER, () =>\n import('./features/shared/datasources/job-level.datasource').then((m) => m.AXMJobLevelDataSourceDefinition),\n ),\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: OrganizationManagementManifest,\n multi: true,\n },\n provideLazyProvider(AXP_PERMISSION_DEFINITION_PROVIDER, () =>\n import('./permission-definition.provider').then((m) => m.AXMPermissionDefinitionProvider),\n ),\n provideLazyProvider(AXP_MENU_PROVIDER, () => import('./menu.provider').then((m) => m.AXMMenuProvider)),\n provideLazyProvider(AXP_ENTITY_DEFINITION_LOADER, () =>\n import('./entity.provider').then((m) => m.AXMOrganizationModuleEntityProvider),\n ),\n provideLazyProvider(AXP_FEATURE_DEFINITION_PROVIDER, () =>\n import('./feature-definition.provider').then((m) => m.AXPOrganizationManagementFeatureDefinitionProvider),\n ),\n provideLazyProvider(AXP_PAGE_COMPONENT_PROVIDER, () =>\n import('./features/job-definition-pages/job-definition-pages-component.provider').then(\n (m) => m.AXMJobDefinitionPagesComponentProvider,\n ),\n ),\n provideLazyProvider(\n AXP_SETTING_DEFINITION_PROVIDER,\n () => import('./settings.provider').then((m) => m.AXMSettingProvider),\n ),\n // Widgets must register eagerly: lazy registration can resolve after entity forms bind,\n // so module editors like responsibilities-matrix-editor would not be found (blank UI).\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMOrganizationManagementWidgetsProvider,\n multi: true,\n },\n ],\n})\nexport class AXMOrganizationManagementModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
|
6
6
|
import { AXPCommandService } from '@acorex/platform/runtime';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
8
|
import { inject, Injectable } from '@angular/core';
|
|
9
|
-
import { R as RootConfig,
|
|
9
|
+
import { R as RootConfig, i as AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from './acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs';
|
|
10
10
|
|
|
11
11
|
//#region ---- Imports ----
|
|
12
12
|
class AXMAddBusinessUnitToBusinessUnitCommand {
|
|
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
162
162
|
}] });
|
|
163
163
|
|
|
164
164
|
export { AXMAddBusinessUnitToBusinessUnitCommand };
|
|
165
|
-
//# sourceMappingURL=acorex-modules-organization-management-add-business-unit-to-business-unit.command-
|
|
165
|
+
//# sourceMappingURL=acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-organization-management-add-business-unit-to-business-unit.command-pnxqURIQ.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/commands/add-business-unit-to-business-unit.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPCommand, AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from '../../../commands.keys';\nimport { RootConfig } from '../../../const';\nimport type { AXMOrganizationManagementBusinessUnitEntityModel } from '../../../entities/business-unit/business-unit.types';\n\n//#endregion\n\nexport interface AXMAddBusinessUnitToBusinessUnitInput {\n /** Parent BU when adding under a business unit; omit or empty from company root. */\n parentBusinessUnitId?: string | null;\n typeId: string;\n}\n\nexport interface AXMAddBusinessUnitToBusinessUnitResult {\n childBusinessUnitId: string;\n /** True when HCM position assignment for the unit head completed successfully. */\n headAssignCompleted?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMAddBusinessUnitToBusinessUnitCommand\n implements AXPCommand<AXMAddBusinessUnitToBusinessUnitInput, AXMAddBusinessUnitToBusinessUnitResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly dialogService = inject(AXDialogService);\n private readonly toastService = inject(AXToastService);\n private readonly sessionService = inject(AXPSessionService);\n\n private readonly positionAssignmentCreatePermission =\n 'HumanCapitalManagement:Permission:PositionAssignment.Create';\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(\n input: AXMAddBusinessUnitToBusinessUnitInput,\n ): Promise<AXPExecuteCommandResult<AXMAddBusinessUnitToBusinessUnitResult>> {\n const typeId = input?.typeId?.trim() ?? '';\n if (!typeId) {\n return { success: false };\n }\n\n const parentId = this.normalizeOptionalId(input?.parentBusinessUnitId);\n\n const createResult = await this.commandService.execute('Entity:Create', {\n __context__: {\n entity: RootConfig.entities.businessUnit.source,\n entityInfo: {\n module: RootConfig.module.name,\n name: RootConfig.entities.businessUnit.name,\n title: RootConfig.entities.businessUnit.title,\n parentKey: 'parentId',\n },\n data: {\n ...(parentId ? { parentId } : {}),\n typeId,\n },\n options: {\n process: {\n redirect: false,\n },\n },\n },\n });\n\n if (!createResult?.success) {\n return { success: false };\n }\n\n const childBusinessUnitId = this.extractCreatedEntityId(createResult.data);\n if (!childBusinessUnitId) {\n return { success: true };\n }\n\n if (!(await this.typeAllowsDirectPositions(typeId))) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n if (!this.sessionService.authorize(this.positionAssignmentCreatePermission)) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n if (!(await this.confirmAssignHeadNow())) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n const headPositionId = await this.resolveHeadPositionId(childBusinessUnitId);\n if (!headPositionId) {\n await this.showMissingHeadPositionHint();\n return { success: true, data: { childBusinessUnitId } };\n }\n\n const assignResult = await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId: childBusinessUnitId,\n positionId: headPositionId,\n isPrimary: true,\n },\n });\n\n return {\n success: true,\n data: {\n childBusinessUnitId,\n headAssignCompleted: assignResult?.success === true,\n },\n };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * When false, the business unit type cannot hold direct positions (no head-assignment prompt after create).\n */\n private async typeAllowsDirectPositions(businessUnitTypeId: string): Promise<boolean> {\n const id = businessUnitTypeId.trim();\n if (!id) {\n return true;\n }\n try {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnitType.name)\n .data()\n .byKey(id);\n return (row as { allowsDirectPositions?: boolean } | null)?.allowsDirectPositions !== false;\n } catch {\n return true;\n }\n }\n\n private normalizeOptionalId(value: unknown): string | undefined {\n if (value == null) {\n return undefined;\n }\n const s = String(value).trim();\n return s.length > 0 ? s : undefined;\n }\n\n private extractCreatedEntityId(data: unknown): string {\n if (data == null || typeof data !== 'object') {\n return '';\n }\n const record = data as Record<string, unknown>;\n const item = record['item'] ?? data;\n if (item == null || typeof item !== 'object') {\n return '';\n }\n const id = (item as Record<string, unknown>)['id'];\n if (typeof id === 'string') {\n return id.trim();\n }\n if (typeof id === 'number' && Number.isFinite(id)) {\n return String(id);\n }\n return '';\n }\n\n private async confirmAssignHeadNow(): Promise<boolean> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-after-bu-create.title',\n );\n const message = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-after-bu-create.message',\n );\n const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');\n return result.result === true;\n }\n\n private async resolveHeadPositionId(businessUnitId: string): Promise<string> {\n const buData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnit.name)\n .data<string, AXMOrganizationManagementBusinessUnitEntityModel>();\n const row = await buData.byKey(businessUnitId);\n const raw = row?.headPositionId;\n if (typeof raw === 'string') {\n const id = raw.trim();\n return id.length > 0 ? id : '';\n }\n return '';\n }\n\n private async showMissingHeadPositionHint(): Promise<void> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-missing-head-position.title',\n );\n const content = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-missing-head-position.message',\n );\n this.toastService.show({ color: 'warning', title, content });\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-organization-management-add-business-unit-to-business-unit.command-BEJyfR3P.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/commands/add-business-unit-to-business-unit.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPCommand, AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from '../../../commands.keys';\nimport { RootConfig } from '../../../const';\nimport type { AXMOrganizationManagementBusinessUnitEntityModel } from '../../../entities/business-unit/business-unit.types';\n\n//#endregion\n\nexport interface AXMAddBusinessUnitToBusinessUnitInput {\n /** Parent BU when adding under a business unit; omit or empty from company root. */\n parentBusinessUnitId?: string | null;\n typeId: string;\n}\n\nexport interface AXMAddBusinessUnitToBusinessUnitResult {\n childBusinessUnitId: string;\n /** True when HCM position assignment for the unit head completed successfully. */\n headAssignCompleted?: boolean;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMAddBusinessUnitToBusinessUnitCommand\n implements AXPCommand<AXMAddBusinessUnitToBusinessUnitInput, AXMAddBusinessUnitToBusinessUnitResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly entityService = inject(AXPEntityService);\n private readonly translationService = inject(AXTranslationService);\n private readonly dialogService = inject(AXDialogService);\n private readonly toastService = inject(AXToastService);\n private readonly sessionService = inject(AXPSessionService);\n\n private readonly positionAssignmentCreatePermission =\n 'HumanCapitalManagement:Permission:PositionAssignment.Create';\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(\n input: AXMAddBusinessUnitToBusinessUnitInput,\n ): Promise<AXPExecuteCommandResult<AXMAddBusinessUnitToBusinessUnitResult>> {\n const typeId = input?.typeId?.trim() ?? '';\n if (!typeId) {\n return { success: false };\n }\n\n const parentId = this.normalizeOptionalId(input?.parentBusinessUnitId);\n\n const createResult = await this.commandService.execute('Entity:Create', {\n __context__: {\n entity: RootConfig.entities.businessUnit.source,\n entityInfo: {\n module: RootConfig.module.name,\n name: RootConfig.entities.businessUnit.name,\n title: RootConfig.entities.businessUnit.title,\n parentKey: 'parentId',\n },\n data: {\n ...(parentId ? { parentId } : {}),\n typeId,\n },\n options: {\n process: {\n redirect: false,\n },\n },\n },\n });\n\n if (!createResult?.success) {\n return { success: false };\n }\n\n const childBusinessUnitId = this.extractCreatedEntityId(createResult.data);\n if (!childBusinessUnitId) {\n return { success: true };\n }\n\n if (!(await this.typeAllowsDirectPositions(typeId))) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n if (!this.sessionService.authorize(this.positionAssignmentCreatePermission)) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n if (!(await this.confirmAssignHeadNow())) {\n return { success: true, data: { childBusinessUnitId } };\n }\n\n const headPositionId = await this.resolveHeadPositionId(childBusinessUnitId);\n if (!headPositionId) {\n await this.showMissingHeadPositionHint();\n return { success: true, data: { childBusinessUnitId } };\n }\n\n const assignResult = await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId: childBusinessUnitId,\n positionId: headPositionId,\n isPrimary: true,\n },\n });\n\n return {\n success: true,\n data: {\n childBusinessUnitId,\n headAssignCompleted: assignResult?.success === true,\n },\n };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * When false, the business unit type cannot hold direct positions (no head-assignment prompt after create).\n */\n private async typeAllowsDirectPositions(businessUnitTypeId: string): Promise<boolean> {\n const id = businessUnitTypeId.trim();\n if (!id) {\n return true;\n }\n try {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnitType.name)\n .data()\n .byKey(id);\n return (row as { allowsDirectPositions?: boolean } | null)?.allowsDirectPositions !== false;\n } catch {\n return true;\n }\n }\n\n private normalizeOptionalId(value: unknown): string | undefined {\n if (value == null) {\n return undefined;\n }\n const s = String(value).trim();\n return s.length > 0 ? s : undefined;\n }\n\n private extractCreatedEntityId(data: unknown): string {\n if (data == null || typeof data !== 'object') {\n return '';\n }\n const record = data as Record<string, unknown>;\n const item = record['item'] ?? data;\n if (item == null || typeof item !== 'object') {\n return '';\n }\n const id = (item as Record<string, unknown>)['id'];\n if (typeof id === 'string') {\n return id.trim();\n }\n if (typeof id === 'number' && Number.isFinite(id)) {\n return String(id);\n }\n return '';\n }\n\n private async confirmAssignHeadNow(): Promise<boolean> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-after-bu-create.title',\n );\n const message = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-after-bu-create.message',\n );\n const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');\n return result.result === true;\n }\n\n private async resolveHeadPositionId(businessUnitId: string): Promise<string> {\n const buData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnit.name)\n .data<string, AXMOrganizationManagementBusinessUnitEntityModel>();\n const row = await buData.byKey(businessUnitId);\n const raw = row?.headPositionId;\n if (typeof raw === 'string') {\n const id = raw.trim();\n return id.length > 0 ? id : '';\n }\n return '';\n }\n\n private async showMissingHeadPositionHint(): Promise<void> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-missing-head-position.title',\n );\n const content = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-head-missing-head-position.message',\n );\n this.toastService.show({ color: 'warning', title, content });\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { AXPEntityService, AXPEntityDefinitionRegistryService, AXPEntityDataSele
|
|
|
5
5
|
import { AXPCommandService } from '@acorex/platform/runtime';
|
|
6
6
|
import * as i0 from '@angular/core';
|
|
7
7
|
import { inject, Injectable } from '@angular/core';
|
|
8
|
-
import { R as RootConfig,
|
|
8
|
+
import { R as RootConfig, i as AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from './acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs';
|
|
9
9
|
|
|
10
10
|
//#region ---- Imports ----
|
|
11
11
|
class AXMAddPositionToBusinessUnitCommand {
|
|
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
136
136
|
}] });
|
|
137
137
|
|
|
138
138
|
export { AXMAddPositionToBusinessUnitCommand };
|
|
139
|
-
//# sourceMappingURL=acorex-modules-organization-management-add-position-to-business-unit.command-
|
|
139
|
+
//# sourceMappingURL=acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-modules-organization-management-add-position-to-business-unit.command-DbHKd1Nd.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/commands/add-position-to-business-unit.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport {\n AXPEntityDataSelectorService,\n AXPEntityDefinitionRegistryService,\n AXPEntityService,\n} from '@acorex/platform/layout/entity';\nimport { AXPCommand, AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from '../../../commands.keys';\nimport { RootConfig } from '../../../const';\nimport type { AXMOrganizationManagementBusinessUnitEntityModel } from '../../../entities/business-unit/business-unit.types';\n\n//#endregion\n\nexport interface AXMAddPositionToBusinessUnitInput {\n businessUnitId: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMAddPositionToBusinessUnitCommand\n implements AXPCommand<AXMAddPositionToBusinessUnitInput, { businessUnitId: string; positionId: string }>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly entityService = inject(AXPEntityService);\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly entitySelector = inject(AXPEntityDataSelectorService);\n private readonly translationService = inject(AXTranslationService);\n private readonly dialogService = inject(AXDialogService);\n private readonly sessionService = inject(AXPSessionService);\n\n private readonly positionAssignmentCreatePermission =\n 'HumanCapitalManagement:Permission:PositionAssignment.Create';\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(\n input: AXMAddPositionToBusinessUnitInput,\n ): Promise<AXPExecuteCommandResult<{ businessUnitId: string; positionId: string }>> {\n const businessUnitId = input?.businessUnitId?.trim() ?? '';\n if (!businessUnitId) {\n return { success: false };\n }\n\n const buData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnit.name)\n .data<string, AXMOrganizationManagementBusinessUnitEntityModel>();\n\n const businessUnit = await buData.byKey(businessUnitId);\n if (!businessUnit?.id) {\n return { success: false };\n }\n\n if (!(await this.businessUnitTypeAllowsDirectPositions(businessUnit))) {\n const text = await this.translationService.translateAsync(\n '@organization-management:organization-chart.commands.add-position.type-not-allowed',\n );\n return { success: false, message: { text } };\n }\n\n const existingIds = this.normalizePositionIds(businessUnit.positionIds);\n const positionEntity = await this.entityRegistry.resolve(\n RootConfig.module.name,\n RootConfig.entities.position.name,\n );\n if (!positionEntity) {\n return { success: false };\n }\n\n const selectTitle = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.select-position',\n );\n\n const selectorResult = await this.entitySelector.open({\n entity: positionEntity,\n title: selectTitle,\n allowMultiple: false,\n columns: ['code', 'title'],\n });\n\n const selected = selectorResult?.items?.[0];\n const rawPositionId = selected?.['id'] ?? selected?.['_id'];\n const positionId = typeof rawPositionId === 'string' && rawPositionId.trim().length > 0 ? rawPositionId : '';\n if (!positionId) {\n return { success: false };\n }\n\n if (existingIds.includes(positionId)) {\n return { success: true, data: { businessUnitId, positionId } };\n }\n\n const nextPositionIds = [...existingIds, positionId];\n\n try {\n await buData.update(businessUnitId, { positionIds: nextPositionIds });\n } catch {\n return { success: false };\n }\n\n const canAssign = this.sessionService.authorize(this.positionAssignmentCreatePermission);\n if (canAssign && (await this.confirmAssignEmployee())) {\n await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId,\n positionId,\n isPrimary: false,\n },\n });\n }\n\n return { success: true, data: { businessUnitId, positionId } };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Returns false when the business unit type explicitly disallows direct positions; true otherwise.\n */\n private async businessUnitTypeAllowsDirectPositions(\n bu: AXMOrganizationManagementBusinessUnitEntityModel,\n ): Promise<boolean> {\n const nested = bu.type?.allowsDirectPositions;\n if (nested === false) {\n return false;\n }\n if (nested === true) {\n return true;\n }\n const typeId = bu.typeId?.trim();\n if (!typeId) {\n return true;\n }\n try {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnitType.name)\n .data()\n .byKey(typeId);\n return (row as { allowsDirectPositions?: boolean } | null)?.allowsDirectPositions !== false;\n } catch {\n return true;\n }\n }\n\n private normalizePositionIds(value: unknown): string[] {\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value.map((v) => String(v ?? '').trim()).filter((id) => id.length > 0);\n }\n if (typeof value === 'string') {\n return value\n .split(',')\n .map((id) => id.trim())\n .filter((id) => id.length > 0);\n }\n return [];\n }\n\n private async confirmAssignEmployee(): Promise<boolean> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-employee-confirm.title',\n );\n const message = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-employee-confirm.message',\n );\n const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');\n return result.result === true;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-modules-organization-management-add-position-to-business-unit.command-DKgxg9q5.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/commands/add-position-to-business-unit.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport {\n AXPEntityDataSelectorService,\n AXPEntityDefinitionRegistryService,\n AXPEntityService,\n} from '@acorex/platform/layout/entity';\nimport { AXPCommand, AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport { AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND } from '../../../commands.keys';\nimport { RootConfig } from '../../../const';\nimport type { AXMOrganizationManagementBusinessUnitEntityModel } from '../../../entities/business-unit/business-unit.types';\n\n//#endregion\n\nexport interface AXMAddPositionToBusinessUnitInput {\n businessUnitId: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMAddPositionToBusinessUnitCommand\n implements AXPCommand<AXMAddPositionToBusinessUnitInput, { businessUnitId: string; positionId: string }>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly entityService = inject(AXPEntityService);\n private readonly entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private readonly entitySelector = inject(AXPEntityDataSelectorService);\n private readonly translationService = inject(AXTranslationService);\n private readonly dialogService = inject(AXDialogService);\n private readonly sessionService = inject(AXPSessionService);\n\n private readonly positionAssignmentCreatePermission =\n 'HumanCapitalManagement:Permission:PositionAssignment.Create';\n\n //#endregion\n\n //#region ---- Command ----\n\n async execute(\n input: AXMAddPositionToBusinessUnitInput,\n ): Promise<AXPExecuteCommandResult<{ businessUnitId: string; positionId: string }>> {\n const businessUnitId = input?.businessUnitId?.trim() ?? '';\n if (!businessUnitId) {\n return { success: false };\n }\n\n const buData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnit.name)\n .data<string, AXMOrganizationManagementBusinessUnitEntityModel>();\n\n const businessUnit = await buData.byKey(businessUnitId);\n if (!businessUnit?.id) {\n return { success: false };\n }\n\n if (!(await this.businessUnitTypeAllowsDirectPositions(businessUnit))) {\n const text = await this.translationService.translateAsync(\n '@organization-management:organization-chart.commands.add-position.type-not-allowed',\n );\n return { success: false, message: { text } };\n }\n\n const existingIds = this.normalizePositionIds(businessUnit.positionIds);\n const positionEntity = await this.entityRegistry.resolve(\n RootConfig.module.name,\n RootConfig.entities.position.name,\n );\n if (!positionEntity) {\n return { success: false };\n }\n\n const selectTitle = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.select-position',\n );\n\n const selectorResult = await this.entitySelector.open({\n entity: positionEntity,\n title: selectTitle,\n allowMultiple: false,\n columns: ['code', 'title'],\n });\n\n const selected = selectorResult?.items?.[0];\n const rawPositionId = selected?.['id'] ?? selected?.['_id'];\n const positionId = typeof rawPositionId === 'string' && rawPositionId.trim().length > 0 ? rawPositionId : '';\n if (!positionId) {\n return { success: false };\n }\n\n if (existingIds.includes(positionId)) {\n return { success: true, data: { businessUnitId, positionId } };\n }\n\n const nextPositionIds = [...existingIds, positionId];\n\n try {\n await buData.update(businessUnitId, { positionIds: nextPositionIds });\n } catch {\n return { success: false };\n }\n\n const canAssign = this.sessionService.authorize(this.positionAssignmentCreatePermission);\n if (canAssign && (await this.confirmAssignEmployee())) {\n await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId,\n positionId,\n isPrimary: false,\n },\n });\n }\n\n return { success: true, data: { businessUnitId, positionId } };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Returns false when the business unit type explicitly disallows direct positions; true otherwise.\n */\n private async businessUnitTypeAllowsDirectPositions(\n bu: AXMOrganizationManagementBusinessUnitEntityModel,\n ): Promise<boolean> {\n const nested = bu.type?.allowsDirectPositions;\n if (nested === false) {\n return false;\n }\n if (nested === true) {\n return true;\n }\n const typeId = bu.typeId?.trim();\n if (!typeId) {\n return true;\n }\n try {\n const row = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.businessUnitType.name)\n .data()\n .byKey(typeId);\n return (row as { allowsDirectPositions?: boolean } | null)?.allowsDirectPositions !== false;\n } catch {\n return true;\n }\n }\n\n private normalizePositionIds(value: unknown): string[] {\n if (value == null) {\n return [];\n }\n if (Array.isArray(value)) {\n return value.map((v) => String(v ?? '').trim()).filter((id) => id.length > 0);\n }\n if (typeof value === 'string') {\n return value\n .split(',')\n .map((id) => id.trim())\n .filter((id) => id.length > 0);\n }\n return [];\n }\n\n private async confirmAssignEmployee(): Promise<boolean> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-employee-confirm.title',\n );\n const message = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.assign-employee-confirm.message',\n );\n const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');\n return result.result === true;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { AXDialogService } from '@acorex/components/dialog';
|
|
2
|
+
import { AXToastService } from '@acorex/components/toast';
|
|
3
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
4
|
+
import { AXPEntityService } from '@acorex/platform/layout/entity';
|
|
5
|
+
import { AXPCommandService } from '@acorex/platform/runtime';
|
|
6
|
+
import * as i0 from '@angular/core';
|
|
7
|
+
import { inject, Injectable } from '@angular/core';
|
|
8
|
+
import { R as RootConfig } from './acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs';
|
|
9
|
+
|
|
10
|
+
//#region ---- Imports ----
|
|
11
|
+
/**
|
|
12
|
+
* Opens **Team** create (`Entity:Create`), then links the new team to the given business unit via **TeamBusinessUnit**
|
|
13
|
+
* (`isPrimary: true`, `effectiveFrom` = today) and optionally navigates to the team record.
|
|
14
|
+
*/
|
|
15
|
+
class AXMAddTeamToBusinessUnitCommand {
|
|
16
|
+
constructor() {
|
|
17
|
+
//#region ---- Services & Dependencies ----
|
|
18
|
+
this.commandService = inject(AXPCommandService);
|
|
19
|
+
this.entityService = inject(AXPEntityService);
|
|
20
|
+
this.dialogService = inject(AXDialogService);
|
|
21
|
+
this.toastService = inject(AXToastService);
|
|
22
|
+
this.translationService = inject(AXTranslationService);
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region ---- AXPCommand ----
|
|
26
|
+
async execute(input) {
|
|
27
|
+
const businessUnitId = input?.businessUnitId?.trim() ?? '';
|
|
28
|
+
if (!businessUnitId) {
|
|
29
|
+
return { success: false };
|
|
30
|
+
}
|
|
31
|
+
const createResult = await this.commandService.execute('Entity:Create', {
|
|
32
|
+
__context__: {
|
|
33
|
+
entity: RootConfig.entities.team.source,
|
|
34
|
+
entityInfo: {
|
|
35
|
+
module: RootConfig.module.name,
|
|
36
|
+
name: RootConfig.entities.team.name,
|
|
37
|
+
title: RootConfig.entities.team.title,
|
|
38
|
+
},
|
|
39
|
+
data: {},
|
|
40
|
+
options: {
|
|
41
|
+
process: {
|
|
42
|
+
redirect: false,
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
if (!createResult?.success) {
|
|
48
|
+
return { success: false };
|
|
49
|
+
}
|
|
50
|
+
const teamId = this.extractCreatedEntityId(createResult.data);
|
|
51
|
+
if (!teamId) {
|
|
52
|
+
return { success: false };
|
|
53
|
+
}
|
|
54
|
+
let linkSucceeded = false;
|
|
55
|
+
try {
|
|
56
|
+
await this.entityService
|
|
57
|
+
.withEntity(RootConfig.module.name, RootConfig.entities.teamBusinessUnit.name)
|
|
58
|
+
.data()
|
|
59
|
+
.create({
|
|
60
|
+
teamId,
|
|
61
|
+
businessUnitId,
|
|
62
|
+
isPrimary: true,
|
|
63
|
+
effectiveFrom: this.todayLocalDateOnly(),
|
|
64
|
+
});
|
|
65
|
+
linkSucceeded = true;
|
|
66
|
+
}
|
|
67
|
+
catch (e) {
|
|
68
|
+
const content = e instanceof Error
|
|
69
|
+
? e.message
|
|
70
|
+
: await this.translationService.translateAsync('@general:messages.generic.error.description');
|
|
71
|
+
const title = await this.translationService.translateAsync('@general:messages.generic.error.title');
|
|
72
|
+
this.toastService.show({ color: 'warning', title, content });
|
|
73
|
+
}
|
|
74
|
+
if (await this.confirmOpenTeamDetails(linkSucceeded)) {
|
|
75
|
+
await this.commandService.execute('Entity:OpenDetails', {
|
|
76
|
+
entity: RootConfig.entities.team.source,
|
|
77
|
+
data: { id: teamId },
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return { success: true, data: { teamId } };
|
|
81
|
+
}
|
|
82
|
+
//#endregion
|
|
83
|
+
//#region ---- Helpers ----
|
|
84
|
+
/**
|
|
85
|
+
* Local calendar date as `YYYY-MM-DD` for {@link AXMOrganizationManagementTeamBusinessUnitEntityModel.effectiveFrom}.
|
|
86
|
+
*/
|
|
87
|
+
todayLocalDateOnly() {
|
|
88
|
+
const d = new Date();
|
|
89
|
+
const y = d.getFullYear();
|
|
90
|
+
const m = String(d.getMonth() + 1).padStart(2, '0');
|
|
91
|
+
const day = String(d.getDate()).padStart(2, '0');
|
|
92
|
+
return `${y}-${m}-${day}`;
|
|
93
|
+
}
|
|
94
|
+
async confirmOpenTeamDetails(linkSucceeded) {
|
|
95
|
+
const title = await this.translationService.translateAsync('@organization-management:organization-chart.node-actions.navigate-to-team-after-create.title');
|
|
96
|
+
const messageKey = linkSucceeded
|
|
97
|
+
? '@organization-management:organization-chart.node-actions.navigate-to-team-after-create.message'
|
|
98
|
+
: '@organization-management:organization-chart.node-actions.navigate-to-team-after-create.message-link-failed';
|
|
99
|
+
const message = await this.translationService.translateAsync(messageKey);
|
|
100
|
+
const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');
|
|
101
|
+
return result.result === true;
|
|
102
|
+
}
|
|
103
|
+
extractCreatedEntityId(data) {
|
|
104
|
+
if (data == null || typeof data !== 'object') {
|
|
105
|
+
return '';
|
|
106
|
+
}
|
|
107
|
+
const record = data;
|
|
108
|
+
const item = record['item'] ?? data;
|
|
109
|
+
if (item == null || typeof item !== 'object') {
|
|
110
|
+
return '';
|
|
111
|
+
}
|
|
112
|
+
const id = item['id'];
|
|
113
|
+
if (typeof id === 'string') {
|
|
114
|
+
return id.trim();
|
|
115
|
+
}
|
|
116
|
+
if (typeof id === 'number' && Number.isFinite(id)) {
|
|
117
|
+
return String(id);
|
|
118
|
+
}
|
|
119
|
+
return '';
|
|
120
|
+
}
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAddTeamToBusinessUnitCommand, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
122
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAddTeamToBusinessUnitCommand, providedIn: 'root' }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAddTeamToBusinessUnitCommand, decorators: [{
|
|
125
|
+
type: Injectable,
|
|
126
|
+
args: [{ providedIn: 'root' }]
|
|
127
|
+
}] });
|
|
128
|
+
|
|
129
|
+
export { AXMAddTeamToBusinessUnitCommand };
|
|
130
|
+
//# sourceMappingURL=acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-modules-organization-management-add-team-to-business-unit.command-DJJT7BXT.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/commands/add-team-to-business-unit.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXDialogService } from '@acorex/components/dialog';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { AXPCommand, AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport type { AXMOrganizationManagementTeamBusinessUnitEntityModel } from '../../../entities/team-business-unit/team-business-unit.types';\nimport { RootConfig } from '../../../const';\n\n//#endregion\n\nexport interface AXMAddTeamToBusinessUnitInput {\n businessUnitId: string;\n}\n\nexport interface AXMAddTeamToBusinessUnitResult {\n teamId: string;\n}\n\n/**\n * Opens **Team** create (`Entity:Create`), then links the new team to the given business unit via **TeamBusinessUnit**\n * (`isPrimary: true`, `effectiveFrom` = today) and optionally navigates to the team record.\n */\n@Injectable({ providedIn: 'root' })\nexport class AXMAddTeamToBusinessUnitCommand\n implements AXPCommand<AXMAddTeamToBusinessUnitInput, AXMAddTeamToBusinessUnitResult>\n{\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly entityService = inject(AXPEntityService);\n private readonly dialogService = inject(AXDialogService);\n private readonly toastService = inject(AXToastService);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- AXPCommand ----\n\n async execute(\n input: AXMAddTeamToBusinessUnitInput,\n ): Promise<AXPExecuteCommandResult<AXMAddTeamToBusinessUnitResult>> {\n const businessUnitId = input?.businessUnitId?.trim() ?? '';\n if (!businessUnitId) {\n return { success: false };\n }\n\n const createResult = await this.commandService.execute('Entity:Create', {\n __context__: {\n entity: RootConfig.entities.team.source,\n entityInfo: {\n module: RootConfig.module.name,\n name: RootConfig.entities.team.name,\n title: RootConfig.entities.team.title,\n },\n data: {},\n options: {\n process: {\n redirect: false,\n },\n },\n },\n });\n\n if (!createResult?.success) {\n return { success: false };\n }\n\n const teamId = this.extractCreatedEntityId(createResult.data);\n if (!teamId) {\n return { success: false };\n }\n\n let linkSucceeded = false;\n try {\n await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.teamBusinessUnit.name)\n .data<string, AXMOrganizationManagementTeamBusinessUnitEntityModel>()\n .create({\n teamId,\n businessUnitId,\n isPrimary: true,\n effectiveFrom: this.todayLocalDateOnly(),\n });\n linkSucceeded = true;\n } catch (e) {\n const content =\n e instanceof Error\n ? e.message\n : await this.translationService.translateAsync('@general:messages.generic.error.description');\n const title = await this.translationService.translateAsync('@general:messages.generic.error.title');\n this.toastService.show({ color: 'warning', title, content });\n }\n\n if (await this.confirmOpenTeamDetails(linkSucceeded)) {\n await this.commandService.execute('Entity:OpenDetails', {\n entity: RootConfig.entities.team.source,\n data: { id: teamId },\n });\n }\n\n return { success: true, data: { teamId } };\n }\n\n //#endregion\n\n //#region ---- Helpers ----\n\n /**\n * Local calendar date as `YYYY-MM-DD` for {@link AXMOrganizationManagementTeamBusinessUnitEntityModel.effectiveFrom}.\n */\n private todayLocalDateOnly(): string {\n const d = new Date();\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${y}-${m}-${day}`;\n }\n\n private async confirmOpenTeamDetails(linkSucceeded: boolean): Promise<boolean> {\n const title = await this.translationService.translateAsync(\n '@organization-management:organization-chart.node-actions.navigate-to-team-after-create.title',\n );\n const messageKey = linkSucceeded\n ? '@organization-management:organization-chart.node-actions.navigate-to-team-after-create.message'\n : '@organization-management:organization-chart.node-actions.navigate-to-team-after-create.message-link-failed';\n const message = await this.translationService.translateAsync(messageKey);\n const result = await this.dialogService.confirm(title, message, 'primary', 'horizontal', false, 'cancel');\n return result.result === true;\n }\n\n private extractCreatedEntityId(data: unknown): string {\n if (data == null || typeof data !== 'object') {\n return '';\n }\n const record = data as Record<string, unknown>;\n const item = record['item'] ?? data;\n if (item == null || typeof item !== 'object') {\n return '';\n }\n const id = (item as Record<string, unknown>)['id'];\n if (typeof id === 'string') {\n return id.trim();\n }\n if (typeof id === 'number' && Number.isFinite(id)) {\n return String(id);\n }\n return '';\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;;;AAAA;AAsBA;;;AAGG;MAEU,+BAA+B,CAAA;AAD5C,IAAA,WAAA,GAAA;;AAMmB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACvC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AACrC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAsHnE,IAAA;;;IAhHC,MAAM,OAAO,CACX,KAAoC,EAAA;QAEpC,MAAM,cAAc,GAAG,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;QAC1D,IAAI,CAAC,cAAc,EAAE;AACnB,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;QAEA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;AACtE,YAAA,WAAW,EAAE;AACX,gBAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AACvC,gBAAA,UAAU,EAAE;AACV,oBAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,oBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI;AACnC,oBAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK;AACtC,iBAAA;AACD,gBAAA,IAAI,EAAE,EAAE;AACR,gBAAA,OAAO,EAAE;AACP,oBAAA,OAAO,EAAE;AACP,wBAAA,QAAQ,EAAE,KAAK;AAChB,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC1B,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;QAEA,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC;QAC7D,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE;QAC3B;QAEA,IAAI,aAAa,GAAG,KAAK;AACzB,QAAA,IAAI;YACF,MAAM,IAAI,CAAC;AACR,iBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;AAC5E,iBAAA,IAAI;AACJ,iBAAA,MAAM,CAAC;gBACN,MAAM;gBACN,cAAc;AACd,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE;AACzC,aAAA,CAAC;YACJ,aAAa,GAAG,IAAI;QACtB;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,MAAM,OAAO,GACX,CAAC,YAAY;kBACT,CAAC,CAAC;kBACF,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,6CAA6C,CAAC;YACjG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,uCAAuC,CAAC;AACnG,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC9D;QAEA,IAAI,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,EAAE;AACpD,YAAA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE;AACtD,gBAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM;AACvC,gBAAA,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;AACrB,aAAA,CAAC;QACJ;QAEA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE;IAC5C;;;AAMA;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE;AACpB,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;AACzB,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,QAAA,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAChD,QAAA,OAAO,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA,CAAA,EAAI,GAAG,EAAE;IAC3B;IAEQ,MAAM,sBAAsB,CAAC,aAAsB,EAAA;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CACxD,8FAA8F,CAC/F;QACD,MAAM,UAAU,GAAG;AACjB,cAAE;cACA,4GAA4G;QAChH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,UAAU,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,CAAC;AACzG,QAAA,OAAO,MAAM,CAAC,MAAM,KAAK,IAAI;IAC/B;AAEQ,IAAA,sBAAsB,CAAC,IAAa,EAAA;QAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,YAAA,OAAO,EAAE;QACX;QACA,MAAM,MAAM,GAAG,IAA+B;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI;QACnC,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5C,YAAA,OAAO,EAAE;QACX;AACA,QAAA,MAAM,EAAE,GAAI,IAAgC,CAAC,IAAI,CAAC;AAClD,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AAC1B,YAAA,OAAO,EAAE,CAAC,IAAI,EAAE;QAClB;AACA,QAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;AACjD,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB;AACA,QAAA,OAAO,EAAE;IACX;8GA5HW,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,cADlB,MAAM,EAAA,CAAA,CAAA;;2FACnB,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AXPWidgetsList } from '@acorex/modules/common';
|
|
2
2
|
import { createAllQueryView } from '@acorex/platform/common';
|
|
3
3
|
import { entityMasterCrudActions, entityMasterRecordActions, entityDetailsCrudActions, entityDetailsSimpleCondition } from '@acorex/platform/layout/entity';
|
|
4
|
-
import { R as RootConfig } from './acorex-modules-organization-management-acorex-modules-organization-management-
|
|
4
|
+
import { R as RootConfig } from './acorex-modules-organization-management-acorex-modules-organization-management-CGzZcKEy.mjs';
|
|
5
5
|
|
|
6
6
|
async function factory(injector) {
|
|
7
7
|
const i18n = RootConfig.config.i18n;
|
|
@@ -402,4 +402,4 @@ async function factory(injector) {
|
|
|
402
402
|
}
|
|
403
403
|
|
|
404
404
|
export { factory };
|
|
405
|
-
//# sourceMappingURL=acorex-modules-organization-management-business-unit.entity-
|
|
405
|
+
//# sourceMappingURL=acorex-modules-organization-management-business-unit.entity-BAp38sib.mjs.map
|