@acorex/modules 21.0.0-beta.7 → 21.0.0-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/fesm2022/acorex-modules-ai-management.mjs +31 -225
  2. package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
  3. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-Blejt-Mo.mjs → acorex-modules-asset-management-acorex-modules-asset-management-BQcQ6ZR-.mjs} +718 -90
  4. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BQcQ6ZR-.mjs.map +1 -0
  5. package/fesm2022/acorex-modules-asset-management-asset-rental-history-status.provider-BiWf2TwD.mjs +118 -0
  6. package/fesm2022/acorex-modules-asset-management-asset-rental-history-status.provider-BiWf2TwD.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-CtCyaI46.mjs → acorex-modules-asset-management-asset-system-assignment.entity-BGdQY4Fh.mjs} +2 -2
  8. package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-CtCyaI46.mjs.map → acorex-modules-asset-management-asset-system-assignment.entity-BGdQY4Fh.mjs.map} +1 -1
  9. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CfoB6Faf.mjs → acorex-modules-asset-management-asset-system-type.entity-VxShztML.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CfoB6Faf.mjs.map → acorex-modules-asset-management-asset-system-type.entity-VxShztML.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-asset-management-asset-system.entity-CvKC7MKH.mjs → acorex-modules-asset-management-asset-system.entity-BdyFBhzS.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-asset-management-asset-system.entity-CvKC7MKH.mjs.map → acorex-modules-asset-management-asset-system.entity-BdyFBhzS.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-xfRZM5vK.mjs → acorex-modules-asset-management-asset-type-section-component.entity-unp7Q8MH.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-xfRZM5vK.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-unp7Q8MH.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-DdEcyihk.mjs → acorex-modules-asset-management-asset-type-section.entity-bJKJdrpm.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-DdEcyihk.mjs.map → acorex-modules-asset-management-asset-type-section.entity-bJKJdrpm.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-D78ztUZ5.mjs → acorex-modules-asset-management-asset-type.entity-B2eXZqQG.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-D78ztUZ5.mjs.map → acorex-modules-asset-management-asset-type.entity-B2eXZqQG.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-asset-management-asset.entity-3dFsNRkr.mjs → acorex-modules-asset-management-asset.entity-Bk_NIpzQ.mjs} +21 -27
  20. package/fesm2022/acorex-modules-asset-management-asset.entity-Bk_NIpzQ.mjs.map +1 -0
  21. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  22. package/fesm2022/{acorex-modules-common-search-popup.component-Bh3otWbL.mjs → acorex-modules-common-search-popup.component-ChaAcWfD.mjs} +3 -3
  23. package/fesm2022/{acorex-modules-common-search-popup.component-Bh3otWbL.mjs.map → acorex-modules-common-search-popup.component-ChaAcWfD.mjs.map} +1 -1
  24. package/fesm2022/acorex-modules-common.mjs +2 -2
  25. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DgEFx2Ae.mjs +6157 -0
  26. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DgEFx2Ae.mjs.map +1 -0
  27. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Cvd2BFaC.mjs +324 -0
  28. package/fesm2022/acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Cvd2BFaC.mjs.map +1 -0
  29. package/fesm2022/{acorex-modules-conversation-comments-page.component-C8HWwI_w.mjs → acorex-modules-conversation-comments-page.component-B5y5qeV6.mjs} +2 -2
  30. package/fesm2022/{acorex-modules-conversation-comments-page.component-C8HWwI_w.mjs.map → acorex-modules-conversation-comments-page.component-B5y5qeV6.mjs.map} +1 -1
  31. package/fesm2022/acorex-modules-conversation.mjs +1 -6190
  32. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  33. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-DaIVK3ew.mjs +24 -0
  34. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-DaIVK3ew.mjs.map +1 -0
  35. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-G5AGqp_q.mjs +24 -0
  36. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-G5AGqp_q.mjs.map +1 -0
  37. package/fesm2022/acorex-modules-document-management.mjs +67 -29
  38. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  39. 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-hImDhzkB.mjs} +16 -19
  40. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-hImDhzkB.mjs.map +1 -0
  41. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs → acorex-modules-human-capital-management-approve-leave-request.command-DujyJOvo.mjs} +2 -2
  42. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B5aSubCY.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-DujyJOvo.mjs.map} +1 -1
  43. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-BPB9vaCn.mjs} +2 -2
  44. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-l8dGe3kg.mjs.map → acorex-modules-human-capital-management-assign-position-assignment.command-BPB9vaCn.mjs.map} +1 -1
  45. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-BdPUdhbU.mjs} +2 -2
  46. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-CeV-5Y5n.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-BdPUdhbU.mjs.map} +1 -1
  47. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs → acorex-modules-human-capital-management-employee.entity-CgmF-WPf.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-DNgt9yQm.mjs.map → acorex-modules-human-capital-management-employee.entity-CgmF-WPf.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs → acorex-modules-human-capital-management-employment-type.entity-Chio_E9S.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-rq8-Bauc.mjs.map → acorex-modules-human-capital-management-employment-type.entity-Chio_E9S.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs → acorex-modules-human-capital-management-leave-request.entity--9iGu0H7.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-DlQJw4F6.mjs.map → acorex-modules-human-capital-management-leave-request.entity--9iGu0H7.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs → acorex-modules-human-capital-management-leave-type.entity-O0j4P2oU.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-D5J2oOuY.mjs.map → acorex-modules-human-capital-management-leave-type.entity-O0j4P2oU.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs → acorex-modules-human-capital-management-position-assignment.entity-Bg6omEy_.mjs} +2 -2
  56. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D7mKhxYp.mjs.map → acorex-modules-human-capital-management-position-assignment.entity-Bg6omEy_.mjs.map} +1 -1
  57. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs → acorex-modules-human-capital-management-reject-leave-request.command-ZNGufyB1.mjs} +2 -2
  58. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C4AWFOmG.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-ZNGufyB1.mjs.map} +1 -1
  59. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-C8pwJExa.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-BSJhBW3p.mjs.map → acorex-modules-human-capital-management-revoke-position-assignment.command-C8pwJExa.mjs.map} +1 -1
  61. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  62. package/fesm2022/{acorex-modules-organization-management-acorex-modules-organization-management-BDnIsf2j.mjs → acorex-modules-organization-management-acorex-modules-organization-management-aord1Uv0.mjs} +169 -606
  63. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-aord1Uv0.mjs.map +1 -0
  64. package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-BB8-LTp8.mjs → acorex-modules-organization-management-add-business-unit-to-business-unit.command-AfY76V1Q.mjs} +2 -2
  65. package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-BB8-LTp8.mjs.map → acorex-modules-organization-management-add-business-unit-to-business-unit.command-AfY76V1Q.mjs.map} +1 -1
  66. package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-BaEW7Jx8.mjs → acorex-modules-organization-management-add-position-to-business-unit.command-DT9WSyiI.mjs} +2 -2
  67. package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-BaEW7Jx8.mjs.map → acorex-modules-organization-management-add-position-to-business-unit.command-DT9WSyiI.mjs.map} +1 -1
  68. package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-Cm7ze35c.mjs +130 -0
  69. package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-Cm7ze35c.mjs.map +1 -0
  70. package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CuFBCQ7T.mjs → acorex-modules-organization-management-business-unit.entity-BgxuZhyH.mjs} +2 -2
  71. package/fesm2022/{acorex-modules-organization-management-business-unit.entity-CuFBCQ7T.mjs.map → acorex-modules-organization-management-business-unit.entity-BgxuZhyH.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-organization-management-chart.entity-B7oSgI4o.mjs → acorex-modules-organization-management-chart.entity-DSvAq3s6.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-organization-management-chart.entity-B7oSgI4o.mjs.map → acorex-modules-organization-management-chart.entity-DSvAq3s6.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-organization-management-company.entity-BSDic10Z.mjs → acorex-modules-organization-management-company.entity-BU1_8FIf.mjs} +2 -2
  75. package/fesm2022/{acorex-modules-organization-management-company.entity-BSDic10Z.mjs.map → acorex-modules-organization-management-company.entity-BU1_8FIf.mjs.map} +1 -1
  76. package/fesm2022/{acorex-modules-organization-management-entity.provider-BkWwyLUZ.mjs → acorex-modules-organization-management-entity.provider-i18ksNjv.mjs} +15 -15
  77. package/fesm2022/{acorex-modules-organization-management-entity.provider-BkWwyLUZ.mjs.map → acorex-modules-organization-management-entity.provider-i18ksNjv.mjs.map} +1 -1
  78. package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D8Tsj3hk.mjs → acorex-modules-organization-management-feature-definition.provider-CDPVhpcX.mjs} +2 -2
  79. package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-D8Tsj3hk.mjs.map → acorex-modules-organization-management-feature-definition.provider-CDPVhpcX.mjs.map} +1 -1
  80. package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-cHJU9tB2.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-BlOJIHXX.mjs} +3 -3
  81. package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-cHJU9tB2.mjs.map → acorex-modules-organization-management-job-definition-pages-component.provider-BlOJIHXX.mjs.map} +1 -1
  82. package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-Yu4gOQ6K.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-BtotMHNw.mjs} +3 -3
  83. package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-Yu4gOQ6K.mjs.map → acorex-modules-organization-management-job-definition-responsibilities-page.component-BtotMHNw.mjs.map} +1 -1
  84. package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-DV8x-8VB.mjs → acorex-modules-organization-management-job-definition-skills-page.component-Cr8vI2T9.mjs} +2 -2
  85. package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-DV8x-8VB.mjs.map → acorex-modules-organization-management-job-definition-skills-page.component-Cr8vI2T9.mjs.map} +1 -1
  86. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DAo8xR1H.mjs → acorex-modules-organization-management-job-definition.entity-aL7vWbHE.mjs} +2 -2
  87. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-DAo8xR1H.mjs.map → acorex-modules-organization-management-job-definition.entity-aL7vWbHE.mjs.map} +1 -1
  88. package/fesm2022/{acorex-modules-organization-management-job-level.datasource-C7ElEuZx.mjs → acorex-modules-organization-management-job-level.datasource-Ds3ZDmRO.mjs} +2 -2
  89. package/fesm2022/{acorex-modules-organization-management-job-level.datasource-C7ElEuZx.mjs.map → acorex-modules-organization-management-job-level.datasource-Ds3ZDmRO.mjs.map} +1 -1
  90. package/fesm2022/{acorex-modules-organization-management-job-level.entity-Dw3YK9-O.mjs → acorex-modules-organization-management-job-level.entity-BzWMFrZX.mjs} +2 -2
  91. package/fesm2022/{acorex-modules-organization-management-job-level.entity-Dw3YK9-O.mjs.map → acorex-modules-organization-management-job-level.entity-BzWMFrZX.mjs.map} +1 -1
  92. package/fesm2022/{acorex-modules-organization-management-menu.provider-DWt62uxv.mjs → acorex-modules-organization-management-menu.provider-CICmpvEv.mjs} +3 -2
  93. package/fesm2022/{acorex-modules-organization-management-menu.provider-DWt62uxv.mjs.map → acorex-modules-organization-management-menu.provider-CICmpvEv.mjs.map} +1 -1
  94. package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-9s5ZUus4.mjs +228 -0
  95. package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-9s5ZUus4.mjs.map +1 -0
  96. package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-CepGeA3_.mjs +182 -0
  97. package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-CepGeA3_.mjs.map +1 -0
  98. package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-Bi2pMYPe.mjs +170 -0
  99. package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-Bi2pMYPe.mjs.map +1 -0
  100. package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BgopvirR.mjs +334 -0
  101. package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BgopvirR.mjs.map +1 -0
  102. package/fesm2022/{acorex-modules-organization-management-org-chart.page-Rh8xmXaj.mjs → acorex-modules-organization-management-org-chart.page-Cs-wTPS-.mjs} +116 -38
  103. package/fesm2022/acorex-modules-organization-management-org-chart.page-Cs-wTPS-.mjs.map +1 -0
  104. package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-3TD89ErD.mjs → acorex-modules-organization-management-permission-definition.provider-DEc2_pkz.mjs} +3 -2
  105. package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-3TD89ErD.mjs.map → acorex-modules-organization-management-permission-definition.provider-DEc2_pkz.mjs.map} +1 -1
  106. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
  107. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
  108. package/fesm2022/{acorex-modules-organization-management-position.entity-Cysj_53n.mjs → acorex-modules-organization-management-position.entity-C7u3c4LB.mjs} +2 -2
  109. package/fesm2022/{acorex-modules-organization-management-position.entity-Cysj_53n.mjs.map → acorex-modules-organization-management-position.entity-C7u3c4LB.mjs.map} +1 -1
  110. package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-BkQyq1ho.mjs → acorex-modules-organization-management-remove-position-from-business-unit.command-B7D1vMcs.mjs} +2 -2
  111. package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-BkQyq1ho.mjs.map → acorex-modules-organization-management-remove-position-from-business-unit.command-B7D1vMcs.mjs.map} +1 -1
  112. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-Cf8VR0tX.mjs → acorex-modules-organization-management-replace-position-assignee.command-xodO4wdB.mjs} +2 -2
  113. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-Cf8VR0tX.mjs.map → acorex-modules-organization-management-replace-position-assignee.command-xodO4wdB.mjs.map} +1 -1
  114. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-BeQ-nXpS.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-BeAm1FY0.mjs} +2 -2
  115. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-BeQ-nXpS.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-BeAm1FY0.mjs.map} +1 -1
  116. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Ie_39X99.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-cdReuV2q.mjs} +2 -2
  117. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Ie_39X99.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-cdReuV2q.mjs.map} +1 -1
  118. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-58s3Qfyg.mjs → acorex-modules-organization-management-responsibilities-matrix.component-bFxHz2vq.mjs} +2 -2
  119. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-58s3Qfyg.mjs.map → acorex-modules-organization-management-responsibilities-matrix.component-bFxHz2vq.mjs.map} +1 -1
  120. package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DWWQB7ke.mjs → acorex-modules-organization-management-responsibility-level.entity-BDOhL12B.mjs} +2 -2
  121. package/fesm2022/{acorex-modules-organization-management-responsibility-level.entity-DWWQB7ke.mjs.map → acorex-modules-organization-management-responsibility-level.entity-BDOhL12B.mjs.map} +1 -1
  122. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-C4V55fKt.mjs → acorex-modules-organization-management-responsibility.entity-DQK2qB5N.mjs} +2 -2
  123. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-C4V55fKt.mjs.map → acorex-modules-organization-management-responsibility.entity-DQK2qB5N.mjs.map} +1 -1
  124. package/fesm2022/{acorex-modules-organization-management-settings.provider-BD70P1XV.mjs → acorex-modules-organization-management-settings.provider-Di4FtA78.mjs} +2 -2
  125. package/fesm2022/{acorex-modules-organization-management-settings.provider-BD70P1XV.mjs.map → acorex-modules-organization-management-settings.provider-Di4FtA78.mjs.map} +1 -1
  126. package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-B5T1fYAF.mjs → acorex-modules-organization-management-team-business-unit.entity-DTWxuUQV.mjs} +2 -2
  127. package/fesm2022/{acorex-modules-organization-management-team-business-unit.entity-B5T1fYAF.mjs.map → acorex-modules-organization-management-team-business-unit.entity-DTWxuUQV.mjs.map} +1 -1
  128. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-dPp_dK-g.mjs → acorex-modules-organization-management-team-member-role.entity-D9SlbSQ4.mjs} +2 -2
  129. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-dPp_dK-g.mjs.map → acorex-modules-organization-management-team-member-role.entity-D9SlbSQ4.mjs.map} +1 -1
  130. package/fesm2022/{acorex-modules-organization-management-team-member.entity-CZPmF9f6.mjs → acorex-modules-organization-management-team-member.entity-D5NapdKq.mjs} +14 -2
  131. package/fesm2022/acorex-modules-organization-management-team-member.entity-D5NapdKq.mjs.map +1 -0
  132. package/fesm2022/{acorex-modules-organization-management-team.entity-CCfWLgDx.mjs → acorex-modules-organization-management-team.entity-CNg4ffZv.mjs} +2 -2
  133. package/fesm2022/{acorex-modules-organization-management-team.entity-CCfWLgDx.mjs.map → acorex-modules-organization-management-team.entity-CNg4ffZv.mjs.map} +1 -1
  134. package/fesm2022/acorex-modules-organization-management.mjs +1 -1
  135. package/fesm2022/{acorex-modules-task-management-acorex-modules-task-management-ZcP94xuL.mjs → acorex-modules-task-management-acorex-modules-task-management-_6DcZE_U.mjs} +178 -14
  136. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-_6DcZE_U.mjs.map +1 -0
  137. package/fesm2022/{acorex-modules-task-management-task-board.page-CEW3SrBz.mjs → acorex-modules-task-management-task-board.page-jMOsL_QA.mjs} +106 -68
  138. package/fesm2022/acorex-modules-task-management-task-board.page-jMOsL_QA.mjs.map +1 -0
  139. package/fesm2022/acorex-modules-task-management.mjs +1 -1
  140. package/organization-management/README.md +1 -1
  141. package/package.json +2 -2
  142. package/types/acorex-modules-ai-management.d.ts +25 -67
  143. package/types/acorex-modules-asset-management.d.ts +12 -8
  144. package/types/acorex-modules-document-management.d.ts +15 -7
  145. package/types/acorex-modules-organization-management.d.ts +135 -76
  146. package/types/acorex-modules-task-management.d.ts +12 -1
  147. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-Blejt-Mo.mjs.map +0 -1
  148. package/fesm2022/acorex-modules-asset-management-asset-rental-history.entity-C6V8Nuvb.mjs +0 -302
  149. package/fesm2022/acorex-modules-asset-management-asset-rental-history.entity-C6V8Nuvb.mjs.map +0 -1
  150. package/fesm2022/acorex-modules-asset-management-asset.entity-3dFsNRkr.mjs.map +0 -1
  151. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D5X1pcSP.mjs +0 -24
  152. package/fesm2022/acorex-modules-document-management-large-tiles-view.component-D5X1pcSP.mjs.map +0 -1
  153. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-a7wOH_7D.mjs +0 -24
  154. package/fesm2022/acorex-modules-document-management-small-tiles-view.component-a7wOH_7D.mjs.map +0 -1
  155. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Bwk3-2wy.mjs.map +0 -1
  156. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BDnIsf2j.mjs.map +0 -1
  157. package/fesm2022/acorex-modules-organization-management-org-chart.page-Rh8xmXaj.mjs.map +0 -1
  158. package/fesm2022/acorex-modules-organization-management-team-member.entity-CZPmF9f6.mjs.map +0 -1
  159. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-ZcP94xuL.mjs.map +0 -1
  160. package/fesm2022/acorex-modules-task-management-task-board.page-CEW3SrBz.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-Bi2pMYPe.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/contributions/org-chart-position-employee-node-contribution.provider.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPCommandService } from '@acorex/platform/runtime';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND,\n AXMOrganizationManagementCommandKeys,\n} from '../../../commands.keys';\nimport { RootConfig } from '../../../const';\nimport { AXPOrganizationManagementPermissionKeys } from '../../../permission.keys';\nimport {\n AXMOrgChartNodeContributionContext,\n AXMOrgChartNodeContributionProvider,\n AXMOrgChartNodeMenuAction,\n} from '../tokens/org-chart-node-contribution.token';\n\n//#endregion\n\n//#region ---- Module Constants ----\n\nconst orgChartNodeActionKey = (suffix: string): string =>\n `@organization-management:organization-chart.node-actions.${suffix}`;\n\nconst POSITION_ENTITY_SOURCE = RootConfig.entities.position.source;\n\nconst positionAssignmentCreatePermission = 'HumanCapitalManagement:Permission:PositionAssignment.Create';\nconst positionAssignmentEditPermission = 'HumanCapitalManagement:Permission:PositionAssignment.Edit';\n\n//#endregion\n\n/**\n * Context menu actions for org chart **position** nodes (structure / location / etc.).\n */\n@Injectable()\nexport class AXMOrgChartPositionEmployeeNodeContributionProvider implements AXMOrgChartNodeContributionProvider {\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- AXMOrgChartNodeContributionProvider Implementation ----\n\n async getMenuActions(context: AXMOrgChartNodeContributionContext): Promise<AXMOrgChartNodeMenuAction[]> {\n if (context.nodeKind === 'position') {\n return this.getPositionNodeActions(context);\n }\n return [];\n }\n\n //#endregion\n\n //#region ---- Position Node Actions ----\n\n private getPositionNodeActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n const positionId = this.resolvePositionId(context);\n if (!positionId) {\n return [];\n }\n\n const businessUnitId = this.resolveBusinessUnitIdForPosition(context);\n const vacant = context.node.metadata?.['vacant'] === true;\n const occupant = context.node.metadata?.['occupant'] as Record<string, unknown> | undefined;\n const occupantEmployeeId =\n typeof occupant?.['employeeId'] === 'string' && occupant['employeeId'].trim().length > 0\n ? occupant['employeeId'].trim()\n : undefined;\n\n const canUpdateBusinessUnit = this.authorize(AXPOrganizationManagementPermissionKeys.BusinessUnit.Update);\n const canCreateAssignment = this.authorize(positionAssignmentCreatePermission);\n const canEditAssignment = this.authorize(positionAssignmentEditPermission);\n\n const actions: AXMOrgChartNodeMenuAction[] = [];\n\n if (vacant && businessUnitId) {\n actions.push({\n id: 'organization-management.assign-employee-to-position-from-chart',\n title: orgChartNodeActionKey('assign-employee-to-position'),\n icon: 'fa-light fa-user-plus',\n order: 110,\n disabled: !canCreateAssignment,\n execute: async (ctx) => {\n const pid = this.resolvePositionId(ctx);\n const buId = this.resolveBusinessUnitIdForPosition(ctx);\n if (!pid || !buId) {\n return;\n }\n const result = await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId: buId,\n positionId: pid,\n isPrimary: false,\n },\n });\n if (result?.success) {\n await ctx.refreshChart();\n }\n },\n });\n }\n\n if (!vacant && occupantEmployeeId && businessUnitId) {\n actions.push({\n id: 'organization-management.replace-position-assignee-from-chart',\n title: orgChartNodeActionKey('assign-new-employee-to-position'),\n icon: 'fa-light fa-arrows-rotate',\n order: 115,\n disabled: !canCreateAssignment || !canEditAssignment,\n execute: async (ctx) => {\n const pid = this.resolvePositionId(ctx);\n const buId = this.resolveBusinessUnitIdForPosition(ctx);\n const occ = ctx.node.metadata?.['occupant'] as Record<string, unknown> | undefined;\n const eid =\n typeof occ?.['employeeId'] === 'string' && occ['employeeId'].trim().length > 0\n ? occ['employeeId'].trim()\n : '';\n if (!pid || !buId || !eid) {\n return;\n }\n const result = await this.commandService.execute(\n AXMOrganizationManagementCommandKeys.OrganizationChart.ReplacePositionAssignee,\n { businessUnitId: buId, positionId: pid, currentEmployeeId: eid },\n );\n if (result?.success) {\n await ctx.refreshChart();\n }\n },\n });\n }\n\n if (businessUnitId) {\n actions.push({\n id: 'organization-management.remove-position-from-unit-from-chart',\n title: orgChartNodeActionKey('remove-from-unit'),\n icon: 'fa-light fa-link-slash',\n color: 'danger',\n order: 120,\n disabled: !canUpdateBusinessUnit,\n execute: async (ctx) => {\n const pid = this.resolvePositionId(ctx);\n const buId = this.resolveBusinessUnitIdForPosition(ctx);\n if (!pid || !buId) {\n return;\n }\n const occ = ctx.node.metadata?.['occupant'] as Record<string, unknown> | undefined;\n const occId =\n typeof occ?.['employeeId'] === 'string' && occ['employeeId'].trim().length > 0\n ? occ['employeeId'].trim()\n : undefined;\n const result = await this.commandService.execute(\n AXMOrganizationManagementCommandKeys.OrganizationChart.RemovePositionFromBusinessUnit,\n {\n businessUnitId: buId,\n positionId: pid,\n ...(occId ? { occupantEmployeeId: occId } : {}),\n },\n );\n if (result?.success) {\n await ctx.refreshChart();\n }\n },\n });\n }\n\n return actions;\n }\n\n //#endregion\n\n //#region ---- Resolvers & Authorization ----\n\n private authorize(permission: string): boolean {\n return this.sessionService.authorize(permission);\n }\n\n private resolvePositionId(context: AXMOrgChartNodeContributionContext): string | undefined {\n const entity = context.node.entity;\n if (entity?.id != null && this.isPositionEntityType(entity.type)) {\n const id = String(entity.id).trim();\n return id.length > 0 ? id : undefined;\n }\n const metaPid = context.node.metadata?.['positionId'];\n if (typeof metaPid === 'string' && metaPid.trim().length > 0) {\n return metaPid.trim();\n }\n return undefined;\n }\n\n private isPositionEntityType(entityType: string | undefined): boolean {\n if (!entityType || typeof entityType !== 'string') {\n return false;\n }\n return entityType === POSITION_ENTITY_SOURCE || entityType.endsWith('.Position');\n }\n\n private resolveBusinessUnitIdForPosition(context: AXMOrgChartNodeContributionContext): string | undefined {\n const meta = context.node.metadata ?? {};\n const a = meta['businessUnitId'];\n const b = meta['organizationalUnitId'];\n const raw = (typeof a === 'string' && a.trim().length > 0 ? a : typeof b === 'string' ? b : '') as string;\n const id = String(raw).trim();\n return id.length > 0 ? id : undefined;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,334 @@
