@acorex/modules 21.0.0-next.74 → 21.0.0-next.76

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 (725) hide show
  1. package/fesm2022/{acorex-modules-ai-management-model.entity-DiDaXVa3.mjs → acorex-modules-ai-management-index-1AKm3Wpv.mjs} +4 -7
  2. package/fesm2022/acorex-modules-ai-management-index-1AKm3Wpv.mjs.map +1 -0
  3. package/fesm2022/{acorex-modules-ai-management-rule.entity-CQNx4QEB.mjs → acorex-modules-ai-management-index-D-oYCWiP.mjs} +2 -5
  4. package/fesm2022/acorex-modules-ai-management-index-D-oYCWiP.mjs.map +1 -0
  5. package/fesm2022/{acorex-modules-ai-management-assist.entity-CeALRRoV.mjs → acorex-modules-ai-management-index-IOX4YfSO.mjs} +2 -5
  6. package/fesm2022/acorex-modules-ai-management-index-IOX4YfSO.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-CZLNKtl0.mjs → acorex-modules-ai-management-index-KMGY_nWq.mjs} +2 -5
  8. package/fesm2022/acorex-modules-ai-management-index-KMGY_nWq.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-ai-management-agent.entity-3ZBa5t2D.mjs → acorex-modules-ai-management-index-r6kkpdsP.mjs} +2 -5
  10. package/fesm2022/acorex-modules-ai-management-index-r6kkpdsP.mjs.map +1 -0
  11. package/fesm2022/acorex-modules-ai-management.mjs +92 -92
  12. package/fesm2022/acorex-modules-ai-management.mjs.map +1 -1
  13. package/fesm2022/{acorex-modules-application-management-application-status.provider-CGRoY79H.mjs → acorex-modules-application-management-application-status.provider-BmTGAssq.mjs} +2 -2
  14. package/fesm2022/acorex-modules-application-management-application-status.provider-BmTGAssq.mjs.map +1 -0
  15. package/fesm2022/acorex-modules-application-management-permission-definition.provider-DEO50hd3.mjs.map +1 -1
  16. package/fesm2022/acorex-modules-application-management.mjs +1143 -1146
  17. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  18. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-CLXKpUoU.mjs} +85 -86
  19. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-CLXKpUoU.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-assessment-management-assessment-case-status.provider-B9sQAPwy.mjs → acorex-modules-assessment-management-assessment-case-status.provider-rAq2m3xt.mjs} +2 -2
  21. package/fesm2022/acorex-modules-assessment-management-assessment-case-status.provider-rAq2m3xt.mjs.map +1 -0
  22. package/fesm2022/{acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs → acorex-modules-assessment-management-assessment-session-answers-view.util-DECCIZSO.mjs} +2 -2
  23. package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-DECCIZSO.mjs.map +1 -0
  24. package/fesm2022/{acorex-modules-assessment-management-assessment-session-status.provider-Lee6Cwg8.mjs → acorex-modules-assessment-management-assessment-session-status.provider-B-0MdMq1.mjs} +2 -2
  25. package/fesm2022/acorex-modules-assessment-management-assessment-session-status.provider-B-0MdMq1.mjs.map +1 -0
  26. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs → acorex-modules-assessment-management-fill-assessment-session.command-pLGZAFqT.mjs} +2 -2
  27. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-pLGZAFqT.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs → acorex-modules-assessment-management-index-Cj5KtvVT.mjs} +6 -8
  29. package/fesm2022/acorex-modules-assessment-management-index-Cj5KtvVT.mjs.map +1 -0
  30. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs → acorex-modules-assessment-management-index-ClRMor3R.mjs} +8 -10
  31. package/fesm2022/acorex-modules-assessment-management-index-ClRMor3R.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs → acorex-modules-assessment-management-index-DDhc6vR7.mjs} +7 -9
  33. package/fesm2022/acorex-modules-assessment-management-index-DDhc6vR7.mjs.map +1 -0
  34. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs → acorex-modules-assessment-management-index-VYBOM8GR.mjs} +6 -9
  35. package/fesm2022/acorex-modules-assessment-management-index-VYBOM8GR.mjs.map +1 -0
  36. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs → acorex-modules-assessment-management-preview-question.command-Bgqajt80.mjs} +2 -2
  37. package/fesm2022/acorex-modules-assessment-management-preview-question.command-Bgqajt80.mjs.map +1 -0
  38. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs → acorex-modules-assessment-management-preview-questionnaire.command-B84qnNRw.mjs} +2 -2
  39. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-B84qnNRw.mjs.map +1 -0
  40. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-CyZGi_Zx.mjs} +2 -2
  41. package/fesm2022/acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-CyZGi_Zx.mjs.map +1 -0
  42. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-CRQjv1Vz.mjs} +2 -2
  43. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-CRQjv1Vz.mjs.map +1 -0
  44. package/fesm2022/{acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs → acorex-modules-assessment-management-review-assessment-session.command-Dgaf88SW.mjs} +3 -3
  45. package/fesm2022/acorex-modules-assessment-management-review-assessment-session.command-Dgaf88SW.mjs.map +1 -0
  46. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs → acorex-modules-assessment-management-view-session-answers.command-CocxFTxZ.mjs} +3 -3
  47. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-CocxFTxZ.mjs.map +1 -0
  48. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  49. package/fesm2022/{acorex-modules-asset-management-asset-rental-history-status.provider-BiWf2TwD.mjs → acorex-modules-asset-management-asset-rental-history-status.provider-_iNFw6nf.mjs} +4 -13
  50. package/fesm2022/acorex-modules-asset-management-asset-rental-history-status.provider-_iNFw6nf.mjs.map +1 -0
  51. package/fesm2022/{acorex-modules-asset-management-asset-system-assignment.entity-ufjDJ-0D.mjs → acorex-modules-asset-management-index-BE9Pt9Yl.mjs} +4 -7
  52. package/fesm2022/acorex-modules-asset-management-index-BE9Pt9Yl.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-C6tA_OBh.mjs → acorex-modules-asset-management-index-BGnVFHyV.mjs} +4 -7
  54. package/fesm2022/acorex-modules-asset-management-index-BGnVFHyV.mjs.map +1 -0
  55. package/fesm2022/{acorex-modules-asset-management-asset.entity-D1HwzXL_.mjs → acorex-modules-asset-management-index-BNW-nI4M.mjs} +7 -12
  56. package/fesm2022/acorex-modules-asset-management-index-BNW-nI4M.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-asset-management-asset-system.entity-0Fy7wSBh.mjs → acorex-modules-asset-management-index-BQRNWXnd.mjs} +4 -7
  58. package/fesm2022/acorex-modules-asset-management-index-BQRNWXnd.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-OsuWeo2l.mjs → acorex-modules-asset-management-index-BmydXxB7.mjs} +4 -7
  60. package/fesm2022/acorex-modules-asset-management-index-BmydXxB7.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-asset-management-asset-rental-history.entity-D7g3TSrr.mjs → acorex-modules-asset-management-index-Bza8Y2Qq.mjs} +6 -10
  62. package/fesm2022/acorex-modules-asset-management-index-Bza8Y2Qq.mjs.map +1 -0
  63. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-Cjy7Xetu.mjs → acorex-modules-asset-management-index-CBoHnVCB.mjs} +5 -9
  64. package/fesm2022/acorex-modules-asset-management-index-CBoHnVCB.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-DbeerQdD.mjs → acorex-modules-asset-management-index-DDyvfemO.mjs} +4 -7
  66. package/fesm2022/acorex-modules-asset-management-index-DDyvfemO.mjs.map +1 -0
  67. package/fesm2022/acorex-modules-asset-management.mjs +134 -119
  68. package/fesm2022/acorex-modules-asset-management.mjs.map +1 -1
  69. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CUpNfm_0.mjs → acorex-modules-auth-acorex-modules-auth-DBZfh3pH.mjs} +130 -129
  70. package/fesm2022/acorex-modules-auth-acorex-modules-auth-DBZfh3pH.mjs.map +1 -0
  71. package/fesm2022/{acorex-modules-auth-app-chooser.component-DLtnhyB9.mjs → acorex-modules-auth-app-chooser.component-DN75LxY3.mjs} +2 -2
  72. package/fesm2022/{acorex-modules-auth-app-chooser.component-DLtnhyB9.mjs.map → acorex-modules-auth-app-chooser.component-DN75LxY3.mjs.map} +1 -1
  73. package/fesm2022/{acorex-modules-auth-change-password.command-DcGeenns.mjs → acorex-modules-auth-change-password.command-DDH7PMLT.mjs} +2 -2
  74. package/fesm2022/{acorex-modules-auth-change-password.command-DcGeenns.mjs.map → acorex-modules-auth-change-password.command-DDH7PMLT.mjs.map} +1 -1
  75. package/fesm2022/{acorex-modules-auth-edit-account-info.command-BnPtwAxA.mjs → acorex-modules-auth-edit-account-info.command-BtzrBEGu.mjs} +2 -2
  76. package/fesm2022/{acorex-modules-auth-edit-account-info.command-BnPtwAxA.mjs.map → acorex-modules-auth-edit-account-info.command-BtzrBEGu.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-auth-lock-screen.command-Dh0Sgo3_.mjs → acorex-modules-auth-lock-screen.command-BIiErYnc.mjs} +2 -2
  78. package/fesm2022/{acorex-modules-auth-lock-screen.command-Dh0Sgo3_.mjs.map → acorex-modules-auth-lock-screen.command-BIiErYnc.mjs.map} +1 -1
  79. package/fesm2022/{acorex-modules-auth-login.module-C8psUPfq.mjs → acorex-modules-auth-login.module-CM6a_pvB.mjs} +4 -4
  80. package/fesm2022/{acorex-modules-auth-login.module-C8psUPfq.mjs.map → acorex-modules-auth-login.module-CM6a_pvB.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-auth-master.layout-KMxMqtt8.mjs → acorex-modules-auth-master.layout-D9al7lUX.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-auth-master.layout-KMxMqtt8.mjs.map → acorex-modules-auth-master.layout-D9al7lUX.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BF_3fuuz.mjs → acorex-modules-auth-oauth-callback.component-CndekwOM.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-auth-oauth-callback.component-BF_3fuuz.mjs.map → acorex-modules-auth-oauth-callback.component-CndekwOM.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-auth-open-sessions.command-vxmxqvOa.mjs → acorex-modules-auth-open-sessions.command-Bgk9TcH-.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-auth-open-sessions.command-vxmxqvOa.mjs.map → acorex-modules-auth-open-sessions.command-Bgk9TcH-.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-auth-password.component-BOoUt4Gn.mjs → acorex-modules-auth-password.component-BWEq8tpz.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-auth-password.component-BOoUt4Gn.mjs.map → acorex-modules-auth-password.component-BWEq8tpz.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-auth-password.component-Cpjc_S82.mjs → acorex-modules-auth-password.component-Z980dxkh.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-auth-password.component-Cpjc_S82.mjs.map → acorex-modules-auth-password.component-Z980dxkh.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-auth-profile-activity-chart.component-DfWYy7TN.mjs → acorex-modules-auth-profile-activity-chart.component-8uSUOk9s.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-auth-profile-activity-chart.component-DfWYy7TN.mjs.map → acorex-modules-auth-profile-activity-chart.component-8uSUOk9s.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-auth-profile-delete-account-danger-zone.component-DJcIyOxg.mjs → acorex-modules-auth-profile-delete-account-danger-zone.component-C-zoKWsQ.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-auth-profile-delete-account-danger-zone.component-DJcIyOxg.mjs.map → acorex-modules-auth-profile-delete-account-danger-zone.component-C-zoKWsQ.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-auth-profile-page-component.provider-DR2-c0_6.mjs → acorex-modules-auth-profile-page-component.provider-BoGC3tKI.mjs} +4 -4
  96. package/fesm2022/{acorex-modules-auth-profile-page-component.provider-DR2-c0_6.mjs.map → acorex-modules-auth-profile-page-component.provider-BoGC3tKI.mjs.map} +1 -1
  97. package/fesm2022/{acorex-modules-auth-profile-page.component-ChsI9B3Y.mjs → acorex-modules-auth-profile-page.component-B-qdKgOT.mjs} +11 -6
  98. package/fesm2022/acorex-modules-auth-profile-page.component-B-qdKgOT.mjs.map +1 -0
  99. package/fesm2022/{acorex-modules-auth-remove-pin-code.command-LFwvvyZ9.mjs → acorex-modules-auth-remove-pin-code.command-DnYc0CYG.mjs} +2 -2
  100. package/fesm2022/{acorex-modules-auth-remove-pin-code.command-LFwvvyZ9.mjs.map → acorex-modules-auth-remove-pin-code.command-DnYc0CYG.mjs.map} +1 -1
  101. package/fesm2022/{acorex-modules-auth-routes-CuY_v2GN.mjs → acorex-modules-auth-routes-Cg0xipUZ.mjs} +2 -2
  102. package/fesm2022/{acorex-modules-auth-routes-CuY_v2GN.mjs.map → acorex-modules-auth-routes-Cg0xipUZ.mjs.map} +1 -1
  103. package/fesm2022/{acorex-modules-auth-session-lock-overlay.component-CwNAumIp.mjs → acorex-modules-auth-session-lock-overlay.component-BkpYhoVc.mjs} +2 -2
  104. package/fesm2022/{acorex-modules-auth-session-lock-overlay.component-CwNAumIp.mjs.map → acorex-modules-auth-session-lock-overlay.component-BkpYhoVc.mjs.map} +1 -1
  105. package/fesm2022/{acorex-modules-auth-set-pin-code.command-CfIHBTiI.mjs → acorex-modules-auth-set-pin-code.command-9DY-hUvp.mjs} +2 -2
  106. package/fesm2022/{acorex-modules-auth-set-pin-code.command-CfIHBTiI.mjs.map → acorex-modules-auth-set-pin-code.command-9DY-hUvp.mjs.map} +1 -1
  107. package/fesm2022/{acorex-modules-auth-set-pin-code.component-CNZE8NXL.mjs → acorex-modules-auth-set-pin-code.component-QhO37PUy.mjs} +2 -2
  108. package/fesm2022/{acorex-modules-auth-set-pin-code.component-CNZE8NXL.mjs.map → acorex-modules-auth-set-pin-code.component-QhO37PUy.mjs.map} +1 -1
  109. package/fesm2022/{acorex-modules-auth-settings.provider-BMc1yFRY.mjs → acorex-modules-auth-settings.provider-DhaMQd28.mjs} +2 -2
  110. package/fesm2022/{acorex-modules-auth-settings.provider-BMc1yFRY.mjs.map → acorex-modules-auth-settings.provider-DhaMQd28.mjs.map} +1 -1
  111. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-OsTNt9lp.mjs → acorex-modules-auth-tenant-chooser.component-Hy_FsSVy.mjs} +2 -2
  112. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-OsTNt9lp.mjs.map → acorex-modules-auth-tenant-chooser.component-Hy_FsSVy.mjs.map} +1 -1
  113. package/fesm2022/{acorex-modules-auth-two-factor.module-CcKZ6dpb.mjs → acorex-modules-auth-two-factor.module-l0zICZtk.mjs} +2 -2
  114. package/fesm2022/{acorex-modules-auth-two-factor.module-CcKZ6dpb.mjs.map → acorex-modules-auth-two-factor.module-l0zICZtk.mjs.map} +1 -1
  115. package/fesm2022/{acorex-modules-auth-view-login-history.command-Crx7Dw2t.mjs → acorex-modules-auth-view-login-history.command-o2IzCKbr.mjs} +2 -2
  116. package/fesm2022/{acorex-modules-auth-view-login-history.command-Crx7Dw2t.mjs.map → acorex-modules-auth-view-login-history.command-o2IzCKbr.mjs.map} +1 -1
  117. package/fesm2022/acorex-modules-auth.mjs +1 -1
  118. package/fesm2022/acorex-modules-business-core.mjs +993 -313
  119. package/fesm2022/acorex-modules-business-core.mjs.map +1 -1
  120. package/fesm2022/acorex-modules-calendar-management-index-DIxSknUT.mjs +6 -0
  121. package/fesm2022/acorex-modules-calendar-management-index-DIxSknUT.mjs.map +1 -0
  122. package/fesm2022/acorex-modules-calendar-management-index-pvTUhYWL.mjs +6 -0
  123. package/fesm2022/acorex-modules-calendar-management-index-pvTUhYWL.mjs.map +1 -0
  124. package/fesm2022/acorex-modules-calendar-management-index-xkdBRrFw.mjs +6 -0
  125. package/fesm2022/acorex-modules-calendar-management-index-xkdBRrFw.mjs.map +1 -0
  126. package/fesm2022/acorex-modules-calendar-management.mjs +57 -73
  127. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  128. package/fesm2022/acorex-modules-common.mjs +136 -240
  129. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  130. package/fesm2022/acorex-modules-contact-core-acorex-modules-contact-core-D9-WvwGJ.mjs +425 -0
  131. package/fesm2022/acorex-modules-contact-core-acorex-modules-contact-core-D9-WvwGJ.mjs.map +1 -0
  132. package/fesm2022/acorex-modules-contact-core-entity.provider-Cl4zx8WX.mjs +35 -0
  133. package/fesm2022/acorex-modules-contact-core-entity.provider-Cl4zx8WX.mjs.map +1 -0
  134. package/fesm2022/acorex-modules-contact-core-menu.provider-DfUbrqFh.mjs +57 -0
  135. package/fesm2022/acorex-modules-contact-core-menu.provider-DfUbrqFh.mjs.map +1 -0
  136. package/fesm2022/acorex-modules-contact-core-permission-definition.provider-Dni6YOWm.mjs +24 -0
  137. package/fesm2022/acorex-modules-contact-core-permission-definition.provider-Dni6YOWm.mjs.map +1 -0
  138. package/fesm2022/acorex-modules-contact-core.mjs +2 -0
  139. package/fesm2022/acorex-modules-contact-core.mjs.map +1 -0
  140. package/fesm2022/{acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs → acorex-modules-content-management-acorex-modules-content-management-DSdJ2hZ-.mjs} +58 -138
  141. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-DSdJ2hZ-.mjs.map +1 -0
  142. package/fesm2022/{acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs → acorex-modules-content-management-permission-definition.provider-DRVW7Xxa.mjs} +2 -2
  143. package/fesm2022/acorex-modules-content-management-permission-definition.provider-DRVW7Xxa.mjs.map +1 -0
  144. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs → acorex-modules-content-management-template-content-editor-widget-edit.component-DwUqz7ZX.mjs} +2 -2
  145. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-edit.component-ChmkpMy9.mjs.map → acorex-modules-content-management-template-content-editor-widget-edit.component-DwUqz7ZX.mjs.map} +1 -1
  146. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs → acorex-modules-content-management-template-content-editor-widget-view.component-CnUc_fhC.mjs} +2 -2
  147. package/fesm2022/{acorex-modules-content-management-template-content-editor-widget-view.component-LyoQmopL.mjs.map → acorex-modules-content-management-template-content-editor-widget-view.component-CnUc_fhC.mjs.map} +1 -1
  148. package/fesm2022/acorex-modules-content-management.mjs +1 -1
  149. package/fesm2022/{acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs → acorex-modules-conversation-acorex-modules-conversation-DtFH9LbP.mjs} +192 -191
  150. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-DtFH9LbP.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Cpc1seYt.mjs} +2 -2
  152. package/fesm2022/{acorex-modules-conversation-assist-delegated-agent-detail-popup.component-D0SGSQC8.mjs.map → acorex-modules-conversation-assist-delegated-agent-detail-popup.component-Cpc1seYt.mjs.map} +1 -1
  153. package/fesm2022/{acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs → acorex-modules-conversation-comments-page.component-B1CmPB0U.mjs} +2 -2
  154. package/fesm2022/{acorex-modules-conversation-comments-page.component-Bqeplzuy.mjs.map → acorex-modules-conversation-comments-page.component-B1CmPB0U.mjs.map} +1 -1
  155. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs → acorex-modules-conversation-send-assist-chat-message.command-BFFF5GTX.mjs} +2 -2
  156. package/fesm2022/{acorex-modules-conversation-send-assist-chat-message.command-CFwkUHCc.mjs.map → acorex-modules-conversation-send-assist-chat-message.command-BFFF5GTX.mjs.map} +1 -1
  157. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs → acorex-modules-conversation-start-assist-chat.command-C-KVIK-L.mjs} +2 -2
  158. package/fesm2022/{acorex-modules-conversation-start-assist-chat.command-aEOnD6ax.mjs.map → acorex-modules-conversation-start-assist-chat.command-C-KVIK-L.mjs.map} +1 -1
  159. package/fesm2022/acorex-modules-conversation.mjs +1 -1
  160. package/fesm2022/{acorex-modules-customer-management-lead.entity-CH7iga2T.mjs → acorex-modules-customer-management-index-7teVSkdT.mjs} +2 -5
  161. package/fesm2022/acorex-modules-customer-management-index-7teVSkdT.mjs.map +1 -0
  162. package/fesm2022/{acorex-modules-customer-management-opportunity-stage.entity-gXGyRjOR.mjs → acorex-modules-customer-management-index-B0wUbd2e.mjs} +2 -4
  163. package/fesm2022/acorex-modules-customer-management-index-B0wUbd2e.mjs.map +1 -0
  164. package/fesm2022/{acorex-modules-customer-management-customer.entity-Doc1f5gH.mjs → acorex-modules-customer-management-index-CQLsaDJ-.mjs} +3 -7
  165. package/fesm2022/acorex-modules-customer-management-index-CQLsaDJ-.mjs.map +1 -0
  166. package/fesm2022/{acorex-modules-customer-management-deal-contact-role.entity-BmDALoWz.mjs → acorex-modules-customer-management-index-CQWjFZ-D.mjs} +4 -7
  167. package/fesm2022/acorex-modules-customer-management-index-CQWjFZ-D.mjs.map +1 -0
  168. package/fesm2022/{acorex-modules-customer-management-sales-pipeline.entity-TN7eqaA1.mjs → acorex-modules-customer-management-index-DHaf2JAF.mjs} +2 -4
  169. package/fesm2022/acorex-modules-customer-management-index-DHaf2JAF.mjs.map +1 -0
  170. package/fesm2022/{acorex-modules-customer-management-activity.entity-BENCtWk0.mjs → acorex-modules-customer-management-index-Df-6hCzG.mjs} +2 -4
  171. package/fesm2022/acorex-modules-customer-management-index-Df-6hCzG.mjs.map +1 -0
  172. package/fesm2022/{acorex-modules-customer-management-opportunity.entity-BX1vocD3.mjs → acorex-modules-customer-management-index-DwPwxZI6.mjs} +3 -7
  173. package/fesm2022/acorex-modules-customer-management-index-DwPwxZI6.mjs.map +1 -0
  174. package/fesm2022/acorex-modules-customer-management.mjs +42 -28
  175. package/fesm2022/acorex-modules-customer-management.mjs.map +1 -1
  176. package/fesm2022/{acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs → acorex-modules-dashboard-management-acorex-modules-dashboard-management-d_3MEOVx.mjs} +49 -45
  177. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-d_3MEOVx.mjs.map +1 -0
  178. package/fesm2022/{acorex-modules-dashboard-management-index-DAQNEq43.mjs → acorex-modules-dashboard-management-index-0npgb7TY.mjs} +2 -2
  179. package/fesm2022/acorex-modules-dashboard-management-index-0npgb7TY.mjs.map +1 -0
  180. package/fesm2022/acorex-modules-dashboard-management.mjs +1 -1
  181. package/fesm2022/acorex-modules-data-management-contracts.mjs +351 -0
  182. package/fesm2022/acorex-modules-data-management-contracts.mjs.map +1 -0
  183. package/fesm2022/acorex-modules-data-management.mjs +903 -902
  184. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  185. package/fesm2022/acorex-modules-document-management-drive-choose.component-DyJoXajP.mjs.map +1 -1
  186. package/fesm2022/acorex-modules-document-management.mjs +109 -75
  187. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  188. package/fesm2022/acorex-modules-financial-core-data-source.provider-Do4rvgy4.mjs.map +1 -1
  189. package/fesm2022/acorex-modules-financial-core.mjs +608 -625
  190. package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
  191. package/fesm2022/acorex-modules-form-template-management-template-picker.component-CtTkFhXf.mjs.map +1 -1
  192. package/fesm2022/acorex-modules-form-template-management.mjs +442 -30
  193. package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
  194. package/fesm2022/acorex-modules-health-core-start-health-record-flow.command-BzGYbiw_.mjs +257 -0
  195. package/fesm2022/acorex-modules-health-core-start-health-record-flow.command-BzGYbiw_.mjs.map +1 -0
  196. package/fesm2022/acorex-modules-health-core.mjs +2408 -93
  197. package/fesm2022/acorex-modules-health-core.mjs.map +1 -1
  198. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-B8de7ifz.mjs → acorex-modules-help-desk-acorex-modules-help-desk-AWSV_TiH.mjs} +208 -204
  199. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-AWSV_TiH.mjs.map +1 -0
  200. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-O3qJdpnt.mjs → acorex-modules-help-desk-capture-screen.component-DjUG9lk7.mjs} +2 -2
  201. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-O3qJdpnt.mjs.map → acorex-modules-help-desk-capture-screen.component-DjUG9lk7.mjs.map} +1 -1
  202. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  203. package/fesm2022/{acorex-modules-human-capital-management-acorex-modules-human-capital-management-CqROha3-.mjs → acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ7fkZVA.mjs} +1694 -196
  204. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-BQ7fkZVA.mjs.map +1 -0
  205. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-B0pyS4rY.mjs → acorex-modules-human-capital-management-approve-leave-request.command-8MwfTrgO.mjs} +3 -3
  206. package/fesm2022/acorex-modules-human-capital-management-approve-leave-request.command-8MwfTrgO.mjs.map +1 -0
  207. package/fesm2022/{acorex-modules-human-capital-management-assign-position-assignment.command-Dc0eoIAI.mjs → acorex-modules-human-capital-management-assign-position-assignment.command-DJft6ua8.mjs} +2 -2
  208. package/fesm2022/acorex-modules-human-capital-management-assign-position-assignment.command-DJft6ua8.mjs.map +1 -0
  209. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-TjMXVKCB.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-r5zEA5Oa.mjs} +3 -3
  210. package/fesm2022/acorex-modules-human-capital-management-cancel-leave-request.command-r5zEA5Oa.mjs.map +1 -0
  211. package/fesm2022/{acorex-modules-human-capital-management-edit-personal-info.command-uCNZW1KF.mjs → acorex-modules-human-capital-management-edit-personal-info.command-CTQywAzz.mjs} +2 -2
  212. package/fesm2022/{acorex-modules-human-capital-management-edit-personal-info.command-uCNZW1KF.mjs.map → acorex-modules-human-capital-management-edit-personal-info.command-CTQywAzz.mjs.map} +1 -1
  213. package/fesm2022/{acorex-modules-human-capital-management-edit-signature.command-9psDoX-o.mjs → acorex-modules-human-capital-management-edit-signature.command-9XI2V0Yt.mjs} +2 -2
  214. package/fesm2022/acorex-modules-human-capital-management-edit-signature.command-9XI2V0Yt.mjs.map +1 -0
  215. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-DHqsjUdQ.mjs → acorex-modules-human-capital-management-reject-leave-request.command-Ba2f-i0A.mjs} +3 -3
  216. package/fesm2022/acorex-modules-human-capital-management-reject-leave-request.command-Ba2f-i0A.mjs.map +1 -0
  217. package/fesm2022/{acorex-modules-human-capital-management-revoke-position-assignment.command-DQqsqBRM.mjs → acorex-modules-human-capital-management-revoke-position-assignment.command-g9p7YKJ1.mjs} +2 -2
  218. package/fesm2022/acorex-modules-human-capital-management-revoke-position-assignment.command-g9p7YKJ1.mjs.map +1 -0
  219. package/fesm2022/{acorex-modules-human-capital-management-start-leave-request-flow.command-nF6sDrFL.mjs → acorex-modules-human-capital-management-start-leave-request-flow.command-BPFrBjWG.mjs} +3 -3
  220. package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-BPFrBjWG.mjs.map +1 -0
  221. package/fesm2022/{acorex-modules-human-capital-management-start-lifecycle-event-flow.command-Bya_9T7H.mjs → acorex-modules-human-capital-management-start-lifecycle-event-flow.command-C62jEjUD.mjs} +19 -7
  222. package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-C62jEjUD.mjs.map +1 -0
  223. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  224. package/fesm2022/acorex-modules-identifier-management.mjs +11 -1
  225. package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -1
  226. package/fesm2022/acorex-modules-jira-management-index-BGnRJkkx.mjs +179 -0
  227. package/fesm2022/acorex-modules-jira-management-index-BGnRJkkx.mjs.map +1 -0
  228. package/fesm2022/acorex-modules-jira-management-index-BXgxorT1.mjs +155 -0
  229. package/fesm2022/acorex-modules-jira-management-index-BXgxorT1.mjs.map +1 -0
  230. package/fesm2022/acorex-modules-jira-management-index-Bw8ivjR_.mjs +177 -0
  231. package/fesm2022/acorex-modules-jira-management-index-Bw8ivjR_.mjs.map +1 -0
  232. package/fesm2022/acorex-modules-jira-management-index-CJNrjlaV.mjs +143 -0
  233. package/fesm2022/acorex-modules-jira-management-index-CJNrjlaV.mjs.map +1 -0
  234. package/fesm2022/acorex-modules-jira-management-index-CjgROlD2.mjs +399 -0
  235. package/fesm2022/acorex-modules-jira-management-index-CjgROlD2.mjs.map +1 -0
  236. package/fesm2022/acorex-modules-jira-management-index-D0vXHcrg.mjs +372 -0
  237. package/fesm2022/acorex-modules-jira-management-index-D0vXHcrg.mjs.map +1 -0
  238. package/fesm2022/acorex-modules-jira-management-index-D2wdvXoF.mjs +123 -0
  239. package/fesm2022/acorex-modules-jira-management-index-D2wdvXoF.mjs.map +1 -0
  240. package/fesm2022/acorex-modules-jira-management-index-DPRA7BCN.mjs +281 -0
  241. package/fesm2022/acorex-modules-jira-management-index-DPRA7BCN.mjs.map +1 -0
  242. package/fesm2022/acorex-modules-jira-management-index-DpCX35Ob.mjs +222 -0
  243. package/fesm2022/acorex-modules-jira-management-index-DpCX35Ob.mjs.map +1 -0
  244. package/fesm2022/acorex-modules-jira-management.mjs +479 -0
  245. package/fesm2022/acorex-modules-jira-management.mjs.map +1 -0
  246. package/fesm2022/{acorex-modules-learning-management-training-definition.entity-DPY0OQdW.mjs → acorex-modules-learning-management-index-9Sessbgl.mjs} +4 -7
  247. package/fesm2022/acorex-modules-learning-management-index-9Sessbgl.mjs.map +1 -0
  248. package/fesm2022/{acorex-modules-learning-management-training-type.entity-Bt37GacX.mjs → acorex-modules-learning-management-index-B2ZI7U9N.mjs} +4 -7
  249. package/fesm2022/acorex-modules-learning-management-index-B2ZI7U9N.mjs.map +1 -0
  250. package/fesm2022/{acorex-modules-learning-management-certificate-definition.entity-DzRELZ1L.mjs → acorex-modules-learning-management-index-Cb6YmwUo.mjs} +4 -7
  251. package/fesm2022/acorex-modules-learning-management-index-Cb6YmwUo.mjs.map +1 -0
  252. package/fesm2022/{acorex-modules-learning-management-attendance.entity-40THDVHu.mjs → acorex-modules-learning-management-index-CnBTaY0y.mjs} +4 -7
  253. package/fesm2022/acorex-modules-learning-management-index-CnBTaY0y.mjs.map +1 -0
  254. package/fesm2022/{acorex-modules-learning-management-learning-path.entity-C-FcZefB.mjs → acorex-modules-learning-management-index-CnXPymvw.mjs} +4 -7
  255. package/fesm2022/acorex-modules-learning-management-index-CnXPymvw.mjs.map +1 -0
  256. package/fesm2022/{acorex-modules-learning-management-mandatory-training-rule.entity-CxsoSJh-.mjs → acorex-modules-learning-management-index-CtfhNokr.mjs} +4 -7
  257. package/fesm2022/acorex-modules-learning-management-index-CtfhNokr.mjs.map +1 -0
  258. package/fesm2022/{acorex-modules-learning-management-training.entity-BkxK-rqz.mjs → acorex-modules-learning-management-index-D3O6qDpQ.mjs} +5 -8
  259. package/fesm2022/acorex-modules-learning-management-index-D3O6qDpQ.mjs.map +1 -0
  260. package/fesm2022/{acorex-modules-learning-management-skill-level.entity-CnAgJyuR.mjs → acorex-modules-learning-management-index-D4Yh8EmO.mjs} +4 -7
  261. package/fesm2022/acorex-modules-learning-management-index-D4Yh8EmO.mjs.map +1 -0
  262. package/fesm2022/{acorex-modules-learning-management-skill.entity-DmIjc2gw.mjs → acorex-modules-learning-management-index-DJ4H2IOW.mjs} +4 -7
  263. package/fesm2022/acorex-modules-learning-management-index-DJ4H2IOW.mjs.map +1 -0
  264. package/fesm2022/{acorex-modules-learning-management-enrollment.entity-D4j7oSWb.mjs → acorex-modules-learning-management-index-DPb7aOIM.mjs} +5 -8
  265. package/fesm2022/acorex-modules-learning-management-index-DPb7aOIM.mjs.map +1 -0
  266. package/fesm2022/{acorex-modules-learning-management-course.entity-HoC-FUPB.mjs → acorex-modules-learning-management-index-Da29yyOM.mjs} +4 -7
  267. package/fesm2022/acorex-modules-learning-management-index-Da29yyOM.mjs.map +1 -0
  268. package/fesm2022/{acorex-modules-learning-management-certificate.entity-DA882F-J.mjs → acorex-modules-learning-management-index-DdgLO2B8.mjs} +4 -7
  269. package/fesm2022/acorex-modules-learning-management-index-DdgLO2B8.mjs.map +1 -0
  270. package/fesm2022/{acorex-modules-learning-management-course-type.entity-DAc4cRbW.mjs → acorex-modules-learning-management-index-DnUv_C6e.mjs} +4 -7
  271. package/fesm2022/acorex-modules-learning-management-index-DnUv_C6e.mjs.map +1 -0
  272. package/fesm2022/{acorex-modules-learning-management-learning-path-course.entity-B0DurZqy.mjs → acorex-modules-learning-management-index-Dxutf3MN.mjs} +4 -7
  273. package/fesm2022/acorex-modules-learning-management-index-Dxutf3MN.mjs.map +1 -0
  274. package/fesm2022/{acorex-modules-learning-management-certificate-type.entity-Br35cJ-M.mjs → acorex-modules-learning-management-index-pWAVoZBF.mjs} +4 -7
  275. package/fesm2022/acorex-modules-learning-management-index-pWAVoZBF.mjs.map +1 -0
  276. package/fesm2022/acorex-modules-learning-management.mjs +153 -168
  277. package/fesm2022/acorex-modules-learning-management.mjs.map +1 -1
  278. package/fesm2022/acorex-modules-locale-management-contracts.mjs +77 -0
  279. package/fesm2022/acorex-modules-locale-management-contracts.mjs.map +1 -0
  280. package/fesm2022/acorex-modules-locale-management.mjs +62 -71
  281. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  282. package/fesm2022/acorex-modules-location-management.mjs +1207 -1208
  283. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  284. package/fesm2022/{acorex-modules-maintenance-management-failure-register-status.provider-B8-Snxbx.mjs → acorex-modules-maintenance-management-failure-register-status.provider-DM5m-VsU.mjs} +2 -2
  285. package/fesm2022/acorex-modules-maintenance-management-failure-register-status.provider-DM5m-VsU.mjs.map +1 -0
  286. package/fesm2022/acorex-modules-maintenance-management-work-order-list-command-BMsD_d6k.mjs.map +1 -1
  287. package/fesm2022/acorex-modules-maintenance-management-work-order-status.provider-BvnpsgY3.mjs +181 -0
  288. package/fesm2022/acorex-modules-maintenance-management-work-order-status.provider-BvnpsgY3.mjs.map +1 -0
  289. package/fesm2022/acorex-modules-maintenance-management.mjs +899 -629
  290. package/fesm2022/acorex-modules-maintenance-management.mjs.map +1 -1
  291. package/fesm2022/acorex-modules-measurement-core.mjs +898 -914
  292. package/fesm2022/acorex-modules-measurement-core.mjs.map +1 -1
  293. package/fesm2022/acorex-modules-meeting-management.mjs +278 -170
  294. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -1
  295. package/fesm2022/{acorex-modules-notification-management-acorex-modules-notification-management-ZgxwReDF.mjs → acorex-modules-notification-management-acorex-modules-notification-management-W0YINm5V.mjs} +583 -573
  296. package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-W0YINm5V.mjs.map +1 -0
  297. package/fesm2022/{acorex-modules-notification-management-notification-page.component-DlFbwB9o.mjs → acorex-modules-notification-management-notification-page.component-BAQGDRTj.mjs} +2 -2
  298. package/fesm2022/{acorex-modules-notification-management-notification-page.component-DlFbwB9o.mjs.map → acorex-modules-notification-management-notification-page.component-BAQGDRTj.mjs.map} +1 -1
  299. package/fesm2022/acorex-modules-notification-management.mjs +1 -1
  300. package/fesm2022/{acorex-modules-order-management-bulk-buy-order-status.provider-CECieSZF.mjs → acorex-modules-order-management-bulk-buy-order-status.provider-C6HBZfQ_.mjs} +2 -2
  301. package/fesm2022/acorex-modules-order-management-bulk-buy-order-status.provider-C6HBZfQ_.mjs.map +1 -0
  302. package/fesm2022/{acorex-modules-order-management-entity.provider-ZaDnKtBk.mjs → acorex-modules-order-management-entity.provider-BVlBsDWW.mjs} +5 -5
  303. package/fesm2022/acorex-modules-order-management-entity.provider-BVlBsDWW.mjs.map +1 -0
  304. package/fesm2022/{acorex-modules-order-management-member-order.entity-BItj1CLq.mjs → acorex-modules-order-management-index-BeIiBPSs.mjs} +3 -8
  305. package/fesm2022/acorex-modules-order-management-index-BeIiBPSs.mjs.map +1 -0
  306. package/fesm2022/{acorex-modules-order-management-bulk-buy-order.entity-B9f4Tppc.mjs → acorex-modules-order-management-index-DUMuaQGE.mjs} +3 -8
  307. package/fesm2022/acorex-modules-order-management-index-DUMuaQGE.mjs.map +1 -0
  308. package/fesm2022/{acorex-modules-order-management-bulk-buy-order-item.entity-DsXE-kqT.mjs → acorex-modules-order-management-index-Du2PsO2f.mjs} +5 -11
  309. package/fesm2022/acorex-modules-order-management-index-Du2PsO2f.mjs.map +1 -0
  310. package/fesm2022/{acorex-modules-order-management-member-order-line.entity-BX3rQTJ1.mjs → acorex-modules-order-management-index-QHrmfhTE.mjs} +2 -6
  311. package/fesm2022/acorex-modules-order-management-index-QHrmfhTE.mjs.map +1 -0
  312. package/fesm2022/{acorex-modules-order-management-member-order-status.provider-Bkrzylqm.mjs → acorex-modules-order-management-member-order-status.provider-CKIrQc_7.mjs} +2 -2
  313. package/fesm2022/acorex-modules-order-management-member-order-status.provider-CKIrQc_7.mjs.map +1 -0
  314. package/fesm2022/acorex-modules-order-management-menu.provider-DeMKkRZa.mjs.map +1 -1
  315. package/fesm2022/acorex-modules-order-management-permission-definition.provider-B8ext6Sn.mjs.map +1 -1
  316. package/fesm2022/acorex-modules-order-management-settings.provider-BFOghuIS.mjs.map +1 -1
  317. package/fesm2022/acorex-modules-order-management.mjs +54 -54
  318. package/fesm2022/acorex-modules-order-management.mjs.map +1 -1
  319. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BALTqTo-.mjs +4119 -0
  320. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BALTqTo-.mjs.map +1 -0
  321. package/fesm2022/{acorex-modules-organization-management-add-business-unit-to-business-unit.command-BUOpdwIy.mjs → acorex-modules-organization-management-add-business-unit-to-business-unit.command-23eGqIxP.mjs} +2 -2
  322. package/fesm2022/acorex-modules-organization-management-add-business-unit-to-business-unit.command-23eGqIxP.mjs.map +1 -0
  323. package/fesm2022/{acorex-modules-organization-management-add-position-to-business-unit.command-CcoGv5J7.mjs → acorex-modules-organization-management-add-position-to-business-unit.command-B4C1jxs3.mjs} +2 -2
  324. package/fesm2022/acorex-modules-organization-management-add-position-to-business-unit.command-B4C1jxs3.mjs.map +1 -0
  325. package/fesm2022/{acorex-modules-organization-management-add-team-to-business-unit.command-n9FYDyKE.mjs → acorex-modules-organization-management-add-team-to-business-unit.command-B5vh3rwS.mjs} +2 -2
  326. package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-B5vh3rwS.mjs.map +1 -0
  327. package/fesm2022/{acorex-modules-organization-management-entity.provider-Dqn382Z2.mjs → acorex-modules-organization-management-entity.provider-3IL0cFTC.mjs} +15 -15
  328. package/fesm2022/acorex-modules-organization-management-entity.provider-3IL0cFTC.mjs.map +1 -0
  329. package/fesm2022/{acorex-modules-organization-management-feature-definition.provider-C7VhASKJ.mjs → acorex-modules-organization-management-feature-definition.provider-DsSdRjcX.mjs} +2 -2
  330. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-DsSdRjcX.mjs.map +1 -0
  331. package/fesm2022/{acorex-modules-organization-management-job-definition-pages-component.provider-Bacrw4_J.mjs → acorex-modules-organization-management-job-definition-pages-component.provider-BRovo6NC.mjs} +4 -4
  332. package/fesm2022/acorex-modules-organization-management-job-definition-pages-component.provider-BRovo6NC.mjs.map +1 -0
  333. package/fesm2022/{acorex-modules-organization-management-job-definition-responsibilities-page.component-BJkc7c-G.mjs → acorex-modules-organization-management-job-definition-responsibilities-page.component-CNtaaDfp.mjs} +3 -3
  334. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-CNtaaDfp.mjs.map +1 -0
  335. package/fesm2022/{acorex-modules-organization-management-job-definition-skills-page.component-GuFiBC0r.mjs → acorex-modules-organization-management-job-definition-skills-page.component-D1ymUBeQ.mjs} +2 -2
  336. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-D1ymUBeQ.mjs.map +1 -0
  337. package/fesm2022/{acorex-modules-organization-management-job-level.datasource-CCvVPEVM.mjs → acorex-modules-organization-management-job-level.datasource-_6F_fvTn.mjs} +2 -2
  338. package/fesm2022/acorex-modules-organization-management-job-level.datasource-_6F_fvTn.mjs.map +1 -0
  339. package/fesm2022/{acorex-modules-organization-management-menu.provider-BeCkTwia.mjs → acorex-modules-organization-management-menu.provider-Dt7bfM-4.mjs} +2 -2
  340. package/fesm2022/acorex-modules-organization-management-menu.provider-Dt7bfM-4.mjs.map +1 -0
  341. package/fesm2022/{acorex-modules-organization-management-org-chart-default-node-contribution.provider-DDY2Cgu6.mjs → acorex-modules-organization-management-org-chart-default-node-contribution.provider-Cf789vAr.mjs} +2 -2
  342. package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-Cf789vAr.mjs.map +1 -0
  343. package/fesm2022/{acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-DbSxtEz6.mjs → acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-CL32hDBZ.mjs} +2 -2
  344. package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-CL32hDBZ.mjs.map +1 -0
  345. package/fesm2022/{acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-ByqjxY2S.mjs → acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-CpNTM-Ts.mjs} +2 -2
  346. package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-CpNTM-Ts.mjs.map +1 -0
  347. package/fesm2022/{acorex-modules-organization-management-org-chart-ux-node-contribution.provider-DdyF5QS0.mjs → acorex-modules-organization-management-org-chart-ux-node-contribution.provider-D-qPXdfm.mjs} +2 -2
  348. package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-D-qPXdfm.mjs.map +1 -0
  349. package/fesm2022/{acorex-modules-organization-management-org-chart.page-DD1lvTXR.mjs → acorex-modules-organization-management-org-chart.page-BglvBI8J.mjs} +2 -2
  350. package/fesm2022/acorex-modules-organization-management-org-chart.page-BglvBI8J.mjs.map +1 -0
  351. package/fesm2022/{acorex-modules-organization-management-permission-definition.provider-CbXQwY_b.mjs → acorex-modules-organization-management-permission-definition.provider-BOz0kQKZ.mjs} +2 -2
  352. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-BOz0kQKZ.mjs.map +1 -0
  353. package/fesm2022/{acorex-modules-organization-management-remove-position-from-business-unit.command-B1mrTFbI.mjs → acorex-modules-organization-management-remove-position-from-business-unit.command-CcfOkd7Z.mjs} +2 -2
  354. package/fesm2022/acorex-modules-organization-management-remove-position-from-business-unit.command-CcfOkd7Z.mjs.map +1 -0
  355. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-B3OVj92j.mjs → acorex-modules-organization-management-replace-position-assignee.command-nNGkuyKE.mjs} +2 -2
  356. package/fesm2022/{acorex-modules-organization-management-replace-position-assignee.command-B3OVj92j.mjs.map → acorex-modules-organization-management-replace-position-assignee.command-nNGkuyKE.mjs.map} +1 -1
  357. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-COCty9r1.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CymCi80F.mjs} +2 -2
  358. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-COCty9r1.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CymCi80F.mjs.map} +1 -1
  359. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BAC2jImJ.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-E46T_VO-.mjs} +2 -2
  360. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-BAC2jImJ.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-E46T_VO-.mjs.map} +1 -1
  361. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-CQ1RKj2l.mjs → acorex-modules-organization-management-responsibilities-matrix.component-Bw22pUUE.mjs} +2 -2
  362. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-Bw22pUUE.mjs.map +1 -0
  363. package/fesm2022/{acorex-modules-organization-management-settings.provider-B4ijPkN_.mjs → acorex-modules-organization-management-settings.provider-BOMwSEpo.mjs} +2 -2
  364. package/fesm2022/{acorex-modules-organization-management-settings.provider-B4ijPkN_.mjs.map → acorex-modules-organization-management-settings.provider-BOMwSEpo.mjs.map} +1 -1
  365. package/fesm2022/acorex-modules-organization-management.mjs +1 -1
  366. package/fesm2022/acorex-modules-person-core.mjs +1076 -223
  367. package/fesm2022/acorex-modules-person-core.mjs.map +1 -1
  368. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BYy7NCvH.mjs.map +1 -1
  369. package/fesm2022/acorex-modules-platform-dev-tools.mjs +27 -27
  370. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  371. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs → acorex-modules-platform-management-acorex-modules-platform-management-CdMzH5Qu.mjs} +47 -46
  372. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-CdMzH5Qu.mjs.map +1 -0
  373. package/fesm2022/{acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs → acorex-modules-platform-management-menu-list.component-B8ZKMl1A.mjs} +2 -2
  374. package/fesm2022/{acorex-modules-platform-management-menu-list.component-MJCUVTho.mjs.map → acorex-modules-platform-management-menu-list.component-B8ZKMl1A.mjs.map} +1 -1
  375. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  376. package/fesm2022/acorex-modules-procurement-management.mjs +15 -16
  377. package/fesm2022/acorex-modules-procurement-management.mjs.map +1 -1
  378. package/fesm2022/acorex-modules-product-catalog.mjs +1545 -33
  379. package/fesm2022/acorex-modules-product-catalog.mjs.map +1 -1
  380. package/fesm2022/acorex-modules-project-management.mjs +234 -230
  381. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  382. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs → acorex-modules-report-management-report-runner-root-page.component-DaPEmTm9.mjs} +2 -3
  383. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DaPEmTm9.mjs.map +1 -0
  384. package/fesm2022/acorex-modules-report-management-settings.provider-CA7o3xKu.mjs.map +1 -1
  385. package/fesm2022/acorex-modules-report-management.mjs +4 -3
  386. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  387. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-DiEkzSO2.mjs → acorex-modules-reservation-management-index-DNLOtNNW.mjs} +2 -6
  388. package/fesm2022/acorex-modules-reservation-management-index-DNLOtNNW.mjs.map +1 -0
  389. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-CSj9-uAb.mjs → acorex-modules-reservation-management-index-DSDnPzHh.mjs} +2 -5
  390. package/fesm2022/acorex-modules-reservation-management-index-DSDnPzHh.mjs.map +1 -0
  391. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-CsOec92Y.mjs → acorex-modules-reservation-management-index-DySHYsCz.mjs} +2 -6
  392. package/fesm2022/acorex-modules-reservation-management-index-DySHYsCz.mjs.map +1 -0
  393. package/fesm2022/acorex-modules-reservation-management.mjs +47 -52
  394. package/fesm2022/acorex-modules-reservation-management.mjs.map +1 -1
  395. package/fesm2022/acorex-modules-risk-management.mjs +122 -115
  396. package/fesm2022/acorex-modules-risk-management.mjs.map +1 -1
  397. package/fesm2022/acorex-modules-security-management-terminate-session.command-CRWFd-YW.mjs.map +1 -1
  398. package/fesm2022/acorex-modules-security-management.mjs +468 -335
  399. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  400. package/fesm2022/{acorex-modules-settings-management-permission-definition.provider-D5DqCfiz.mjs → acorex-modules-settings-management-permission-definition.provider-CfCLhvZi.mjs} +2 -2
  401. package/fesm2022/acorex-modules-settings-management-permission-definition.provider-CfCLhvZi.mjs.map +1 -0
  402. package/fesm2022/{acorex-modules-settings-management-setting-page.component-TxoOyBRc.mjs → acorex-modules-settings-management-setting-page.component-B7wP0i5k.mjs} +9 -6
  403. package/fesm2022/acorex-modules-settings-management-setting-page.component-B7wP0i5k.mjs.map +1 -0
  404. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CuDjGo2x.mjs → acorex-modules-settings-management-setting-view.component-CG-GW2yS.mjs} +2 -2
  405. package/fesm2022/{acorex-modules-settings-management-setting-view.component-CuDjGo2x.mjs.map → acorex-modules-settings-management-setting-view.component-CG-GW2yS.mjs.map} +1 -1
  406. package/fesm2022/acorex-modules-settings-management.mjs +813 -1
  407. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  408. package/fesm2022/acorex-modules-subscription-management.mjs +47 -52
  409. package/fesm2022/acorex-modules-subscription-management.mjs.map +1 -1
  410. package/fesm2022/acorex-modules-supplier-management.mjs +34 -36
  411. package/fesm2022/acorex-modules-supplier-management.mjs.map +1 -1
  412. package/fesm2022/acorex-modules-system-insight.mjs +74 -61
  413. package/fesm2022/acorex-modules-system-insight.mjs.map +1 -1
  414. package/fesm2022/{acorex-modules-task-management-task-board.page-CfgeDnBx.mjs → acorex-modules-task-management-task-board.page-DhPzh72z.mjs} +5 -5
  415. package/fesm2022/acorex-modules-task-management-task-board.page-DhPzh72z.mjs.map +1 -0
  416. package/fesm2022/acorex-modules-task-management.mjs +7571 -1
  417. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  418. package/fesm2022/acorex-modules-tenant-management.mjs +42 -48
  419. package/fesm2022/acorex-modules-tenant-management.mjs.map +1 -1
  420. package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-LJ8Bb-CT.mjs → acorex-modules-workflow-management-acorex-modules-workflow-management-AgY9tA7s.mjs} +1453 -143
  421. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-AgY9tA7s.mjs.map +1 -0
  422. package/fesm2022/acorex-modules-workflow-management-execute-workflow-with-input.command-DUYGWSu8.mjs +127 -0
  423. package/fesm2022/acorex-modules-workflow-management-execute-workflow-with-input.command-DUYGWSu8.mjs.map +1 -0
  424. package/fesm2022/acorex-modules-workflow-management-execute-workflow.command-DSgQNTtL.mjs +142 -0
  425. package/fesm2022/acorex-modules-workflow-management-execute-workflow.command-DSgQNTtL.mjs.map +1 -0
  426. package/fesm2022/{acorex-modules-workflow-management-index-DXIQw3Ao.mjs → acorex-modules-workflow-management-index-78oCkrbR.mjs} +3 -5
  427. package/fesm2022/acorex-modules-workflow-management-index-78oCkrbR.mjs.map +1 -0
  428. package/fesm2022/{acorex-modules-workflow-management-index-8gv17yqF.mjs → acorex-modules-workflow-management-index-CvPrfCTv.mjs} +3 -3
  429. package/fesm2022/{acorex-modules-workflow-management-index-8gv17yqF.mjs.map → acorex-modules-workflow-management-index-CvPrfCTv.mjs.map} +1 -1
  430. package/fesm2022/{acorex-modules-workflow-management-index--D61tV-f.mjs → acorex-modules-workflow-management-index-DmnrXTPk.mjs} +3 -4
  431. package/fesm2022/acorex-modules-workflow-management-index-DmnrXTPk.mjs.map +1 -0
  432. package/fesm2022/{acorex-modules-workflow-management-save-workflow-definition-activities.command-huamhFhc.mjs → acorex-modules-workflow-management-save-workflow-definition-activities.command-aLlfQxaT.mjs} +3 -3
  433. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-aLlfQxaT.mjs.map +1 -0
  434. package/fesm2022/{acorex-modules-workflow-management-workflow-configurator-widget-column.component-B0f5IsoE.mjs → acorex-modules-workflow-management-workflow-configurator-widget-column.component-Ph_BjL_5.mjs} +2 -2
  435. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-Ph_BjL_5.mjs.map +1 -0
  436. package/fesm2022/{acorex-modules-workflow-management-workflow-configurator-widget-edit.component-DQ703kRI.mjs → acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CfKTRKNQ.mjs} +5 -3
  437. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-CfKTRKNQ.mjs.map +1 -0
  438. package/fesm2022/{acorex-modules-workflow-management-workflow-run-history-popup.component-FLqOdI2t.mjs → acorex-modules-workflow-management-workflow-run-history-popup.component-D1A_EHNk.mjs} +6 -7
  439. package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-D1A_EHNk.mjs.map +1 -0
  440. package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-Cvbzknxk.mjs → acorex-modules-workflow-management-workflow-task-popover.component-CHvHPHt9.mjs} +4 -4
  441. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CHvHPHt9.mjs.map +1 -0
  442. package/fesm2022/acorex-modules-workflow-management.mjs +1 -1
  443. package/fesm2022/{acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs → acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-CsJpSfdA.mjs} +2 -2
  444. package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-CsJpSfdA.mjs.map +1 -0
  445. package/fesm2022/acorex-modules-workplacesafety-management-hazard-risk-status.provider-CdzRLBqN.mjs +42 -0
  446. package/fesm2022/acorex-modules-workplacesafety-management-hazard-risk-status.provider-CdzRLBqN.mjs.map +1 -0
  447. package/fesm2022/{acorex-modules-workplacesafety-management-hazard-status.provider-v1cFaa3q.mjs → acorex-modules-workplacesafety-management-hazard-status.provider-CmtTvpk0.mjs} +2 -2
  448. package/fesm2022/acorex-modules-workplacesafety-management-hazard-status.provider-CmtTvpk0.mjs.map +1 -0
  449. package/fesm2022/{acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs → acorex-modules-workplacesafety-management-ppe-item-status.provider-Bx2yqUVH.mjs} +2 -2
  450. package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-Bx2yqUVH.mjs.map +1 -0
  451. package/fesm2022/acorex-modules-workplacesafety-management.mjs +1221 -555
  452. package/fesm2022/acorex-modules-workplacesafety-management.mjs.map +1 -1
  453. package/package.json +18 -2
  454. package/types/acorex-modules-ai-management.d.ts +35 -34
  455. package/types/acorex-modules-application-management.d.ts +23 -47
  456. package/types/acorex-modules-assessment-management.d.ts +517 -511
  457. package/types/acorex-modules-asset-management.d.ts +96 -79
  458. package/types/acorex-modules-auth.d.ts +2 -9
  459. package/types/acorex-modules-business-core.d.ts +72 -64
  460. package/types/acorex-modules-calendar-management.d.ts +4 -4
  461. package/types/acorex-modules-common.d.ts +11 -117
  462. package/types/acorex-modules-contact-core.d.ts +70 -0
  463. package/types/acorex-modules-content-management.d.ts +24 -31
  464. package/types/acorex-modules-conversation.d.ts +74 -73
  465. package/types/acorex-modules-customer-management.d.ts +69 -55
  466. package/types/acorex-modules-dashboard-management.d.ts +64 -66
  467. package/types/acorex-modules-data-management-contracts.d.ts +256 -0
  468. package/types/acorex-modules-data-management.d.ts +100 -22
  469. package/types/acorex-modules-document-management.d.ts +47 -40
  470. package/types/acorex-modules-financial-core.d.ts +69 -69
  471. package/types/acorex-modules-form-template-management.d.ts +4 -2
  472. package/types/acorex-modules-health-core.d.ts +241 -29
  473. package/types/acorex-modules-help-desk.d.ts +44 -38
  474. package/types/acorex-modules-human-capital-management.d.ts +67 -54
  475. package/types/acorex-modules-jira-management.d.ts +354 -0
  476. package/types/acorex-modules-learning-management.d.ts +2 -2
  477. package/types/acorex-modules-locale-management-contracts.d.ts +66 -0
  478. package/types/acorex-modules-locale-management.d.ts +4 -4
  479. package/types/acorex-modules-location-management.d.ts +67 -67
  480. package/types/acorex-modules-maintenance-management.d.ts +45 -43
  481. package/types/acorex-modules-measurement-core.d.ts +106 -106
  482. package/types/acorex-modules-meeting-management.d.ts +31 -23
  483. package/types/acorex-modules-notification-management.d.ts +19 -20
  484. package/types/acorex-modules-order-management.d.ts +39 -39
  485. package/types/acorex-modules-organization-management.d.ts +137 -109
  486. package/types/acorex-modules-person-core.d.ts +73 -52
  487. package/types/acorex-modules-platform-management.d.ts +1 -3
  488. package/types/acorex-modules-procurement-management.d.ts +1 -3
  489. package/types/acorex-modules-product-catalog.d.ts +13 -6
  490. package/types/acorex-modules-project-management.d.ts +16 -15
  491. package/types/acorex-modules-report-management.d.ts +3 -4
  492. package/types/acorex-modules-reservation-management.d.ts +3 -3
  493. package/types/acorex-modules-risk-management.d.ts +57 -54
  494. package/types/acorex-modules-security-management.d.ts +65 -63
  495. package/types/acorex-modules-settings-management.d.ts +15 -1
  496. package/types/acorex-modules-subscription-management.d.ts +4 -3
  497. package/types/acorex-modules-supplier-management.d.ts +4 -4
  498. package/types/acorex-modules-system-insight.d.ts +4 -3
  499. package/types/acorex-modules-task-management.d.ts +95 -70
  500. package/types/acorex-modules-tenant-management.d.ts +5 -4
  501. package/types/acorex-modules-workflow-management.d.ts +23 -4
  502. package/types/acorex-modules-workplacesafety-management.d.ts +153 -16
  503. package/fesm2022/acorex-modules-ai-management-agent.entity-3ZBa5t2D.mjs.map +0 -1
  504. package/fesm2022/acorex-modules-ai-management-assist.entity-CeALRRoV.mjs.map +0 -1
  505. package/fesm2022/acorex-modules-ai-management-model.entity-DiDaXVa3.mjs.map +0 -1
  506. package/fesm2022/acorex-modules-ai-management-open-ai-endpoint.entity-CZLNKtl0.mjs.map +0 -1
  507. package/fesm2022/acorex-modules-ai-management-rule.entity-CQNx4QEB.mjs.map +0 -1
  508. package/fesm2022/acorex-modules-application-management-application-status.provider-CGRoY79H.mjs.map +0 -1
  509. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-yboYQ8I-.mjs.map +0 -1
  510. package/fesm2022/acorex-modules-assessment-management-assessment-case-status.provider-B9sQAPwy.mjs.map +0 -1
  511. package/fesm2022/acorex-modules-assessment-management-assessment-case.entity-BBWeshSs.mjs.map +0 -1
  512. package/fesm2022/acorex-modules-assessment-management-assessment-session-answers-view.util-UCYBAHLk.mjs.map +0 -1
  513. package/fesm2022/acorex-modules-assessment-management-assessment-session-status.provider-Lee6Cwg8.mjs.map +0 -1
  514. package/fesm2022/acorex-modules-assessment-management-assessment-session.entity-Bp_dS1Js.mjs.map +0 -1
  515. package/fesm2022/acorex-modules-assessment-management-fill-assessment-session.command-VivCLw2H.mjs.map +0 -1
  516. package/fesm2022/acorex-modules-assessment-management-preview-question.command-CKF4BjCx.mjs.map +0 -1
  517. package/fesm2022/acorex-modules-assessment-management-preview-questionnaire.command-B_2o4jC2.mjs.map +0 -1
  518. package/fesm2022/acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-s8KcR3D0.mjs.map +0 -1
  519. package/fesm2022/acorex-modules-assessment-management-question-bank-item.entity-Sj-5woTX.mjs.map +0 -1
  520. package/fesm2022/acorex-modules-assessment-management-questionnaire-viewer-popup.component-ClvQ18w6.mjs.map +0 -1
  521. package/fesm2022/acorex-modules-assessment-management-questionnaire.entity-BbyNZvoc.mjs.map +0 -1
  522. package/fesm2022/acorex-modules-assessment-management-review-assessment-session.command-B2QViI9d.mjs.map +0 -1
  523. package/fesm2022/acorex-modules-assessment-management-view-session-answers.command-CWdBtkn1.mjs.map +0 -1
  524. package/fesm2022/acorex-modules-asset-management-asset-rental-history-status.provider-BiWf2TwD.mjs.map +0 -1
  525. package/fesm2022/acorex-modules-asset-management-asset-rental-history.entity-D7g3TSrr.mjs.map +0 -1
  526. package/fesm2022/acorex-modules-asset-management-asset-system-assignment.entity-ufjDJ-0D.mjs.map +0 -1
  527. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-DbeerQdD.mjs.map +0 -1
  528. package/fesm2022/acorex-modules-asset-management-asset-system.entity-0Fy7wSBh.mjs.map +0 -1
  529. package/fesm2022/acorex-modules-asset-management-asset-type-section-component.entity-OsuWeo2l.mjs.map +0 -1
  530. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-C6tA_OBh.mjs.map +0 -1
  531. package/fesm2022/acorex-modules-asset-management-asset-type.entity-Cjy7Xetu.mjs.map +0 -1
  532. package/fesm2022/acorex-modules-asset-management-asset.entity-D1HwzXL_.mjs.map +0 -1
  533. package/fesm2022/acorex-modules-auth-acorex-modules-auth-CUpNfm_0.mjs.map +0 -1
  534. package/fesm2022/acorex-modules-auth-profile-page.component-ChsI9B3Y.mjs.map +0 -1
  535. package/fesm2022/acorex-modules-business-core-business-status.entity-BcfEL0kf.mjs +0 -139
  536. package/fesm2022/acorex-modules-business-core-business-status.entity-BcfEL0kf.mjs.map +0 -1
  537. package/fesm2022/acorex-modules-business-core-business-type.entity-BP5XZthY.mjs +0 -139
  538. package/fesm2022/acorex-modules-business-core-business-type.entity-BP5XZthY.mjs.map +0 -1
  539. package/fesm2022/acorex-modules-business-core-industry.entity-Byz8pFA7.mjs +0 -139
  540. package/fesm2022/acorex-modules-business-core-industry.entity-Byz8pFA7.mjs.map +0 -1
  541. package/fesm2022/acorex-modules-business-core-manufacturer.entity-CKzGz3Ix.mjs +0 -286
  542. package/fesm2022/acorex-modules-business-core-manufacturer.entity-CKzGz3Ix.mjs.map +0 -1
  543. package/fesm2022/acorex-modules-content-management-acorex-modules-content-management-B5zqb3b_.mjs.map +0 -1
  544. package/fesm2022/acorex-modules-content-management-permission-definition.provider-DxI6NmP4.mjs.map +0 -1
  545. package/fesm2022/acorex-modules-conversation-acorex-modules-conversation-lPw23AJc.mjs.map +0 -1
  546. package/fesm2022/acorex-modules-customer-management-activity.entity-BENCtWk0.mjs.map +0 -1
  547. package/fesm2022/acorex-modules-customer-management-customer.entity-Doc1f5gH.mjs.map +0 -1
  548. package/fesm2022/acorex-modules-customer-management-deal-contact-role.entity-BmDALoWz.mjs.map +0 -1
  549. package/fesm2022/acorex-modules-customer-management-lead.entity-CH7iga2T.mjs.map +0 -1
  550. package/fesm2022/acorex-modules-customer-management-opportunity-stage.entity-gXGyRjOR.mjs.map +0 -1
  551. package/fesm2022/acorex-modules-customer-management-opportunity.entity-BX1vocD3.mjs.map +0 -1
  552. package/fesm2022/acorex-modules-customer-management-sales-pipeline.entity-TN7eqaA1.mjs.map +0 -1
  553. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-D2TrYnCW.mjs.map +0 -1
  554. package/fesm2022/acorex-modules-dashboard-management-index-DAQNEq43.mjs.map +0 -1
  555. package/fesm2022/acorex-modules-document-management-document-shortcut.entity-D3BI4azq.mjs +0 -30
  556. package/fesm2022/acorex-modules-document-management-document-shortcut.entity-D3BI4azq.mjs.map +0 -1
  557. package/fesm2022/acorex-modules-form-template-management-template.entity-CNWAvD6Z.mjs +0 -412
  558. package/fesm2022/acorex-modules-form-template-management-template.entity-CNWAvD6Z.mjs.map +0 -1
  559. package/fesm2022/acorex-modules-health-core-allergy-type.entity-Ba06KigW.mjs +0 -68
  560. package/fesm2022/acorex-modules-health-core-allergy-type.entity-Ba06KigW.mjs.map +0 -1
  561. package/fesm2022/acorex-modules-health-core-blood-type.entity-165JDo8r.mjs +0 -121
  562. package/fesm2022/acorex-modules-health-core-blood-type.entity-165JDo8r.mjs.map +0 -1
  563. package/fesm2022/acorex-modules-health-core-body-part.entity-CGk798g1.mjs +0 -68
  564. package/fesm2022/acorex-modules-health-core-body-part.entity-CGk798g1.mjs.map +0 -1
  565. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-CHeAJ1Mm.mjs +0 -68
  566. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-CHeAJ1Mm.mjs.map +0 -1
  567. package/fesm2022/acorex-modules-health-core-disability-status.entity-DN5reubi.mjs +0 -121
  568. package/fesm2022/acorex-modules-health-core-disability-status.entity-DN5reubi.mjs.map +0 -1
  569. package/fesm2022/acorex-modules-health-core-injury-type.entity-x9bs6Zly.mjs +0 -68
  570. package/fesm2022/acorex-modules-health-core-injury-type.entity-x9bs6Zly.mjs.map +0 -1
  571. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-DlQ4MQVm.mjs +0 -68
  572. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-DlQ4MQVm.mjs.map +0 -1
  573. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-B8de7ifz.mjs.map +0 -1
  574. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-CqROha3-.mjs.map +0 -1
  575. package/fesm2022/acorex-modules-human-capital-management-approve-leave-request.command-B0pyS4rY.mjs.map +0 -1
  576. package/fesm2022/acorex-modules-human-capital-management-assign-position-assignment.command-Dc0eoIAI.mjs.map +0 -1
  577. package/fesm2022/acorex-modules-human-capital-management-cancel-leave-request.command-TjMXVKCB.mjs.map +0 -1
  578. package/fesm2022/acorex-modules-human-capital-management-edit-signature.command-9psDoX-o.mjs.map +0 -1
  579. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRkS6cY0.mjs +0 -416
  580. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRkS6cY0.mjs.map +0 -1
  581. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-BZ1vVzeJ.mjs +0 -99
  582. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-BZ1vVzeJ.mjs.map +0 -1
  583. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-C_hKrBJ1.mjs +0 -292
  584. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-C_hKrBJ1.mjs.map +0 -1
  585. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-1FFKAk-t.mjs +0 -95
  586. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-1FFKAk-t.mjs.map +0 -1
  587. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-3zBc21d1.mjs +0 -121
  588. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event-type.entity-3zBc21d1.mjs.map +0 -1
  589. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-CeE-5Dko.mjs +0 -226
  590. package/fesm2022/acorex-modules-human-capital-management-lifecycle-event.entity-CeE-5Dko.mjs.map +0 -1
  591. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BABjM2Mr.mjs +0 -267
  592. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-BABjM2Mr.mjs.map +0 -1
  593. package/fesm2022/acorex-modules-human-capital-management-reject-leave-request.command-DHqsjUdQ.mjs.map +0 -1
  594. package/fesm2022/acorex-modules-human-capital-management-revoke-position-assignment.command-DQqsqBRM.mjs.map +0 -1
  595. package/fesm2022/acorex-modules-human-capital-management-start-leave-request-flow.command-nF6sDrFL.mjs.map +0 -1
  596. package/fesm2022/acorex-modules-human-capital-management-start-lifecycle-event-flow.command-Bya_9T7H.mjs.map +0 -1
  597. package/fesm2022/acorex-modules-learning-management-attendance.entity-40THDVHu.mjs.map +0 -1
  598. package/fesm2022/acorex-modules-learning-management-certificate-definition.entity-DzRELZ1L.mjs.map +0 -1
  599. package/fesm2022/acorex-modules-learning-management-certificate-type.entity-Br35cJ-M.mjs.map +0 -1
  600. package/fesm2022/acorex-modules-learning-management-certificate.entity-DA882F-J.mjs.map +0 -1
  601. package/fesm2022/acorex-modules-learning-management-course-type.entity-DAc4cRbW.mjs.map +0 -1
  602. package/fesm2022/acorex-modules-learning-management-course.entity-HoC-FUPB.mjs.map +0 -1
  603. package/fesm2022/acorex-modules-learning-management-enrollment.entity-D4j7oSWb.mjs.map +0 -1
  604. package/fesm2022/acorex-modules-learning-management-learning-path-course.entity-B0DurZqy.mjs.map +0 -1
  605. package/fesm2022/acorex-modules-learning-management-learning-path.entity-C-FcZefB.mjs.map +0 -1
  606. package/fesm2022/acorex-modules-learning-management-mandatory-training-rule.entity-CxsoSJh-.mjs.map +0 -1
  607. package/fesm2022/acorex-modules-learning-management-skill-level.entity-CnAgJyuR.mjs.map +0 -1
  608. package/fesm2022/acorex-modules-learning-management-skill.entity-DmIjc2gw.mjs.map +0 -1
  609. package/fesm2022/acorex-modules-learning-management-training-definition.entity-DPY0OQdW.mjs.map +0 -1
  610. package/fesm2022/acorex-modules-learning-management-training-type.entity-Bt37GacX.mjs.map +0 -1
  611. package/fesm2022/acorex-modules-learning-management-training.entity-BkxK-rqz.mjs.map +0 -1
  612. package/fesm2022/acorex-modules-maintenance-management-failure-register-status.provider-B8-Snxbx.mjs.map +0 -1
  613. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-B9Jp4r3m.mjs +0 -487
  614. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-B9Jp4r3m.mjs.map +0 -1
  615. package/fesm2022/acorex-modules-meeting-management-meeting-schedule.entity-BJGUKFuu.mjs +0 -107
  616. package/fesm2022/acorex-modules-meeting-management-meeting-schedule.entity-BJGUKFuu.mjs.map +0 -1
  617. package/fesm2022/acorex-modules-notification-management-acorex-modules-notification-management-ZgxwReDF.mjs.map +0 -1
  618. package/fesm2022/acorex-modules-order-management-bulk-buy-order-item.entity-DsXE-kqT.mjs.map +0 -1
  619. package/fesm2022/acorex-modules-order-management-bulk-buy-order-status.provider-CECieSZF.mjs.map +0 -1
  620. package/fesm2022/acorex-modules-order-management-bulk-buy-order.entity-B9f4Tppc.mjs.map +0 -1
  621. package/fesm2022/acorex-modules-order-management-entity.provider-ZaDnKtBk.mjs.map +0 -1
  622. package/fesm2022/acorex-modules-order-management-member-order-line.entity-BX3rQTJ1.mjs.map +0 -1
  623. package/fesm2022/acorex-modules-order-management-member-order-status.provider-Bkrzylqm.mjs.map +0 -1
  624. package/fesm2022/acorex-modules-order-management-member-order.entity-BItj1CLq.mjs.map +0 -1
  625. package/fesm2022/acorex-modules-organization-management-JOB_DEFINITION_SKILLS_PAGE_COMPONENT_KEY-BYfbGGOE.mjs +0 -8
  626. package/fesm2022/acorex-modules-organization-management-JOB_DEFINITION_SKILLS_PAGE_COMPONENT_KEY-BYfbGGOE.mjs.map +0 -1
  627. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-Cl-ecmKK.mjs +0 -917
  628. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-Cl-ecmKK.mjs.map +0 -1
  629. package/fesm2022/acorex-modules-organization-management-add-business-unit-to-business-unit.command-BUOpdwIy.mjs.map +0 -1
  630. package/fesm2022/acorex-modules-organization-management-add-position-to-business-unit.command-CcoGv5J7.mjs.map +0 -1
  631. package/fesm2022/acorex-modules-organization-management-add-team-to-business-unit.command-n9FYDyKE.mjs.map +0 -1
  632. package/fesm2022/acorex-modules-organization-management-business-unit.entity-LYKMuTLO.mjs +0 -404
  633. package/fesm2022/acorex-modules-organization-management-business-unit.entity-LYKMuTLO.mjs.map +0 -1
  634. package/fesm2022/acorex-modules-organization-management-chart.entity-BxAJonRP.mjs +0 -200
  635. package/fesm2022/acorex-modules-organization-management-chart.entity-BxAJonRP.mjs.map +0 -1
  636. package/fesm2022/acorex-modules-organization-management-company.entity-Cexgxajh.mjs +0 -136
  637. package/fesm2022/acorex-modules-organization-management-company.entity-Cexgxajh.mjs.map +0 -1
  638. package/fesm2022/acorex-modules-organization-management-entity.provider-Dqn382Z2.mjs.map +0 -1
  639. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-C7VhASKJ.mjs.map +0 -1
  640. package/fesm2022/acorex-modules-organization-management-job-definition-pages-component.provider-Bacrw4_J.mjs.map +0 -1
  641. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-BJkc7c-G.mjs.map +0 -1
  642. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-GuFiBC0r.mjs.map +0 -1
  643. package/fesm2022/acorex-modules-organization-management-job-definition.entity-DsdjfMCs.mjs +0 -321
  644. package/fesm2022/acorex-modules-organization-management-job-definition.entity-DsdjfMCs.mjs.map +0 -1
  645. package/fesm2022/acorex-modules-organization-management-job-level.datasource-CCvVPEVM.mjs.map +0 -1
  646. package/fesm2022/acorex-modules-organization-management-job-level.entity-BrBHqHqn.mjs +0 -271
  647. package/fesm2022/acorex-modules-organization-management-job-level.entity-BrBHqHqn.mjs.map +0 -1
  648. package/fesm2022/acorex-modules-organization-management-menu.provider-BeCkTwia.mjs.map +0 -1
  649. package/fesm2022/acorex-modules-organization-management-org-chart-default-node-contribution.provider-DDY2Cgu6.mjs.map +0 -1
  650. package/fesm2022/acorex-modules-organization-management-org-chart-employee-flyout-contribution.provider-DbSxtEz6.mjs.map +0 -1
  651. package/fesm2022/acorex-modules-organization-management-org-chart-position-employee-node-contribution.provider-ByqjxY2S.mjs.map +0 -1
  652. package/fesm2022/acorex-modules-organization-management-org-chart-ux-node-contribution.provider-DdyF5QS0.mjs.map +0 -1
  653. package/fesm2022/acorex-modules-organization-management-org-chart.page-DD1lvTXR.mjs.map +0 -1
  654. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-CbXQwY_b.mjs.map +0 -1
  655. package/fesm2022/acorex-modules-organization-management-position.entity-qwL31RSs.mjs +0 -543
  656. package/fesm2022/acorex-modules-organization-management-position.entity-qwL31RSs.mjs.map +0 -1
  657. package/fesm2022/acorex-modules-organization-management-remove-position-from-business-unit.command-B1mrTFbI.mjs.map +0 -1
  658. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-CQ1RKj2l.mjs.map +0 -1
  659. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-DwpUOhLh.mjs +0 -135
  660. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-DwpUOhLh.mjs.map +0 -1
  661. package/fesm2022/acorex-modules-organization-management-responsibility.entity-3d2Im-NE.mjs +0 -203
  662. package/fesm2022/acorex-modules-organization-management-responsibility.entity-3d2Im-NE.mjs.map +0 -1
  663. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-DdIc2pIC.mjs +0 -300
  664. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-DdIc2pIC.mjs.map +0 -1
  665. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-UqmN5-zL.mjs +0 -150
  666. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-UqmN5-zL.mjs.map +0 -1
  667. package/fesm2022/acorex-modules-organization-management-team-member.entity-BlsBC7oU.mjs +0 -251
  668. package/fesm2022/acorex-modules-organization-management-team-member.entity-BlsBC7oU.mjs.map +0 -1
  669. package/fesm2022/acorex-modules-organization-management-team.entity-rRp5rEKa.mjs +0 -307
  670. package/fesm2022/acorex-modules-organization-management-team.entity-rRp5rEKa.mjs.map +0 -1
  671. package/fesm2022/acorex-modules-person-core-education-level.entity-BudWedmZ.mjs +0 -121
  672. package/fesm2022/acorex-modules-person-core-education-level.entity-BudWedmZ.mjs.map +0 -1
  673. package/fesm2022/acorex-modules-person-core-gender.entity-BrnPFMd_.mjs +0 -121
  674. package/fesm2022/acorex-modules-person-core-gender.entity-BrnPFMd_.mjs.map +0 -1
  675. package/fesm2022/acorex-modules-person-core-marital-status.entity-JSXaOaKH.mjs +0 -121
  676. package/fesm2022/acorex-modules-person-core-marital-status.entity-JSXaOaKH.mjs.map +0 -1
  677. package/fesm2022/acorex-modules-person-core-person-identifier-type.entity-BwQ0fj61.mjs +0 -191
  678. package/fesm2022/acorex-modules-person-core-person-identifier-type.entity-BwQ0fj61.mjs.map +0 -1
  679. package/fesm2022/acorex-modules-person-core-person-title.entity-DPEl0HTw.mjs +0 -121
  680. package/fesm2022/acorex-modules-person-core-person-title.entity-DPEl0HTw.mjs.map +0 -1
  681. package/fesm2022/acorex-modules-person-core-religion.entity-DD1UG9on.mjs +0 -121
  682. package/fesm2022/acorex-modules-person-core-religion.entity-DD1UG9on.mjs.map +0 -1
  683. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-ilmoyxAw.mjs.map +0 -1
  684. package/fesm2022/acorex-modules-product-catalog-brand.entity-DLK1M-a5.mjs +0 -261
  685. package/fesm2022/acorex-modules-product-catalog-brand.entity-DLK1M-a5.mjs.map +0 -1
  686. package/fesm2022/acorex-modules-product-catalog-product-sku.entity-Dd43Ph0b.mjs +0 -596
  687. package/fesm2022/acorex-modules-product-catalog-product-sku.entity-Dd43Ph0b.mjs.map +0 -1
  688. package/fesm2022/acorex-modules-product-catalog-product.entity-CcLvq1uX.mjs +0 -668
  689. package/fesm2022/acorex-modules-product-catalog-product.entity-CcLvq1uX.mjs.map +0 -1
  690. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-Dum62tB8.mjs.map +0 -1
  691. package/fesm2022/acorex-modules-reservation-management-reservation-class-status.entity-CsOec92Y.mjs.map +0 -1
  692. package/fesm2022/acorex-modules-reservation-management-reservation-resource-type.entity-DiEkzSO2.mjs.map +0 -1
  693. package/fesm2022/acorex-modules-reservation-management-reservation-status-transition.entity-CSj9-uAb.mjs.map +0 -1
  694. package/fesm2022/acorex-modules-security-management-profile.entity-BSDeLsJ1.mjs +0 -168
  695. package/fesm2022/acorex-modules-security-management-profile.entity-BSDeLsJ1.mjs.map +0 -1
  696. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-e5asXiK4.mjs +0 -798
  697. package/fesm2022/acorex-modules-settings-management-acorex-modules-settings-management-e5asXiK4.mjs.map +0 -1
  698. package/fesm2022/acorex-modules-settings-management-permission-definition.provider-D5DqCfiz.mjs.map +0 -1
  699. package/fesm2022/acorex-modules-settings-management-setting-page.component-TxoOyBRc.mjs.map +0 -1
  700. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs +0 -7564
  701. package/fesm2022/acorex-modules-task-management-acorex-modules-task-management-Bv7Ye6d1.mjs.map +0 -1
  702. package/fesm2022/acorex-modules-task-management-task-board.page-CfgeDnBx.mjs.map +0 -1
  703. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs +0 -5
  704. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs.map +0 -1
  705. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-LJ8Bb-CT.mjs.map +0 -1
  706. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bhx1tC1u.mjs +0 -255
  707. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bhx1tC1u.mjs.map +0 -1
  708. package/fesm2022/acorex-modules-workflow-management-automation.entity-C_WRtcFX.mjs +0 -279
  709. package/fesm2022/acorex-modules-workflow-management-automation.entity-C_WRtcFX.mjs.map +0 -1
  710. package/fesm2022/acorex-modules-workflow-management-index--D61tV-f.mjs.map +0 -1
  711. package/fesm2022/acorex-modules-workflow-management-index-DXIQw3Ao.mjs.map +0 -1
  712. package/fesm2022/acorex-modules-workflow-management-index-OK7e-UOe.mjs +0 -264
  713. package/fesm2022/acorex-modules-workflow-management-index-OK7e-UOe.mjs.map +0 -1
  714. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-huamhFhc.mjs.map +0 -1
  715. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-column.component-B0f5IsoE.mjs.map +0 -1
  716. package/fesm2022/acorex-modules-workflow-management-workflow-configurator-widget-edit.component-DQ703kRI.mjs.map +0 -1
  717. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DFN7awRu.mjs +0 -313
  718. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DFN7awRu.mjs.map +0 -1
  719. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-DcqLomn4.mjs +0 -256
  720. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-DcqLomn4.mjs.map +0 -1
  721. package/fesm2022/acorex-modules-workflow-management-workflow-run-history-popup.component-FLqOdI2t.mjs.map +0 -1
  722. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-Cvbzknxk.mjs.map +0 -1
  723. package/fesm2022/acorex-modules-workplacesafety-management-hazard-ppe-rule-status.provider-D1a0CBhs.mjs.map +0 -1
  724. package/fesm2022/acorex-modules-workplacesafety-management-hazard-status.provider-v1cFaa3q.mjs.map +0 -1
  725. package/fesm2022/acorex-modules-workplacesafety-management-ppe-item-status.provider-VH_Bp0l5.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-modules-platform-management-acorex-modules-platform-management-CdMzH5Qu.mjs","sources":["../../../../libs/modules/platform-management/src/lib/contracts/features.keys.ts","../../../../libs/modules/platform-management/src/lib/contracts/menu.keys.ts","../../../../libs/modules/platform-management/src/lib/contracts/permission.keys.ts","../../../../libs/modules/platform-management/src/lib/contracts/root.config.ts","../../../../libs/modules/platform-management/src/lib/contracts/index.ts","../../../../libs/modules/platform-management/src/lib/entity.provider.ts","../../../../libs/modules/platform-management/src/lib/feature-definition.provider.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/menu-customization.const.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/custom-menu.middleware.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/menu-management.service.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/components/menu-customizer-popup/menu-customizer-popup.component.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/workflows/customize-menu.workflow.ts","../../../../libs/modules/platform-management/src/lib/features/menu-management/menu-management.module.ts","../../../../libs/modules/platform-management/src/lib/features/token/token.provider.ts","../../../../libs/modules/platform-management/src/lib/features/token/dynamic-token.provider.ts","../../../../libs/modules/platform-management/src/lib/features/token/token-refresh.provider.ts","../../../../libs/modules/platform-management/src/lib/features/token/token.module.ts","../../../../libs/modules/platform-management/src/lib/features/updater/updater.service.ts","../../../../libs/modules/platform-management/src/lib/features/updater/updater.module.ts","../../../../libs/modules/platform-management/src/lib/manifest.ts","../../../../libs/modules/platform-management/src/lib/menu.provider.ts","../../../../libs/modules/platform-management/src/lib/permission-definition.provider.ts","../../../../libs/modules/platform-management/src/lib/platform-management.module.ts","../../../../libs/modules/platform-management/src/lib/entities/token/token.entity.ts","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/workflow-designer.const.ts","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/workflow-designer.utils.ts","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/axp-workflow-designer.component.ts","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/axp-workflow-designer.component.html","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/axp-workflow-palette-item-drag.directive.ts","../../../../libs/modules/platform-management/src/lib/features/workflow-designer/workflow-designer.types.ts","../../../../libs/modules/platform-management/src/index.ts","../../../../libs/modules/platform-management/src/acorex-modules-platform-management.ts"],"sourcesContent":["export const AXPPlatformManagementFeatureKeys = {\n MenuCustomization: 'PlatformManagement:Feature:menu-customization',\n AutoCheckUpdates: 'PlatformManagement:Feature:auto-check-updates',\n MaxTokens: 'PlatformManagement:Feature:max-tokens',\n} as const;\n\n","export const AXPPlatformManagementMenuKeys = {\n AdministrationGroup: 'administration:group',\n Root: 'platform-management:menu',\n Tokens: 'platform-management:menu:tokens',\n Glossary: 'platform-management:menu:glossary',\n UserMenuManagement: 'platform-management:user:menus',\n MenuManagement: 'platform-management:menus',\n} as const;\n","export const AXPPlatformManagementPermissionKeys = {\n PlatformManagement: {\n Management: 'PlatformManagement:Permission:Management',\n Administration: 'PlatformManagement:Permission:Administration',\n Token: {\n Management: 'PlatformManagement:Permission:Token.Management',\n View: 'PlatformManagement:Permission:Token.View',\n Edit: 'PlatformManagement:Permission:Token.Edit',\n Delete: 'PlatformManagement:Permission:Token.Delete',\n Create: 'PlatformManagement:Permission:Token.Create',\n },\n MenuManagement: {\n Management: 'PlatformManagement:Permission:MenuManagement.Management',\n View: 'PlatformManagement:Permission:MenuManagement.View',\n Edit: 'PlatformManagement:Permission:MenuManagement.Edit',\n Delete: 'PlatformManagement:Permission:MenuManagement.Delete',\n Create: 'PlatformManagement:Permission:MenuManagement.Create',\n },\n },\n};\n","const config = {\n i18n: 'platform-management',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'platform-management',\n name: 'PlatformManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-cogs',\n },\n entities: {\n localizationManagement: {\n name: 'Localization Management',\n title: `@${config.i18n}:localization-management.entities.localization-management.title`,\n icon: 'fa-light fa-globe',\n },\n token: {\n name: 'Tokens',\n title: `@${config.i18n}:tokens.entities.token.title`,\n icon: 'fa-light fa-object-exclude',\n },\n },\n};\n","//#region ---- Contracts barrel ----\n\nexport * from './features.keys';\nexport * from './menu.keys';\nexport * from './permission.keys';\n\nexport * from './root.config';\n\n//#endregion","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from './contracts';\n\n@Injectable()\nexport class AXMEntityLoader implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName === RootConfig.module.name) {\n return new Promise(async (resolve) => {\n switch (entityName) {\n case RootConfig.entities.token.name: {\n const { tokenEntityFactory } = await import('./entities');\n resolve(tokenEntityFactory());\n break;\n }\n default:\n resolve(null);\n }\n });\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n return Promise.resolve(Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m })));\n }\n}\n","//#region ---- Imports ----\n\nimport {\n AXPFeatureDefinitionProvider,\n AXPFeatureDefinitionProviderContext,\n} from '@acorex/platform/core';\nimport { AXPPlatformManagementFeatureKeys } from './contracts/features.keys';\n\n//#endregion\n\n//#region ---- Feature Definition Provider ----\n\n/**\n * Platform Management Feature Definition Provider.\n * Provides feature definitions for the Platform Management module.\n */\nexport class AXPPlatformManagementFeatureDefinitionProvider implements AXPFeatureDefinitionProvider {\n async provide(context: AXPFeatureDefinitionProviderContext): Promise<void> {\n context.addFeature(AXPPlatformManagementFeatureKeys.MenuCustomization, {\n title: '@platform-management:features.menu-customization.title',\n description: '@platform-management:features.menu-customization.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n context.addFeature(AXPPlatformManagementFeatureKeys.AutoCheckUpdates, {\n title: '@platform-management:features.auto-check-updates.title',\n description: '@platform-management:features.auto-check-updates.description',\n defaultValue: true,\n type: 'boolean',\n });\n\n context.addFeature(AXPPlatformManagementFeatureKeys.MaxTokens, {\n title: '@platform-management:features.max-tokens.title',\n description: '@platform-management:features.max-tokens.description',\n defaultValue: 100,\n type: 'number',\n interface: {\n type: 'number-editor',\n options: {\n min: 1,\n max: 1000,\n step: 1,\n },\n },\n });\n }\n}\n\n//#endregion\n\n","import { RootConfig } from '../../contracts';\n\n//#region ---- Menu Customization Constants ----\n\n/**\n * Setting key for menu customizations\n */\nexport const AXP_MENU_CUSTOMIZATION_KEY = 'axp.platform-management.menu-customization';\n\n/**\n * Current version of menu customization schema\n */\nexport const AXP_MENU_CUSTOMIZATION_VERSION = '1.0.0';\n\n/**\n * Default menu customization\n */\nexport const AXP_MENU_CUSTOMIZATION_DEFAULT = {\n version: AXP_MENU_CUSTOMIZATION_VERSION,\n overrides: {},\n customItems: [],\n};\n\n/**\n * Menu management feature configuration\n */\nexport const MenuManagementConfig = {\n route: 'menus',\n title: `@${RootConfig.config.i18n}:menu-management.components.menu-list.title`,\n icon: 'fa-light fa-bars',\n};\n\n//#endregion\n\n","import { AXPMenuMiddleware, AXPMenuMiddlewareContext, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { inject } from '@angular/core';\nimport { AXP_MENU_CUSTOMIZATION_DEFAULT, AXP_MENU_CUSTOMIZATION_KEY } from './menu-customization.const';\nimport { AXPMenuCustomization } from './menu-customization.types';\n\n//#region ---- Custom Menu Middleware ----\n\n/**\n * Middleware that applies menu customizations using the enhanced context API\n * Applies user/tenant customizations from settings with priority support\n */\nexport class AXPCustomMenuMiddleware implements AXPMenuMiddleware {\n //#region ---- Middleware Properties ----\n\n readonly name = 'menu-customization';\n readonly priority = 100; // High priority to apply customizations early\n\n //#endregion\n\n //#region ---- Dependencies ----\n\n private settingsService = inject(AXPSettingsService);\n\n //#endregion\n\n //#region ---- Middleware Implementation ----\n\n async process(context: AXPMenuMiddlewareContext): Promise<void> {\n try {\n // Load menu customization from settings\n const customization = await this.loadCustomization();\n\n // Apply overrides to existing menu items using context API\n this.applyOverrides(context, customization);\n\n // Add custom menu items\n this.addCustomItems(context, customization);\n\n // Re-sort after applying priority overrides\n context.sort();\n } catch (error) {\n console.error('Error applying menu customizations:', error);\n }\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n /**\n * Load menu customization from settings\n * Merges Tenant and User scope customizations (User overrides Tenant)\n */\n private async loadCustomization(): Promise<AXPMenuCustomization> {\n try {\n // Load both scopes\n const tenantSettings = this.settingsService.scope(AXPPlatformScope.Tenant);\n const userSettings = this.settingsService.scope(AXPPlatformScope.User);\n\n const tenantCustomization = await tenantSettings.get<AXPMenuCustomization>(AXP_MENU_CUSTOMIZATION_KEY);\n const userCustomization = await userSettings.get<AXPMenuCustomization>(AXP_MENU_CUSTOMIZATION_KEY);\n\n // Merge customizations: Tenant as base, User overrides\n const merged: AXPMenuCustomization = {\n version: userCustomization?.version || tenantCustomization?.version || AXP_MENU_CUSTOMIZATION_DEFAULT.version,\n overrides: {\n ...(tenantCustomization?.overrides || {}),\n ...(userCustomization?.overrides || {}), // User overrides win\n },\n customItems: [...(tenantCustomization?.customItems || []), ...(userCustomization?.customItems || [])],\n };\n\n // Return merged result or default if both are empty\n const hasCustomizations = Object.keys(merged.overrides).length > 0 || merged.customItems.length > 0;\n return hasCustomizations ? merged : AXP_MENU_CUSTOMIZATION_DEFAULT;\n } catch (error) {\n console.error('Failed to load menu customization:', error);\n return AXP_MENU_CUSTOMIZATION_DEFAULT;\n }\n }\n\n /**\n * Apply overrides to existing menu items using enhanced context API\n */\n private applyOverrides(context: AXPMenuMiddlewareContext, customization: AXPMenuCustomization): void {\n Object.entries(customization.overrides).forEach(([menuName, override]) => {\n const finder = context.findByName(menuName);\n\n if (!finder.exists()) {\n return;\n }\n\n // Hide menu item\n if (override.hidden) {\n finder.remove();\n return;\n }\n\n // Apply priority override\n if (override.priority !== undefined) {\n finder.setPriority(override.priority);\n }\n\n // Apply property overrides\n if (override.properties) {\n finder.update(override.properties);\n }\n\n // Move to different parent\n if (override.parentName !== undefined) {\n finder.moveTo(override.parentName);\n }\n });\n }\n\n /**\n * Add custom menu items using context API\n */\n private addCustomItems(context: AXPMenuMiddlewareContext, customization: AXPMenuCustomization): void {\n if (customization.customItems && customization.customItems.length > 0) {\n context.add(...customization.customItems);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n\n","import { AXTreeViewNode } from '@acorex/components/tree-view';\nimport { AXPMenuItem, AXPMenuProviderService, AXPSettingsService } from '@acorex/platform/common';\nimport { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPMenuCustomizerItem, AXPMenuCustomizerService } from '@acorex/platform/layout/components';\nimport { inject, Injectable } from '@angular/core';\nimport { cloneDeep } from 'lodash-es';\nimport { AXP_MENU_CUSTOMIZATION_DEFAULT, AXP_MENU_CUSTOMIZATION_KEY } from './menu-customization.const';\nimport { AXPMenuCustomization } from './menu-customization.types';\n\n/**\n * Builds a customization key from a scope key\n * @param scopeKey The scope key (e.g., 'edition:123', 'tenant:456')\n * @returns The full customization storage key\n */\nfunction buildCustomizationKey(scopeKey: string): string {\n return `${AXP_MENU_CUSTOMIZATION_KEY}.${scopeKey}`;\n}\n\n/**\n * Data structure for tree node combining menu item with metadata\n */\nexport interface AXPMenuTreeNodeData {\n menuItem: AXPMenuItem;\n metadata: {\n isBuiltIn: boolean;\n isCustom: boolean;\n isHidden: boolean;\n originalPriority?: number;\n originalParentName?: string;\n };\n}\n\n//#region ---- Menu Management Service ----\n\n/**\n * Constants for priority calculation\n */\nconst PRIORITY_BASE_ROOT = 0;\nconst PRIORITY_BASE_NESTED = 1000;\nconst PRIORITY_STEP = 10;\n\n@Injectable({ providedIn: 'root' })\nexport class AXPMenuManagementService extends AXPMenuCustomizerService {\n //#region ---- Dependencies ----\n\n private settingsService = inject(AXPSettingsService);\n private menuProviderService = inject(AXPMenuProviderService);\n\n //#endregion\n\n //#region ---- AXPMenuCustomizerService Interface Implementation ----\n\n /**\n * Interface implementation: Get menu tree for the given scope key\n */\n override async getMenuTree(scopeKey: string): Promise<AXTreeViewNode[]> {\n return this.getMenuTreeByKey(scopeKey);\n }\n\n /**\n * Interface implementation: Sync tree changes\n */\n override async syncTreeChanges(scopeKey: string, treeNodes: AXTreeViewNode[]): Promise<void> {\n return this.syncTreeChangesByKey(scopeKey, treeNodes);\n }\n\n /**\n * Interface implementation: Show menu item\n */\n override async showMenuItem(scopeKey: string, menuName: string): Promise<void> {\n return this.showMenuItemByKey(scopeKey, menuName);\n }\n\n /**\n * Interface implementation: Hide menu item\n */\n override async hideMenuItem(scopeKey: string, menuName: string): Promise<void> {\n return this.hideMenuItemByKey(scopeKey, menuName);\n }\n\n /**\n * Interface implementation: Add custom menu item\n */\n override async addCustomMenuItem(\n scopeKey: string,\n menuItem: AXPMenuCustomizerItem,\n parentName: string | null,\n ): Promise<void> {\n return this.addCustomMenuItemByKey(scopeKey, menuItem as AXPMenuItem, parentName);\n }\n\n /**\n * Interface implementation: Update custom menu item\n */\n override async updateCustomMenuItem(\n scopeKey: string,\n menuName: string,\n menuItem: AXPMenuCustomizerItem,\n ): Promise<void> {\n return this.updateCustomMenuItemByKey(scopeKey, menuName, menuItem as AXPMenuItem);\n }\n\n /**\n * Interface implementation: Update menu properties\n */\n override async updateMenuProperties(\n scopeKey: string,\n menuName: string,\n properties: Partial<AXPMenuCustomizerItem>,\n ): Promise<void> {\n return this.updateMenuPropertiesByKey(scopeKey, menuName, properties as Partial<AXPMenuItem>);\n }\n\n /**\n * Interface implementation: Delete custom menu item\n */\n override async deleteCustomMenuItem(scopeKey: string, menuName: string): Promise<void> {\n return this.deleteCustomMenuItemByKey(scopeKey, menuName);\n }\n\n /**\n * Interface implementation: Reset customizations\n */\n override async resetCustomizations(scopeKey: string): Promise<void> {\n return this.resetCustomizationsByKey(scopeKey);\n }\n\n //#endregion\n\n //#region ---- Scope-Based Public Methods ----\n\n /**\n * Get menu tree as AXTreeViewNode[] for ax-tree-view component (scope-based)\n */\n async getMenuTreeByScope(scope: AXPPlatformScope): Promise<AXTreeViewNode[]> {\n // Get RAW menu items WITHOUT middleware (for management purposes)\n const baseItems = await this.menuProviderService.rawItems();\n\n // Load customizations for the given scope\n const customization = await this.loadCustomization(scope);\n\n // Merge custom items with base items\n const allItems = [...baseItems, ...customization.customItems];\n\n // Apply parent overrides to restructure items BEFORE building tree\n const restructuredItems = this.applyParentOverrides(allItems, customization);\n\n // Convert to tree nodes with metadata\n return this.convertToTreeNodes(restructuredItems, customization);\n }\n\n /**\n * Sync tree changes back to customization (scope-based)\n * Called automatically when tree structure changes via drag-drop\n */\n async syncTreeChangesByScope(scope: AXPPlatformScope, treeNodes: AXTreeViewNode[]): Promise<void> {\n const customization = await this.loadCustomization(scope);\n\n // Extract and update priorities and parent relationships from tree structure\n this.updateCustomizationFromTree(treeNodes, customization);\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Load menu customization for a specific scope\n */\n async loadCustomization(scope: AXPPlatformScope): Promise<AXPMenuCustomization> {\n try {\n const scopedSettings = this.settingsService.scope(scope);\n const saved = await scopedSettings.get<AXPMenuCustomization>(AXP_MENU_CUSTOMIZATION_KEY);\n\n if (saved && saved.version) {\n return saved;\n }\n\n return cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT);\n } catch {\n return cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT);\n }\n }\n\n /**\n * Save menu customization for a specific scope\n */\n async saveCustomization(scope: AXPPlatformScope, customization: AXPMenuCustomization): Promise<void> {\n const scopedSettings = this.settingsService.scope(scope);\n await scopedSettings.set(AXP_MENU_CUSTOMIZATION_KEY, customization);\n\n // Clear menu cache to force reload\n this.menuProviderService.clearCache();\n }\n\n /**\n * Hide a menu item (scope-based)\n */\n async hideMenuItemByScope(scope: AXPPlatformScope, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'hide');\n\n const customization = await this.loadCustomization(scope);\n this.ensureOverrideExists(customization, menuName);\n customization.overrides[menuName].hidden = true;\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Show a menu item (scope-based)\n */\n async showMenuItemByScope(scope: AXPPlatformScope, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'show');\n\n const customization = await this.loadCustomization(scope);\n\n if (customization.overrides[menuName]) {\n delete customization.overrides[menuName].hidden;\n this.cleanupEmptyOverride(customization, menuName);\n }\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Update menu item priority (scope-based)\n */\n async updateMenuPriorityByScope(scope: AXPPlatformScope, menuName: string, priority: number): Promise<void> {\n this.validateMenuName(menuName, 'update priority for');\n\n const customization = await this.loadCustomization(scope);\n this.ensureOverrideExists(customization, menuName);\n customization.overrides[menuName].priority = priority;\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Update menu item properties (scope-based)\n */\n async updateMenuPropertiesByScope(\n scope: AXPPlatformScope,\n menuName: string,\n properties: Partial<AXPMenuItem>,\n ): Promise<void> {\n this.validateMenuName(menuName, 'update properties for');\n\n const customization = await this.loadCustomization(scope);\n this.ensureOverrideExists(customization, menuName);\n\n customization.overrides[menuName].properties = {\n ...customization.overrides[menuName].properties,\n ...properties,\n };\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Add custom menu item (scope-based)\n */\n async addCustomMenuItemByScope(scope: AXPPlatformScope, menuItem: AXPMenuItem, parent: any): Promise<void> {\n const customization = await this.loadCustomization(scope);\n\n // Generate unique name if not provided\n if (!menuItem.name) {\n menuItem.name = `custom-menu-${Date.now()}`;\n }\n\n customization.customItems.push(menuItem);\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Update custom menu item (scope-based)\n */\n async updateCustomMenuItemByScope(scope: AXPPlatformScope, menuName: string, menuItem: AXPMenuItem): Promise<void> {\n this.validateMenuName(menuName, 'update');\n\n const customization = await this.loadCustomization(scope);\n\n const index = customization.customItems.findIndex((item) => item.name === menuName);\n\n if (index === -1) {\n throw new Error(`Custom menu item '${menuName}' not found`);\n }\n\n customization.customItems[index] = menuItem;\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Delete custom menu item (scope-based)\n */\n async deleteCustomMenuItemByScope(scope: AXPPlatformScope, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'delete');\n\n const customization = await this.loadCustomization(scope);\n\n const initialLength = customization.customItems.length;\n customization.customItems = customization.customItems.filter((item) => item.name !== menuName);\n\n if (customization.customItems.length === initialLength) {\n throw new Error(`Custom menu item '${menuName}' not found`);\n }\n\n await this.saveCustomization(scope, customization);\n }\n\n /**\n * Reset all customizations for a scope (scope-based)\n */\n async resetCustomizationsByScope(scope: AXPPlatformScope): Promise<void> {\n await this.saveCustomization(scope, cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT));\n }\n\n //#endregion\n\n //#region ---- Key-Based Public Methods ----\n\n /**\n * Get menu tree using a generic scope key (e.g., 'edition:123', 'tenant:456')\n */\n async getMenuTreeByKey(scopeKey: string): Promise<AXTreeViewNode[]> {\n // Get RAW menu items WITHOUT middleware (for management purposes)\n const baseItems = await this.menuProviderService.rawItems();\n\n // Load customizations for the given scope key\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n // Merge custom items with base items\n const allItems = [...baseItems, ...customization.customItems];\n\n // Apply parent overrides to restructure items BEFORE building tree\n const restructuredItems = this.applyParentOverrides(allItems, customization);\n\n // Convert to tree nodes with metadata\n return this.convertToTreeNodes(restructuredItems, customization);\n }\n\n /**\n * Sync tree changes using a generic scope key\n */\n async syncTreeChangesByKey(scopeKey: string, treeNodes: AXTreeViewNode[]): Promise<void> {\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n // Extract and update priorities and parent relationships from tree structure\n this.updateCustomizationFromTree(treeNodes, customization);\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Load menu customization using a generic scope key\n */\n async loadCustomizationByKey(scopeKey: string): Promise<AXPMenuCustomization> {\n try {\n const storageKey = buildCustomizationKey(scopeKey);\n const scopedSettings = this.settingsService.scope(AXPPlatformScope.Tenant);\n const saved = await scopedSettings.get<AXPMenuCustomization>(storageKey);\n\n if (saved && saved.version) {\n return saved;\n }\n\n return cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT);\n } catch {\n return cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT);\n }\n }\n\n /**\n * Save menu customization using a generic scope key\n */\n async saveCustomizationByKey(scopeKey: string, customization: AXPMenuCustomization): Promise<void> {\n const storageKey = buildCustomizationKey(scopeKey);\n const scopedSettings = this.settingsService.scope(AXPPlatformScope.Tenant);\n await scopedSettings.set(storageKey, customization);\n\n // Clear menu cache to force reload\n this.menuProviderService.clearCache();\n }\n\n /**\n * Hide a menu item using a generic scope key\n */\n async hideMenuItemByKey(scopeKey: string, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'hide');\n\n const customization = await this.loadCustomizationByKey(scopeKey);\n this.ensureOverrideExists(customization, menuName);\n customization.overrides[menuName].hidden = true;\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Show a menu item using a generic scope key\n */\n async showMenuItemByKey(scopeKey: string, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'show');\n\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n if (customization.overrides[menuName]) {\n delete customization.overrides[menuName].hidden;\n this.cleanupEmptyOverride(customization, menuName);\n }\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Update menu item properties using a generic scope key\n */\n async updateMenuPropertiesByKey(scopeKey: string, menuName: string, properties: Partial<AXPMenuItem>): Promise<void> {\n this.validateMenuName(menuName, 'update properties for');\n\n const customization = await this.loadCustomizationByKey(scopeKey);\n this.ensureOverrideExists(customization, menuName);\n\n customization.overrides[menuName].properties = {\n ...customization.overrides[menuName].properties,\n ...properties,\n };\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Add custom menu item using a generic scope key\n */\n async addCustomMenuItemByKey(scopeKey: string, menuItem: AXPMenuItem, parent: any): Promise<void> {\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n // Generate unique name if not provided\n if (!menuItem.name) {\n menuItem.name = `custom-menu-${Date.now()}`;\n }\n\n customization.customItems.push(menuItem);\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Update custom menu item using a generic scope key\n */\n async updateCustomMenuItemByKey(scopeKey: string, menuName: string, menuItem: AXPMenuItem): Promise<void> {\n this.validateMenuName(menuName, 'update');\n\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n const index = customization.customItems.findIndex((item) => item.name === menuName);\n\n if (index === -1) {\n throw new Error(`Custom menu item '${menuName}' not found`);\n }\n\n customization.customItems[index] = menuItem;\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Delete custom menu item using a generic scope key\n */\n async deleteCustomMenuItemByKey(scopeKey: string, menuName: string): Promise<void> {\n this.validateMenuName(menuName, 'delete');\n\n const customization = await this.loadCustomizationByKey(scopeKey);\n\n const initialLength = customization.customItems.length;\n customization.customItems = customization.customItems.filter((item) => item.name !== menuName);\n\n if (customization.customItems.length === initialLength) {\n throw new Error(`Custom menu item '${menuName}' not found`);\n }\n\n await this.saveCustomizationByKey(scopeKey, customization);\n }\n\n /**\n * Reset all customizations using a generic scope key\n */\n async resetCustomizationsByKey(scopeKey: string): Promise<void> {\n await this.saveCustomizationByKey(scopeKey, cloneDeep(AXP_MENU_CUSTOMIZATION_DEFAULT));\n }\n\n //#endregion\n\n //#region ---- Private Methods ----\n\n /**\n * Apply parent overrides from customization to restructure menu items\n * This ensures the tree reflects saved parent changes (moves)\n */\n private applyParentOverrides(items: AXPMenuItem[], customization: AXPMenuCustomization): AXPMenuItem[] {\n // First, flatten all items into a map for easy lookup\n const itemMap = this.flattenMenuItems(items);\n\n // Build new structure based on effective parent relationships\n const rootItems: AXPMenuItem[] = [];\n const childrenMap = new Map<string, AXPMenuItem[]>();\n\n for (const [itemName, item] of itemMap.entries()) {\n const override = customization.overrides[itemName];\n\n // Determine effective parent (override takes precedence)\n let effectiveParent: string | null | undefined;\n if (override?.parentName !== undefined) {\n // parentName is explicitly set (could be null for root, or a parent name)\n effectiveParent = override.parentName;\n } else {\n // No override - find original parent by searching original structure\n effectiveParent = this.findOriginalParent(items, itemName);\n }\n\n if (effectiveParent === null || effectiveParent === undefined) {\n // Root level item\n rootItems.push(item);\n } else {\n // Child item - add to parent's children\n if (!childrenMap.has(effectiveParent)) {\n childrenMap.set(effectiveParent, []);\n }\n childrenMap.get(effectiveParent)!.push(item);\n }\n }\n\n // Attach children to their parents recursively\n const attachChildren = (item: AXPMenuItem) => {\n if (item.name && childrenMap.has(item.name)) {\n item.children = childrenMap.get(item.name);\n item.children?.forEach(attachChildren);\n }\n };\n\n rootItems.forEach(attachChildren);\n\n return rootItems;\n }\n\n /**\n * Find the original parent name of an item in the original structure\n * Returns undefined for root items, string for items with parents, null for not found\n */\n private findOriginalParent(\n items: AXPMenuItem[],\n targetName: string,\n currentParent?: string,\n ): string | undefined | null {\n for (const item of items) {\n if (item.name === targetName) {\n return currentParent; // undefined if root, string if has parent\n }\n if (item.children) {\n const found = this.findOriginalParent(item.children, targetName, item.name);\n if (found !== null) {\n // Found in children (could be undefined for root of subtree, or string for nested item)\n return found;\n }\n // found === null means not found in this subtree, continue searching\n }\n }\n return null; // Not found in this level or any children\n }\n\n /**\n * Convert menu items to AXTreeNode[] with metadata\n */\n private convertToTreeNodes(\n items: AXPMenuItem[],\n customization: AXPMenuCustomization,\n parentName?: string,\n ): AXTreeViewNode[] {\n const nodes = items.map((item) => {\n const itemName = item.name;\n const override = itemName ? customization.overrides[itemName] : undefined;\n const isCustom = itemName ? customization.customItems.some((ci) => ci.name === itemName) : false;\n\n // Create metadata\n const metadata = {\n isBuiltIn: !isCustom,\n isCustom,\n isHidden: override?.hidden || false,\n originalPriority: item.priority,\n originalParentName: parentName,\n };\n\n // Apply ALL overrides: priority AND properties (text, icon, description, etc.)\n const effectivePriority = override?.priority !== undefined ? override.priority : item.priority;\n const effectiveItem: AXPMenuItem = {\n ...item,\n ...override?.properties, // Apply property overrides (text, icon, description)\n priority: effectivePriority,\n };\n\n // Create tree node data with effective (overridden) values\n const nodeData: AXPMenuTreeNodeData = {\n menuItem: effectiveItem,\n metadata,\n };\n\n // Create tree node using effective (overridden) values\n const treeNode: AXTreeViewNode = {\n id: itemName || item.path || this.generateNodeId(),\n title: effectiveItem.text || effectiveItem.path || 'Unnamed',\n icon: effectiveItem.icon,\n expanded: false,\n selected: false,\n ['children']: item.children ? this.convertToTreeNodes(item.children, customization, itemName) : undefined,\n childrenCount: item.children?.length,\n data: nodeData,\n };\n\n return treeNode;\n });\n\n // Sort by priority\n nodes.sort((a, b) => {\n const aPriority = (a['data'] as AXPMenuTreeNodeData)?.menuItem.priority ?? 0;\n const bPriority = (b['data'] as AXPMenuTreeNodeData)?.menuItem.priority ?? 0;\n return aPriority - bPriority;\n });\n\n return nodes;\n }\n\n /**\n * Update customization from tree structure\n * Extracts priorities and parent relationships from tree nodes\n */\n private updateCustomizationFromTree(\n treeNodes: AXTreeViewNode[],\n customization: AXPMenuCustomization,\n parentName?: string,\n ): void {\n // Calculate base priority for this level to maintain relative ordering\n const basePriority = parentName ? PRIORITY_BASE_NESTED : PRIORITY_BASE_ROOT;\n const priorityStep = PRIORITY_STEP;\n\n treeNodes.forEach((node, index) => {\n const nodeData = (node['data'] as AXPMenuTreeNodeData) || null;\n const menuItem = nodeData?.menuItem;\n\n if (menuItem?.name) {\n this.ensureOverrideExists(customization, menuItem.name);\n\n // Calculate new priority based on current position\n const newPriority = basePriority + index * priorityStep;\n\n // Get current effective priority (considering existing overrides)\n const currentEffectivePriority =\n customization.overrides[menuItem.name]?.priority ?? nodeData.metadata.originalPriority ?? 0;\n\n // Always update priority to reflect current position in tree\n // This ensures reordering works correctly even after multiple moves\n if (newPriority !== currentEffectivePriority) {\n customization.overrides[menuItem.name].priority = newPriority;\n }\n\n // Determine current effective parent (considering existing overrides)\n const currentEffectiveParent =\n customization.overrides[menuItem.name]?.parentName ?? nodeData.metadata.originalParentName;\n\n // Update parent relationship if it changed from current effective parent\n if (parentName !== currentEffectiveParent) {\n if (parentName) {\n customization.overrides[menuItem.name].parentName = parentName;\n } else {\n // Moving to root - set to null (not undefined) so middleware will process it\n // moveTo(null) moves the item to root level\n customization.overrides[menuItem.name].parentName = null;\n }\n }\n\n // Clean up empty overrides\n this.cleanupEmptyOverride(customization, menuItem.name);\n\n // Recursively process children\n const nodeChildren = node['children'] as AXTreeViewNode[] | undefined;\n if (nodeChildren && nodeChildren.length > 0) {\n this.updateCustomizationFromTree(nodeChildren, customization, menuItem.name);\n }\n }\n });\n }\n\n /**\n * Validate menu name before operations\n */\n private validateMenuName(menuName: string, operation: string): void {\n if (!menuName) {\n throw new Error(`Menu item must have a name to be ${operation}`);\n }\n }\n\n /**\n * Ensure override object exists for a menu item\n */\n private ensureOverrideExists(customization: AXPMenuCustomization, menuName: string): void {\n if (!customization.overrides[menuName]) {\n customization.overrides[menuName] = {};\n }\n }\n\n /**\n * Clean up empty override objects\n */\n private cleanupEmptyOverride(customization: AXPMenuCustomization, menuName: string): void {\n if (Object.keys(customization.overrides[menuName] || {}).length === 0) {\n delete customization.overrides[menuName];\n }\n }\n\n /**\n * Flatten menu items recursively into a map\n */\n private flattenMenuItems(items: AXPMenuItem[]): Map<string, AXPMenuItem> {\n const itemMap = new Map<string, AXPMenuItem>();\n\n const flatten = (itemList: AXPMenuItem[]) => {\n for (const item of itemList) {\n if (item.name) {\n // Clone item without children to rebuild structure\n itemMap.set(item.name, { ...item, children: undefined });\n }\n if (item.children) {\n flatten(item.children);\n }\n }\n };\n\n flatten(items);\n return itemMap;\n }\n\n /**\n * Generate unique ID for tree nodes\n */\n private generateNodeId(): string {\n return `node-${Date.now()}-${Math.floor(Math.random() * 10000)}`;\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXTreeViewDragArea, AXTreeViewDragBehavior } from '@acorex/components/tree-view';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPMenuCustomizerComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';\nimport {\n AXPPopupLayoutBase,\n AXPPopupLayoutBaseComponent,\n AXPPopupLayoutComponent,\n} from '@acorex/platform/layout/views';\n\nimport { Component, computed, signal, viewChild, ViewEncapsulation } from '@angular/core';\n\n//#endregion\n\n//#region ---- Menu Customizer Popup Component ----\n\n/**\n * Popup wrapper for the menu customizer component.\n * Provides a popup layout with actions for managing menu customizations.\n *\n * Pass the following data when opening the popup:\n * - scopeKey: string - The scope key for menu customizations\n * - showToolbar?: boolean - Whether to show the toolbar (default: true)\n * - allowAddItems?: boolean - Whether to allow adding items (default: true)\n * - dragBehavior?: AXTreeViewDragBehavior - Drag behavior (default: 'move')\n * - dragArea?: AXTreeViewDragArea - Drag area (default: 'handler')\n */\n@Component({\n selector: 'axp-menu-customizer-popup',\n template: `\n <axp-popup-layout>\n <axp-page-content>\n @if (isReady()) {\n <axp-menu-customizer\n [scopeKey]=\"scopeKey()\"\n [showToolbar]=\"showToolbar()\"\n [allowAddItems]=\"allowAddItems()\"\n [dragBehavior]=\"dragBehavior()\"\n [dragArea]=\"dragArea()\"\n (saved)=\"onSaved()\"\n (cancelled)=\"onCancelled()\"\n ></axp-menu-customizer>\n }\n </axp-page-content>\n </axp-popup-layout>\n `,\n imports: [\n AXTranslationModule,\n AXPPopupLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPMenuCustomizerComponent\n],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXPPopupLayoutBase,\n useExisting: AXPMenuCustomizerPopupComponent,\n },\n ],\n host: { class: 'axp-menu-customizer-popup' },\n})\nexport class AXPMenuCustomizerPopupComponent extends AXPPopupLayoutBaseComponent {\n //#region ---- Component State ----\n\n /** Reference to the menu customizer component */\n protected menuCustomizer = viewChild(AXPMenuCustomizerComponent);\n\n /** The scope key for menu customizations (set by popup service) */\n scopeKey = signal<string>('');\n\n /** Whether to show the toolbar */\n showToolbar = signal<boolean>(true);\n\n /** Whether to allow adding custom items */\n allowAddItems = signal<boolean>(true);\n\n /** Drag behavior for the tree view */\n dragBehavior = signal<AXTreeViewDragBehavior>('both');\n\n /** Drag area for the tree view */\n dragArea = signal<AXTreeViewDragArea>('handler');\n\n /** Whether the component is ready to render (scopeKey is set) */\n protected isReady = computed(() => this.scopeKey() !== '');\n\n //#endregion\n\n //#region ---- Lifecycle Methods ----\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n // Popup-specific initialization can go here\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n /**\n * Returns the primary menu items for the popup layout.\n */\n protected override getPrimaryMenuItems(): AXPActionMenuItem[] | Promise<AXPActionMenuItem[]> {\n return [\n {\n title: '@general:actions.close.title',\n icon: 'fa-solid fa-xmark',\n command: {\n name: 'close',\n },\n },\n ];\n }\n\n /**\n * Handles when changes are saved\n */\n protected onSaved(): void {\n this.close(true);\n }\n\n /**\n * Handles when customization is cancelled\n */\n protected onCancelled(): void {\n this.close(false);\n }\n\n /**\n * Executes popup commands\n */\n override execute(command: AXPExecuteCommand): void | Promise<void> {\n if (command.name === 'close') {\n this.close(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { AXPWorkflow, AXPWorkflowAction, AXPWorkflowContext } from '@acorex/platform/workflow';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXPMenuCustomizerPopupComponent } from '../components/menu-customizer-popup/menu-customizer-popup.component';\n\n//#endregion\n\n//#region ---- Open Menu Customizer Action ----\n\n/**\n * Workflow action that opens the menu customizer popup.\n * Expects the context to contain:\n * - data: The entity data (must have an 'id' property)\n * - options.scopePrefix: The prefix for the scope key (e.g., 'edition', 'tenant')\n * - options.title: Optional custom title for the popup\n * - options.showToolbar: Whether to show toolbar (default: true)\n * - options.allowAddItems: Whether to allow adding items (default: true)\n * - options.dragBehavior: Drag behavior - 'none' | 'move' | 'copy' (default: 'move')\n * - options.dragArea: Drag area - 'node' | 'handler' (default: 'handler')\n */\n@Injectable()\nexport class AXMOpenMenuCustomizerAction extends AXPWorkflowAction {\n //#region ---- Dependencies ----\n\n private popupService = inject(AXPopupService);\n private translateService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Execute ----\n\n async execute(context: AXPWorkflowContext): Promise<void> {\n // Get entity data\n const data = context.getVariable('data');\n const entityId = data?.id;\n\n if (!entityId) {\n console.error('Menu customizer requires entity data with an id property');\n context.setOutput('result', false);\n return;\n }\n\n // Get scope configuration\n const scopePrefix = context.getVariable('options.scopePrefix') || 'entity';\n const scopeKey = `${scopePrefix}:${entityId}`;\n\n // Get optional title\n const customTitle = context.getVariable('options.title');\n const defaultTitle = await this.translateService.translateAsync(\n '@platform-management:menu-management.components.menu-customizer-popup.title',\n );\n const entityTitle = data?.title || data?.name || entityId;\n const title = customTitle || `${defaultTitle} - ${entityTitle}`;\n\n // Open popup using the component from platform/layout/components\n // Pass signals to properly bind to the popup component's signal properties\n const result = await this.popupService.open(AXPMenuCustomizerPopupComponent, {\n title,\n size: 'lg',\n data: {\n scopeKey: signal(scopeKey),\n showToolbar: signal(context.getVariable('options.showToolbar') ?? true),\n allowAddItems: signal(context.getVariable('options.allowAddItems') ?? true),\n dragBehavior: signal(context.getVariable('options.dragBehavior') ?? 'both'),\n dragArea: signal(context.getVariable('options.dragArea') ?? 'handler'),\n },\n });\n\n // Set result based on popup outcome\n context.setOutput('result', result?.data === true);\n }\n\n //#endregion\n}\n\n//#endregion\n\n//#region ---- Customize Menu Workflow ----\n\n/**\n * Workflow definition for customizing menus.\n * Opens the menu customizer popup and handles the result.\n */\nexport const AXMCustomizeMenuWorkflow: AXPWorkflow = {\n startStepId: 'open-customizer',\n steps: {\n 'open-customizer': {\n action: 'open-menu-customizer',\n nextSteps: [\n {\n conditions: [{ type: 'SINGLE', expression: 'context.getOutput(\"result\") == true' }],\n nextStepId: 'show-success-toast',\n },\n ],\n },\n 'show-success-toast': {\n action: 'AXPToastAction',\n input: {\n color: 'success',\n title: '@platform-management:menu-management.messages.success.customization-saved',\n },\n },\n },\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_MENU_CUSTOMIZER_SERVICE } from '@acorex/platform/layout/components';\nimport { AXPWorkflowModule } from '@acorex/platform/workflow';\nimport { NgModule } from '@angular/core';\nimport { AXPMenuManagementService } from './menu-management.service';\nimport { AXMCustomizeMenuWorkflow, AXMOpenMenuCustomizerAction } from './workflows/customize-menu.workflow';\n\n//#endregion\n\n//#region ---- Module ----\n\n/**\n * Module for menu management features including the menu customizer\n * and related workflows.\n */\n@NgModule({\n imports: [\n AXPWorkflowModule.forChild({\n workflows: {\n 'customize-menu': AXMCustomizeMenuWorkflow,\n },\n actions: {\n 'open-menu-customizer': AXMOpenMenuCustomizerAction,\n },\n }),\n ],\n providers: [\n {\n provide: AXP_MENU_CUSTOMIZER_SERVICE,\n useExisting: AXPMenuManagementService,\n },\n ],\n})\nexport class AXMMenuManagementModule {}\n\n//#endregion\n","import { AXPTokenDefinitionProvider } from \"@acorex/platform/common\";\n\n/**\n * Token that returns current ISO date-time string.\n */\nexport class AXMTokenProvider implements AXPTokenDefinitionProvider<string> {\n name = 'now';\n title = 'Now';\n description = 'Current date and time in ISO format';\n\n execute(): Promise<string> {\n return Promise.resolve(new Date().toISOString());\n }\n}\n\n","//#region ---- Imports ----\n\nimport { AXPTokenDefinitionProvider } from '@acorex/platform/common';\nimport { AXPExpressionEvaluatorService } from '@acorex/platform/core';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../contracts';\nimport { AXMTokenEntityModel } from '../../entities/token/tokens.types';\n\n//#endregion\n\n//#region ---- Factory Cache ----\n\n/**\n * Global cache for loaded token providers.\n * Cleared when token entity changes occur.\n */\nlet cachedProviders: Promise<AXPTokenDefinitionProvider[]> | null = null;\n\n/**\n * Clears the cached providers, forcing reload on next access.\n */\nexport function clearDynamicTokenProvidersCache(): void {\n cachedProviders = null;\n}\n\n//#endregion\n\n//#region ---- Token Data Access ----\n\n/**\n * Resolves the token entity data accessor after the current DI cycle completes.\n * AXPEntityService cannot be resolved synchronously from the dynamic token provider\n * factory because AXP_TOKEN_DEFINITION_PROVIDER is still being constructed (cycle via\n * AXPTokenDefinitionService and expression evaluator scope providers).\n */\nasync function getTokenEntityDataAccessor(injector: Injector) {\n await Promise.resolve();\n\n return injector\n .get(AXPEntityService)\n .withEntity(RootConfig.module.name, RootConfig.entities.token.name)\n .data<AXMTokenEntityModel, any>();\n}\n\n//#endregion\n\n//#region ---- Factory Function ----\n\n/**\n * Factory function that loads tokens from backend and creates providers for each.\n * Uses global caching - tokens are loaded once and cached until invalidated.\n * \n * @param injector Angular injector to resolve dependencies\n * @returns Promise that resolves to an array of token providers\n */\nexport async function createDynamicTokenProviders(\n injector: Injector\n): Promise<AXPTokenDefinitionProvider[]> {\n // Return cached providers if available\n if (cachedProviders) {\n return cachedProviders;\n }\n\n // Load providers and cache the promise\n cachedProviders = loadTokenProviders(injector);\n return cachedProviders;\n}\n\n/**\n * Internal function that loads tokens from backend and creates providers.\n */\nasync function loadTokenProviders(\n injector: Injector\n): Promise<AXPTokenDefinitionProvider[]> {\n const tokensService = await getTokenEntityDataAccessor(injector);\n\n try {\n // Load all tokens from backend\n const queryResult = await tokensService.query({\n skip: 0,\n take: 1000, // Load all tokens (adjust if needed)\n });\n\n if (!queryResult || !queryResult.items || queryResult.items.length === 0) {\n return [];\n }\n\n // Convert each token entity to a provider\n // Pass injector instead of expressionEvaluator to avoid circular dependency\n return queryResult.items.map((token: AXMTokenEntityModel) => {\n return createTokenProvider(token, injector);\n });\n } catch (error) {\n console.error('[DynamicTokenProvider] Failed to load tokens from backend:', error);\n throw error; // Throw error as requested\n }\n}\n\n/**\n * Creates a token provider from a token entity model.\n * Uses lazy injection for expression evaluator to avoid circular dependency.\n * Reloads token data from backend on each execution to ensure fresh data.\n */\nfunction createTokenProvider(\n token: AXMTokenEntityModel,\n injector: Injector\n): AXPTokenDefinitionProvider {\n const tokenName = token.name;\n\n return {\n name: tokenName,\n title: token.title,\n description: token.description,\n\n async execute(): Promise<any> {\n // Reload token from backend to get fresh data\n // This ensures we always have the latest token configuration\n\n // const entityResolver = injector.get(AXPEntityDefinitionRegistryService);\n // const tokenEntityDef = await entityResolver.exists(RootConfig.module.name, RootConfig.entities.token.name);\n // if (!tokenEntityDef) {\n // return;\n // }\n const tokensService = await getTokenEntityDataAccessor(injector);\n let currentToken: AXMTokenEntityModel | null = null;\n\n try {\n // Try to get the token by name (assuming name is unique)\n const queryResult = await tokensService.query({\n skip: 0,\n take: 1000,\n filter: {\n field: 'name',\n operator: { type: 'equal' },\n value: tokenName,\n },\n });\n\n if (queryResult?.items && queryResult.items.length > 0) {\n currentToken = queryResult.items[0] as AXMTokenEntityModel;\n }\n } catch (error) {\n console.warn(`[DynamicTokenProvider] Failed to reload token \"${tokenName}\", using cached data:`, error);\n // Fallback to original token data if reload fails\n currentToken = token;\n }\n\n // Use reloaded token if available, otherwise fallback to original\n const tokenToUse = currentToken || token;\n\n if (!tokenToUse.expression) {\n throw new Error(`Token \"${tokenName}\" has no expression defined`);\n }\n\n // Context or Computed kind: evaluate expression. Otherwise use raw value.\n const kind = tokenToUse.kind ?? (tokenToUse as any).kind;\n const shouldEvaluate = kind === 'Context' || kind === 'Computed';\n\n if (shouldEvaluate) {\n // Evaluate the expression using expression evaluator\n try {\n const expressionEvaluator = injector.get(AXPExpressionEvaluatorService);\n return await expressionEvaluator.evaluate(tokenToUse.expression);\n } catch (error) {\n console.error(`[DynamicTokenProvider] Error evaluating token \"${tokenName}\":`, error);\n throw error;\n }\n }\n\n // Normalize dataType for static/computed value conversion\n const dataTypeValue = tokenToUse.dataType ?? (tokenToUse as any).type;\n const normalizedDataType = normalizeDataType(dataTypeValue);\n\n {\n // Static types (String, Integer, Boolean): return direct value from expression field (no evaluation)\n // Optionally convert to appropriate type\n const expressionValue = tokenToUse.expression;\n\n if (normalizedDataType === 'Integer') {\n const numValue = parseInt(expressionValue, 10);\n if (isNaN(numValue)) {\n throw new Error(`Token \"${tokenName}\" expression is not a valid integer: ${expressionValue}`);\n }\n return numValue;\n } else if (normalizedDataType === 'Boolean') {\n const lowerValue = expressionValue.toLowerCase().trim();\n if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes') {\n return true;\n } else if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no') {\n return false;\n }\n throw new Error(`Token \"${tokenName}\" expression is not a valid boolean: ${expressionValue}`);\n } else if (normalizedDataType === 'Decimal') {\n const numValue = parseFloat(expressionValue);\n if (isNaN(numValue)) {\n throw new Error(`Token \"${tokenName}\" expression is not a valid decimal: ${expressionValue}`);\n }\n return numValue;\n } else if (normalizedDataType === 'DateTime') {\n const date = new Date(expressionValue);\n return isNaN(date.getTime()) ? expressionValue : date;\n } else if (normalizedDataType === 'Json') {\n try {\n return JSON.parse(expressionValue);\n } catch {\n return expressionValue;\n }\n } else {\n // String type: return as-is\n return expressionValue;\n }\n }\n },\n };\n}\n\n/** Valid token data types for value conversion */\ntype TokenDataType = 'String' | 'Integer' | 'Boolean' | 'Decimal' | 'DateTime' | 'Json';\n\n/**\n * Normalizes the dataType field to a string value.\n * Handles cases where select box widgets return objects instead of strings.\n */\nfunction normalizeDataType(dataType: any): TokenDataType {\n const validTypes: TokenDataType[] = ['String', 'Integer', 'Boolean', 'Decimal', 'DateTime', 'Json'];\n\n if (typeof dataType === 'string' && validTypes.includes(dataType as TokenDataType)) {\n return dataType as TokenDataType;\n }\n\n if (dataType && typeof dataType === 'object' && 'value' in dataType) {\n if (validTypes.includes(dataType.value as TokenDataType)) {\n return dataType.value as TokenDataType;\n }\n }\n\n const typeString = String(dataType);\n if (validTypes.includes(typeString as TokenDataType)) {\n return typeString as TokenDataType;\n }\n\n throw new Error(`Invalid dataType value: ${JSON.stringify(dataType)}. Must be one of: ${validTypes.join(', ')}`);\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXPTokenDefinitionService } from '@acorex/platform/common';\nimport { AXPDistributedEventListenerProvider } from '@acorex/platform/core';\nimport { Injectable, inject } from '@angular/core';\nimport { clearDynamicTokenProvidersCache } from './dynamic-token.provider';\nimport { RootConfig } from '../../contracts';\n\n//#endregion\n\n//#region ---- Token Refresh Event Listener ----\n\n/**\n * Event listener provider that listens to token entity changes\n * and clears the token cache when tokens are updated, inserted, or deleted.\n */\n@Injectable()\nexport class AXMTokenRefreshProvider implements AXPDistributedEventListenerProvider {\n private readonly tokenService = inject(AXPTokenDefinitionService);\n\n /**\n * Event keys to listen to for token entity changes.\n * Supports wildcard patterns for entity events.\n * Format: entity.{operation}.{ModuleName}.{EntityName}\n * Example: entity.updated.PlatformManagement.Tokens\n */\n key = `entity.*.${RootConfig.module.name}.${RootConfig.entities.token.name}`;\n\n /**\n * Executes when a token entity event occurs (inserted, updated, or deleted).\n * Clears both the token definition service cache and the dynamic providers cache.\n */\n async execute(data: any): Promise<void> {\n // Clear token definition service cache\n this.tokenService.clearDefinitionsCache();\n\n // Clear dynamic token providers cache to force reload\n clearDynamicTokenProvidersCache();\n }\n}\n\n//#endregion\n\n","//#region ---- Imports ----\n\nimport { AXP_TOKEN_DEFINITION_PROVIDER } from '@acorex/platform/common';\nimport { AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER } from '@acorex/platform/core';\nimport { provideCommandSetups } from '@acorex/platform/runtime';\nimport { NgModule, Injector } from '@angular/core';\nimport { AXMTokenProvider } from './token.provider';\nimport { createDynamicTokenProviders } from './dynamic-token.provider';\nimport { AXMTokenRefreshProvider } from './token-refresh.provider';\nimport { RootConfig } from '../../contracts';\n\n//#endregion\n\n//#region ---- Token Module ----\n\n/**\n * Token feature module.\n * Provides token definition providers (static and dynamic) and refresh listeners.\n */\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n // Static token provider (built-in tokens)\n {\n provide: AXP_TOKEN_DEFINITION_PROVIDER,\n useClass: AXMTokenProvider,\n multi: true,\n },\n // Dynamic token provider (tokens from backend)\n {\n provide: AXP_TOKEN_DEFINITION_PROVIDER,\n useFactory: (injector: Injector) => createDynamicTokenProviders(injector),\n deps: [Injector],\n multi: true,\n },\n // Token refresh listener (clears cache on entity changes)\n {\n provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n useClass: AXMTokenRefreshProvider,\n multi: true,\n },\n // Execute token command\n provideCommandSetups([\n {\n key: `${RootConfig.module.name}.${RootConfig.entities.token.name}:Execute`,\n command: () => import('./commands/execute-token.command').then((c) => c.ExecuteTokenCommand),\n },\n ]),\n ],\n})\nexport class AXMTokenModule { }\n\n//#endregion\n\n","import { AXDialogService } from '@acorex/components/dialog';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { inject, Injectable, Optional } from '@angular/core';\nimport { SwUpdate } from '@angular/service-worker';\nimport { RootConfig } from '../../contracts';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPUpdaterService {\n constructor() {\n const swUpdate = inject(SwUpdate, { optional: true });\n const dialogService = inject(AXDialogService);\n const translateService = inject(AXTranslationService);\n\n if (swUpdate?.isEnabled) {\n swUpdate.versionUpdates.subscribe((event) => {\n if (event.type === 'VERSION_READY') {\n console.log('New version available');\n const scope = RootConfig.config.i18n;\n const dialog = dialogService.open({\n icon: 'fa-regular fa-info',\n content: translateService.translateSync('updater.content', { scope: scope }),\n title: translateService.translateSync('updater.title', { scope: scope }),\n type: 'primary',\n orientation: 'horizontal',\n buttons: [\n {\n text: translateService.translateSync('updater.update', { scope: scope }),\n color: 'primary',\n onClick: async (e: any) => {\n try {\n document.location.reload();\n dialog.close();\n } catch (error) {\n console.error(error);\n }\n },\n },\n {\n text: translateService.translateSync('updater.cancel', { scope: scope }),\n color: 'default',\n autofocus: true,\n onClick: (e) => {\n dialog.close();\n },\n },\n ],\n closeButton: false,\n });\n }\n });\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXPUpdaterService } from './updater.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [AXPUpdaterService],\n})\nexport class AXMUpdaterModule {\n constructor(private updaterService: AXPUpdaterService) {}\n}\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './contracts';\n\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Platform Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const PlatformManagementManifest: 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 dependencies: [\n 'SecurityManagement',\n 'ApplicationManagement',\n 'SystemInsight',\n 'TenantManagement',\n 'SubscriptionManagement',\n ],\n};\n\n//#endregion\n\n","import { AXPCommonMenuKeys } from '@acorex/modules/common';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\nimport { inject } from '@angular/core';\n\nimport { RootConfig } from './contracts';\nimport { AXPPlatformManagementMenuKeys } from './contracts/menu.keys';\nimport { AXPPlatformManagementPermissionKeys } from './contracts/permission.keys';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const scope = RootConfig.config.i18n;\n const moduleName = RootConfig.module.name;\n\n context.find(AXPCommonMenuKeys.DataAndContent).addItems([\n {\n name: AXPPlatformManagementMenuKeys.Tokens,\n priority: 14,\n text: `@${scope}:tokens.terms.tokens`,\n path: this.entityService.createPath(moduleName, RootConfig.entities.token.name),\n icon: RootConfig.entities.token.icon,\n policy: {\n features: [moduleName],\n permissions: [AXPPlatformManagementPermissionKeys.PlatformManagement.Token.Management],\n },\n },\n ]);\n }\n}\n","import { AXTranslationService } from '@acorex/core/translation';\nimport { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\nimport { Injectable, Injector } from '@angular/core';\nimport { AXPPlatformManagementPermissionKeys } from './contracts/permission.keys';\nimport { AXPPlatformManagementFeatureKeys } from './contracts/features.keys';\nimport { RootConfig } from './contracts';\n\n@Injectable()\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n private readonly translateService: AXTranslationService;\n\n constructor(private injector: Injector) {\n this.translateService = this.injector.get(AXTranslationService);\n }\n\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPPlatformManagementPermissionKeys.PlatformManagement;\n\n context.addGroup(\n RootConfig.module.name,\n await this.translateService.translateAsync('@platform-management:permissions.manage.title'),\n await this.translateService.translateAsync('@platform-management:permissions.manage.description')\n )\n //\n .addPermission(\n keys.Token.Management,\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.manage.title'),\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.manage.description')\n )\n .addChild(\n keys.Token.View,\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.view.title'),\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.view.description')\n )\n .addChild(\n keys.Token.Create,\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.create.title'),\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.create.description')\n )\n .addChild(\n keys.Token.Edit,\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.edit.title'),\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.edit.description')\n )\n .addChild(\n keys.Token.Delete,\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.delete.title'),\n await this.translateService.translateAsync('@platform-management:tokens.permissions.token.delete.description')\n )\n .endPermission()\n //\n .addPermission(\n keys.MenuManagement.Management,\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.manage.title'),\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.manage.description'),\n [AXPPlatformManagementFeatureKeys.MenuCustomization] // Require menu-customization feature\n )\n .addChild(\n keys.MenuManagement.View,\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.view.title'),\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.view.description')\n )\n .addChild(\n keys.MenuManagement.Create,\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.create.title'),\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.create.description')\n )\n .addChild(\n keys.MenuManagement.Edit,\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.edit.title'),\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.edit.description')\n )\n .addChild(\n keys.MenuManagement.Delete,\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.delete.title'),\n await this.translateService.translateAsync('@platform-management:menu-management.permissions.menu-management.actions.delete.description')\n )\n .endPermission()\n //\n .endGroup();\n }\n}\n","import { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXP_MENU_MIDDLEWARE, AXP_MENU_PROVIDER, AXP_PROTECTED_ROUTE_GUARDS } from '@acorex/platform/common';\nimport { AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex/platform/core';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { provideCommandSetups, provideQuerySetups } from '@acorex/platform/runtime';\nimport { NgModule } from '@angular/core';\nimport { ROUTES, Routes } from '@angular/router';\nimport { AXMEntityLoader } from './entity.provider';\nimport { AXPPlatformManagementFeatureDefinitionProvider } from './feature-definition.provider';\nimport { AXPCustomMenuMiddleware } from './features/menu-management/custom-menu.middleware';\nimport { AXMMenuManagementModule } from './features/menu-management/menu-management.module';\nimport { AXMTokenModule } from './features/token/token.module';\nimport { AXMUpdaterModule } from './features/updater/updater.module';\nimport { PlatformManagementManifest } from './manifest';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\n// Entity Modules\n\n//#region ---- Routes Factory ----\n\nfunction routesFactory(): Routes {\n return [\n {\n path: ':app/platform-management/menus/:scope',\n canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],\n loadComponent: () => AXPRootLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/menu-management/pages/menu-list/menu-list.component').then(\n (c) => c.AXMMenuListComponent,\n ),\n data: { reuse: true },\n },\n ],\n },\n ];\n}\n\n//#endregion\n\n@NgModule({\n imports: [\n AXMUpdaterModule,\n AXMTokenModule,\n AXMMenuManagementModule,\n // Entity Modules\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: AXP_MENU_MIDDLEWARE,\n useClass: AXPCustomMenuMiddleware,\n multi: true,\n },\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: PlatformManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityLoader,\n multi: true,\n },\n {\n provide: AXP_FEATURE_DEFINITION_PROVIDER,\n useClass: AXPPlatformManagementFeatureDefinitionProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: 'PlatformManagement:DataListPickEntityItem',\n command: () =>\n import('./commands/data-list-pick-entity-item.command').then((c) => c.AXPDataListPickEntityItemCommand),\n },\n ]),\n provideQuerySetups([\n {\n key: 'PlatformManagement:ListRegisteredEntities',\n loader: () =>\n import('./features/queries/list-registered-entities.query').then((c) => c.AXMListRegisteredEntitiesQuery),\n },\n {\n key: 'PlatformManagement:ListRegisteredDataSources',\n loader: () =>\n import('./features/queries/list-registered-data-sources.query').then(\n (c) => c.AXMListRegisteredDataSourcesQuery,\n ),\n },\n {\n key: 'PlatformManagement:ListPlatformNavigationForAi',\n loader: () =>\n import('./features/queries/list-platform-navigation-for-ai.query').then(\n (c) => c.AXMListPlatformNavigationForAiQuery,\n ),\n },\n ]),\n ],\n})\nexport class AXMPlatformManagementModule {}\n","import { AXPEntity, AXPEntityAction, AXPEntityCommandScope, AXPWidgetsList, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/contracts';\nimport { RootConfig } from '../../contracts';\n\nexport async function tokenEntityFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.token.name,\n title: RootConfig.entities.token.title,\n icon: RootConfig.entities.token.icon,\n formats: {\n individual: 'Token',\n plural: 'Tokens',\n },\n plugins: [\n {\n name: 'unique-fields',\n options: {\n fields: 'name',\n scope: 'global',\n },\n },\n {\n name: 'category',\n options: {\n appearance: { icon: true, color: true },\n },\n },\n { name: 'history' },\n { name: 'compare' },\n ],\n relatedEntities: [],\n groups: [\n {\n id: 'basic-info',\n title: `@${i18n}:tokens.entities.token.groups.basic-info`,\n },\n {\n id: 'value',\n title: `@${i18n}:tokens.entities.token.groups.value`,\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n options: {\n filter: {\n inline: {\n enabled: true,\n },\n },\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n options: {\n filter: {\n inline: {\n enabled: true,\n },\n },\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'basic-info',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.LargeTextBox,\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n {\n name: 'kind',\n title: `@${i18n}:tokens.entities.token.fields.kind.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'title',\n dataSource: [\n { title: 'Static', value: 'Static' },\n { title: 'Context', value: 'Context' },\n { title: 'Event', value: 'Event' },\n { title: 'Computed', value: 'Computed' },\n { title: 'Secret', value: 'Secret' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'dataType',\n title: `@${i18n}:tokens.entities.token.fields.data-type.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'title',\n dataSource: [\n { title: 'String', value: 'String' },\n { title: 'Integer', value: 'Integer' },\n { title: 'Boolean', value: 'Boolean' },\n { title: 'Decimal', value: 'Decimal' },\n { title: 'DateTime', value: 'DateTime' },\n { title: 'Json', value: 'Json' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n sort: {\n enabled: true,\n },\n },\n },\n {\n name: 'format',\n title: `@${i18n}:tokens.entities.token.fields.format.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'title',\n dataSource: [\n { title: 'None', value: 'None' },\n { title: 'Email', value: 'Email' },\n { title: 'Url', value: 'Url' },\n { title: 'Phone', value: 'Phone' },\n { title: 'Currency', value: 'Currency' },\n { title: 'Percent', value: 'Percent' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n {\n name: 'maskPattern',\n title: `@${i18n}:tokens.entities.token.fields.mask-pattern.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.SelectBox,\n options: {\n valueField: 'value',\n textField: 'title',\n dataSource: [\n { title: 'None', value: 'None' },\n { title: 'Partial', value: 'Partial' },\n { title: 'Full', value: 'Full' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n {\n name: 'expression',\n title: `@${i18n}:tokens.entities.token.fields.expression.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Advanced.CodeEditor,\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n {\n name: 'sampleValue',\n title: `@${i18n}:tokens.entities.token.fields.sample-value.title`,\n groupId: 'value',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsList.Editors.TextBox,\n options: {\n placeholder: `@${i18n}:tokens.entities.token.fields.sample-value.placeholder`,\n },\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n {\n name: 'isSensitive',\n title: `@${i18n}:tokens.entities.token.fields.is-sensitive.title`,\n groupId: 'value',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n },\n options: {\n filter: {\n advance: {\n enabled: true,\n },\n },\n },\n },\n ],\n columns: [\n { name: 'name' },\n { name: 'title' },\n { name: 'kind' },\n { name: 'dataType' },\n { name: 'format' },\n { name: 'maskPattern' },\n { name: 'expression' },\n { name: 'sampleValue' },\n ],\n\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'value',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'kind',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'dataType',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'format',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'maskPattern',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'expression',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'sampleValue',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'isSensitive',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'value',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'kind',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'dataType',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'format',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'maskPattern',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'expression',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'sampleValue',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'isSensitive',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'basic-info',\n },\n {\n id: 'value',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'kind',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'dataType',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'format',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'maskPattern',\n layout: {\n positions: {\n lg: {\n colSpan: 3,\n },\n },\n },\n },\n {\n name: 'expression',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'sampleValue',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'isSensitive',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [\n ...entityMasterRecordActions(),\n {\n title: `@${i18n}:tokens.entities.token.actions.execute.title`,\n command: {\n name: `${RootConfig.module.name}.${RootConfig.entities.token.name}:Execute`,\n options: {\n tokenName: '{{ context.eval(\"name\") }}',\n tokenTitle: '{{ context.eval(\"title\", { pipes: [\"translate\"] }) }}',\n },\n },\n priority: 'primary',\n type: 'action',\n icon: 'fa-light fa-play',\n scope: AXPEntityCommandScope.Individual,\n } as AXPEntityAction,\n ],\n },\n list: {\n actions: [\n ...entityMasterCrudActions(),\n {\n title: `@${i18n}:tokens.entities.token.actions.execute.title`,\n command: {\n name: `${RootConfig.module.name}.${RootConfig.entities.token.name}:Execute`,\n options: {\n tokenName: '{{ context.eval(\"name\") }}',\n tokenTitle: '{{ context.eval(\"title\", { pipes: [\"translate\"] }) }}',\n },\n },\n priority: 'primary',\n type: 'action',\n icon: 'fa-light fa-play',\n scope: AXPEntityCommandScope.Individual,\n } as AXPEntityAction,\n ],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","/** MIME type for native drag payloads carrying `AXPWorkflowActivityPaletteItem` JSON. */\nexport const AXP_WORKFLOW_PALETTE_MIME = 'application/x-axp-workflow-palette-item';\n","import type {\n AXPWorkflowActivityPaletteItem,\n AXPWorkflowArrangeAlignment,\n AXPWorkflowArrangeDiagramOptions,\n AXPWorkflowArrangeDirection,\n AXPWorkflowConnectRequest,\n AXPWorkflowConnectionPreviewStyle,\n AXPWorkflowConnector,\n AXPWorkflowConnectorRouteOptions,\n AXPWorkflowDiagramModel,\n AXPWorkflowNode,\n AXPWorkflowPoint,\n AXPWorkflowPort,\n AXPWorkflowPortSide,\n AXPWorkflowRect,\n AXPWorkflowSize,\n} from './workflow-designer.types';\n\n//#region ---- Ids ----\n\nlet idCounter = 0;\n\nexport function createWorkflowNodeId(): string {\n idCounter += 1;\n return `wf-node-${Date.now()}-${idCounter}`;\n}\n\nexport function createWorkflowConnectorId(): string {\n idCounter += 1;\n return `wf-conn-${Date.now()}-${idCounter}`;\n}\n\nexport function createWorkflowPortId(prefix: string): string {\n idCounter += 1;\n return `${prefix}-port-${idCounter}`;\n}\n\n//#endregion\n\n//#region ---- Defaults ----\n\nconst DEFAULT_SIZE: AXPWorkflowSize = { width: 180, height: 72 };\n\nconst DEFAULT_INBOUND: Omit<AXPWorkflowPort, 'id' | 'kind'>[] = [{ side: 'left', ratio: 0.5, key: 'in' }];\n\nconst DEFAULT_OUTBOUND: Omit<AXPWorkflowPort, 'id' | 'kind'>[] = [{ side: 'right', ratio: 0.5, key: 'out' }];\n\nexport function cloneDiagram(model: AXPWorkflowDiagramModel): AXPWorkflowDiagramModel {\n return {\n nodes: model.nodes.map((n) => ({\n ...n,\n position: { ...n.position },\n size: { ...n.size },\n inboundPorts: n.inboundPorts.map((p) => ({\n ...p,\n data: p.data ? { ...p.data } : undefined,\n })),\n outboundPorts: n.outboundPorts.map((p) => ({\n ...p,\n data: p.data ? { ...p.data } : undefined,\n })),\n data: n.data ? { ...n.data } : undefined,\n })),\n connectors: model.connectors.map((c) => ({\n ...c,\n data: c.data ? { ...c.data } : undefined,\n })),\n data: model.data ? { ...model.data } : undefined,\n };\n}\n\nexport function createPortsFromPalette(\n nodeId: string,\n item: AXPWorkflowActivityPaletteItem,\n): { inbound: AXPWorkflowPort[]; outbound: AXPWorkflowPort[] } {\n const inboundSrc = item.inboundPorts !== undefined ? item.inboundPorts : DEFAULT_INBOUND;\n const outboundSrc = item.outboundPorts !== undefined ? item.outboundPorts : DEFAULT_OUTBOUND;\n const inbound: AXPWorkflowPort[] = inboundSrc.map((p) => ({\n ...p,\n id: createWorkflowPortId(`${nodeId}-in`),\n kind: 'inbound' as const,\n data: p.data ? { ...p.data } : undefined,\n }));\n const outbound: AXPWorkflowPort[] = outboundSrc.map((p) => ({\n ...p,\n id: createWorkflowPortId(`${nodeId}-out`),\n kind: 'outbound' as const,\n data: p.data ? { ...p.data } : undefined,\n }));\n return { inbound, outbound };\n}\n\nexport function createNodeFromPaletteItem(\n item: AXPWorkflowActivityPaletteItem,\n position: AXPWorkflowPoint,\n): AXPWorkflowNode {\n const id = createWorkflowNodeId();\n const { inbound, outbound } = createPortsFromPalette(id, item);\n const shape = item.shape ?? 'rounded-rectangle';\n const size = item.size ? { ...item.size } : { ...DEFAULT_SIZE };\n if (shape === 'circle') {\n const d = Math.min(size.width, size.height);\n size.width = d;\n size.height = d;\n }\n return {\n id,\n type: item.type,\n title: item.title,\n icon: item.icon,\n shape,\n position: { ...position },\n size: { ...size },\n inboundPorts: inbound,\n outboundPorts: outbound,\n data: item.data ? { ...item.data } : undefined,\n lockAspectRatio: item.lockAspectRatio ?? shape === 'circle',\n snapToGrid: item.snapToGrid,\n color: item.color,\n };\n}\n\n/**\n * Parses drag `dataTransfer` JSON into a partial palette item (requires `type`).\n * Merge with catalog (`paletteItems`) to obtain `title` and defaults.\n */\nexport function parsePaletteItemDragPayload(\n raw: string | undefined,\n): (Partial<AXPWorkflowActivityPaletteItem> & { type: string }) | null {\n if (!raw) return null;\n try {\n const o = JSON.parse(raw) as Partial<AXPWorkflowActivityPaletteItem>;\n if (typeof o.type !== 'string') return null;\n return o as Partial<AXPWorkflowActivityPaletteItem> & { type: string };\n } catch {\n return null;\n }\n}\n\n//#endregion\n\n//#region ---- Snap ----\n\nexport function snapScalar(value: number, grid: number): number {\n if (grid <= 0) return value;\n return Math.round(value / grid) * grid;\n}\n\nexport function snapPoint(point: AXPWorkflowPoint, grid: number): AXPWorkflowPoint {\n return { x: snapScalar(point.x, grid), y: snapScalar(point.y, grid) };\n}\n\n//#endregion\n\n//#region ---- Port anchor (node-local, top-left origin) ----\n\n/**\n * Inbound/outbound anchor on an axis-aligned ellipse inscribed in `w`×`h` (centered),\n * so ports sit on the true perimeter for circle/ellipse nodes.\n */\nfunction portAnchorOnEllipsePerimeter(\n w: number,\n h: number,\n side: AXPWorkflowPortSide,\n ratio: number,\n): AXPWorkflowPoint {\n const r = Math.min(0.999, Math.max(0.001, ratio));\n const cx = w * 0.5;\n const cy = h * 0.5;\n const rx = w * 0.5;\n const ry = h * 0.5;\n let theta = 0;\n switch (side) {\n case 'right':\n theta = -Math.PI / 2 + Math.PI * r;\n break;\n case 'left':\n theta = Math.PI / 2 + Math.PI * r;\n break;\n case 'top':\n theta = Math.PI + Math.PI * r;\n break;\n case 'bottom':\n theta = Math.PI * r;\n break;\n default:\n theta = 0;\n }\n return {\n x: cx + rx * Math.cos(theta),\n y: cy + ry * Math.sin(theta),\n };\n}\n\nfunction portAnchorOnBoxEdge(w: number, h: number, side: AXPWorkflowPortSide, ratio: number): AXPWorkflowPoint {\n const r = Math.min(0.999, Math.max(0.001, ratio));\n switch (side) {\n case 'top':\n return { x: w * r, y: 0 };\n case 'bottom':\n return { x: w * r, y: h };\n case 'left':\n return { x: 0, y: h * r };\n case 'right':\n return { x: w, y: h * r };\n default:\n return { x: w * 0.5, y: h * 0.5 };\n }\n}\n\n/** Diamond perimeter of a rotated square inside the node bounds. */\nfunction portAnchorOnDiamondPerimeter(\n w: number,\n h: number,\n side: AXPWorkflowPortSide,\n ratio: number,\n): AXPWorkflowPoint {\n const r = Math.min(0.999, Math.max(0.001, ratio));\n const top: AXPWorkflowPoint = { x: w * 0.5, y: 0 };\n const right: AXPWorkflowPoint = { x: w, y: h * 0.5 };\n const bottom: AXPWorkflowPoint = { x: w * 0.5, y: h };\n const left: AXPWorkflowPoint = { x: 0, y: h * 0.5 };\n const lerp = (a: AXPWorkflowPoint, b: AXPWorkflowPoint, t: number): AXPWorkflowPoint => ({\n x: a.x + (b.x - a.x) * t,\n y: a.y + (b.y - a.y) * t,\n });\n\n switch (side) {\n case 'top':\n return r <= 0.5 ? lerp(left, top, r * 2) : lerp(top, right, (r - 0.5) * 2);\n case 'right':\n return r <= 0.5 ? lerp(top, right, r * 2) : lerp(right, bottom, (r - 0.5) * 2);\n case 'bottom':\n return r <= 0.5 ? lerp(right, bottom, r * 2) : lerp(bottom, left, (r - 0.5) * 2);\n case 'left':\n return r <= 0.5 ? lerp(bottom, left, r * 2) : lerp(left, top, (r - 0.5) * 2);\n default:\n return { x: w * 0.5, y: h * 0.5 };\n }\n}\n\nexport function portAnchorOnNode(node: AXPWorkflowNode, port: AXPWorkflowPort): AXPWorkflowPoint {\n const { width: w, height: h } = node.size;\n const r = Math.min(0.999, Math.max(0.001, port.ratio));\n if (node.shape === 'circle' || node.shape === 'ellipse') {\n return portAnchorOnEllipsePerimeter(w, h, port.side, r);\n }\n if (node.shape === 'diamond') {\n return portAnchorOnDiamondPerimeter(w, h, port.side, r);\n }\n return portAnchorOnBoxEdge(w, h, port.side, r);\n}\n\nexport function portCanvasPosition(node: AXPWorkflowNode, port: AXPWorkflowPort): AXPWorkflowPoint {\n const local = portAnchorOnNode(node, port);\n return { x: node.position.x + local.x, y: node.position.y + local.y };\n}\n\n//#endregion\n\n//#region ---- Connector path: obstacle-aware orthogonal router ----\n\ninterface InflatedRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nfunction inflateRect(r: AXPWorkflowRect, padding: number): InflatedRect {\n return {\n x: r.position.x - padding,\n y: r.position.y - padding,\n width: r.size.width + padding * 2,\n height: r.size.height + padding * 2,\n };\n}\n\nfunction pointInsideRect(p: AXPWorkflowPoint, r: InflatedRect): boolean {\n return p.x > r.x && p.x < r.x + r.width && p.y > r.y && p.y < r.y + r.height;\n}\n\n/**\n * Returns true if an axis-aligned segment crosses the interior of any obstacle.\n * Endpoints that only touch the rectangle's edge are not considered a crossing.\n */\nfunction segmentCrossesObstacles(a: AXPWorkflowPoint, b: AXPWorkflowPoint, obstacles: InflatedRect[]): boolean {\n const minX = Math.min(a.x, b.x);\n const maxX = Math.max(a.x, b.x);\n const minY = Math.min(a.y, b.y);\n const maxY = Math.max(a.y, b.y);\n\n const tolerance = 0.5;\n\n for (const r of obstacles) {\n const right = r.x + r.width;\n const bottom = r.y + r.height;\n\n if (maxX <= r.x + tolerance || minX >= right - tolerance) continue;\n if (maxY <= r.y + tolerance || minY >= bottom - tolerance) continue;\n\n if (Math.abs(a.y - b.y) < 0.0001) {\n if (a.y > r.y + tolerance && a.y < bottom - tolerance) return true;\n } else if (Math.abs(a.x - b.x) < 0.0001) {\n if (a.x > r.x + tolerance && a.x < right - tolerance) return true;\n } else {\n return true;\n }\n }\n return false;\n}\n\nfunction stepOutward(p: AXPWorkflowPoint, side: AXPWorkflowPortSide, length: number): AXPWorkflowPoint {\n switch (side) {\n case 'left':\n return { x: p.x - length, y: p.y };\n case 'right':\n return { x: p.x + length, y: p.y };\n case 'top':\n return { x: p.x, y: p.y - length };\n case 'bottom':\n return { x: p.x, y: p.y + length };\n }\n}\n\nfunction oppositeSide(side: AXPWorkflowPortSide): AXPWorkflowPortSide {\n switch (side) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n }\n}\n\nfunction sideAxis(side: AXPWorkflowPortSide): 'h' | 'v' {\n return side === 'left' || side === 'right' ? 'h' : 'v';\n}\n\n/**\n * Removes consecutive duplicate points and collapses collinear intermediate waypoints.\n */\nfunction simplifyWaypoints(points: AXPWorkflowPoint[]): AXPWorkflowPoint[] {\n const deduped: AXPWorkflowPoint[] = [];\n for (const p of points) {\n const last = deduped[deduped.length - 1];\n if (last && Math.abs(last.x - p.x) < 0.001 && Math.abs(last.y - p.y) < 0.001) continue;\n deduped.push(p);\n }\n if (deduped.length <= 2) return deduped;\n\n const out: AXPWorkflowPoint[] = [deduped[0]];\n for (let i = 1; i < deduped.length - 1; i++) {\n const prev = deduped[i - 1];\n const curr = deduped[i];\n const next = deduped[i + 1];\n const collinearH = Math.abs(prev.y - curr.y) < 0.001 && Math.abs(curr.y - next.y) < 0.001;\n const collinearV = Math.abs(prev.x - curr.x) < 0.001 && Math.abs(curr.x - next.x) < 0.001;\n if (!collinearH && !collinearV) out.push(curr);\n }\n out.push(deduped[deduped.length - 1]);\n return out;\n}\n\n/**\n * Generates candidate waypoint sets that connect `a` to `b` while respecting the entry/exit axes.\n * Strategies are ordered from \"most natural\" to \"more elaborate detour\".\n */\nfunction generateRouteStrategies(\n a: AXPWorkflowPoint,\n aAxis: 'h' | 'v',\n b: AXPWorkflowPoint,\n bAxis: 'h' | 'v',\n obstacles: InflatedRect[],\n): AXPWorkflowPoint[][] {\n const strategies: AXPWorkflowPoint[][] = [];\n const midX = (a.x + b.x) / 2;\n const midY = (a.y + b.y) / 2;\n\n const obstacleXCuts: number[] = [];\n const obstacleYCuts: number[] = [];\n for (const o of obstacles) {\n obstacleXCuts.push(o.x - 6);\n obstacleXCuts.push(o.x + o.width + 6);\n obstacleYCuts.push(o.y - 6);\n obstacleYCuts.push(o.y + o.height + 6);\n }\n obstacleXCuts.sort((x, y) => Math.abs(x - midX) - Math.abs(y - midX));\n obstacleYCuts.sort((x, y) => Math.abs(x - midY) - Math.abs(y - midY));\n\n if (aAxis === 'h' && bAxis === 'h') {\n strategies.push([\n { x: midX, y: a.y },\n { x: midX, y: b.y },\n ]);\n for (const mx of obstacleXCuts) {\n strategies.push([\n { x: mx, y: a.y },\n { x: mx, y: b.y },\n ]);\n }\n for (const my of obstacleYCuts) {\n strategies.push([\n { x: a.x, y: my },\n { x: b.x, y: my },\n ]);\n }\n } else if (aAxis === 'v' && bAxis === 'v') {\n strategies.push([\n { x: a.x, y: midY },\n { x: b.x, y: midY },\n ]);\n for (const my of obstacleYCuts) {\n strategies.push([\n { x: a.x, y: my },\n { x: b.x, y: my },\n ]);\n }\n for (const mx of obstacleXCuts) {\n strategies.push([\n { x: mx, y: a.y },\n { x: mx, y: b.y },\n ]);\n }\n } else if (aAxis === 'h' && bAxis === 'v') {\n strategies.push([{ x: b.x, y: a.y }]);\n for (const my of obstacleYCuts) {\n strategies.push([\n { x: a.x, y: my },\n { x: b.x, y: my },\n ]);\n }\n } else {\n strategies.push([{ x: a.x, y: b.y }]);\n for (const mx of obstacleXCuts) {\n strategies.push([\n { x: mx, y: a.y },\n { x: mx, y: b.y },\n ]);\n }\n }\n\n return strategies;\n}\n\n/**\n * Picks the first strategy whose segments do not cross any obstacle.\n * Falls back to the most natural strategy when every candidate is blocked\n * (best-effort: keeps the connector readable even in tight layouts).\n */\nfunction pickCleanStrategy(\n a: AXPWorkflowPoint,\n b: AXPWorkflowPoint,\n strategies: AXPWorkflowPoint[][],\n obstacles: InflatedRect[],\n): AXPWorkflowPoint[] {\n for (const wp of strategies) {\n const full = [a, ...wp, b];\n let clean = true;\n for (let i = 0; i < full.length - 1; i++) {\n if (segmentCrossesObstacles(full[i], full[i + 1], obstacles)) {\n clean = false;\n break;\n }\n }\n if (clean) return wp;\n }\n return strategies[0] ?? [];\n}\n\n/**\n * Routes an obstacle-aware orthogonal path between two free-space points.\n * The returned array includes the start (`from`), stub-outs from each port,\n * intermediate waypoints, and the end (`to`).\n *\n * Obstacles whose inflated rect already contains a stub point are dropped so\n * that source/target nodes can still emit/receive their connector without the\n * router fighting itself — but the middle of the path still routes around them.\n */\nexport function routeOrthogonalConnector(\n from: AXPWorkflowPoint,\n sourceSide: AXPWorkflowPortSide,\n to: AXPWorkflowPoint,\n targetSide: AXPWorkflowPortSide,\n obstacles: AXPWorkflowRect[] = [],\n options: { stub?: number; obstaclePadding?: number } = {},\n): AXPWorkflowPoint[] {\n const stub = Math.max(0, options.stub ?? 18);\n const padding = Math.max(0, options.obstaclePadding ?? 10);\n\n const aStub = stepOutward(from, sourceSide, stub);\n const bStub = stepOutward(to, targetSide, stub);\n\n const inflated = obstacles.map((o) => inflateRect(o, padding));\n const safe = inflated.filter((o) => !pointInsideRect(aStub, o) && !pointInsideRect(bStub, o));\n\n const strategies = generateRouteStrategies(aStub, sideAxis(sourceSide), bStub, sideAxis(targetSide), safe);\n const middle = pickCleanStrategy(aStub, bStub, strategies, safe);\n\n return simplifyWaypoints([from, aStub, ...middle, bStub, to]);\n}\n\n/** Renders waypoints as straight `L` segments. */\nfunction waypointsToOrthogonalPath(points: AXPWorkflowPoint[]): string {\n if (points.length < 2) return '';\n const cmds: string[] = [`M ${points[0].x} ${points[0].y}`];\n for (let i = 1; i < points.length; i++) {\n cmds.push(`L ${points[i].x} ${points[i].y}`);\n }\n return cmds.join(' ');\n}\n\n/** Renders waypoints with rounded corners (quadratic curves) between segments. */\nfunction waypointsToRoundedPath(points: AXPWorkflowPoint[], radius: number): string {\n if (points.length < 2) return '';\n if (points.length === 2) return `M ${points[0].x} ${points[0].y} L ${points[1].x} ${points[1].y}`;\n\n const cmds: string[] = [`M ${points[0].x} ${points[0].y}`];\n for (let i = 1; i < points.length - 1; i++) {\n const prev = points[i - 1];\n const curr = points[i];\n const next = points[i + 1];\n\n const inDx = Math.sign(curr.x - prev.x);\n const inDy = Math.sign(curr.y - prev.y);\n const outDx = Math.sign(next.x - curr.x);\n const outDy = Math.sign(next.y - curr.y);\n\n const segIn = Math.hypot(curr.x - prev.x, curr.y - prev.y);\n const segOut = Math.hypot(next.x - curr.x, next.y - curr.y);\n const r = Math.max(0, Math.min(radius, segIn * 0.5, segOut * 0.5));\n\n const cornerStart = { x: curr.x - inDx * r, y: curr.y - inDy * r };\n const cornerEnd = { x: curr.x + outDx * r, y: curr.y + outDy * r };\n\n cmds.push(`L ${cornerStart.x} ${cornerStart.y}`);\n cmds.push(`Q ${curr.x} ${curr.y} ${cornerEnd.x} ${cornerEnd.y}`);\n }\n const last = points[points.length - 1];\n cmds.push(`L ${last.x} ${last.y}`);\n return cmds.join(' ');\n}\n\n/**\n * Builds the SVG `d` string for a connector. When `options.obstacles` is supplied,\n * orthogonal/rounded routes detour around the obstacle rectangles instead of\n * passing through them. The `straight` style always draws a direct line.\n */\nexport function connectorPath(\n from: AXPWorkflowPoint,\n to: AXPWorkflowPoint,\n style: AXPWorkflowConnectionPreviewStyle,\n sourceSide: AXPWorkflowPortSide,\n options: AXPWorkflowConnectorRouteOptions = {},\n): string {\n if (style === 'straight') {\n return `M ${from.x} ${from.y} L ${to.x} ${to.y}`;\n }\n\n const targetSide = options.targetSide ?? oppositeSide(sourceSide);\n const waypoints = routeOrthogonalConnector(from, sourceSide, to, targetSide, options.obstacles ?? [], {\n stub: options.stub,\n obstaclePadding: options.obstaclePadding,\n });\n\n if (style === 'orthogonal') {\n return waypointsToOrthogonalPath(waypoints);\n }\n return waypointsToRoundedPath(waypoints, options.cornerRadius ?? 14);\n}\n\n//#endregion\n\n//#region ---- Model helpers ----\n\nexport function findNode(model: AXPWorkflowDiagramModel, nodeId: string): AXPWorkflowNode | undefined {\n return model.nodes.find((n) => n.id === nodeId);\n}\n\nexport function findPort(\n node: AXPWorkflowNode,\n portId: string,\n): { port: AXPWorkflowPort; inbound: boolean } | undefined {\n const pi = node.inboundPorts.find((p) => p.id === portId);\n if (pi) return { port: pi, inbound: true };\n const po = node.outboundPorts.find((p) => p.id === portId);\n if (po) return { port: po, inbound: false };\n return undefined;\n}\n\nexport function findConnector(model: AXPWorkflowDiagramModel, id: string): AXPWorkflowConnector | undefined {\n return model.connectors.find((c) => c.id === id);\n}\n\n/**\n * Built-in rules: valid ports, not disabled, optional single inbound attachment, no duplicate edge.\n */\nexport function defaultCanConnectRequest(request: AXPWorkflowConnectRequest): boolean {\n const { model, sourceNodeId, sourcePortId, targetNodeId, targetPortId } = request;\n const sn = findNode(model, sourceNodeId);\n const tn = findNode(model, targetNodeId);\n if (!sn || !tn) return false;\n const spInfo = findPort(sn, sourcePortId);\n const tpInfo = findPort(tn, targetPortId);\n if (!spInfo || !tpInfo) return false;\n const sp = spInfo.port;\n const tp = tpInfo.port;\n if (sp.kind !== 'outbound' || tp.kind !== 'inbound') return false;\n if (sp.disabled || tp.disabled) return false;\n\n const duplicate = model.connectors.some(\n (c) =>\n c.sourceNodeId === sourceNodeId &&\n c.sourcePortId === sourcePortId &&\n c.targetNodeId === targetNodeId &&\n c.targetPortId === targetPortId,\n );\n if (duplicate) return false;\n\n if (!tp.allowMultiple) {\n const inboundTaken = model.connectors.some(\n (c) => c.targetNodeId === targetNodeId && c.targetPortId === targetPortId,\n );\n if (inboundTaken) return false;\n }\n\n return true;\n}\n\n//#endregion\n\n//#region ---- Auto layout ----\n\nconst DEFAULT_ARRANGE_MARGIN = 80;\n// Defaults leave room for inbound/outbound port labels that sit ~18px outside the\n// port anchor and may extend further as text. Larger gaps keep adjacent nodes from\n// having their port labels collide with each other or with routed connectors.\nconst DEFAULT_ARRANGE_PRIMARY_GAP = 160;\nconst DEFAULT_ARRANGE_CROSS_GAP = 110;\nconst DEFAULT_ARRANGE_COMPONENT_GAP = 220;\n\ninterface ArrangeRuntime {\n direction: AXPWorkflowArrangeDirection;\n alignment: AXPWorkflowArrangeAlignment;\n primaryGap: number;\n crossGap: number;\n componentGap: number;\n margin: number;\n grid: number;\n origin: AXPWorkflowPoint;\n reduceCrossings: boolean;\n groupDisconnected: boolean;\n}\n\n/**\n * Auto-arranges workflow nodes in a layered layout (left→right by default).\n * Honors `direction`, `alignment`, `origin`, `nodeIds`, and crossing-reduction options.\n */\nexport function arrangeWorkflowDiagram(\n model: AXPWorkflowDiagramModel,\n options: AXPWorkflowArrangeDiagramOptions = {},\n): AXPWorkflowDiagramModel {\n if (model.nodes.length === 0) {\n return model;\n }\n\n const margin = options.margin ?? DEFAULT_ARRANGE_MARGIN;\n const runtime: ArrangeRuntime = {\n direction: options.direction ?? 'horizontal',\n alignment: options.alignment ?? 'center',\n primaryGap: options.horizontalGap ?? DEFAULT_ARRANGE_PRIMARY_GAP,\n crossGap: options.verticalGap ?? DEFAULT_ARRANGE_CROSS_GAP,\n componentGap: Math.max(options.verticalGap ?? DEFAULT_ARRANGE_CROSS_GAP, DEFAULT_ARRANGE_COMPONENT_GAP),\n margin,\n grid: options.gridSize ?? 0,\n origin: options.origin ?? { x: margin, y: margin },\n reduceCrossings: options.reduceCrossings ?? true,\n groupDisconnected: options.groupDisconnected ?? true,\n };\n\n const subsetIds =\n options.nodeIds && options.nodeIds.length > 0\n ? new Set(options.nodeIds.filter((id) => model.nodes.some((n) => n.id === id)))\n : null;\n const targetNodes = subsetIds ? model.nodes.filter((n) => subsetIds.has(n.id)) : model.nodes;\n if (targetNodes.length === 0) {\n return model;\n }\n\n const targetIds = new Set(targetNodes.map((n) => n.id));\n const relevantConnectors = model.connectors.filter(\n (c) => targetIds.has(c.sourceNodeId) && targetIds.has(c.targetNodeId),\n );\n\n const components = splitComponents(targetNodes, relevantConnectors, runtime, options.startNodeId);\n\n const positionById = new Map<string, AXPWorkflowPoint>();\n let crossCursor = runtime.direction === 'horizontal' ? runtime.origin.y : runtime.origin.x;\n\n for (const component of components) {\n layoutComponent(component, positionById, runtime, crossCursor);\n crossCursor += component.crossSize + runtime.componentGap;\n }\n\n return {\n ...model,\n nodes: model.nodes.map((n) => {\n const next = positionById.get(n.id);\n return next ? { ...n, position: { ...next } } : n;\n }),\n };\n}\n\ninterface LayoutComponent {\n nodes: AXPWorkflowNode[];\n ranks: AXPWorkflowNode[][];\n crossSize: number;\n}\n\nfunction splitComponents(\n nodes: AXPWorkflowNode[],\n connectors: AXPWorkflowConnector[],\n runtime: ArrangeRuntime,\n startNodeId: string | undefined,\n): LayoutComponent[] {\n const undirected = new Map<string, Set<string>>();\n const outgoing = new Map<string, Set<string>>();\n const incomingCount = new Map<string, number>();\n for (const n of nodes) {\n undirected.set(n.id, new Set());\n outgoing.set(n.id, new Set());\n incomingCount.set(n.id, 0);\n }\n for (const c of connectors) {\n if (!undirected.has(c.sourceNodeId) || !undirected.has(c.targetNodeId)) continue;\n undirected.get(c.sourceNodeId)!.add(c.targetNodeId);\n undirected.get(c.targetNodeId)!.add(c.sourceNodeId);\n outgoing.get(c.sourceNodeId)!.add(c.targetNodeId);\n incomingCount.set(c.targetNodeId, (incomingCount.get(c.targetNodeId) ?? 0) + 1);\n }\n\n const sortedNodes = [...nodes].sort(compareNodesForLayout);\n if (startNodeId) {\n sortedNodes.sort((a, b) => {\n if (a.id === startNodeId) return -1;\n if (b.id === startNodeId) return 1;\n return 0;\n });\n }\n\n const visited = new Set<string>();\n const componentBuckets: AXPWorkflowNode[][] = [];\n\n if (runtime.groupDisconnected) {\n for (const seed of sortedNodes) {\n if (visited.has(seed.id)) continue;\n const bucket: AXPWorkflowNode[] = [];\n const queue: string[] = [seed.id];\n visited.add(seed.id);\n while (queue.length > 0) {\n const id = queue.shift()!;\n const node = nodes.find((n) => n.id === id);\n if (node) bucket.push(node);\n for (const next of undirected.get(id) ?? []) {\n if (!visited.has(next)) {\n visited.add(next);\n queue.push(next);\n }\n }\n }\n componentBuckets.push(bucket);\n }\n } else {\n componentBuckets.push([...nodes]);\n }\n\n const components: LayoutComponent[] = [];\n for (const bucket of componentBuckets) {\n const bucketIds = new Set(bucket.map((n) => n.id));\n const bucketConnectors = connectors.filter(\n (c) => bucketIds.has(c.sourceNodeId) && bucketIds.has(c.targetNodeId),\n );\n const ranks = computeRanks(bucket, outgoing, incomingCount, startNodeId);\n if (runtime.reduceCrossings) {\n reduceCrossingsInPlace(ranks, bucketConnectors, runtime.direction);\n } else {\n for (const rank of ranks) rank.sort(compareNodesForLayout);\n }\n const crossSize = estimateCrossSize(ranks, runtime);\n components.push({ nodes: bucket, ranks, crossSize });\n }\n\n return components;\n}\n\nfunction computeRanks(\n nodes: AXPWorkflowNode[],\n outgoing: Map<string, Set<string>>,\n incomingCount: Map<string, number>,\n startNodeId: string | undefined,\n): AXPWorkflowNode[][] {\n const rank = new Map<string, number>();\n const queue: string[] = [];\n\n const enqueueRoots = (ids: string[]): void => {\n for (const id of ids) {\n if (!rank.has(id)) {\n rank.set(id, 0);\n queue.push(id);\n }\n }\n };\n\n const localIds = new Set(nodes.map((n) => n.id));\n if (startNodeId && localIds.has(startNodeId)) {\n enqueueRoots([startNodeId]);\n } else {\n enqueueRoots(nodes.filter((n) => (incomingCount.get(n.id) ?? 0) === 0).map((n) => n.id));\n }\n\n // First-visit BFS handles cycles safely (shortest-distance ranking).\n const maxSteps = nodes.length * (nodes.length + 1);\n let steps = 0;\n while (queue.length > 0 && steps < maxSteps) {\n steps += 1;\n const id = queue.shift()!;\n const base = rank.get(id) ?? 0;\n for (const targetId of outgoing.get(id) ?? []) {\n if (!localIds.has(targetId) || rank.has(targetId)) continue;\n rank.set(targetId, base + 1);\n queue.push(targetId);\n }\n }\n\n let orphanRank = nodes.reduce((max, n) => Math.max(max, rank.get(n.id) ?? 0), 0) + 1;\n const unranked = nodes.filter((n) => !rank.has(n.id)).sort(compareNodesForLayout);\n for (const n of unranked) {\n rank.set(n.id, orphanRank);\n orphanRank += 1;\n }\n\n const byRank = new Map<number, AXPWorkflowNode[]>();\n for (const n of nodes) {\n const r = rank.get(n.id) ?? 0;\n const bucket = byRank.get(r) ?? [];\n bucket.push(n);\n byRank.set(r, bucket);\n }\n return [...byRank.keys()].sort((a, b) => a - b).map((r) => byRank.get(r) ?? []);\n}\n\n/**\n * Returns a 0–1 fraction along the cross axis (vertical for horizontal flow) where the port sits on the node.\n */\nfunction portCrossAxisFraction(\n node: AXPWorkflowNode,\n portId: string,\n direction: AXPWorkflowArrangeDirection,\n): number {\n const info = findPort(node, portId);\n if (!info) {\n return 0.5;\n }\n const port = info.port;\n const r = Math.min(0.999, Math.max(0.001, port.ratio));\n if (direction === 'horizontal') {\n switch (port.side) {\n case 'left':\n case 'right':\n return r;\n case 'top':\n return 0;\n case 'bottom':\n return 1;\n }\n }\n switch (port.side) {\n case 'top':\n case 'bottom':\n return r;\n case 'left':\n return 0;\n case 'right':\n return 1;\n }\n return r;\n}\n\n/**\n * Barycenter heuristic with port-aware weights: targets inherit both their predecessor's rank index\n * and the source port's cross-axis position so top/bottom (or left/right) ports map to matching targets.\n */\nfunction reduceCrossingsInPlace(\n ranks: AXPWorkflowNode[][],\n connectors: AXPWorkflowConnector[],\n direction: AXPWorkflowArrangeDirection,\n): void {\n if (ranks.length === 0) return;\n ranks[0] = [...ranks[0]].sort(compareNodesForLayout);\n\n const nodeById = new Map<string, AXPWorkflowNode>();\n for (const rank of ranks) {\n for (const node of rank) {\n nodeById.set(node.id, node);\n }\n }\n\n const indexInRank: Map<string, number>[] = ranks.map((rank) => {\n const map = new Map<string, number>();\n for (let i = 0; i < rank.length; i++) map.set(rank[i].id, i);\n return map;\n });\n\n for (let r = 1; r < ranks.length; r++) {\n const predRank = ranks[r - 1];\n const predIndex = indexInRank[r - 1];\n const incomingFromPred = new Map<string, number[]>();\n const predIds = new Set(predRank.map((n) => n.id));\n for (const c of connectors) {\n if (!predIds.has(c.sourceNodeId)) {\n continue;\n }\n const idx = predIndex.get(c.sourceNodeId);\n if (idx === undefined) {\n continue;\n }\n const sourceNode = nodeById.get(c.sourceNodeId);\n const portFraction = sourceNode ? portCrossAxisFraction(sourceNode, c.sourcePortId, direction) : 0.5;\n // Keep port ordering within the same predecessor index (fraction ∈ [0, 1)).\n const weight = idx + portFraction;\n const arr = incomingFromPred.get(c.targetNodeId) ?? [];\n arr.push(weight);\n incomingFromPred.set(c.targetNodeId, arr);\n }\n ranks[r] = [...ranks[r]].sort((a, b) => {\n const ia = incomingFromPred.get(a.id) ?? [];\n const ib = incomingFromPred.get(b.id) ?? [];\n const ba = ia.length > 0 ? ia.reduce((s, v) => s + v, 0) / ia.length : Number.POSITIVE_INFINITY;\n const bb = ib.length > 0 ? ib.reduce((s, v) => s + v, 0) / ib.length : Number.POSITIVE_INFINITY;\n if (ba !== bb) return ba - bb;\n return compareNodesForLayout(a, b);\n });\n const refreshed = new Map<string, number>();\n for (let i = 0; i < ranks[r].length; i++) refreshed.set(ranks[r][i].id, i);\n indexInRank[r] = refreshed;\n }\n}\n\nfunction estimateCrossSize(ranks: AXPWorkflowNode[][], runtime: ArrangeRuntime): number {\n let max = 0;\n for (const rank of ranks) {\n const total = rank.reduce(\n (sum, n) => sum + (runtime.direction === 'horizontal' ? n.size.height : n.size.width),\n 0,\n );\n const gaps = Math.max(0, rank.length - 1) * runtime.crossGap;\n max = Math.max(max, total + gaps);\n }\n return max;\n}\n\nfunction layoutComponent(\n component: LayoutComponent,\n positionById: Map<string, AXPWorkflowPoint>,\n runtime: ArrangeRuntime,\n crossStart: number,\n): void {\n const isHorizontal = runtime.direction === 'horizontal';\n let primaryCursor = isHorizontal ? runtime.origin.x : runtime.origin.y;\n\n for (const rank of component.ranks) {\n if (rank.length === 0) continue;\n\n const crossTotal = rank.reduce(\n (sum, n) => sum + (isHorizontal ? n.size.height : n.size.width),\n 0,\n );\n const crossGaps = (rank.length - 1) * runtime.crossGap;\n const crossLen = crossTotal + crossGaps;\n\n let cursor = crossStart;\n if (runtime.alignment === 'center') {\n cursor = crossStart + (component.crossSize - crossLen) * 0.5;\n } else if (runtime.alignment === 'end') {\n cursor = crossStart + (component.crossSize - crossLen);\n }\n\n let primaryMax = 0;\n for (const node of rank) {\n const primary = isHorizontal ? primaryCursor : cursor;\n const cross = isHorizontal ? cursor : primaryCursor;\n const raw: AXPWorkflowPoint = isHorizontal ? { x: primary, y: cross } : { x: cross, y: primary };\n const snapped = runtime.grid > 0 ? snapPoint(raw, runtime.grid) : raw;\n positionById.set(node.id, snapped);\n const advance = (isHorizontal ? node.size.height : node.size.width) + runtime.crossGap;\n cursor += advance;\n primaryMax = Math.max(primaryMax, isHorizontal ? node.size.width : node.size.height);\n }\n\n primaryCursor += primaryMax + runtime.primaryGap;\n }\n}\n\nfunction compareNodesForLayout(a: AXPWorkflowNode, b: AXPWorkflowNode): number {\n const titleA = a.title?.trim() ?? '';\n const titleB = b.title?.trim() ?? '';\n if (titleA !== titleB) {\n return titleA.localeCompare(titleB);\n }\n return a.id.localeCompare(b.id);\n}\n\n//#endregion\n","import { AXPanViewDirective } from '@acorex/cdk/pan-view';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewEncapsulation,\n afterNextRender,\n computed,\n effect,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { AXP_WORKFLOW_PALETTE_MIME } from './workflow-designer.const';\nimport type {\n AXPWorkflowActivityPaletteItem,\n AXPWorkflowArrangeDiagramOptions,\n AXPWorkflowCanConnectFn,\n AXPWorkflowConnectRequest,\n AXPWorkflowConnectionPreviewStyle,\n AXPWorkflowConnector,\n AXPWorkflowDesignerActivation,\n AXPWorkflowDiagramModel,\n AXPWorkflowNode,\n AXPWorkflowNodeBodyTemplateContext,\n AXPWorkflowPoint,\n AXPWorkflowPort,\n AXPWorkflowRect,\n AXPWorkflowSemanticColor,\n} from './workflow-designer.types';\nimport {\n connectorPath,\n createNodeFromPaletteItem,\n createWorkflowConnectorId,\n defaultCanConnectRequest,\n findConnector,\n findNode,\n findPort,\n parsePaletteItemDragPayload,\n portAnchorOnNode,\n portCanvasPosition,\n snapPoint,\n snapScalar,\n arrangeWorkflowDiagram,\n cloneDiagram,\n} from './workflow-designer.utils';\n\n//#region ---- Types (internal) ----\n\ninterface LinkDragState {\n sourceNodeId: string;\n sourcePortId: string;\n from: AXPWorkflowPoint;\n to: AXPWorkflowPoint;\n}\n\ninterface NodeMoveState {\n nodeIds: string[];\n start: AXPWorkflowPoint;\n origins: Record<string, AXPWorkflowPoint>;\n moved: boolean;\n}\n\ninterface ResizeState {\n nodeId: string;\n handle: 'nw' | 'ne' | 'sw' | 'se';\n startPointer: AXPWorkflowPoint;\n startPosition: AXPWorkflowPoint;\n startSize: { width: number; height: number };\n aspect: number;\n}\n\ninterface CanvasViewportState {\n minX: number;\n minY: number;\n offsetX: number;\n offsetY: number;\n width: number;\n height: number;\n}\n\n//#endregion\n\n@Component({\n selector: 'axp-workflow-designer',\n imports: [CommonModule, AXDecoratorModule, AXButtonModule, AXPanViewDirective],\n templateUrl: './axp-workflow-designer.component.html',\n styleUrl: './axp-workflow-designer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'axp-workflow-designer-host',\n '(window:keydown)': 'onWindowKeydown($event)',\n },\n})\nexport class AXPWorkflowDesignerComponent {\n /** Unique SVG fragment id so multiple designers on one page do not clash. */\n protected readonly svgMarkerId = `axp-wf-arrow-${Math.random().toString(36).slice(2, 10)}`;\n\n //#region ---- Inputs / outputs ----\n\n readonly model = input.required<AXPWorkflowDiagramModel>();\n\n readonly modelChange = output<AXPWorkflowDiagramModel>();\n\n /** When true, the whole designer is non-interactive unless a nested entity sets its own readonly flag. */\n readonly readonly = input(false);\n\n /** Read-only run/history views: emphasize nodes (e.g. current workflow step) without selection chrome. */\n readonly highlightedNodeIds = input<readonly string[]>([]);\n\n readonly gridSize = input(20);\n\n /** Default snap when node does not override `snapToGrid`. */\n readonly snapToGrid = input(true);\n\n readonly connectionPreviewStyle = input<AXPWorkflowConnectionPreviewStyle>('orthogonal');\n readonly backgroundPattern = input<'line' | 'dots'>('dots');\n readonly zoomChange = output<number>();\n\n /** When set, replaces built-in `defaultCanConnectRequest` entirely. */\n readonly canConnect = input<AXPWorkflowCanConnectFn | null>(null);\n\n /** Used to resolve native palette drag payloads (`type`) into full defaults. */\n readonly paletteItems = input<AXPWorkflowActivityPaletteItem[]>([]);\n\n /** When false, port labels are hidden (ports remain interactive). */\n readonly showPortLabels = input(true);\n\n readonly nodeBodyTemplate = input<TemplateRef<AXPWorkflowNodeBodyTemplateContext> | null>(null);\n\n readonly designerPointerDown = output<PointerEvent>();\n readonly designerClick = output<MouseEvent>();\n readonly designerDoubleClick = output<MouseEvent>();\n\n readonly nodePointerDown = output<{ node: AXPWorkflowNode; event: PointerEvent }>();\n readonly nodeClick = output<{ node: AXPWorkflowNode; event: PointerEvent }>();\n readonly nodeDoubleClick = output<{ node: AXPWorkflowNode; event: MouseEvent }>();\n readonly nodeContextMenu = output<{ node: AXPWorkflowNode; event: MouseEvent }>();\n readonly nodeDragStart = output<{ node: AXPWorkflowNode; event: PointerEvent }>();\n readonly nodeDragEnd = output<{ node: AXPWorkflowNode; event: PointerEvent }>();\n\n readonly portPointerDown = output<{\n node: AXPWorkflowNode;\n port: AXPWorkflowPort;\n event: PointerEvent;\n }>();\n\n readonly linkDragStart = output<{\n sourceNode: AXPWorkflowNode;\n sourcePort: AXPWorkflowPort;\n event: PointerEvent;\n }>();\n readonly linkDragMove = output<{\n sourceNode: AXPWorkflowNode;\n sourcePort: AXPWorkflowPort;\n point: AXPWorkflowPoint;\n event: PointerEvent;\n }>();\n readonly linkDragEnd = output<{\n sourceNode: AXPWorkflowNode;\n sourcePort: AXPWorkflowPort;\n cancelled: boolean;\n event: Event;\n }>();\n\n readonly connectorClick = output<{ connector: AXPWorkflowConnector; event: MouseEvent }>();\n readonly connectorDoubleClick = output<{ connector: AXPWorkflowConnector; event: MouseEvent }>();\n\n readonly connectionCreated = output<{ connector: AXPWorkflowConnector; model: AXPWorkflowDiagramModel }>();\n readonly connectionRejected = output<{\n reason: string;\n request: AXPWorkflowConnectRequest;\n event: PointerEvent;\n }>();\n\n readonly activationChange = output<AXPWorkflowDesignerActivation | null>();\n\n //#endregion\n\n //#region ---- State ----\n\n protected readonly surfaceRef = viewChild.required<ElementRef<HTMLElement>>('surface');\n private readonly panViewRef = viewChild(AXPanViewDirective);\n\n protected readonly activation = signal<AXPWorkflowDesignerActivation | null>(null);\n protected readonly selectedNodeIds = signal<Set<string>>(new Set());\n protected readonly selectedConnectorIds = signal<Set<string>>(new Set());\n protected readonly panX = signal(0);\n protected readonly panY = signal(0);\n protected readonly panZoomLevel = signal(100);\n protected readonly linkDrag = signal<LinkDragState | null>(null);\n /** Inbound port under the pointer while dragging a new connector from an outbound port. */\n protected readonly linkHoverTarget = signal<{ nodeId: string; portId: string } | null>(null);\n private nodeMove: NodeMoveState | null = null;\n private resize: ResizeState | null = null;\n private suppressNextNodeClick = false;\n private wrapperDragoverListener: ((event: DragEvent) => void) | null = null;\n private wrapperDropListener: ((event: DragEvent) => void) | null = null;\n private wrapperElement = signal<HTMLElement | null>(null);\n private wrapperAttachRetryHandle: ReturnType<typeof setTimeout> | null = null;\n private wrapperAttachAttempt = 0;\n\n private readonly destroyRef = inject(DestroyRef);\n\n //#endregion\n\n //#region ---- Computed ----\n\n protected readonly gridStyle = computed(() => {\n const g = this.gridSize();\n if (this.backgroundPattern() === 'dots') {\n return {\n 'background-size': `${g}px ${g}px`,\n 'background-image': `radial-gradient(circle, rgba(148, 163, 184, 0.35) 1px, transparent 1.2px)`,\n };\n }\n return {\n 'background-size': `${g}px ${g}px`,\n 'background-image': `\n linear-gradient(to right, rgba(148, 163, 184, 0.2) 1px, transparent 1px),\n linear-gradient(to bottom, rgba(148, 163, 184, 0.2) 1px, transparent 1px)\n `,\n };\n });\n\n protected readonly canvasViewport = computed<CanvasViewportState>(() => {\n const model = this.model();\n const contentPadding = 320;\n const minCanvasWidth = 1600;\n const minCanvasHeight = 1000;\n const nodeMinX = model.nodes.reduce((acc, node) => Math.min(acc, node.position.x), 0);\n const nodeMinY = model.nodes.reduce((acc, node) => Math.min(acc, node.position.y), 0);\n const nodeMaxRight = model.nodes.reduce((acc, node) => Math.max(acc, node.position.x + node.size.width), 0);\n const nodeMaxBottom = model.nodes.reduce((acc, node) => Math.max(acc, node.position.y + node.size.height), 0);\n const minX = Math.min(0, nodeMinX);\n const minY = Math.min(0, nodeMinY);\n const maxRight = Math.max(minCanvasWidth, nodeMaxRight);\n const maxBottom = Math.max(minCanvasHeight, nodeMaxBottom);\n const offsetX = -minX + contentPadding;\n const offsetY = -minY + contentPadding;\n return {\n minX,\n minY,\n offsetX,\n offsetY,\n width: Math.ceil(maxRight - minX + contentPadding * 2),\n height: Math.ceil(maxBottom - minY + contentPadding * 2),\n };\n });\n\n protected readonly surfaceStyle = computed(() => {\n const viewport = this.canvasViewport();\n return {\n // ...this.gridStyle(),\n width: `${viewport.width}px`,\n height: `${viewport.height}px`,\n };\n });\n\n //#endregion\n\n constructor() {\n afterNextRender(() => this.attachWrapperDropTargetsWithRetry());\n effect(() => this.syncWrapperBackgroundStyle());\n effect(() => {\n this.zoomChange.emit(this.panZoomLevel());\n });\n this.destroyRef.onDestroy(() => this.detachWindowListeners());\n }\n\n public zoomIn(): void {\n this.panViewRef()?.zoomIn();\n }\n\n public zoomOut(): void {\n this.panViewRef()?.zoomOut();\n }\n\n public zoomReset(): void {\n this.panViewRef()?.resetPosition();\n }\n\n public getZoomLevel(): number {\n return this.panZoomLevel();\n }\n\n //#region ---- Readonly helpers ----\n\n protected isNodeReadonly(node: AXPWorkflowNode): boolean {\n return this.readonly() || node.readonly === true;\n }\n\n protected isConnectorReadonly(c: AXPWorkflowConnector): boolean {\n return this.readonly() || c.readonly === true;\n }\n\n //#endregion\n\n //#region ---- Activation ----\n\n protected isNodeActive(nodeId: string): boolean {\n return this.selectedNodeIds().has(nodeId);\n }\n\n protected isNodeHighlighted(nodeId: string): boolean {\n return this.highlightedNodeIds().includes(nodeId);\n }\n\n protected isConnectorActive(id: string): boolean {\n return this.selectedConnectorIds().has(id);\n }\n\n protected isPortActive(nodeId: string, portId: string): boolean {\n const a = this.activation();\n return a?.kind === 'port' && a.nodeId === nodeId && a.id === portId;\n }\n\n protected isPortLinkHoverTarget(nodeId: string, portId: string): boolean {\n if (!this.linkDrag()) return false;\n const h = this.linkHoverTarget();\n return h !== null && h.nodeId === nodeId && h.portId === portId;\n }\n\n private setActivation(next: AXPWorkflowDesignerActivation | null): void {\n this.activation.set(next);\n this.activationChange.emit(next);\n }\n\n private clearSelections(): void {\n this.selectedNodeIds.set(new Set());\n this.selectedConnectorIds.set(new Set());\n }\n\n //#endregion\n\n //#region ---- Model commit ----\n\n private commit(next: AXPWorkflowDiagramModel): void {\n this.modelChange.emit(next);\n }\n\n /**\n * Auto-arranges nodes into a layered layout and commits the result.\n *\n * Honors layout options such as `direction` (`'horizontal'` / `'vertical'`),\n * `alignment`, `origin`, `nodeIds` (subset arrange), and `reduceCrossings`.\n * When `gridSize` is omitted the designer's own `gridSize` input is used.\n */\n arrangeNicely(options?: AXPWorkflowArrangeDiagramOptions): void {\n if (this.readonly()) {\n return;\n }\n this.commit(this.computeArrangedLayout(options));\n }\n\n /**\n * Computes an arranged layout without committing it. Useful for previews,\n * comparing the result before applying it, or rendering ghost positions.\n */\n computeArrangedLayout(options?: AXPWorkflowArrangeDiagramOptions): AXPWorkflowDiagramModel {\n return arrangeWorkflowDiagram(cloneDiagram(this.model()), {\n gridSize: this.gridSize(),\n ...options,\n });\n }\n\n private resolvePaletteItem(type: string): AXPWorkflowActivityPaletteItem | undefined {\n return this.paletteItems().find((i) => i.type === type);\n }\n\n /**\n * Full drag payload merged with `paletteItems()` entry when the payload omits optional fields.\n */\n private resolveDroppedPaletteItem(raw: string | undefined): AXPWorkflowActivityPaletteItem | null {\n const parsed = parsePaletteItemDragPayload(raw);\n if (!parsed) return null;\n const base = this.resolvePaletteItem(parsed.type);\n const item = { ...(base ?? {}), ...parsed } as AXPWorkflowActivityPaletteItem;\n if (typeof item.title !== 'string') return null;\n return item;\n }\n\n private evaluateConnect(request: AXPWorkflowConnectRequest): boolean {\n const fn = this.canConnect();\n if (fn) return fn(request);\n return defaultCanConnectRequest(request);\n }\n\n //#endregion\n\n //#region ---- Canvas / surface ----\n\n protected onSurfacePointerDown(event: PointerEvent): void {\n if (!this.isBackgroundInteractionTarget(event.target as HTMLElement)) return;\n this.designerPointerDown.emit(event);\n }\n\n protected onSurfaceClick(event: MouseEvent): void {\n if (!this.isBackgroundInteractionTarget(event.target as HTMLElement)) return;\n this.clearSelections();\n this.setActivation({ kind: 'canvas', id: 'canvas' });\n this.designerClick.emit(event);\n }\n\n protected onSurfaceDoubleClick(event: MouseEvent): void {\n if (!this.isBackgroundInteractionTarget(event.target as HTMLElement)) return;\n this.designerDoubleClick.emit(event);\n }\n\n private isBackgroundInteractionTarget(target: HTMLElement | null): boolean {\n if (!target) return false;\n if (target.closest('.axp-workflow-designer__node')) return false;\n if (target.closest('.axp-workflow-designer__connector-actions')) return false;\n if (target.closest('.axp-workflow-designer__port-cluster')) return false;\n if (target.closest('path.axp-workflow-designer__edge-hit')) return false;\n if (target.closest('ax-button')) return false;\n return true;\n }\n\n protected canvasPointFromClient(clientX: number, clientY: number): AXPWorkflowPoint {\n const surface = this.surfaceRef().nativeElement;\n const wrapper = surface.closest('.ax-pan-view-wrapper') as HTMLElement | null;\n const basisRect = (wrapper ?? surface).getBoundingClientRect();\n const localX = clientX - basisRect.left;\n const localY = clientY - basisRect.top;\n\n const computed = getComputedStyle(surface);\n const transform = computed.transform;\n if (!transform || transform === 'none') {\n return this.surfacePointToModel({ x: localX, y: localY });\n }\n\n const matrix = new DOMMatrixReadOnly(transform);\n const originParts = computed.transformOrigin.split(' ');\n const originX = Number.parseFloat(originParts[0] ?? '0') || 0;\n const originY = Number.parseFloat(originParts[1] ?? '0') || 0;\n\n // CSS transform is applied around transform-origin, so include origin translation in matrix inversion.\n const withOrigin = new DOMMatrixReadOnly()\n .translate(originX, originY)\n .multiply(matrix)\n .translate(-originX, -originY);\n const point = new DOMPoint(localX, localY).matrixTransform(withOrigin.inverse());\n return this.surfacePointToModel({ x: point.x, y: point.y });\n }\n\n //#endregion\n\n //#region ---- Drag / drop (palette) ----\n\n protected onCanvasDragOver(event: DragEvent): void {\n if (this.readonly()) return;\n event.preventDefault();\n if (event.dataTransfer) event.dataTransfer.dropEffect = 'copy';\n }\n\n protected onCanvasDrop(event: DragEvent): void {\n if (this.readonly()) return;\n event.preventDefault();\n event.stopPropagation();\n const raw = event.dataTransfer?.getData(AXP_WORKFLOW_PALETTE_MIME);\n const item = this.resolveDroppedPaletteItem(raw);\n if (!item) return;\n const pt = this.canvasPointFromClient(event.clientX, event.clientY);\n const node = createNodeFromPaletteItem(item, this.applySnapToPointForNewNode(item, pt));\n const model = this.model();\n const next: AXPWorkflowDiagramModel = {\n nodes: [...model.nodes, node],\n connectors: [...model.connectors],\n };\n this.commit(next);\n this.setActivation({ kind: 'node', id: node.id });\n }\n\n private applySnapToPointForNewNode(item: AXPWorkflowActivityPaletteItem, pt: AXPWorkflowPoint): AXPWorkflowPoint {\n const nodeSnap = item.snapToGrid;\n const useSnap = nodeSnap ?? this.snapToGrid();\n const g = this.gridSize();\n if (!useSnap || g <= 0) return pt;\n return snapPoint(pt, g);\n }\n\n private applySnapForNode(node: AXPWorkflowNode, pt: AXPWorkflowPoint): AXPWorkflowPoint {\n const useSnap = node.snapToGrid ?? this.snapToGrid();\n const g = this.gridSize();\n if (!useSnap || g <= 0) return pt;\n return snapPoint(pt, g);\n }\n\n //#endregion\n\n //#region ---- Wrapper drop bridge ----\n\n private attachWrapperDropTargetsWithRetry(): void {\n this.clearWrapperAttachRetry();\n this.wrapperAttachAttempt = 0;\n const tryAttach = () => {\n const attached = this.attachWrapperDropTargets();\n if (attached) {\n return;\n }\n this.wrapperAttachAttempt += 1;\n if (this.wrapperAttachAttempt >= 20) {\n return;\n }\n this.wrapperAttachRetryHandle = setTimeout(tryAttach, 50);\n };\n tryAttach();\n }\n\n /**\n * Binds drag/drop to pan-view wrapper so users can drop while panning far away\n * from current finite surface bounds.\n */\n private attachWrapperDropTargets(): boolean {\n const surface = this.surfaceRef().nativeElement;\n const wrapper = surface.closest('.ax-pan-view-wrapper') as HTMLElement | null;\n if (!wrapper) {\n return false;\n }\n this.detachWrapperDropTargets();\n this.wrapperElement.set(wrapper);\n this.wrapperDragoverListener = (event: DragEvent) => {\n const target = event.target as HTMLElement | null;\n if (target?.closest('.axp-workflow-designer__surface')) {\n return;\n }\n this.onCanvasDragOver(event);\n };\n this.wrapperDropListener = (event: DragEvent) => {\n const target = event.target as HTMLElement | null;\n if (target?.closest('.axp-workflow-designer__surface')) {\n return;\n }\n this.onCanvasDrop(event);\n };\n wrapper.addEventListener('dragover', this.wrapperDragoverListener);\n wrapper.addEventListener('drop', this.wrapperDropListener);\n this.syncWrapperBackgroundStyle();\n return true;\n }\n\n private detachWrapperDropTargets(): void {\n const surface = this.surfaceRef().nativeElement;\n const wrapper = surface.closest('.ax-pan-view-wrapper') as HTMLElement | null;\n if (!wrapper) {\n this.wrapperElement.set(null);\n this.wrapperDragoverListener = null;\n this.wrapperDropListener = null;\n return;\n }\n if (this.wrapperDragoverListener) {\n wrapper.removeEventListener('dragover', this.wrapperDragoverListener);\n this.wrapperDragoverListener = null;\n }\n if (this.wrapperDropListener) {\n wrapper.removeEventListener('drop', this.wrapperDropListener);\n this.wrapperDropListener = null;\n }\n this.wrapperElement.set(null);\n }\n\n private clearWrapperAttachRetry(): void {\n if (this.wrapperAttachRetryHandle != null) {\n clearTimeout(this.wrapperAttachRetryHandle);\n this.wrapperAttachRetryHandle = null;\n }\n }\n\n //#endregion\n\n //#region ---- Keyboard ----\n\n protected onWindowKeydown(ev: KeyboardEvent): void {\n if (this.readonly()) return;\n const target = ev.target as HTMLElement | null;\n if (target?.closest('input,textarea,select,[contenteditable=\"true\"]')) return;\n\n if (ev.key === 'Escape') {\n ev.preventDefault();\n this.cancelLinkDrag(ev);\n this.clearSelections();\n this.setActivation(null);\n return;\n }\n\n if (ev.key !== 'Delete' && ev.key !== 'Backspace') return;\n ev.preventDefault();\n const selectedConnectorIds = this.selectedConnectorIds();\n const selectedNodeIds = this.selectedNodeIds();\n const model = this.model();\n if (selectedConnectorIds.size > 0 || selectedNodeIds.size > 0) {\n const nodes = model.nodes.filter((n) => !selectedNodeIds.has(n.id));\n const connectors = model.connectors.filter(\n (c) =>\n !selectedConnectorIds.has(c.id) &&\n !selectedNodeIds.has(c.sourceNodeId) &&\n !selectedNodeIds.has(c.targetNodeId),\n );\n this.commit({ ...model, nodes, connectors });\n this.clearSelections();\n this.setActivation(null);\n return;\n }\n const a = this.activation();\n if (!a || a.kind === 'canvas') return;\n\n if (a.kind === 'connector') {\n const c = findConnector(model, a.id);\n if (c && !this.isConnectorReadonly(c)) {\n const connectors = model.connectors.filter((x) => x.id !== c.id);\n this.commit({ ...model, connectors });\n this.setActivation(null);\n }\n return;\n }\n\n const nodeId = a.kind === 'node' ? a.id : a.nodeId;\n if (!nodeId) return;\n const node = findNode(model, nodeId);\n if (!node || this.isNodeReadonly(node)) return;\n const nodes = model.nodes.filter((n) => n.id !== nodeId);\n const connectors = model.connectors.filter((c) => c.sourceNodeId !== nodeId && c.targetNodeId !== nodeId);\n this.commit({ ...model, nodes, connectors });\n this.setActivation(null);\n }\n\n private cancelLinkDrag(ev: Event): void {\n const st = this.linkDrag();\n if (!st) return;\n this.linkDrag.set(null);\n this.linkHoverTarget.set(null);\n window.removeEventListener('pointermove', this.onWindowPointerMoveForLink);\n window.removeEventListener('pointerup', this.onWindowPointerUpForLink);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForLink);\n const model = this.model();\n const sourceNode = findNode(model, st.sourceNodeId);\n const sourcePort = sourceNode ? findPort(sourceNode, st.sourcePortId)?.port : undefined;\n if (sourceNode && sourcePort) {\n this.linkDragEnd.emit({ sourceNode, sourcePort, cancelled: true, event: ev });\n }\n }\n\n //#endregion\n\n //#region ---- Node chrome ----\n\n protected shapeClass(shape: AXPWorkflowNode['shape']): string {\n return `axp-workflow-designer__node-shape--${shape}`;\n }\n\n protected semanticSurfaceClass(color?: AXPWorkflowSemanticColor): string {\n return color ? `axp-${color}-surface` : '';\n }\n\n protected semanticBorderClass(color?: AXPWorkflowSemanticColor): string {\n return color ? `axp-${color}-border` : '';\n }\n\n protected nodeShapeClasses(node: AXPWorkflowNode): string {\n return ['axp-workflow-designer__node-shape', this.shapeClass(node.shape), this.semanticSurfaceClass(node.color), this.semanticBorderClass(node.borderColor)]\n .filter(Boolean)\n .join(' ');\n }\n\n protected connectorEdgeClasses(c: AXPWorkflowConnector): string {\n const parts = [\n 'axp-workflow-designer__edge',\n this.semanticSurfaceClass(c.color),\n this.semanticBorderClass(c.borderColor),\n this.isConnectorActive(c.id) ? 'axp-workflow-designer__edge--active' : '',\n ];\n return parts.filter(Boolean).join(' ');\n }\n\n protected onNodePointerDown(node: AXPWorkflowNode, event: PointerEvent): void {\n if (this.isNodeReadonly(node)) return;\n if (event.button !== 0) return;\n this.nodePointerDown.emit({ node, event });\n }\n\n protected onNodeClick(node: AXPWorkflowNode, event: MouseEvent): void {\n if (this.suppressNextNodeClick) {\n this.suppressNextNodeClick = false;\n event.stopPropagation();\n return;\n }\n event.stopPropagation();\n const append = event.ctrlKey || event.metaKey;\n if (append) {\n const next = new Set(this.selectedNodeIds());\n if (next.has(node.id)) next.delete(node.id);\n else next.add(node.id);\n this.selectedNodeIds.set(next);\n this.selectedConnectorIds.set(new Set());\n } else {\n this.selectedNodeIds.set(new Set([node.id]));\n this.selectedConnectorIds.set(new Set());\n }\n this.setActivation({ kind: 'node', id: node.id });\n this.nodeClick.emit({ node, event: event as unknown as PointerEvent });\n }\n\n protected onNodeDoubleClick(node: AXPWorkflowNode, event: MouseEvent): void {\n event.stopPropagation();\n this.nodeDoubleClick.emit({ node, event });\n }\n\n protected onNodeContextMenu(node: AXPWorkflowNode, event: MouseEvent): void {\n if (this.isNodeReadonly(node)) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this.selectedNodeIds.set(new Set([node.id]));\n this.selectedConnectorIds.set(new Set());\n this.setActivation({ kind: 'node', id: node.id });\n this.nodeContextMenu.emit({ node, event });\n }\n\n protected onNodeBodyPointerDown(node: AXPWorkflowNode, event: PointerEvent): void {\n if (this.isNodeReadonly(node)) return;\n if (event.button !== 0) return;\n if ((event.target as HTMLElement).closest('.axp-workflow-designer__port-cluster')) return;\n if ((event.target as HTMLElement).closest('.axp-workflow-designer__resize')) return;\n // Ctrl/Cmd click is reserved for multi-select toggling in click handler; do not start drag here.\n if (event.ctrlKey || event.metaKey) return;\n event.stopPropagation();\n const selected = this.selectedNodeIds();\n const moveIds = selected.has(node.id) && selected.size > 0 ? [...selected] : [node.id];\n if (!selected.has(node.id) || selected.size === 0) {\n this.selectedNodeIds.set(new Set([node.id]));\n this.selectedConnectorIds.set(new Set());\n }\n this.setActivation({ kind: 'node', id: node.id });\n const p = this.canvasPointFromClient(event.clientX, event.clientY);\n const model = this.model();\n const origins: Record<string, AXPWorkflowPoint> = {};\n for (const moveId of moveIds) {\n const n = findNode(model, moveId);\n if (n) origins[moveId] = { ...n.position };\n }\n this.nodeMove = {\n nodeIds: moveIds,\n start: p,\n origins,\n moved: false,\n };\n this.nodeDragStart.emit({ node, event });\n window.addEventListener('pointermove', this.onWindowPointerMoveForNode);\n window.addEventListener('pointerup', this.onWindowPointerUpForNode, { once: false });\n window.addEventListener('pointercancel', this.onWindowPointerUpForNode, { once: false });\n (event.target as HTMLElement).setPointerCapture?.(event.pointerId);\n }\n\n private readonly onWindowPointerMoveForNode = (ev: PointerEvent): void => {\n const drag = this.nodeMove;\n if (!drag) return;\n const model = this.model();\n const p = this.canvasPointFromClient(ev.clientX, ev.clientY);\n const dx = p.x - drag.start.x;\n const dy = p.y - drag.start.y;\n if (Math.abs(dx) > 1 || Math.abs(dy) > 1) {\n drag.moved = true;\n }\n const nodes = model.nodes.map((n) => {\n if (!drag.nodeIds.includes(n.id)) return n;\n const origin = drag.origins[n.id];\n if (!origin) return n;\n let nx = origin.x + dx;\n let ny = origin.y + dy;\n const snapped = this.applySnapForNode(n, { x: nx, y: ny });\n nx = snapped.x;\n ny = snapped.y;\n return { ...n, position: { x: nx, y: ny } };\n });\n this.commit({ ...model, nodes });\n };\n\n private readonly onWindowPointerUpForNode = (ev: PointerEvent): void => {\n const drag = this.nodeMove;\n this.nodeMove = null;\n window.removeEventListener('pointermove', this.onWindowPointerMoveForNode);\n window.removeEventListener('pointerup', this.onWindowPointerUpForNode);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForNode);\n if (drag?.moved) {\n this.suppressNextNodeClick = true;\n }\n if (drag) {\n const node = findNode(this.model(), drag.nodeIds[0] ?? '');\n if (node) this.nodeDragEnd.emit({ node, event: ev });\n }\n };\n\n //#endregion\n\n //#region ---- Resize ----\n\n protected onResizePointerDown(node: AXPWorkflowNode, handle: ResizeState['handle'], event: PointerEvent): void {\n if (this.isNodeReadonly(node)) return;\n if (event.button !== 0) return;\n event.stopPropagation();\n this.resize = {\n nodeId: node.id,\n handle,\n startPointer: this.canvasPointFromClient(event.clientX, event.clientY),\n startPosition: { ...node.position },\n startSize: { ...node.size },\n aspect: node.size.width / Math.max(1, node.size.height),\n };\n window.addEventListener('pointermove', this.onWindowPointerMoveForResize);\n window.addEventListener('pointerup', this.onWindowPointerUpForResize);\n window.addEventListener('pointercancel', this.onWindowPointerUpForResize);\n }\n\n private readonly onWindowPointerMoveForResize = (ev: PointerEvent): void => {\n const st = this.resize;\n if (!st) return;\n const model = this.model();\n const node = findNode(model, st.nodeId);\n if (!node) return;\n const p = this.canvasPointFromClient(ev.clientX, ev.clientY);\n const dx = p.x - st.startPointer.x;\n const dy = p.y - st.startPointer.y;\n let { width, height } = st.startSize;\n let { x, y } = st.startPosition;\n\n const minW = 72;\n const minH = 40;\n\n const growEast = st.handle.includes('e');\n const growSouth = st.handle.includes('s');\n const growWest = st.handle.includes('w');\n const growNorth = st.handle.includes('n');\n\n if (growEast) width = Math.max(minW, st.startSize.width + dx);\n if (growSouth) height = Math.max(minH, st.startSize.height + dy);\n if (growWest) {\n const nw = Math.max(minW, st.startSize.width - dx);\n x = st.startPosition.x + st.startSize.width - nw;\n width = nw;\n }\n if (growNorth) {\n const nh = Math.max(minH, st.startSize.height - dy);\n y = st.startPosition.y + st.startSize.height - nh;\n height = nh;\n }\n\n if (node.shape === 'circle' || node.lockAspectRatio) {\n const a = st.aspect;\n if (growEast || growWest) {\n height = width / a;\n if (growNorth) y = st.startPosition.y + st.startSize.height - height;\n } else {\n width = height * a;\n if (growWest) x = st.startPosition.x + st.startSize.width - width;\n }\n }\n\n const g = this.gridSize();\n const useSnap = node.snapToGrid ?? this.snapToGrid();\n if (useSnap && g > 0) {\n width = Math.max(minW, snapScalar(width, g));\n height = Math.max(minH, snapScalar(height, g));\n x = snapScalar(x, g);\n y = snapScalar(y, g);\n }\n\n const nodes = model.nodes.map((n) =>\n n.id === node.id ? { ...n, position: { x, y }, size: { width, height } } : n,\n );\n this.commit({ ...model, nodes });\n };\n\n private readonly onWindowPointerUpForResize = (): void => {\n this.resize = null;\n window.removeEventListener('pointermove', this.onWindowPointerMoveForResize);\n window.removeEventListener('pointerup', this.onWindowPointerUpForResize);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForResize);\n };\n\n //#endregion\n\n //#region ---- Ports & linking ----\n\n protected onPortPointerDown(node: AXPWorkflowNode, port: AXPWorkflowPort, event: PointerEvent): void {\n if (this.isNodeReadonly(node)) return;\n if (port.readonly) return;\n if (event.button !== 0) return;\n event.stopPropagation();\n this.portPointerDown.emit({ node, port, event });\n this.setActivation({ kind: 'port', id: port.id, nodeId: node.id });\n\n if (port.kind === 'outbound' && !port.disabled) {\n this.linkHoverTarget.set(null);\n const from = portCanvasPosition(node, port);\n this.linkDrag.set({\n sourceNodeId: node.id,\n sourcePortId: port.id,\n from,\n to: from,\n });\n this.linkDragStart.emit({ sourceNode: node, sourcePort: port, event });\n window.addEventListener('pointermove', this.onWindowPointerMoveForLink);\n window.addEventListener('pointerup', this.onWindowPointerUpForLink);\n window.addEventListener('pointercancel', this.onWindowPointerUpForLink);\n }\n }\n\n private readonly onWindowPointerMoveForLink = (ev: PointerEvent): void => {\n const st = this.linkDrag();\n if (!st) return;\n const to = this.canvasPointFromClient(ev.clientX, ev.clientY);\n this.linkDrag.set({ ...st, to });\n const model = this.model();\n const node = findNode(model, st.sourceNodeId);\n const port = node ? findPort(node, st.sourcePortId)?.port : undefined;\n if (node && port) {\n this.linkDragMove.emit({ sourceNode: node, sourcePort: port, point: to, event: ev });\n }\n const hover = this.pickInboundPortAtPoint(model, to, st.sourceNodeId);\n this.linkHoverTarget.set(hover ? { nodeId: hover.node.id, portId: hover.port.id } : null);\n };\n\n private readonly onWindowPointerUpForLink = (ev: PointerEvent): void => {\n const st = this.linkDrag();\n this.linkDrag.set(null);\n this.linkHoverTarget.set(null);\n window.removeEventListener('pointermove', this.onWindowPointerMoveForLink);\n window.removeEventListener('pointerup', this.onWindowPointerUpForLink);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForLink);\n if (!st) return;\n\n const model = this.model();\n const sourceNode = findNode(model, st.sourceNodeId);\n const sourcePort = sourceNode ? findPort(sourceNode, st.sourcePortId)?.port : undefined;\n if (!sourceNode || !sourcePort) return;\n\n const target = this.pickInboundPortAtPoint(model, st.to, sourceNode.id);\n if (!target) {\n this.linkDragEnd.emit({ sourceNode, sourcePort, cancelled: true, event: ev });\n return;\n }\n\n const request: AXPWorkflowConnectRequest = {\n model,\n sourceNodeId: st.sourceNodeId,\n sourcePortId: st.sourcePortId,\n targetNodeId: target.node.id,\n targetPortId: target.port.id,\n };\n\n if (!this.evaluateConnect(request)) {\n this.connectionRejected.emit({ reason: 'canConnect returned false', request, event: ev });\n this.linkDragEnd.emit({ sourceNode, sourcePort, cancelled: true, event: ev });\n return;\n }\n\n const connector: AXPWorkflowConnector = {\n id: createWorkflowConnectorId(),\n sourceNodeId: st.sourceNodeId,\n sourcePortId: st.sourcePortId,\n targetNodeId: target.node.id,\n targetPortId: target.port.id,\n data: {},\n color: sourceNode.color,\n };\n const next: AXPWorkflowDiagramModel = {\n nodes: [...model.nodes],\n connectors: [...model.connectors, connector],\n };\n this.commit(next);\n this.connectionCreated.emit({ connector, model: next });\n this.setActivation({ kind: 'connector', id: connector.id });\n this.linkDragEnd.emit({ sourceNode, sourcePort, cancelled: false, event: ev });\n };\n\n private pickInboundPortAtPoint(\n model: AXPWorkflowDiagramModel,\n point: AXPWorkflowPoint,\n excludeSourceNodeId: string,\n ): { node: AXPWorkflowNode; port: AXPWorkflowPort } | null {\n let best: { node: AXPWorkflowNode; port: AXPWorkflowPort; d: number } | null = null;\n const hitR = 18;\n for (const node of model.nodes) {\n if (node.id === excludeSourceNodeId) continue;\n if (this.isNodeReadonly(node)) continue;\n for (const port of node.inboundPorts) {\n if (port.disabled || port.readonly) continue;\n const c = portCanvasPosition(node, port);\n const d = Math.hypot(c.x - point.x, c.y - point.y);\n if (d <= hitR && (!best || d < best.d)) best = { node, port, d };\n }\n }\n return best ? { node: best.node, port: best.port } : null;\n }\n\n //#endregion\n\n //#region ---- Connectors UI ----\n\n protected connectorPathD(c: AXPWorkflowConnector): string {\n const model = this.model();\n const sn = findNode(model, c.sourceNodeId);\n const tn = findNode(model, c.targetNodeId);\n if (!sn || !tn) return '';\n const sp = findPort(sn, c.sourcePortId)?.port;\n const tp = findPort(tn, c.targetPortId)?.port;\n if (!sp || !tp) return '';\n const from = this.modelPointToSurface(portCanvasPosition(sn, sp));\n const to = this.trimmedConnectorTarget(from, this.modelPointToSurface(portCanvasPosition(tn, tp)));\n return connectorPath(from, to, this.connectionPreviewStyle(), sp.side, {\n targetSide: tp.side,\n obstacles: this.collectObstaclesInSurface(),\n });\n }\n\n protected connectorMidpoint(c: AXPWorkflowConnector): AXPWorkflowPoint {\n const model = this.model();\n const sn = findNode(model, c.sourceNodeId);\n const tn = findNode(model, c.targetNodeId);\n if (!sn || !tn) return { x: 0, y: 0 };\n const sp = findPort(sn, c.sourcePortId)?.port;\n const tp = findPort(tn, c.targetPortId)?.port;\n if (!sp || !tp) return { x: 0, y: 0 };\n const a = this.modelPointToSurface(portCanvasPosition(sn, sp));\n const b = this.modelPointToSurface(portCanvasPosition(tn, tp));\n return { x: (a.x + b.x) * 0.5, y: (a.y + b.y) * 0.5 };\n }\n\n protected onConnectorClick(c: AXPWorkflowConnector, event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n const append = event.ctrlKey || event.metaKey;\n if (append) {\n const next = new Set(this.selectedConnectorIds());\n if (next.has(c.id)) next.delete(c.id);\n else next.add(c.id);\n this.selectedConnectorIds.set(next);\n this.selectedNodeIds.set(new Set());\n } else {\n this.selectedConnectorIds.set(new Set([c.id]));\n this.selectedNodeIds.set(new Set());\n }\n this.setActivation({ kind: 'connector', id: c.id });\n this.connectorClick.emit({ connector: c, event });\n }\n\n protected onConnectorDoubleClick(c: AXPWorkflowConnector, event: MouseEvent): void {\n event.stopPropagation();\n event.preventDefault();\n this.connectorDoubleClick.emit({ connector: c, event });\n }\n\n protected removeConnector(c: AXPWorkflowConnector): void {\n if (this.isConnectorReadonly(c)) return;\n const model = this.model();\n const connectors = model.connectors.filter((x) => x.id !== c.id);\n this.commit({ ...model, connectors });\n this.setActivation(null);\n }\n\n protected previewPath(): string {\n const st = this.linkDrag();\n if (!st) return '';\n const model = this.model();\n const sn = findNode(model, st.sourceNodeId);\n const sp = sn ? findPort(sn, st.sourcePortId)?.port : undefined;\n if (!sn || !sp) return '';\n const from = this.modelPointToSurface(st.from);\n const to = this.modelPointToSurface(st.to);\n const hover = this.linkHoverTarget();\n const hoverNode = hover ? findNode(model, hover.nodeId) : undefined;\n const hoverPort = hover && hoverNode ? findPort(hoverNode, hover.portId)?.port : undefined;\n return connectorPath(from, this.trimmedConnectorTarget(from, to), this.connectionPreviewStyle(), sp.side, {\n targetSide: hoverPort?.side,\n obstacles: this.collectObstaclesInSurface(),\n });\n }\n\n //#endregion\n\n //#region ---- Template context ----\n\n protected templateContext(node: AXPWorkflowNode): AXPWorkflowNodeBodyTemplateContext {\n return { $implicit: node, node };\n }\n\n protected portClusterStyle(node: AXPWorkflowNode, port: AXPWorkflowPort): Record<string, string> {\n const local = portAnchorOnNode(node, port);\n const w = Math.max(1, node.size.width);\n const h = Math.max(1, node.size.height);\n return {\n position: 'absolute',\n left: `${(local.x / w) * 100}%`,\n top: `${(local.y / h) * 100}%`,\n 'z-index': '3',\n };\n }\n\n protected portLabelText(port: AXPWorkflowPort): string {\n return (port.label ?? port.key ?? '').trim();\n }\n\n protected portLabelX(node: AXPWorkflowNode, port: AXPWorkflowPort): number {\n return this.portLabelCanvasPoint(node, port).x;\n }\n\n protected portLabelY(node: AXPWorkflowNode, port: AXPWorkflowPort): number {\n return this.portLabelCanvasPoint(node, port).y;\n }\n\n protected portLabelAnchor(node: AXPWorkflowNode, port: AXPWorkflowPort): 'start' | 'middle' | 'end' {\n const centerX = this.modelPointToSurface({ x: node.position.x + node.size.width * 0.5, y: node.position.y }).x;\n const anchor = this.modelPointToSurface(portCanvasPosition(node, port));\n const dx = anchor.x - centerX;\n if (Math.abs(dx) < 6) return 'middle';\n return dx < 0 ? 'end' : 'start';\n }\n\n protected nodeSurfaceLeft(node: AXPWorkflowNode): number {\n return node.position.x + this.canvasViewport().offsetX;\n }\n\n protected nodeSurfaceTop(node: AXPWorkflowNode): number {\n return node.position.y + this.canvasViewport().offsetY;\n }\n\n private trimmedConnectorTarget(from: AXPWorkflowPoint, to: AXPWorkflowPoint): AXPWorkflowPoint {\n const dx = to.x - from.x;\n const dy = to.y - from.y;\n const len = Math.hypot(dx, dy);\n if (len < 0.001) return to;\n // Keep arrowhead just outside the 14px port without creating a visible gap.\n const trim = 7;\n return {\n x: to.x - (dx / len) * trim,\n y: to.y - (dy / len) * trim,\n };\n }\n\n private portLabelCanvasPoint(node: AXPWorkflowNode, port: AXPWorkflowPort): AXPWorkflowPoint {\n const anchor = this.modelPointToSurface(portCanvasPosition(node, port));\n const center = {\n x: node.position.x + node.size.width * 0.5 + this.canvasViewport().offsetX,\n y: node.position.y + node.size.height * 0.5 + this.canvasViewport().offsetY,\n };\n const vx = anchor.x - center.x;\n const vy = anchor.y - center.y;\n const len = Math.hypot(vx, vy);\n if (len < 0.001) return anchor;\n const outward = 18;\n return {\n x: anchor.x + (vx / len) * outward,\n y: anchor.y + (vy / len) * outward,\n };\n }\n\n //#endregion\n\n //#region ---- Canvas mapping ----\n\n private modelPointToSurface(point: AXPWorkflowPoint): AXPWorkflowPoint {\n const viewport = this.canvasViewport();\n return {\n x: point.x + viewport.offsetX,\n y: point.y + viewport.offsetY,\n };\n }\n\n private surfacePointToModel(point: AXPWorkflowPoint): AXPWorkflowPoint {\n const viewport = this.canvasViewport();\n return {\n x: point.x - viewport.offsetX,\n y: point.y - viewport.offsetY,\n };\n }\n\n /**\n * Returns node bounding boxes in surface coordinates.\n *\n * All nodes are returned so the router can route AROUND every node, including\n * the source and target of a connector. The router itself drops obstacles that\n * already contain the stub-out point so the connector can still exit/enter its port.\n */\n private collectObstaclesInSurface(): AXPWorkflowRect[] {\n const viewport = this.canvasViewport();\n const obstacles: AXPWorkflowRect[] = [];\n for (const node of this.model().nodes) {\n obstacles.push({\n position: { x: node.position.x + viewport.offsetX, y: node.position.y + viewport.offsetY },\n size: { width: node.size.width, height: node.size.height },\n });\n }\n return obstacles;\n }\n\n //#endregion\n\n //#region ---- Wrapper visuals ----\n\n private syncWrapperBackgroundStyle(): void {\n const wrapper = this.wrapperElement();\n if (!wrapper) {\n return;\n }\n const gridStyle = this.gridStyle();\n wrapper.style.backgroundColor = 'var(--ax-sys-color-lightest-surface)';\n wrapper.style.backgroundImage = String(gridStyle['background-image'] ?? '');\n wrapper.style.backgroundSize = String(gridStyle['background-size'] ?? '');\n wrapper.style.borderRadius = '10px';\n }\n\n //#endregion\n\n private detachWindowListeners(): void {\n this.clearWrapperAttachRetry();\n this.detachWrapperDropTargets();\n this.linkHoverTarget.set(null);\n window.removeEventListener('pointermove', this.onWindowPointerMoveForNode);\n window.removeEventListener('pointerup', this.onWindowPointerUpForNode);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForNode);\n window.removeEventListener('pointermove', this.onWindowPointerMoveForResize);\n window.removeEventListener('pointerup', this.onWindowPointerUpForResize);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForResize);\n window.removeEventListener('pointermove', this.onWindowPointerMoveForLink);\n window.removeEventListener('pointerup', this.onWindowPointerUpForLink);\n window.removeEventListener('pointercancel', this.onWindowPointerUpForLink);\n }\n}\n","<div class=\"axp-workflow-designer\" [ngStyle]=\"gridStyle()\">\n <div #surface class=\"axp-workflow-designer__surface\" axPanView [(panX)]=\"panX\" [(panY)]=\"panY\" [(zoom)]=\"panZoomLevel\"\n [maxZoom]=\"10000\" [freeMode]=\"true\" [fitContent]=\"true\" wrapperClasses=\"h\" [ngStyle]=\"surfaceStyle()\"\n (pointerdown)=\"onSurfacePointerDown($event)\" (click)=\"onSurfaceClick($event)\"\n (dblclick)=\"onSurfaceDoubleClick($event)\" (dragover)=\"onCanvasDragOver($event)\" (drop)=\"onCanvasDrop($event)\">\n <svg class=\"axp-workflow-designer__svg\" width=\"100%\" height=\"100%\" preserveAspectRatio=\"xMinYMin meet\">\n <defs>\n <marker [attr.id]=\"svgMarkerId\" markerWidth=\"6\" markerHeight=\"6\" refX=\"3.9\" refY=\"3\" orient=\"auto\">\n <path d=\"M0,0 L4,3 L0,6 Q1.5,3 0,0 Z\" class=\"axp-workflow-designer__arrow-head\"></path>\n </marker>\n </defs>\n @for (c of model().connectors; track c.id) {\n <path class=\"axp-workflow-designer__edge-hit\" [attr.d]=\"connectorPathD(c)\" fill=\"none\" stroke=\"transparent\"\n stroke-width=\"16\" pointer-events=\"stroke\" (click)=\"onConnectorClick(c, $event)\"\n (dblclick)=\"onConnectorDoubleClick(c, $event)\" />\n <path [class]=\"connectorEdgeClasses(c)\" [attr.d]=\"connectorPathD(c)\" fill=\"none\"\n [attr.marker-end]=\"'url(#' + svgMarkerId + ')'\" />\n }\n @if (linkDrag()) {\n <path class=\"axp-workflow-designer__edge-preview\" [attr.d]=\"previewPath()\" fill=\"none\" />\n }\n @if (showPortLabels()) {\n @for (node of model().nodes; track node.id) {\n @for (port of node.inboundPorts; track port.id) {\n @if (portLabelText(port)) {\n <text class=\"axp-workflow-designer__port-label-svg\" [attr.x]=\"portLabelX(node, port)\"\n [attr.y]=\"portLabelY(node, port)\" [attr.text-anchor]=\"portLabelAnchor(node, port)\">\n {{ portLabelText(port) }}\n </text>\n }\n }\n @for (port of node.outboundPorts; track port.id) {\n @if (portLabelText(port)) {\n <text class=\"axp-workflow-designer__port-label-svg\" [attr.x]=\"portLabelX(node, port)\"\n [attr.y]=\"portLabelY(node, port)\" [attr.text-anchor]=\"portLabelAnchor(node, port)\">\n {{ portLabelText(port) }}\n </text>\n }\n }\n }\n }\n </svg>\n\n @for (c of model().connectors; track c.id) {\n @if (isConnectorActive(c.id) && !isConnectorReadonly(c)) {\n <div class=\"axp-workflow-designer__connector-actions\" [style.left.px]=\"connectorMidpoint(c).x - 16\"\n [style.top.px]=\"connectorMidpoint(c).y - 16\">\n <ax-button look=\"blank\" class=\"ax-xs axp-workflow-designer__icon-btn\" (onClick)=\"removeConnector(c)\">\n <ax-icon class=\"fa-solid fa-minus\"></ax-icon>\n </ax-button>\n </div>\n }\n }\n\n @for (node of model().nodes; track node.id) {\n <div class=\"axp-workflow-designer__node\" [class.axp-workflow-designer__node--active]=\"isNodeActive(node.id)\"\n [class.axp-workflow-designer__node--highlighted]=\"isNodeHighlighted(node.id)\"\n [style.left.px]=\"nodeSurfaceLeft(node)\" [style.top.px]=\"nodeSurfaceTop(node)\" [style.width.px]=\"node.size.width\"\n [style.height.px]=\"node.size.height\" (pointerdown)=\"onNodePointerDown(node, $event)\"\n (click)=\"onNodeClick(node, $event)\" (dblclick)=\"onNodeDoubleClick(node, $event)\"\n (contextmenu)=\"onNodeContextMenu(node, $event)\">\n <div [class]=\"nodeShapeClasses(node)\">\n <div class=\"axp-workflow-designer__node-body\" (pointerdown)=\"onNodeBodyPointerDown(node, $event)\">\n @if (nodeBodyTemplate(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl\" [ngTemplateOutletContext]=\"templateContext(node)\" />\n } @else {\n <div class=\"axp-workflow-designer__node-default\">\n @if (node.icon) {\n <ax-icon class=\"axp-workflow-designer__node-default-icon\" [class]=\"node.icon\"></ax-icon>\n }\n <span class=\"axp-workflow-designer__node-default-title\">{{ node.title }}</span>\n </div>\n }\n </div>\n </div>\n\n @for (port of node.inboundPorts; track port.id) {\n <div class=\"axp-workflow-designer__port-cluster\"\n [class.axp-workflow-designer__port-cluster--side-top]=\"port.side === 'top'\"\n [class.axp-workflow-designer__port-cluster--side-right]=\"port.side === 'right'\"\n [class.axp-workflow-designer__port-cluster--side-bottom]=\"port.side === 'bottom'\"\n [class.axp-workflow-designer__port-cluster--side-left]=\"port.side === 'left'\"\n [ngStyle]=\"portClusterStyle(node, port)\">\n <button type=\"button\" class=\"axp-workflow-designer__port axp-workflow-designer__port--inbound\"\n [class.axp-workflow-designer__port--active]=\"isPortActive(node.id, port.id)\"\n [class.axp-workflow-designer__port--link-hover]=\"isPortLinkHoverTarget(node.id, port.id)\"\n [class.axp-workflow-designer__port--disabled]=\"port.disabled\"\n [disabled]=\"isNodeReadonly(node) || port.disabled === true\"\n (pointerdown)=\"onPortPointerDown(node, port, $event)\"></button>\n </div>\n }\n @for (port of node.outboundPorts; track port.id) {\n <div class=\"axp-workflow-designer__port-cluster\"\n [class.axp-workflow-designer__port-cluster--side-top]=\"port.side === 'top'\"\n [class.axp-workflow-designer__port-cluster--side-right]=\"port.side === 'right'\"\n [class.axp-workflow-designer__port-cluster--side-bottom]=\"port.side === 'bottom'\"\n [class.axp-workflow-designer__port-cluster--side-left]=\"port.side === 'left'\"\n [ngStyle]=\"portClusterStyle(node, port)\">\n <button type=\"button\" class=\"axp-workflow-designer__port axp-workflow-designer__port--outbound\"\n [class.axp-workflow-designer__port--active]=\"isPortActive(node.id, port.id)\"\n [class.axp-workflow-designer__port--disabled]=\"port.disabled\"\n [disabled]=\"isNodeReadonly(node) || port.disabled === true\"\n (pointerdown)=\"onPortPointerDown(node, port, $event)\"></button>\n </div>\n }\n\n @if (isNodeActive(node.id) && !isNodeReadonly(node)) {\n <span class=\"axp-workflow-designer__resize axp-workflow-designer__resize--nw\"\n (pointerdown)=\"onResizePointerDown(node, 'nw', $event)\"></span>\n <span class=\"axp-workflow-designer__resize axp-workflow-designer__resize--ne\"\n (pointerdown)=\"onResizePointerDown(node, 'ne', $event)\"></span>\n <span class=\"axp-workflow-designer__resize axp-workflow-designer__resize--sw\"\n (pointerdown)=\"onResizePointerDown(node, 'sw', $event)\"></span>\n <span class=\"axp-workflow-designer__resize axp-workflow-designer__resize--se\"\n (pointerdown)=\"onResizePointerDown(node, 'se', $event)\"></span>\n }\n </div>\n }\n </div>\n</div>","import { Directive, computed, input, output } from '@angular/core';\nimport { AXP_WORKFLOW_PALETTE_MIME } from './workflow-designer.const';\nimport type { AXPWorkflowActivityPaletteItem } from './workflow-designer.types';\n\n/**\n * Makes any host element a draggable palette source. Set `[axpWorkflowPaletteItem]=\"item\"` and optional outputs.\n * Drop target: `axp-workflow-designer` canvas (same MIME as drag payload).\n */\n@Directive({\n selector: '[axpWorkflowPaletteItem]',\n host: {\n '[attr.draggable]': 'hostDraggable()',\n '(dragstart)': 'onDragStart($event)',\n '(dragend)': 'onDragEnd($event)',\n },\n})\nexport class AXPWorkflowPaletteItemDragDirective {\n /** Palette definition serialized into the drag payload. */\n readonly axpWorkflowPaletteItem = input.required<AXPWorkflowActivityPaletteItem>({\n alias: 'axpWorkflowPaletteItem',\n });\n\n /** When true, drag is disabled. */\n readonly axpWorkflowPaletteDragDisabled = input(false, { alias: 'axpWorkflowPaletteDragDisabled' });\n\n readonly axpWorkflowPaletteDragStart = output<{ item: AXPWorkflowActivityPaletteItem; event: DragEvent }>({\n alias: 'axpWorkflowPaletteDragStart',\n });\n\n readonly axpWorkflowPaletteDragEnd = output<{ item: AXPWorkflowActivityPaletteItem | null; event: DragEvent }>({\n alias: 'axpWorkflowPaletteDragEnd',\n });\n\n protected readonly hostDraggable = computed(() => (this.axpWorkflowPaletteDragDisabled() ? null : true));\n\n private lastItem: AXPWorkflowActivityPaletteItem | null = null;\n\n protected onDragStart(event: DragEvent): void {\n if (this.axpWorkflowPaletteDragDisabled()) {\n event.preventDefault();\n return;\n }\n const item = this.axpWorkflowPaletteItem();\n this.lastItem = item;\n event.dataTransfer?.setData(AXP_WORKFLOW_PALETTE_MIME, JSON.stringify(item));\n event.dataTransfer?.setData('text/plain', item.title);\n if (event.dataTransfer) event.dataTransfer.effectAllowed = 'copy';\n this.axpWorkflowPaletteDragStart.emit({ item, event });\n }\n\n protected onDragEnd(event: DragEvent): void {\n this.axpWorkflowPaletteDragEnd.emit({ item: this.lastItem, event });\n this.lastItem = null;\n }\n}\n","//#region ---- Point & geometry ----\n\nimport { AXStyleColorType } from '@acorex/cdk/common';\n\n/** Canvas coordinates (pixels). */\nexport interface AXPWorkflowPoint {\n x: number;\n y: number;\n}\n\nexport interface AXPWorkflowSize {\n width: number;\n height: number;\n}\n\n/** Axis-aligned rectangle used by routing/obstacle helpers. */\nexport interface AXPWorkflowRect {\n position: AXPWorkflowPoint;\n size: AXPWorkflowSize;\n}\n\n//#endregion\n\n//#region ---- Semantic color ----\n\nexport type AXPWorkflowSemanticColor = Omit<AXStyleColorType, 'default'>;\n\n//#endregion\n\n//#region ---- Ports & connectors ----\n\nexport type AXPWorkflowPortSide = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface AXPWorkflowPort {\n id: string;\n /** Inbound accepts incoming connectors; outbound emits connections. */\n kind: 'inbound' | 'outbound';\n /** Optional stable key for host logic (e.g. \"default\", \"error\"). */\n key?: string;\n label?: string;\n /** Position along the chosen edge, 0–1. */\n ratio: number;\n side: AXPWorkflowPortSide;\n /** When true, multiple connectors may attach (inbound only). */\n allowMultiple?: boolean;\n /** When true, port cannot be used for new connections. */\n disabled?: boolean;\n /** Per-port readonly: no connect/disconnect interactions. */\n readonly?: boolean;\n /** Arbitrary payload (conditions, routing metadata, etc.). */\n data?: Record<string, unknown>;\n}\n\nexport interface AXPWorkflowConnector {\n id: string;\n sourceNodeId: string;\n sourcePortId: string;\n targetNodeId: string;\n targetPortId: string;\n /** Arbitrary payload (conditions, labels, etc.). */\n data?: Record<string, unknown>;\n /** Per-connector readonly: cannot delete or reconnect. */\n readonly?: boolean;\n /** Theme token applied as `ax-{color}-surface` on the edge stroke styling. */\n color?: AXPWorkflowSemanticColor;\n /** Theme token applied as `ax-{color}-border` on the edge stroke styling. */\n borderColor?: AXPWorkflowSemanticColor;\n}\n\n//#endregion\n\n//#region ---- Nodes ----\n\nexport type AXPWorkflowNodeShape = 'rectangle' | 'rounded-rectangle' | 'circle' | 'ellipse' | 'diamond';\n\nexport interface AXPWorkflowNode {\n id: string;\n /** Palette / definition type key. */\n type: string;\n title: string;\n icon?: string;\n shape: AXPWorkflowNodeShape;\n position: AXPWorkflowPoint;\n size: AXPWorkflowSize;\n inboundPorts: AXPWorkflowPort[];\n outboundPorts: AXPWorkflowPort[];\n /** Arbitrary domain payload. */\n data?: Record<string, unknown>;\n /** When true, node cannot be moved, resized, or connected. */\n readonly?: boolean;\n /** When true, width/height stay proportional while resizing. */\n lockAspectRatio?: boolean;\n /**\n * Snap override: `true` / `false` forces behavior; `undefined` uses designer default.\n */\n snapToGrid?: boolean;\n /** Theme token applied as `ax-{color}-surface` on the node shape. */\n color?: AXPWorkflowSemanticColor;\n /** Theme token applied as `ax-{color}-border` on the node shape. */\n borderColor?: AXPWorkflowSemanticColor;\n}\n\n//#endregion\n\n//#region ---- Diagram model ----\n\nexport interface AXPWorkflowDiagramModel {\n nodes: AXPWorkflowNode[];\n connectors: AXPWorkflowConnector[];\n /** Optional diagram-level metadata. */\n data?: Record<string, unknown>;\n}\n\n//#endregion\n\n//#region ---- Diagram layout ----\n\n/** Flow direction for the arranged diagram. `horizontal` = left→right, `vertical` = top→bottom. */\nexport type AXPWorkflowArrangeDirection = 'horizontal' | 'vertical';\n\n/** Cross-axis alignment within a single rank (column for horizontal, row for vertical). */\nexport type AXPWorkflowArrangeAlignment = 'start' | 'center' | 'end';\n\nexport interface AXPWorkflowArrangeDiagramOptions {\n /** Preferred start node (first column for horizontal, first row for vertical). When omitted, nodes without inbound edges are roots. */\n startNodeId?: string;\n /** Snaps arranged positions to this grid (pixels). `0` disables snapping. */\n gridSize?: number;\n /** Outer padding around the arranged area. */\n margin?: number;\n /** Gap between adjacent columns (horizontal) or rows (vertical). */\n horizontalGap?: number;\n /** Gap between siblings within a column (horizontal) or row (vertical). */\n verticalGap?: number;\n /** Primary flow direction. Defaults to `'horizontal'`. */\n direction?: AXPWorkflowArrangeDirection;\n /** Cross-axis alignment inside each rank. Defaults to `'center'`. */\n alignment?: AXPWorkflowArrangeAlignment;\n /** Top-left origin of the arranged area in model coordinates. Defaults to `{ x: margin, y: margin }`. */\n origin?: AXPWorkflowPoint;\n /** Only arrange the listed nodes (others keep their current position). */\n nodeIds?: string[];\n /** Apply barycenter ordering inside each rank to reduce crossings. Defaults to `true`. */\n reduceCrossings?: boolean;\n /** Lay each disconnected component out in its own block, stacked along the cross axis. Defaults to `true`. */\n groupDisconnected?: boolean;\n}\n\n//#endregion\n\n//#region ---- Palette (drag source definition) ----\n\nexport interface AXPWorkflowActivityPaletteItem {\n type: string;\n title: string;\n description?: string;\n icon?: string;\n shape?: AXPWorkflowNodeShape;\n size?: AXPWorkflowSize;\n /** When set (including `[]`), defines inbound ports; when omitted, one default inbound is used. */\n inboundPorts?: Omit<AXPWorkflowPort, 'id' | 'kind'>[];\n /** When set (including `[]`), defines outbound ports; when omitted, one default outbound is used. */\n outboundPorts?: Omit<AXPWorkflowPort, 'id' | 'kind'>[];\n data?: Record<string, unknown>;\n lockAspectRatio?: boolean;\n snapToGrid?: boolean;\n color?: AXPWorkflowSemanticColor;\n}\n\n//#endregion\n\n//#region ---- Template context ----\n\n/**\n * Context passed to `nodeBodyTemplate` (`NgTemplateOutlet`).\n * Supports `let-n` via `$implicit` or `let-n=\"node\"`.\n */\nexport interface AXPWorkflowNodeBodyTemplateContext {\n $implicit: AXPWorkflowNode;\n node: AXPWorkflowNode;\n}\n\n//#endregion\n\n//#region ---- Connection rules ----\n\nexport interface AXPWorkflowConnectRequest {\n sourceNodeId: string;\n sourcePortId: string;\n targetNodeId: string;\n targetPortId: string;\n model: AXPWorkflowDiagramModel;\n}\n\nexport type AXPWorkflowCanConnectFn = (request: AXPWorkflowConnectRequest) => boolean;\n\n//#endregion\n\n//#region ---- Preview routing ----\n\nexport type AXPWorkflowConnectionPreviewStyle = 'straight' | 'rounded' | 'orthogonal';\n\n/**\n * Optional routing hints for `connectorPath`. When provided, orthogonal/rounded\n * paths avoid the supplied obstacle rectangles by detouring around them.\n */\nexport interface AXPWorkflowConnectorRouteOptions {\n /** Inbound port side at the destination. When omitted, the opposite of `sourceSide` is assumed. */\n targetSide?: AXPWorkflowPortSide;\n /** Other node rectangles to bypass. Source/target nodes should be excluded. */\n obstacles?: AXPWorkflowRect[];\n /** Distance (px) the connector extends straight out of the source/target port before turning. */\n stub?: number;\n /** Extra space (px) around each obstacle when planning the route. */\n obstaclePadding?: number;\n /** Corner radius (px) used by the `rounded` style. */\n cornerRadius?: number;\n}\n\n//#endregion\n\n//#region ---- Activation (designer chrome) ----\n\nexport type AXPWorkflowDesignerActivationKind = 'canvas' | 'node' | 'port' | 'connector';\n\nexport interface AXPWorkflowDesignerActivation {\n kind: AXPWorkflowDesignerActivationKind;\n /** Node id, port id, or connector id depending on `kind`. */\n id: string;\n /** For port activation, parent node id. */\n nodeId?: string;\n}\n\n//#endregion\n","export * from './lib/platform-management.module';\n\nexport * from './lib/contracts/root.config';\nexport * from './lib/entities';\nexport * from './lib/contracts';\nexport * from './lib/features/workflow-designer';\n// export * from './lib/features';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXPUpdaterService","i1","i3"],"mappings":"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"}