1
+ import { AXPSessionService } from '@acorex/platform/auth';
2
+ import { AXPCommandService } from '@acorex/platform/runtime';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, Injectable } from '@angular/core';
5
+ import { R as RootConfig, m as AXM_ORG_CHART_LAYOUT_SUBMENU_ICON, o as AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY, q as AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID, i as AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, a as AXMOrgChartNodeType } from './acorex-modules-organization-management-acorex-modules-organization-management-aord1Uv0.mjs';
6
+ import { A as AXPOrganizationManagementPermissionKeys } from './acorex-modules-organization-management-permission.keys-DwZNBc12.mjs';
7
+
8
+ //#region ---- Imports ----
9
+ //#endregion
10
+ //#region ---- Constants ----
11
+ const actionKey = (suffix) => `@organization-management:organization-chart.node-actions.${suffix}`;
12
+ const TENANT_VIEW_PERMISSION = 'TenantManagement:Permission:Management';
13
+ const POSITION_ENTITY_SOURCE = RootConfig.entities.position.source;
14
+ const BUSINESS_UNIT_ENTITY_SOURCE = RootConfig.entities.businessUnit.source;
15
+ const TENANT_ENTITY_SOURCE = 'TenantManagement.Tenant';
16
+ const COMPANY_ENTITY_SOURCE = RootConfig.entities.company.source;
17
+ //#endregion
18
+ /**
19
+ * Org chart context menus: open record details, nested expand/collapse, multi-seat assign, HR stubs.
20
+ */
21
+ class AXMOrgChartUxNodeContributionProvider {
22
+ constructor() {
23
+ //#region ---- Services & Dependencies ----
24
+ this.commandService = inject(AXPCommandService);
25
+ this.sessionService = inject(AXPSessionService);
26
+ this.positionAssignmentCreatePermission = 'HumanCapitalManagement:Permission:PositionAssignment.Create';
27
+ this.tenantEntityInfo = {
28
+ module: 'TenantManagement',
29
+ name: 'Tenant',
30
+ title: '@tenant-management:tenants.entities.tenant.title',
31
+ };
32
+ this.companyEntityInfo = {
33
+ module: RootConfig.module.name,
34
+ name: RootConfig.entities.company.name,
35
+ title: RootConfig.entities.company.title,
36
+ };
37
+ }
38
+ //#endregion
39
+ //#region ---- AXMOrgChartNodeContributionProvider ----
40
+ async getMenuActions(context) {
41
+ const actions = [
42
+ ...this.getCrossCuttingActions(context),
43
+ ...this.getKindSpecificActions(context),
44
+ ];
45
+ return actions;
46
+ }
47
+ //#endregion
48
+ //#region ---- Cross-cutting ----
49
+ getCrossCuttingActions(context) {
50
+ const hasChildren = (context.node.children?.length ?? 0) > 0;
51
+ const expanded = context.node.isExpanded !== false;
52
+ return [
53
+ {
54
+ id: 'organization-management.org-chart.toggle-detail-panel',
55
+ title: actionKey('toggle-detail-panel'),
56
+ icon: 'fa-light fa-sidebar',
57
+ /** After Communication and structure actions; before Remove (120). */
58
+ order: 117,
59
+ break: 'before',
60
+ submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,
61
+ submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,
62
+ submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,
63
+ /** Separator before expand/collapse nested rows (never on the last row — that leaves a stray rule and gap). */
64
+ submenuSectionBreak: true,
65
+ execute: async (ctx) => {
66
+ ctx.host.toggleDetailPanel();
67
+ },
68
+ },
69
+ {
70
+ id: 'organization-management.org-chart.expand-branch',
71
+ title: actionKey('expand'),
72
+ icon: 'fa-light fa-square-plus',
73
+ order: 118,
74
+ submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,
75
+ submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,
76
+ submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,
77
+ disabled: !hasChildren || expanded,
78
+ execute: async (ctx) => {
79
+ ctx.host.setNodeBranchExpanded(ctx.node, true);
80
+ },
81
+ },
82
+ {
83
+ id: 'organization-management.org-chart.collapse-branch',
84
+ title: actionKey('collapse'),
85
+ icon: 'fa-light fa-square-minus',
86
+ order: 119,
87
+ submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,
88
+ submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,
89
+ submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,
90
+ /** Trailing group break: separator after the View & Layout row on the root menu (inner last-row break is normalized away). */
91
+ break: 'after',
92
+ disabled: !hasChildren || !expanded,
93
+ execute: async (ctx) => {
94
+ ctx.host.setNodeBranchExpanded(ctx.node, false);
95
+ },
96
+ },
97
+ ];
98
+ }
99
+ //#endregion
100
+ //#region ---- Kind-specific ----
101
+ /**
102
+ * **Open** — `Entity:OpenDetails` (navigate to entity view route).
103
+ */
104
+ buildOpenDetailsAction(args) {
105
+ return {
106
+ id: args.id,
107
+ title: actionKey('open'),
108
+ icon: 'fa-light fa-arrow-up-right-from-square',
109
+ order: args.order ?? 20,
110
+ break: args.breakAfter,
111
+ disabled: !args.canOpen,
112
+ execute: async (ctx) => {
113
+ const spec = args.resolve(ctx);
114
+ if (!spec) {
115
+ return;
116
+ }
117
+ await this.commandService.execute('Entity:OpenDetails', {
118
+ entity: spec.entity,
119
+ data: { id: spec.id },
120
+ });
121
+ },
122
+ };
123
+ }
124
+ getKindSpecificActions(context) {
125
+ switch (context.nodeKind) {
126
+ case 'company-root':
127
+ return this.getCompanyRootActions(context);
128
+ case 'business-unit':
129
+ return this.getBusinessUnitActions(context);
130
+ case 'position':
131
+ return this.getPositionActions(context);
132
+ default:
133
+ return [];
134
+ }
135
+ }
136
+ getCompanyRootActions(context) {
137
+ const viewTarget = this.resolveCompanyRootViewTarget(context.node);
138
+ if (!viewTarget) {
139
+ return [];
140
+ }
141
+ let canOpen = true;
142
+ if (viewTarget.kind === 'tenant') {
143
+ canOpen =
144
+ canOpen &&
145
+ (this.authorize(TENANT_VIEW_PERMISSION) ||
146
+ this.authorize(AXPOrganizationManagementPermissionKeys.Chart.Management));
147
+ }
148
+ else if (viewTarget.kind === 'company') {
149
+ canOpen =
150
+ canOpen && this.authorize(AXPOrganizationManagementPermissionKeys.OrganizationManagement.Management);
151
+ }
152
+ return [
153
+ this.buildOpenDetailsAction({
154
+ id: 'organization-management.org-chart.open-details',
155
+ canOpen,
156
+ breakAfter: 'after',
157
+ resolve: (ctx) => {
158
+ const target = this.resolveCompanyRootViewTarget(ctx.node);
159
+ return target ? { entity: target.source, id: target.id } : null;
160
+ },
161
+ }),
162
+ ];
163
+ }
164
+ getBusinessUnitActions(context) {
165
+ const businessUnitId = this.resolveBusinessUnitId(context);
166
+ const canView = this.authorize(AXPOrganizationManagementPermissionKeys.BusinessUnit.View);
167
+ return [
168
+ ...(businessUnitId
169
+ ? [
170
+ this.buildOpenDetailsAction({
171
+ id: 'organization-management.org-chart.open-details',
172
+ canOpen: canView,
173
+ breakAfter: 'after',
174
+ resolve: (ctx) => {
175
+ const id = this.resolveBusinessUnitId(ctx);
176
+ return id ? { entity: BUSINESS_UNIT_ENTITY_SOURCE, id } : null;
177
+ },
178
+ }),
179
+ ]
180
+ : []),
181
+ ];
182
+ }
183
+ getPositionActions(context) {
184
+ const positionId = this.resolvePositionId(context);
185
+ const businessUnitId = this.resolveBusinessUnitIdForPosition(context);
186
+ const capacity = this.resolvePositionCapacity(context.node);
187
+ const filled = this.resolveFilledAssignmentCount(context.node);
188
+ const canViewPosition = this.authorize(AXPOrganizationManagementPermissionKeys.Position.View);
189
+ const canAssignMore = this.authorize(this.positionAssignmentCreatePermission) &&
190
+ capacity > 1 &&
191
+ filled < capacity &&
192
+ Boolean(positionId) &&
193
+ Boolean(businessUnitId);
194
+ return [
195
+ ...(positionId
196
+ ? [
197
+ this.buildOpenDetailsAction({
198
+ id: 'organization-management.org-chart.open-details',
199
+ canOpen: canViewPosition,
200
+ breakAfter: 'after',
201
+ resolve: (ctx) => {
202
+ const id = this.resolvePositionId(ctx);
203
+ return id ? { entity: POSITION_ENTITY_SOURCE, id } : null;
204
+ },
205
+ }),
206
+ ]
207
+ : []),
208
+ {
209
+ id: 'organization-management.org-chart.add-additional-assignee',
210
+ title: actionKey('add-additional-assignee'),
211
+ icon: 'fa-light fa-user-plus',
212
+ order: 108,
213
+ disabled: !canAssignMore,
214
+ execute: async (ctx) => {
215
+ const pid = this.resolvePositionId(ctx);
216
+ const buId = this.resolveBusinessUnitIdForPosition(ctx);
217
+ if (!pid || !buId) {
218
+ return;
219
+ }
220
+ const result = await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {
221
+ data: {
222
+ businessUnitId: buId,
223
+ positionId: pid,
224
+ isPrimary: false,
225
+ },
226
+ });
227
+ if (result?.success) {
228
+ await ctx.refreshChart();
229
+ }
230
+ },
231
+ },
232
+ ];
233
+ }
234
+ //#endregion
235
+ //#region ---- Resolvers ----
236
+ authorize(permission) {
237
+ return this.sessionService.authorize(permission);
238
+ }
239
+ resolveCompanyRootViewTarget(node) {
240
+ const ent = node.entity;
241
+ if (!ent?.id) {
242
+ return null;
243
+ }
244
+ const id = String(ent.id).trim();
245
+ if (!id) {
246
+ return null;
247
+ }
248
+ const rawType = String(ent.type ?? '').trim();
249
+ if (rawType === 'tenant' || rawType.endsWith('.Tenant')) {
250
+ return { kind: 'tenant', source: TENANT_ENTITY_SOURCE, entityInfo: this.tenantEntityInfo, id };
251
+ }
252
+ if (rawType === COMPANY_ENTITY_SOURCE || rawType.endsWith('.Company')) {
253
+ return { kind: 'company', source: COMPANY_ENTITY_SOURCE, entityInfo: this.companyEntityInfo, id };
254
+ }
255
+ return null;
256
+ }
257
+ resolveBusinessUnitId(context) {
258
+ if (context.nodeKind === 'business-unit') {
259
+ const fromEntity = context.node.entity?.id;
260
+ const entityId = fromEntity != null && String(fromEntity).trim().length > 0 ? String(fromEntity).trim() : undefined;
261
+ return (entityId ??
262
+ context.node.metadata?.['businessUnitId']?.trim() ??
263
+ context.node.metadata?.['unitId']?.trim());
264
+ }
265
+ return undefined;
266
+ }
267
+ resolvePositionId(context) {
268
+ const entity = context.node.entity;
269
+ if (entity?.id != null && this.isPositionEntityType(entity.type)) {
270
+ const id = String(entity.id).trim();
271
+ return id.length > 0 ? id : undefined;
272
+ }
273
+ const metaPid = context.node.metadata?.['positionId'];
274
+ if (typeof metaPid === 'string' && metaPid.trim().length > 0) {
275
+ return metaPid.trim();
276
+ }
277
+ return undefined;
278
+ }
279
+ isPositionEntityType(entityType) {
280
+ if (!entityType || typeof entityType !== 'string') {
281
+ return false;
282
+ }
283
+ return entityType === POSITION_ENTITY_SOURCE || entityType.endsWith('.Position');
284
+ }
285
+ resolveBusinessUnitIdForPosition(context) {
286
+ const meta = context.node.metadata ?? {};
287
+ const a = meta['businessUnitId'];
288
+ const b = meta['organizationalUnitId'];
289
+ const raw = (typeof a === 'string' && a.trim().length > 0 ? a : typeof b === 'string' ? b : '');
290
+ const id = String(raw).trim();
291
+ return id.length > 0 ? id : undefined;
292
+ }
293
+ resolvePositionCapacity(node) {
294
+ const meta = node.metadata ?? {};
295
+ const raw = meta['capacity'];
296
+ if (typeof raw === 'number' && Number.isFinite(raw) && raw >= 1) {
297
+ return Math.floor(raw);
298
+ }
299
+ if (typeof raw === 'string') {
300
+ const n = Number(raw.trim());
301
+ if (Number.isFinite(n) && n >= 1) {
302
+ return Math.floor(n);
303
+ }
304
+ }
305
+ return 1;
306
+ }
307
+ resolveFilledAssignmentCount(node) {
308
+ const meta = node.metadata ?? {};
309
+ const fromMeta = meta['activeAssignmentCount'];
310
+ if (typeof fromMeta === 'number' && Number.isFinite(fromMeta) && fromMeta >= 0) {
311
+ return Math.floor(fromMeta);
312
+ }
313
+ const employeeChildren = node.children?.filter((c) => c.type === AXMOrgChartNodeType.Employee).length ?? 0;
314
+ if (employeeChildren > 0) {
315
+ return employeeChildren;
316
+ }
317
+ if (meta['vacant'] === true) {
318
+ return 0;
319
+ }
320
+ const occ = meta['occupant'];
321
+ if (typeof occ?.['employeeId'] === 'string' && occ['employeeId'].trim().length > 0) {
322
+ return 1;
323
+ }
324
+ return 0;
325
+ }
326
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartUxNodeContributionProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
327
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartUxNodeContributionProvider }); }
328
+ }
329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMOrgChartUxNodeContributionProvider, decorators: [{
330
+ type: Injectable
331
+ }] });
332
+
333
+ export { AXMOrgChartUxNodeContributionProvider };
334
+ //# sourceMappingURL=acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BgopvirR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-organization-management-org-chart-ux-node-contribution.provider-BgopvirR.mjs","sources":["../../../../libs/modules/organization-management/src/lib/features/organization-chart/contributions/org-chart-ux-node-contribution.provider.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { 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 { AXPOrganizationManagementPermissionKeys } from '../../../permission.keys';\nimport {\n AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,\n AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,\n AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,\n} from '../constants/org-chart-layout-submenu.const';\nimport {\n AXMOrgChartNodeContributionContext,\n AXMOrgChartNodeContributionProvider,\n AXMOrgChartNodeMenuAction,\n} from '../tokens/org-chart-node-contribution.token';\nimport { AXMOrgChartNodeType, AXMOrganizationNode } from '../model/org-chart.type';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst actionKey = (suffix: string): string =>\n `@organization-management:organization-chart.node-actions.${suffix}`;\n\nconst TENANT_VIEW_PERMISSION = 'TenantManagement:Permission:Management';\n\nconst POSITION_ENTITY_SOURCE = RootConfig.entities.position.source;\n\nconst BUSINESS_UNIT_ENTITY_SOURCE = RootConfig.entities.businessUnit.source;\n\nconst TENANT_ENTITY_SOURCE = 'TenantManagement.Tenant';\n\nconst COMPANY_ENTITY_SOURCE = RootConfig.entities.company.source;\n\n//#endregion\n\n/**\n * Org chart context menus: open record details, nested expand/collapse, multi-seat assign, HR stubs.\n */\n@Injectable()\nexport class AXMOrgChartUxNodeContributionProvider implements AXMOrgChartNodeContributionProvider {\n //#region ---- Services & Dependencies ----\n\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n\n private readonly positionAssignmentCreatePermission =\n 'HumanCapitalManagement:Permission:PositionAssignment.Create';\n\n private readonly tenantEntityInfo = {\n module: 'TenantManagement',\n name: 'Tenant',\n title: '@tenant-management:tenants.entities.tenant.title',\n };\n\n private readonly companyEntityInfo = {\n module: RootConfig.module.name,\n name: RootConfig.entities.company.name,\n title: RootConfig.entities.company.title,\n };\n\n //#endregion\n\n //#region ---- AXMOrgChartNodeContributionProvider ----\n\n async getMenuActions(context: AXMOrgChartNodeContributionContext): Promise<AXMOrgChartNodeMenuAction[]> {\n const actions: AXMOrgChartNodeMenuAction[] = [\n ...this.getCrossCuttingActions(context),\n ...this.getKindSpecificActions(context),\n ];\n return actions;\n }\n\n //#endregion\n\n //#region ---- Cross-cutting ----\n\n private getCrossCuttingActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n const hasChildren = (context.node.children?.length ?? 0) > 0;\n const expanded = context.node.isExpanded !== false;\n\n return [\n {\n id: 'organization-management.org-chart.toggle-detail-panel',\n title: actionKey('toggle-detail-panel'),\n icon: 'fa-light fa-sidebar',\n /** After Communication and structure actions; before Remove (120). */\n order: 117,\n break: 'before',\n submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,\n submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,\n submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,\n /** Separator before expand/collapse nested rows (never on the last row — that leaves a stray rule and gap). */\n submenuSectionBreak: true,\n execute: async (ctx) => {\n ctx.host.toggleDetailPanel();\n },\n },\n {\n id: 'organization-management.org-chart.expand-branch',\n title: actionKey('expand'),\n icon: 'fa-light fa-square-plus',\n order: 118,\n submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,\n submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,\n submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,\n disabled: !hasChildren || expanded,\n execute: async (ctx) => {\n ctx.host.setNodeBranchExpanded(ctx.node, true);\n },\n },\n {\n id: 'organization-management.org-chart.collapse-branch',\n title: actionKey('collapse'),\n icon: 'fa-light fa-square-minus',\n order: 119,\n submenuGroupId: AXM_ORG_CHART_LAYOUT_SUBMENU_GROUP_ID,\n submenuGroupTitle: AXM_ORG_CHART_LAYOUT_SUBMENU_TITLE_I18N_KEY,\n submenuGroupIcon: AXM_ORG_CHART_LAYOUT_SUBMENU_ICON,\n /** Trailing group break: separator after the View & Layout row on the root menu (inner last-row break is normalized away). */\n break: 'after',\n disabled: !hasChildren || !expanded,\n execute: async (ctx) => {\n ctx.host.setNodeBranchExpanded(ctx.node, false);\n },\n },\n ];\n }\n\n //#endregion\n\n //#region ---- Kind-specific ----\n\n /**\n * **Open** — `Entity:OpenDetails` (navigate to entity view route).\n */\n private buildOpenDetailsAction(args: {\n id: string;\n canOpen: boolean;\n breakAfter?: 'after';\n order?: number;\n resolve: (ctx: AXMOrgChartNodeContributionContext) => { entity: string; id: string } | null;\n }): AXMOrgChartNodeMenuAction {\n return {\n id: args.id,\n title: actionKey('open'),\n icon: 'fa-light fa-arrow-up-right-from-square',\n order: args.order ?? 20,\n break: args.breakAfter,\n disabled: !args.canOpen,\n execute: async (ctx) => {\n const spec = args.resolve(ctx);\n if (!spec) {\n return;\n }\n await this.commandService.execute('Entity:OpenDetails', {\n entity: spec.entity,\n data: { id: spec.id },\n });\n },\n };\n }\n\n private getKindSpecificActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n switch (context.nodeKind) {\n case 'company-root':\n return this.getCompanyRootActions(context);\n case 'business-unit':\n return this.getBusinessUnitActions(context);\n case 'position':\n return this.getPositionActions(context);\n default:\n return [];\n }\n }\n\n private getCompanyRootActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n const viewTarget = this.resolveCompanyRootViewTarget(context.node);\n if (!viewTarget) {\n return [];\n }\n let canOpen = true;\n if (viewTarget.kind === 'tenant') {\n canOpen =\n canOpen &&\n (this.authorize(TENANT_VIEW_PERMISSION) ||\n this.authorize(AXPOrganizationManagementPermissionKeys.Chart.Management));\n } else if (viewTarget.kind === 'company') {\n canOpen =\n canOpen && this.authorize(AXPOrganizationManagementPermissionKeys.OrganizationManagement.Management);\n }\n\n return [\n this.buildOpenDetailsAction({\n id: 'organization-management.org-chart.open-details',\n canOpen,\n breakAfter: 'after',\n resolve: (ctx) => {\n const target = this.resolveCompanyRootViewTarget(ctx.node);\n return target ? { entity: target.source, id: target.id } : null;\n },\n }),\n ];\n }\n\n private getBusinessUnitActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n const businessUnitId = this.resolveBusinessUnitId(context);\n const canView = this.authorize(AXPOrganizationManagementPermissionKeys.BusinessUnit.View);\n\n return [\n ...(businessUnitId\n ? [\n this.buildOpenDetailsAction({\n id: 'organization-management.org-chart.open-details',\n canOpen: canView,\n breakAfter: 'after',\n resolve: (ctx) => {\n const id = this.resolveBusinessUnitId(ctx);\n return id ? { entity: BUSINESS_UNIT_ENTITY_SOURCE, id } : null;\n },\n }),\n ]\n : []),\n ];\n }\n\n private getPositionActions(context: AXMOrgChartNodeContributionContext): AXMOrgChartNodeMenuAction[] {\n const positionId = this.resolvePositionId(context);\n const businessUnitId = this.resolveBusinessUnitIdForPosition(context);\n const capacity = this.resolvePositionCapacity(context.node);\n const filled = this.resolveFilledAssignmentCount(context.node);\n const canViewPosition = this.authorize(AXPOrganizationManagementPermissionKeys.Position.View);\n const canAssignMore =\n this.authorize(this.positionAssignmentCreatePermission) &&\n capacity > 1 &&\n filled < capacity &&\n Boolean(positionId) &&\n Boolean(businessUnitId);\n\n return [\n ...(positionId\n ? [\n this.buildOpenDetailsAction({\n id: 'organization-management.org-chart.open-details',\n canOpen: canViewPosition,\n breakAfter: 'after',\n resolve: (ctx) => {\n const id = this.resolvePositionId(ctx);\n return id ? { entity: POSITION_ENTITY_SOURCE, id } : null;\n },\n }),\n ]\n : []),\n {\n id: 'organization-management.org-chart.add-additional-assignee',\n title: actionKey('add-additional-assignee'),\n icon: 'fa-light fa-user-plus',\n order: 108,\n disabled: !canAssignMore,\n execute: async (ctx) => {\n const pid = this.resolvePositionId(ctx);\n const buId = this.resolveBusinessUnitIdForPosition(ctx);\n if (!pid || !buId) {\n return;\n }\n const result = await this.commandService.execute(AXM_HCM_POSITION_ASSIGNMENT_ASSIGN_COMMAND, {\n data: {\n businessUnitId: buId,\n positionId: pid,\n isPrimary: false,\n },\n });\n if (result?.success) {\n await ctx.refreshChart();\n }\n },\n },\n ];\n }\n\n //#endregion\n\n //#region ---- Resolvers ----\n\n private authorize(permission: string): boolean {\n return this.sessionService.authorize(permission);\n }\n\n private resolveCompanyRootViewTarget(\n node: AXMOrganizationNode,\n ): { kind: 'tenant' | 'company'; source: string; entityInfo: Record<string, string>; id: string } | null {\n const ent = node.entity;\n if (!ent?.id) {\n return null;\n }\n const id = String(ent.id).trim();\n if (!id) {\n return null;\n }\n const rawType = String(ent.type ?? '').trim();\n if (rawType === 'tenant' || rawType.endsWith('.Tenant')) {\n return { kind: 'tenant', source: TENANT_ENTITY_SOURCE, entityInfo: this.tenantEntityInfo, id };\n }\n if (rawType === COMPANY_ENTITY_SOURCE || rawType.endsWith('.Company')) {\n return { kind: 'company', source: COMPANY_ENTITY_SOURCE, entityInfo: this.companyEntityInfo, id };\n }\n return null;\n }\n\n private resolveBusinessUnitId(context: AXMOrgChartNodeContributionContext): string | undefined {\n if (context.nodeKind === 'business-unit') {\n const fromEntity = context.node.entity?.id;\n const entityId =\n fromEntity != null && String(fromEntity).trim().length > 0 ? String(fromEntity).trim() : undefined;\n return (\n entityId ??\n (context.node.metadata?.['businessUnitId'] as string | undefined)?.trim() ??\n (context.node.metadata?.['unitId'] as string | undefined)?.trim()\n );\n }\n return undefined;\n }\n\n private resolvePositionId(context: AXMOrgChartNodeContributionContext): string | undefined {\n const entity = context.node.entity;\n if (entity?.id != null && this.isPositionEntityType(entity.type)) {\n const id = String(entity.id).trim();\n return id.length > 0 ? id : undefined;\n }\n const metaPid = context.node.metadata?.['positionId'];\n if (typeof metaPid === 'string' && metaPid.trim().length > 0) {\n return metaPid.trim();\n }\n return undefined;\n }\n\n private isPositionEntityType(entityType: string | undefined): boolean {\n if (!entityType || typeof entityType !== 'string') {\n return false;\n }\n return entityType === POSITION_ENTITY_SOURCE || entityType.endsWith('.Position');\n }\n\n private resolveBusinessUnitIdForPosition(context: AXMOrgChartNodeContributionContext): string | undefined {\n const meta = context.node.metadata ?? {};\n const a = meta['businessUnitId'];\n const b = meta['organizationalUnitId'];\n const raw = (typeof a === 'string' && a.trim().length > 0 ? a : typeof b === 'string' ? b : '') as string;\n const id = String(raw).trim();\n return id.length > 0 ? id : undefined;\n }\n\n private resolvePositionCapacity(node: AXMOrganizationNode): number {\n const meta = node.metadata ?? {};\n const raw = meta['capacity'];\n if (typeof raw === 'number' && Number.isFinite(raw) && raw >= 1) {\n return Math.floor(raw);\n }\n if (typeof raw === 'string') {\n const n = Number(raw.trim());\n if (Number.isFinite(n) && n >= 1) {\n return Math.floor(n);\n }\n }\n return 1;\n }\n\n private resolveFilledAssignmentCount(node: AXMOrganizationNode): number {\n const meta = node.metadata ?? {};\n const fromMeta = meta['activeAssignmentCount'];\n if (typeof fromMeta === 'number' && Number.isFinite(fromMeta) && fromMeta >= 0) {\n return Math.floor(fromMeta);\n }\n const employeeChildren =\n node.children?.filter((c) => c.type === AXMOrgChartNodeType.Employee).length ?? 0;\n if (employeeChildren > 0) {\n return employeeChildren;\n }\n if (meta['vacant'] === true) {\n return 0;\n }\n const occ = meta['occupant'] as Record<string, unknown> | undefined;\n if (typeof occ?.['employeeId'] === 'string' && occ['employeeId'].trim().length > 0) {\n return 1;\n }\n return 0;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":";;;;;;;AAAA;AAoBA;AAEA;AAEA,MAAM,SAAS,GAAG,CAAC,MAAc,KAC/B,CAAA,yDAAA,EAA4D,MAAM,CAAA,CAAE;AAEtE,MAAM,sBAAsB,GAAG,wCAAwC;AAEvE,MAAM,sBAAsB,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAElE,MAAM,2BAA2B,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM;AAE3E,MAAM,oBAAoB,GAAG,yBAAyB;AAEtD,MAAM,qBAAqB,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;AAEhE;AAEA;;AAEG;MAEU,qCAAqC,CAAA;AADlD,IAAA,WAAA,GAAA;;AAImB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAE1C,IAAA,CAAA,kCAAkC,GACjD,6DAA6D;AAE9C,QAAA,IAAA,CAAA,gBAAgB,GAAG;AAClC,YAAA,MAAM,EAAE,kBAAkB;AAC1B,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,KAAK,EAAE,kDAAkD;SAC1D;AAEgB,QAAA,IAAA,CAAA,iBAAiB,GAAG;AACnC,YAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC9B,YAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;AACtC,YAAA,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK;SACzC;AA0UF,IAAA;;;IApUC,MAAM,cAAc,CAAC,OAA2C,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAgC;AAC3C,YAAA,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;AACvC,YAAA,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;SACxC;AACD,QAAA,OAAO,OAAO;IAChB;;;AAMQ,IAAA,sBAAsB,CAAC,OAA2C,EAAA;AACxE,QAAA,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;QAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK;QAElD,OAAO;AACL,YAAA;AACE,gBAAA,EAAE,EAAE,uDAAuD;AAC3D,gBAAA,KAAK,EAAE,SAAS,CAAC,qBAAqB,CAAC;AACvC,gBAAA,IAAI,EAAE,qBAAqB;;AAE3B,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,cAAc,EAAE,qCAAqC;AACrD,gBAAA,iBAAiB,EAAE,2CAA2C;AAC9D,gBAAA,gBAAgB,EAAE,iCAAiC;;AAEnD,gBAAA,mBAAmB,EAAE,IAAI;AACzB,gBAAA,OAAO,EAAE,OAAO,GAAG,KAAI;AACrB,oBAAA,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC9B,CAAC;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,iDAAiD;AACrD,gBAAA,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC;AAC1B,gBAAA,IAAI,EAAE,yBAAyB;AAC/B,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,cAAc,EAAE,qCAAqC;AACrD,gBAAA,iBAAiB,EAAE,2CAA2C;AAC9D,gBAAA,gBAAgB,EAAE,iCAAiC;AACnD,gBAAA,QAAQ,EAAE,CAAC,WAAW,IAAI,QAAQ;AAClC,gBAAA,OAAO,EAAE,OAAO,GAAG,KAAI;oBACrB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;gBAChD,CAAC;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,mDAAmD;AACvD,gBAAA,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC;AAC5B,gBAAA,IAAI,EAAE,0BAA0B;AAChC,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,cAAc,EAAE,qCAAqC;AACrD,gBAAA,iBAAiB,EAAE,2CAA2C;AAC9D,gBAAA,gBAAgB,EAAE,iCAAiC;;AAEnD,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,QAAQ,EAAE,CAAC,WAAW,IAAI,CAAC,QAAQ;AACnC,gBAAA,OAAO,EAAE,OAAO,GAAG,KAAI;oBACrB,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC;gBACjD,CAAC;AACF,aAAA;SACF;IACH;;;AAMA;;AAEG;AACK,IAAA,sBAAsB,CAAC,IAM9B,EAAA;QACC,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;AACX,YAAA,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;AACxB,YAAA,IAAI,EAAE,wCAAwC;AAC9C,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,KAAK,EAAE,IAAI,CAAC,UAAU;AACtB,YAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO;AACvB,YAAA,OAAO,EAAE,OAAO,GAAG,KAAI;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBAC9B,IAAI,CAAC,IAAI,EAAE;oBACT;gBACF;AACA,gBAAA,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,oBAAoB,EAAE;oBACtD,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,oBAAA,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;AACtB,iBAAA,CAAC;YACJ,CAAC;SACF;IACH;AAEQ,IAAA,sBAAsB,CAAC,OAA2C,EAAA;AACxE,QAAA,QAAQ,OAAO,CAAC,QAAQ;AACtB,YAAA,KAAK,cAAc;AACjB,gBAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAC5C,YAAA,KAAK,eAAe;AAClB,gBAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;AAC7C,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACzC,YAAA;AACE,gBAAA,OAAO,EAAE;;IAEf;AAEQ,IAAA,qBAAqB,CAAC,OAA2C,EAAA;QACvE,MAAM,UAAU,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC;QAClE,IAAI,CAAC,UAAU,EAAE;AACf,YAAA,OAAO,EAAE;QACX;QACA,IAAI,OAAO,GAAG,IAAI;AAClB,QAAA,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE;YAChC,OAAO;gBACL,OAAO;AACP,qBAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC;wBACrC,IAAI,CAAC,SAAS,CAAC,uCAAuC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/E;AAAO,aAAA,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;YACxC,OAAO;gBACL,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,uCAAuC,CAAC,sBAAsB,CAAC,UAAU,CAAC;QACxG;QAEA,OAAO;YACL,IAAI,CAAC,sBAAsB,CAAC;AAC1B,gBAAA,EAAE,EAAE,gDAAgD;gBACpD,OAAO;AACP,gBAAA,UAAU,EAAE,OAAO;AACnB,gBAAA,OAAO,EAAE,CAAC,GAAG,KAAI;oBACf,MAAM,MAAM,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC1D,OAAO,MAAM,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI;gBACjE,CAAC;aACF,CAAC;SACH;IACH;AAEQ,IAAA,sBAAsB,CAAC,OAA2C,EAAA;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,uCAAuC,CAAC,YAAY,CAAC,IAAI,CAAC;QAEzF,OAAO;AACL,YAAA,IAAI;AACF,kBAAE;oBACE,IAAI,CAAC,sBAAsB,CAAC;AAC1B,wBAAA,EAAE,EAAE,gDAAgD;AACpD,wBAAA,OAAO,EAAE,OAAO;AAChB,wBAAA,UAAU,EAAE,OAAO;AACnB,wBAAA,OAAO,EAAE,CAAC,GAAG,KAAI;4BACf,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;AAC1C,4BAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,2BAA2B,EAAE,EAAE,EAAE,GAAG,IAAI;wBAChE,CAAC;qBACF,CAAC;AACH;kBACD,EAAE,CAAC;SACR;IACH;AAEQ,IAAA,kBAAkB,CAAC,OAA2C,EAAA;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAClD,MAAM,cAAc,GAAG,IAAI,CAAC,gCAAgC,CAAC,OAAO,CAAC;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC;AAC9D,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,uCAAuC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7F,MAAM,aAAa,GACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kCAAkC,CAAC;AACvD,YAAA,QAAQ,GAAG,CAAC;AACZ,YAAA,MAAM,GAAG,QAAQ;YACjB,OAAO,CAAC,UAAU,CAAC;YACnB,OAAO,CAAC,cAAc,CAAC;QAEzB,OAAO;AACL,YAAA,IAAI;AACF,kBAAE;oBACE,IAAI,CAAC,sBAAsB,CAAC;AAC1B,wBAAA,EAAE,EAAE,gDAAgD;AACpD,wBAAA,OAAO,EAAE,eAAe;AACxB,wBAAA,UAAU,EAAE,OAAO;AACnB,wBAAA,OAAO,EAAE,CAAC,GAAG,KAAI;4BACf,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AACtC,4BAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,EAAE,GAAG,IAAI;wBAC3D,CAAC;qBACF,CAAC;AACH;kBACD,EAAE,CAAC;AACP,YAAA;AACE,gBAAA,EAAE,EAAE,2DAA2D;AAC/D,gBAAA,KAAK,EAAE,SAAS,CAAC,yBAAyB,CAAC;AAC3C,gBAAA,IAAI,EAAE,uBAAuB;AAC7B,gBAAA,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,CAAC,aAAa;AACxB,gBAAA,OAAO,EAAE,OAAO,GAAG,KAAI;oBACrB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;oBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC;AACvD,oBAAA,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;wBACjB;oBACF;oBACA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,0CAA0C,EAAE;AAC3F,wBAAA,IAAI,EAAE;AACJ,4BAAA,cAAc,EAAE,IAAI;AACpB,4BAAA,UAAU,EAAE,GAAG;AACf,4BAAA,SAAS,EAAE,KAAK;AACjB,yBAAA;AACF,qBAAA,CAAC;AACF,oBAAA,IAAI,MAAM,EAAE,OAAO,EAAE;AACnB,wBAAA,MAAM,GAAG,CAAC,YAAY,EAAE;oBAC1B;gBACF,CAAC;AACF,aAAA;SACF;IACH;;;AAMQ,IAAA,SAAS,CAAC,UAAkB,EAAA;QAClC,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC;IAClD;AAEQ,IAAA,4BAA4B,CAClC,IAAyB,EAAA;AAEzB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;AACvB,QAAA,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE;AACZ,YAAA,OAAO,IAAI;QACb;QACA,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAChC,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,OAAO,IAAI;QACb;AACA,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QAC7C,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvD,YAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE;QAChG;QACA,IAAI,OAAO,KAAK,qBAAqB,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;AACrE,YAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,EAAE;QACnG;AACA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,qBAAqB,CAAC,OAA2C,EAAA;AACvE,QAAA,IAAI,OAAO,CAAC,QAAQ,KAAK,eAAe,EAAE;YACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAC1C,YAAA,MAAM,QAAQ,GACZ,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,GAAG,SAAS;AACpG,YAAA,QACE,QAAQ;gBACP,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAAwB,EAAE,IAAI,EAAE;AACxE,gBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAwB,EAAE,IAAI,EAAE;QAErE;AACA,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,iBAAiB,CAAC,OAA2C,EAAA;AACnE,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM;AAClC,QAAA,IAAI,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAChE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AACnC,YAAA,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS;QACvC;QACA,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;AACrD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5D,YAAA,OAAO,OAAO,CAAC,IAAI,EAAE;QACvB;AACA,QAAA,OAAO,SAAS;IAClB;AAEQ,IAAA,oBAAoB,CAAC,UAA8B,EAAA;QACzD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACjD,YAAA,OAAO,KAAK;QACd;QACA,OAAO,UAAU,KAAK,sBAAsB,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;IAClF;AAEQ,IAAA,gCAAgC,CAAC,OAA2C,EAAA;QAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE;AACxC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAChC,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;AACtC,QAAA,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAW;QACzG,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AAC7B,QAAA,OAAO,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS;IACvC;AAEQ,IAAA,uBAAuB,CAAC,IAAyB,EAAA;AACvD,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;AAChC,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;AAC5B,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AAC/D,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QACxB;AACA,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACtB;QACF;AACA,QAAA,OAAO,CAAC;IACV;AAEQ,IAAA,4BAA4B,CAAC,IAAyB,EAAA;AAC5D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE;AAChC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC;AAC9C,QAAA,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;AAC9E,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B;QACA,MAAM,gBAAgB,GACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC;AACnF,QAAA,IAAI,gBAAgB,GAAG,CAAC,EAAE;AACxB,YAAA,OAAO,gBAAgB;QACzB;AACA,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;AAC3B,YAAA,OAAO,CAAC;QACV;AACA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAwC;QACnE,IAAI,OAAO,GAAG,GAAG,YAAY,CAAC,KAAK,QAAQ,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAClF,YAAA,OAAO,CAAC;QACV;AACA,QAAA,OAAO,CAAC;IACV;8GA1VW,qCAAqC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArC,qCAAqC,EAAA,CAAA,CAAA;;2FAArC,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBADjD;;;;;"}