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

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 (393) hide show
  1. package/fesm2022/{acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs → acorex-modules-ai-management-acorex-modules-ai-management-Bqfx8OTv.mjs} +718 -106
  2. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-Bqfx8OTv.mjs.map +1 -0
  3. package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-column.component-D0ruV6aJ.mjs +44 -0
  4. package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-column.component-D0ruV6aJ.mjs.map +1 -0
  5. package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-DyczMN-R.mjs +256 -0
  6. package/fesm2022/acorex-modules-ai-management-agent-registry-tool-configurator-widget-edit.component-DyczMN-R.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs → acorex-modules-ai-management-agent.entity-CpSXisAh.mjs} +83 -94
  8. package/fesm2022/acorex-modules-ai-management-agent.entity-CpSXisAh.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs → acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CYk2rB36.mjs} +62 -20
  10. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CYk2rB36.mjs.map +1 -0
  11. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BDcW8BRI.mjs} +3 -5
  12. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs.map → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-BDcW8BRI.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs → acorex-modules-ai-management-assist.entity-7uTePpME.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs.map → acorex-modules-ai-management-assist.entity-7uTePpME.mjs.map} +1 -1
  15. package/fesm2022/acorex-modules-ai-management-index-DUojDUau.mjs +2 -0
  16. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs.map → acorex-modules-ai-management-index-DUojDUau.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs → acorex-modules-ai-management-model.entity-C9J3trsK.mjs} +2 -2
  18. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs.map → acorex-modules-ai-management-model.entity-C9J3trsK.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs → acorex-modules-ai-management-open-ai-endpoint.entity-kHsxkjEd.mjs} +2 -2
  20. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs.map → acorex-modules-ai-management-open-ai-endpoint.entity-kHsxkjEd.mjs.map} +1 -1
  21. package/fesm2022/acorex-modules-ai-management.mjs +1 -1
  22. package/fesm2022/acorex-modules-application-management.mjs +1 -1
  23. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  24. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-CMS2WJDu.mjs} +510 -437
  25. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-CMS2WJDu.mjs.map +1 -0
  26. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs → acorex-modules-assessment-management-assessment-case.entity-C-Q4hu8o.mjs} +2 -2
  27. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs.map → acorex-modules-assessment-management-assessment-case.entity-C-Q4hu8o.mjs.map} +1 -1
  28. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs → acorex-modules-assessment-management-assessment-session.entity-CQI_FpUd.mjs} +2 -2
  29. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CQI_FpUd.mjs.map} +1 -1
  30. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs → acorex-modules-assessment-management-fill-assessment-session.command-Bpvco5iD.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-Bpvco5iD.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-assessment-management-index-B2SncZAW.mjs → acorex-modules-assessment-management-index-_fPuBQeK.mjs} +25 -26
  33. package/fesm2022/acorex-modules-assessment-management-index-_fPuBQeK.mjs.map +1 -0
  34. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs → acorex-modules-assessment-management-preview-question.command-drR6nq76.mjs} +10 -11
  35. package/fesm2022/acorex-modules-assessment-management-preview-question.command-drR6nq76.mjs.map +1 -0
  36. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs → acorex-modules-assessment-management-preview-questionnaire.command-CY8tZWdG.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-CY8tZWdG.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DV9irFZ0.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DV9irFZ0.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs → acorex-modules-assessment-management-question-bank-item.entity-DO4bTKKo.mjs} +2 -2
  41. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-DO4bTKKo.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-B-N0v4zs.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-B-N0v4zs.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cc-o6qmY.mjs} +3 -3
  45. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-Cc-o6qmY.mjs.map} +1 -1
  46. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs → acorex-modules-assessment-management-questionnaire.entity-CJWNlaJs.mjs} +3 -3
  47. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs.map → acorex-modules-assessment-management-questionnaire.entity-CJWNlaJs.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-C3gOkZa5.mjs} +2 -2
  49. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-C3gOkZa5.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs → acorex-modules-assessment-management-view-session-answers.command-AvTbWvGE.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-AvTbWvGE.mjs.map} +1 -1
  52. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  53. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs → acorex-modules-asset-management-acorex-modules-asset-management-BRap9yt6.mjs} +761 -133
  54. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BRap9yt6.mjs.map +1 -0
  55. package/fesm2022/acorex-modules-asset-management-asset-rental-history.entity-B_QZI3Cy.mjs +302 -0
  56. package/fesm2022/acorex-modules-asset-management-asset-rental-history.entity-B_QZI3Cy.mjs.map +1 -0
  57. package/fesm2022/acorex-modules-asset-management-asset-status.rules-BL0Osjqv.mjs +98 -0
  58. package/fesm2022/acorex-modules-asset-management-asset-status.rules-BL0Osjqv.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs → acorex-modules-asset-management-asset-system-assignment.entity-BRz8vItS.mjs} +77 -48
  60. package/fesm2022/acorex-modules-asset-management-asset-system-assignment.entity-BRz8vItS.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs → acorex-modules-asset-management-asset-system-type.entity-b_o5UnuE.mjs} +72 -40
  62. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-b_o5UnuE.mjs.map +1 -0
  63. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs → acorex-modules-asset-management-asset-system.entity-C6ak4u9z.mjs} +41 -29
  64. package/fesm2022/acorex-modules-asset-management-asset-system.entity-C6ak4u9z.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs → acorex-modules-asset-management-asset-type-section-component.entity-BQjGo1s1.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-BQjGo1s1.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs → acorex-modules-asset-management-asset-type-section.entity-C1DJZZFy.mjs} +6 -48
  68. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-C1DJZZFy.mjs.map +1 -0
  69. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs → acorex-modules-asset-management-asset-type.entity-CtOnArR9.mjs} +68 -105
  70. package/fesm2022/acorex-modules-asset-management-asset-type.entity-CtOnArR9.mjs.map +1 -0
  71. package/fesm2022/{acorex-modules-asset-management-asset.entity-CamZGWTM.mjs → acorex-modules-asset-management-asset.entity-BaET-kSd.mjs} +257 -245
  72. package/fesm2022/acorex-modules-asset-management-asset.entity-BaET-kSd.mjs.map +1 -0
  73. package/fesm2022/acorex-modules-asset-management-assetLifecycleState.provider-DZ5r2zx7.mjs +192 -0
  74. package/fesm2022/acorex-modules-asset-management-assetLifecycleState.provider-DZ5r2zx7.mjs.map +1 -0
  75. package/fesm2022/acorex-modules-asset-management-status.provider-C41t4e2U.mjs +363 -0
  76. package/fesm2022/acorex-modules-asset-management-status.provider-C41t4e2U.mjs.map +1 -0
  77. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  78. package/fesm2022/acorex-modules-business-core.mjs +17 -11
  79. package/fesm2022/acorex-modules-business-core.mjs.map +1 -1
  80. package/fesm2022/acorex-modules-common.mjs +166 -122
  81. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  82. package/fesm2022/acorex-modules-conversation.mjs +4786 -4080
  83. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  84. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-yqfev--M.mjs +8486 -0
  85. package/fesm2022/acorex-modules-dashboard-management-acorex-modules-dashboard-management-yqfev--M.mjs.map +1 -0
  86. package/fesm2022/acorex-modules-dashboard-management-index-CYnWQ2od.mjs +127 -0
  87. package/fesm2022/acorex-modules-dashboard-management-index-CYnWQ2od.mjs.map +1 -0
  88. package/fesm2022/acorex-modules-dashboard-management.mjs +1 -7708
  89. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  90. package/fesm2022/acorex-modules-data-management.mjs +63 -35
  91. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  92. package/fesm2022/acorex-modules-document-management.mjs +131 -62
  93. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  94. package/fesm2022/acorex-modules-financial-core.mjs.map +1 -1
  95. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  96. package/fesm2022/acorex-modules-form-template-management.mjs.map +1 -1
  97. package/fesm2022/{acorex-modules-health-core-allergy-type.entity-CS8a-AUb.mjs → acorex-modules-health-core-allergy-type.entity-BvJmDMcr.mjs} +3 -3
  98. package/fesm2022/acorex-modules-health-core-allergy-type.entity-BvJmDMcr.mjs.map +1 -0
  99. package/fesm2022/{acorex-modules-health-core-blood-type.entity-ZgFOuvG4.mjs → acorex-modules-health-core-blood-type.entity-Vpw9y9J5.mjs} +3 -3
  100. package/fesm2022/acorex-modules-health-core-blood-type.entity-Vpw9y9J5.mjs.map +1 -0
  101. package/fesm2022/{acorex-modules-health-core-body-part.entity-JGLwrFE2.mjs → acorex-modules-health-core-body-part.entity-Cz2NEAqm.mjs} +3 -3
  102. package/fesm2022/acorex-modules-health-core-body-part.entity-Cz2NEAqm.mjs.map +1 -0
  103. package/fesm2022/{acorex-modules-health-core-chronic-condition-type.entity-DrxEPQj1.mjs → acorex-modules-health-core-chronic-condition-type.entity-CKWVW0Rg.mjs} +3 -3
  104. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-CKWVW0Rg.mjs.map +1 -0
  105. package/fesm2022/{acorex-modules-health-core-disability-status.entity-UaAQFFMC.mjs → acorex-modules-health-core-disability-status.entity-C7NwwT0i.mjs} +3 -3
  106. package/fesm2022/acorex-modules-health-core-disability-status.entity-C7NwwT0i.mjs.map +1 -0
  107. package/fesm2022/{acorex-modules-health-core-injury-type.entity-DcIn0rxz.mjs → acorex-modules-health-core-injury-type.entity-bfzL6j8C.mjs} +3 -3
  108. package/fesm2022/acorex-modules-health-core-injury-type.entity-bfzL6j8C.mjs.map +1 -0
  109. package/fesm2022/{acorex-modules-health-core-vaccination-type.entity-zYd6KLRC.mjs → acorex-modules-health-core-vaccination-type.entity-CqymQfWK.mjs} +3 -3
  110. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-CqymQfWK.mjs.map +1 -0
  111. package/fesm2022/acorex-modules-health-core.mjs +7 -7
  112. package/fesm2022/acorex-modules-health-core.mjs.map +1 -1
  113. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Ck9q-IWW.mjs +1922 -0
  114. package/fesm2022/acorex-modules-human-capital-management-acorex-modules-human-capital-management-Ck9q-IWW.mjs.map +1 -0
  115. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-BRUrGVh1.mjs → acorex-modules-human-capital-management-approve-leave-request.command-qYSPyG_q.mjs} +2 -2
  116. package/fesm2022/{acorex-modules-human-capital-management-approve-leave-request.command-BRUrGVh1.mjs.map → acorex-modules-human-capital-management-approve-leave-request.command-qYSPyG_q.mjs.map} +1 -1
  117. package/fesm2022/acorex-modules-human-capital-management-assign-position-assignment.command-Da3u1fo5.mjs +90 -0
  118. package/fesm2022/acorex-modules-human-capital-management-assign-position-assignment.command-Da3u1fo5.mjs.map +1 -0
  119. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-B16M3F8s.mjs → acorex-modules-human-capital-management-cancel-leave-request.command-DstI60jo.mjs} +2 -2
  120. package/fesm2022/{acorex-modules-human-capital-management-cancel-leave-request.command-B16M3F8s.mjs.map → acorex-modules-human-capital-management-cancel-leave-request.command-DstI60jo.mjs.map} +1 -1
  121. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs → acorex-modules-human-capital-management-employee.entity-DjMQm3VC.mjs} +71 -25
  122. package/fesm2022/acorex-modules-human-capital-management-employee.entity-DjMQm3VC.mjs.map +1 -0
  123. package/fesm2022/{acorex-modules-human-capital-management-employment-type.entity-7ZGZYxGM.mjs → acorex-modules-human-capital-management-employment-type.entity-v8WzEHiE.mjs} +5 -5
  124. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-v8WzEHiE.mjs.map +1 -0
  125. package/fesm2022/{acorex-modules-human-capital-management-leave-request.entity-B3Rk84bJ.mjs → acorex-modules-human-capital-management-leave-request.entity-B9Bf-Nnm.mjs} +71 -21
  126. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-B9Bf-Nnm.mjs.map +1 -0
  127. package/fesm2022/{acorex-modules-human-capital-management-leave-type.entity-OKu8_PP1.mjs → acorex-modules-human-capital-management-leave-type.entity-Bpfd_hNb.mjs} +5 -6
  128. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-Bpfd_hNb.mjs.map +1 -0
  129. package/fesm2022/{acorex-modules-human-capital-management-position-assignment.entity-D_C459kx.mjs → acorex-modules-human-capital-management-position-assignment.entity-f0IDrLSn.mjs} +81 -7
  130. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-f0IDrLSn.mjs.map +1 -0
  131. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C0_moDp9.mjs → acorex-modules-human-capital-management-reject-leave-request.command-DxNsroYI.mjs} +2 -2
  132. package/fesm2022/{acorex-modules-human-capital-management-reject-leave-request.command-C0_moDp9.mjs.map → acorex-modules-human-capital-management-reject-leave-request.command-DxNsroYI.mjs.map} +1 -1
  133. package/fesm2022/acorex-modules-human-capital-management-revoke-position-assignment.command-C3J9pcfh.mjs +97 -0
  134. package/fesm2022/acorex-modules-human-capital-management-revoke-position-assignment.command-C3J9pcfh.mjs.map +1 -0
  135. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1629
  136. package/fesm2022/acorex-modules-human-capital-management.mjs.map +1 -1
  137. package/fesm2022/{acorex-modules-learning-management-certificate-definition.entity-27VKYxw1.mjs → acorex-modules-learning-management-certificate-definition.entity-C_r1Djcx.mjs} +4 -4
  138. package/fesm2022/acorex-modules-learning-management-certificate-definition.entity-C_r1Djcx.mjs.map +1 -0
  139. package/fesm2022/{acorex-modules-learning-management-certificate-type.entity-CBM6N-PD.mjs → acorex-modules-learning-management-certificate-type.entity-DAJNtUya.mjs} +42 -20
  140. package/fesm2022/acorex-modules-learning-management-certificate-type.entity-DAJNtUya.mjs.map +1 -0
  141. package/fesm2022/{acorex-modules-learning-management-certificate.entity-BRBJQYji.mjs → acorex-modules-learning-management-certificate.entity-CSD_CX4V.mjs} +5 -5
  142. package/fesm2022/acorex-modules-learning-management-certificate.entity-CSD_CX4V.mjs.map +1 -0
  143. package/fesm2022/{acorex-modules-learning-management-course-type.entity-B1c6PDLq.mjs → acorex-modules-learning-management-course-type.entity-DmjeLMxV.mjs} +39 -17
  144. package/fesm2022/acorex-modules-learning-management-course-type.entity-DmjeLMxV.mjs.map +1 -0
  145. package/fesm2022/{acorex-modules-learning-management-course.entity-BN8XHAPz.mjs → acorex-modules-learning-management-course.entity-DUUgeikJ.mjs} +3 -3
  146. package/fesm2022/acorex-modules-learning-management-course.entity-DUUgeikJ.mjs.map +1 -0
  147. package/fesm2022/{acorex-modules-learning-management-learning-path.entity-8QlM3R4B.mjs → acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs} +39 -17
  148. package/fesm2022/acorex-modules-learning-management-learning-path.entity-Zo--bDto.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-learning-management-skill-level.entity-DXOWslpB.mjs → acorex-modules-learning-management-skill-level.entity-XVCTHW3O.mjs} +10 -10
  150. package/fesm2022/acorex-modules-learning-management-skill-level.entity-XVCTHW3O.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-learning-management-skill.entity-DrLts807.mjs → acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs} +35 -13
  152. package/fesm2022/acorex-modules-learning-management-skill.entity-VXkLbaD4.mjs.map +1 -0
  153. package/fesm2022/{acorex-modules-learning-management-training-definition.entity-NQqJ5avw.mjs → acorex-modules-learning-management-training-definition.entity-BbVZ9_go.mjs} +3 -3
  154. package/fesm2022/acorex-modules-learning-management-training-definition.entity-BbVZ9_go.mjs.map +1 -0
  155. package/fesm2022/{acorex-modules-learning-management-training-type.entity-CoyDCeen.mjs → acorex-modules-learning-management-training-type.entity-C1otrA63.mjs} +36 -14
  156. package/fesm2022/acorex-modules-learning-management-training-type.entity-C1otrA63.mjs.map +1 -0
  157. package/fesm2022/{acorex-modules-learning-management-training.entity-BCGn0T3H.mjs → acorex-modules-learning-management-training.entity-C4KDv1uh.mjs} +3 -3
  158. package/fesm2022/acorex-modules-learning-management-training.entity-C4KDv1uh.mjs.map +1 -0
  159. package/fesm2022/acorex-modules-learning-management.mjs +716 -19
  160. package/fesm2022/acorex-modules-learning-management.mjs.map +1 -1
  161. package/fesm2022/acorex-modules-location-management.mjs +18 -99
  162. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  163. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-CfHMiVos.mjs +7102 -0
  164. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-CfHMiVos.mjs.map +1 -0
  165. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs → acorex-modules-maintenance-management-failure-effect.entity-DKbARwJh.mjs} +2 -2
  166. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-DKbARwJh.mjs.map} +1 -1
  167. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-Br0lvFfu.mjs} +2 -2
  168. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-Br0lvFfu.mjs.map} +1 -1
  169. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-Dydg4AJ7.mjs} +2 -2
  170. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-Dydg4AJ7.mjs.map} +1 -1
  171. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-DHiVJHFj.mjs} +2 -2
  172. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-DHiVJHFj.mjs.map} +1 -1
  173. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-CZfm0U8u.mjs} +2 -2
  174. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-CZfm0U8u.mjs.map} +1 -1
  175. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-DbCAFveJ.mjs} +2 -2
  176. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-DbCAFveJ.mjs.map} +1 -1
  177. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-D83Yo6dT.mjs} +2 -2
  178. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-D83Yo6dT.mjs.map} +1 -1
  179. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs → acorex-modules-maintenance-management-failure-register.entity-zKGo9bOs.mjs} +4 -4
  180. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-zKGo9bOs.mjs.map +1 -0
  181. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs → acorex-modules-maintenance-management-failure-severity.entity-Cnvdmt0N.mjs} +2 -2
  182. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-Cnvdmt0N.mjs.map} +1 -1
  183. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-CzX0phT-.mjs +391 -0
  184. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-CzX0phT-.mjs.map +1 -0
  185. package/fesm2022/acorex-modules-maintenance-management.mjs +1 -3579
  186. package/fesm2022/acorex-modules-maintenance-management.mjs.map +1 -1
  187. package/fesm2022/acorex-modules-measurement-core.mjs.map +1 -1
  188. package/fesm2022/{acorex-modules-notification-management-notification-page.component-DDhCqJtg.mjs → acorex-modules-notification-management-notification-page.component-D0we6H1f.mjs} +5 -5
  189. package/fesm2022/{acorex-modules-notification-management-notification-page.component-DDhCqJtg.mjs.map → acorex-modules-notification-management-notification-page.component-D0we6H1f.mjs.map} +1 -1
  190. package/fesm2022/acorex-modules-notification-management.mjs +36 -22
  191. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  192. package/fesm2022/acorex-modules-organization-management-JOB_DEFINITION_SKILLS_PAGE_COMPONENT_KEY-BYfbGGOE.mjs +8 -0
  193. package/fesm2022/acorex-modules-organization-management-JOB_DEFINITION_SKILLS_PAGE_COMPONENT_KEY-BYfbGGOE.mjs.map +1 -0
  194. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-CnAHfj2t.mjs +925 -0
  195. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-CnAHfj2t.mjs.map +1 -0
  196. package/fesm2022/acorex-modules-organization-management-business-unit.entity-Dpf7-aeM.mjs +372 -0
  197. package/fesm2022/acorex-modules-organization-management-business-unit.entity-Dpf7-aeM.mjs.map +1 -0
  198. package/fesm2022/{acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs → acorex-modules-organization-management-chart.entity-CQX81AiE.mjs} +37 -33
  199. package/fesm2022/acorex-modules-organization-management-chart.entity-CQX81AiE.mjs.map +1 -0
  200. package/fesm2022/{acorex-modules-organization-management-company.entity-BohMJQNi.mjs → acorex-modules-organization-management-company.entity-D-RWQ_8O.mjs} +8 -10
  201. package/fesm2022/acorex-modules-organization-management-company.entity-D-RWQ_8O.mjs.map +1 -0
  202. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs +48 -0
  203. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs.map +1 -0
  204. package/fesm2022/acorex-modules-organization-management-entity.provider-BdaKwTZq.mjs +61 -0
  205. package/fesm2022/acorex-modules-organization-management-entity.provider-BdaKwTZq.mjs.map +1 -0
  206. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-EzMuHJ2K.mjs +19 -0
  207. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-EzMuHJ2K.mjs.map +1 -0
  208. package/fesm2022/acorex-modules-organization-management-job-definition-matrix-page.utils-DD3jLujN.mjs +61 -0
  209. package/fesm2022/acorex-modules-organization-management-job-definition-matrix-page.utils-DD3jLujN.mjs.map +1 -0
  210. package/fesm2022/acorex-modules-organization-management-job-definition-pages-component.provider-C8_Ab3Q7.mjs +28 -0
  211. package/fesm2022/acorex-modules-organization-management-job-definition-pages-component.provider-C8_Ab3Q7.mjs.map +1 -0
  212. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-DHUlvoOO.mjs +223 -0
  213. package/fesm2022/acorex-modules-organization-management-job-definition-responsibilities-page.component-DHUlvoOO.mjs.map +1 -0
  214. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-BpVESnnH.mjs +219 -0
  215. package/fesm2022/acorex-modules-organization-management-job-definition-skills-page.component-BpVESnnH.mjs.map +1 -0
  216. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs → acorex-modules-organization-management-job-definition.entity-H8VAbZ_r.mjs} +21 -154
  217. package/fesm2022/acorex-modules-organization-management-job-definition.entity-H8VAbZ_r.mjs.map +1 -0
  218. package/fesm2022/acorex-modules-organization-management-job-level.datasource-Dxfq0cGw.mjs +95 -0
  219. package/fesm2022/acorex-modules-organization-management-job-level.datasource-Dxfq0cGw.mjs.map +1 -0
  220. package/fesm2022/acorex-modules-organization-management-job-level.entity-Bdja794J.mjs +271 -0
  221. package/fesm2022/acorex-modules-organization-management-job-level.entity-Bdja794J.mjs.map +1 -0
  222. package/fesm2022/acorex-modules-organization-management-menu.provider-DnvNM-pk.mjs +192 -0
  223. package/fesm2022/acorex-modules-organization-management-menu.provider-DnvNM-pk.mjs.map +1 -0
  224. package/fesm2022/acorex-modules-organization-management-org-chart.page-COkMtxFO.mjs +1740 -0
  225. package/fesm2022/acorex-modules-organization-management-org-chart.page-COkMtxFO.mjs.map +1 -0
  226. package/fesm2022/acorex-modules-organization-management-organization-code-identifier-rules.provider-pocBJezL.mjs +37 -0
  227. package/fesm2022/acorex-modules-organization-management-organization-code-identifier-rules.provider-pocBJezL.mjs.map +1 -0
  228. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-BDLIuqxU.mjs +76 -0
  229. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-BDLIuqxU.mjs.map +1 -0
  230. package/fesm2022/{acorex-modules-organization-management-position.entity-DLPufeWz.mjs → acorex-modules-organization-management-position.entity-BpbzqtEY.mjs} +113 -112
  231. package/fesm2022/acorex-modules-organization-management-position.entity-BpbzqtEY.mjs.map +1 -0
  232. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CGkXAtH2.mjs} +26 -29
  233. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-CGkXAtH2.mjs.map +1 -0
  234. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Dw-tX5XI.mjs} +2 -2
  235. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-Dw-tX5XI.mjs.map} +1 -1
  236. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs → acorex-modules-organization-management-responsibilities-matrix.component-D_ClGAIJ.mjs} +14 -21
  237. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-D_ClGAIJ.mjs.map +1 -0
  238. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-CzkogsDv.mjs +135 -0
  239. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-CzkogsDv.mjs.map +1 -0
  240. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs → acorex-modules-organization-management-responsibility.entity-DfKM6HV7.mjs} +5 -7
  241. package/fesm2022/acorex-modules-organization-management-responsibility.entity-DfKM6HV7.mjs.map +1 -0
  242. package/fesm2022/acorex-modules-organization-management-settings.provider-DaeJkP0y.mjs +228 -0
  243. package/fesm2022/acorex-modules-organization-management-settings.provider-DaeJkP0y.mjs.map +1 -0
  244. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-Cm9qcAG7.mjs +300 -0
  245. package/fesm2022/acorex-modules-organization-management-team-business-unit.entity-Cm9qcAG7.mjs.map +1 -0
  246. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-B3xgLE6N.mjs +150 -0
  247. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-B3xgLE6N.mjs.map +1 -0
  248. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs → acorex-modules-organization-management-team-member.entity-Dk9t9S1r.mjs} +6 -17
  249. package/fesm2022/acorex-modules-organization-management-team-member.entity-Dk9t9S1r.mjs.map +1 -0
  250. package/fesm2022/{acorex-modules-organization-management-team.entity-CGR0UlYl.mjs → acorex-modules-organization-management-team.entity-BbcFYP20.mjs} +113 -42
  251. package/fesm2022/acorex-modules-organization-management-team.entity-BbcFYP20.mjs.map +1 -0
  252. package/fesm2022/acorex-modules-organization-management.mjs +1 -2216
  253. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  254. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs +40 -0
  255. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs.map +1 -0
  256. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs +33 -0
  257. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs.map +1 -0
  258. package/fesm2022/acorex-modules-platform-dev-tools.mjs +14 -94
  259. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  260. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs → acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs} +107 -107
  261. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs.map +1 -0
  262. package/fesm2022/acorex-modules-report-management.mjs +3 -3
  263. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  264. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs} +65 -76
  265. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs.map +1 -0
  266. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs} +2 -2
  267. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs.map} +1 -1
  268. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs} +2 -2
  269. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs.map} +1 -1
  270. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs} +2 -2
  271. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs.map} +1 -1
  272. package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
  273. package/fesm2022/acorex-modules-security-management.mjs +507 -179
  274. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  275. package/fesm2022/{acorex-modules-task-management-task-board.page-C1H_GTqy.mjs → acorex-modules-task-management-task-board.page-DA2563QE.mjs} +15 -10
  276. package/fesm2022/acorex-modules-task-management-task-board.page-DA2563QE.mjs.map +1 -0
  277. package/fesm2022/acorex-modules-task-management.mjs +280 -226
  278. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  279. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs +5 -0
  280. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs.map +1 -0
  281. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs} +14 -6
  282. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs.map +1 -0
  283. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs} +31 -16
  284. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs.map +1 -0
  285. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs → acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs} +10 -12
  286. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs.map +1 -0
  287. package/fesm2022/acorex-modules-workflow-management-index-Bx2uYraH.mjs +295 -0
  288. package/fesm2022/acorex-modules-workflow-management-index-Bx2uYraH.mjs.map +1 -0
  289. package/fesm2022/{acorex-modules-workflow-management-index-DWIDQsWq.mjs → acorex-modules-workflow-management-index-C9Qc07oK.mjs} +125 -3
  290. package/fesm2022/acorex-modules-workflow-management-index-C9Qc07oK.mjs.map +1 -0
  291. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs +726 -0
  292. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs.map +1 -0
  293. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs +56 -0
  294. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs.map +1 -0
  295. package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs → acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs} +101 -140
  296. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs.map +1 -0
  297. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs → acorex-modules-workflow-management-workflow-instance.entity-D-KnWlsU.mjs} +10 -1
  298. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-D-KnWlsU.mjs.map +1 -0
  299. package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs → acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs} +11 -7
  300. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs.map +1 -0
  301. package/fesm2022/acorex-modules-workflow-management.mjs +996 -423
  302. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  303. package/organization-management/README.md +5 -1
  304. package/package.json +2 -2
  305. package/types/acorex-modules-ai-management.d.ts +91 -16
  306. package/types/acorex-modules-asset-management.d.ts +214 -83
  307. package/types/acorex-modules-business-core.d.ts +8 -11
  308. package/types/acorex-modules-common.d.ts +20 -8
  309. package/types/acorex-modules-conversation.d.ts +1 -0
  310. package/types/acorex-modules-dashboard-management.d.ts +348 -177
  311. package/types/acorex-modules-data-management.d.ts +2 -2
  312. package/types/acorex-modules-document-management.d.ts +7 -4
  313. package/types/acorex-modules-financial-core.d.ts +26 -19
  314. package/types/acorex-modules-form-template-management.d.ts +3 -3
  315. package/types/acorex-modules-health-core.d.ts +23 -29
  316. package/types/acorex-modules-human-capital-management.d.ts +28 -2
  317. package/types/acorex-modules-learning-management.d.ts +242 -105
  318. package/types/acorex-modules-maintenance-management.d.ts +563 -41
  319. package/types/acorex-modules-measurement-core.d.ts +95 -33
  320. package/types/acorex-modules-notification-management.d.ts +7 -3
  321. package/types/acorex-modules-organization-management.d.ts +272 -109
  322. package/types/acorex-modules-security-management.d.ts +40 -1
  323. package/types/acorex-modules-task-management.d.ts +20 -15
  324. package/types/acorex-modules-workflow-management.d.ts +121 -15
  325. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs.map +0 -1
  326. package/fesm2022/acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs.map +0 -1
  327. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs.map +0 -1
  328. package/fesm2022/acorex-modules-ai-management-index-KX3TVRXr.mjs +0 -2
  329. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs.map +0 -1
  330. package/fesm2022/acorex-modules-assessment-management-index-B2SncZAW.mjs.map +0 -1
  331. package/fesm2022/acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs.map +0 -1
  332. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs.map +0 -1
  333. package/fesm2022/acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs.map +0 -1
  334. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs.map +0 -1
  335. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs.map +0 -1
  336. package/fesm2022/acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs.map +0 -1
  337. package/fesm2022/acorex-modules-asset-management-asset.entity-CamZGWTM.mjs.map +0 -1
  338. package/fesm2022/acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs.map +0 -1
  339. package/fesm2022/acorex-modules-health-core-allergy-type.entity-CS8a-AUb.mjs.map +0 -1
  340. package/fesm2022/acorex-modules-health-core-blood-type.entity-ZgFOuvG4.mjs.map +0 -1
  341. package/fesm2022/acorex-modules-health-core-body-part.entity-JGLwrFE2.mjs.map +0 -1
  342. package/fesm2022/acorex-modules-health-core-chronic-condition-type.entity-DrxEPQj1.mjs.map +0 -1
  343. package/fesm2022/acorex-modules-health-core-disability-status.entity-UaAQFFMC.mjs.map +0 -1
  344. package/fesm2022/acorex-modules-health-core-injury-type.entity-DcIn0rxz.mjs.map +0 -1
  345. package/fesm2022/acorex-modules-health-core-vaccination-type.entity-zYd6KLRC.mjs.map +0 -1
  346. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs.map +0 -1
  347. package/fesm2022/acorex-modules-human-capital-management-employment-type.entity-7ZGZYxGM.mjs.map +0 -1
  348. package/fesm2022/acorex-modules-human-capital-management-leave-request.entity-B3Rk84bJ.mjs.map +0 -1
  349. package/fesm2022/acorex-modules-human-capital-management-leave-type.entity-OKu8_PP1.mjs.map +0 -1
  350. package/fesm2022/acorex-modules-human-capital-management-position-assignment.entity-D_C459kx.mjs.map +0 -1
  351. package/fesm2022/acorex-modules-learning-management-certificate-definition.entity-27VKYxw1.mjs.map +0 -1
  352. package/fesm2022/acorex-modules-learning-management-certificate-type.entity-CBM6N-PD.mjs.map +0 -1
  353. package/fesm2022/acorex-modules-learning-management-certificate.entity-BRBJQYji.mjs.map +0 -1
  354. package/fesm2022/acorex-modules-learning-management-course-type.entity-B1c6PDLq.mjs.map +0 -1
  355. package/fesm2022/acorex-modules-learning-management-course.entity-BN8XHAPz.mjs.map +0 -1
  356. package/fesm2022/acorex-modules-learning-management-learning-path.entity-8QlM3R4B.mjs.map +0 -1
  357. package/fesm2022/acorex-modules-learning-management-skill-level.entity-DXOWslpB.mjs.map +0 -1
  358. package/fesm2022/acorex-modules-learning-management-skill-matrix-widget-edit.component-CaeZ9P_I.mjs +0 -162
  359. package/fesm2022/acorex-modules-learning-management-skill-matrix-widget-edit.component-CaeZ9P_I.mjs.map +0 -1
  360. package/fesm2022/acorex-modules-learning-management-skill-matrix-widget-view.component-1oWMtdrN.mjs +0 -70
  361. package/fesm2022/acorex-modules-learning-management-skill-matrix-widget-view.component-1oWMtdrN.mjs.map +0 -1
  362. package/fesm2022/acorex-modules-learning-management-skill-matrix.component-_cFwIN-z.mjs +0 -468
  363. package/fesm2022/acorex-modules-learning-management-skill-matrix.component-_cFwIN-z.mjs.map +0 -1
  364. package/fesm2022/acorex-modules-learning-management-skill.entity-DrLts807.mjs.map +0 -1
  365. package/fesm2022/acorex-modules-learning-management-training-definition.entity-NQqJ5avw.mjs.map +0 -1
  366. package/fesm2022/acorex-modules-learning-management-training-type.entity-CoyDCeen.mjs.map +0 -1
  367. package/fesm2022/acorex-modules-learning-management-training.entity-BCGn0T3H.mjs.map +0 -1
  368. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs.map +0 -1
  369. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs +0 -91
  370. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs.map +0 -1
  371. package/fesm2022/acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs.map +0 -1
  372. package/fesm2022/acorex-modules-organization-management-company.entity-BohMJQNi.mjs.map +0 -1
  373. package/fesm2022/acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs.map +0 -1
  374. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs +0 -784
  375. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs.map +0 -1
  376. package/fesm2022/acorex-modules-organization-management-position.entity-DLPufeWz.mjs.map +0 -1
  377. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs.map +0 -1
  378. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs.map +0 -1
  379. package/fesm2022/acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs.map +0 -1
  380. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs +0 -88
  381. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs.map +0 -1
  382. package/fesm2022/acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs.map +0 -1
  383. package/fesm2022/acorex-modules-organization-management-team.entity-CGR0UlYl.mjs.map +0 -1
  384. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs.map +0 -1
  385. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs.map +0 -1
  386. package/fesm2022/acorex-modules-task-management-task-board.page-C1H_GTqy.mjs.map +0 -1
  387. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs.map +0 -1
  388. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs.map +0 -1
  389. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs.map +0 -1
  390. package/fesm2022/acorex-modules-workflow-management-index-DWIDQsWq.mjs.map +0 -1
  391. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs.map +0 -1
  392. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs.map +0 -1
  393. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs.map +0 -1
@@ -4,7 +4,7 @@ import * as i6 from '@acorex/components/button';
4
4
  import { AXButtonModule } from '@acorex/components/button';
5
5
  import * as i4 from '@acorex/components/check-box';
6
6
  import { AXCheckBoxModule } from '@acorex/components/check-box';
7
- import * as i2 from '@acorex/components/decorators';
7
+ import * as i1 from '@acorex/components/decorators';
8
8
  import { AXDecoratorModule } from '@acorex/components/decorators';
9
9
  import * as i8 from '@acorex/components/dropdown';
10
10
  import { AXDropdownModule } from '@acorex/components/dropdown';
@@ -17,12 +17,12 @@ import * as i5 from '@acorex/components/skeleton';
17
17
  import { AXSkeletonModule } from '@acorex/components/skeleton';
18
18
  import * as i11 from '@acorex/components/sliding-item';
19
19
  import { AXSlidingItemModule } from '@acorex/components/sliding-item';
20
- import * as i2$2 from '@acorex/core/format';
20
+ import * as i2$1 from '@acorex/core/format';
21
21
  import { AXFormatModule } from '@acorex/core/format';
22
22
  import { AXPDeviceService } from '@acorex/platform/core';
23
23
  import { AXPUserAvatarComponent, AXPThemeLayoutBlockComponent, AXPStateMessageComponent } from '@acorex/platform/layout/components';
24
24
  import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
25
- import * as i2$1 from '@angular/common';
25
+ import * as i2 from '@angular/common';
26
26
  import { CommonModule } from '@angular/common';
27
27
  import * as i0 from '@angular/core';
28
28
  import { inject, signal, viewChild, computed, ChangeDetectionStrategy, Component } from '@angular/core';
@@ -590,7 +590,7 @@ class AXMNotificationPageComponent extends AXPPageLayoutBaseComponent {
590
590
  (onItemClick)="handleContextMenuItemClick($event)"
591
591
  >
592
592
  </ax-context-menu>
593
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i5.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i6.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i6.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i9.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i10.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSlidingItemModule }, { kind: "component", type: i11.AXSlidingItemComponent, selector: "ax-sliding-item" }, { kind: "component", type: i11.AXSlidingItemSuffixComponent, selector: "ax-sliding-item-suffix", inputs: ["color", "text"], outputs: ["onClick"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$2.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
593
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i4.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i5.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i6.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i6.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items", "closeParentOnClick", "lockOnLoading"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i8.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i9.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "component", type: AXContextMenuComponent, selector: "ax-context-menu", inputs: ["orientation", "openOn", "closeOn", "items", "target"], outputs: ["onItemClick", "onOpening", "onClose"] }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i10.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "ngmodule", type: AXSlidingItemModule }, { kind: "component", type: i11.AXSlidingItemComponent, selector: "ax-sliding-item" }, { kind: "component", type: i11.AXSlidingItemSuffixComponent, selector: "ax-sliding-item-suffix", inputs: ["color", "text"], outputs: ["onClick"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
594
594
  }
595
595
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNotificationPageComponent, decorators: [{
596
596
  type: Component,
@@ -855,4 +855,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
855
855
  }], propDecorators: { contextMenu: [{ type: i0.ViewChild, args: ['contextMenu', { isSignal: true }] }] } });
856
856
 
857
857
  export { AXMNotificationPageComponent };
858
- //# sourceMappingURL=acorex-modules-notification-management-notification-page.component-DDhCqJtg.mjs.map
858
+ //# sourceMappingURL=acorex-modules-notification-management-notification-page.component-D0we6H1f.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-notification-management-notification-page.component-DDhCqJtg.mjs","sources":["../../../../libs/modules/notification-management/src/lib/features/components/notification-page/notification-page.component.ts"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXSlidingItemModule } from '@acorex/components/sliding-item';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPActionMenuItem, AXPDeviceService, AXPExecuteCommand } from '@acorex/platform/core';\nimport {\n AXPStateMessageComponent,\n AXPThemeLayoutBlockComponent,\n AXPUserAvatarComponent,\n} from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n} from '@acorex/components/menu';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXMNotificationItem } from '../../shared';\nimport { AXPNotificationDefinitionService } from '../../shared/notification-definition.service';\nimport { AXMNotificationConnectorService } from '../../shared/notification-management.service';\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-notification-page',\n template: `\n <axp-page-layout>\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (selectedCount() > 0 || isEditing()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">{{ selectedCount() }} items selected</span>\n <span (click)=\"deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\"\n >Unselect</span\n >\n </div>\n } @else {\n <ax-button [text]=\"activeTab() === 'all' ? 'All Notifications' : 'Unread Notifications'\">\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-min-w-52\">\n <ax-button-item\n [text]=\"'All notifications'\"\n [selected]=\"activeTab() === 'all'\"\n (onClick)=\"setTab('all')\"\n ></ax-button-item>\n <ax-button-item\n [text]=\"'Unread Notifications'\"\n [selected]=\"activeTab() === 'unread'\"\n (onClick)=\"setTab('unread')\"\n >\n <ax-suffix>\n <ax-badge [text]=\"unreadCount().toString()\" [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-search-box\n look=\"solid\"\n [placeholder]=\"'Search notifications'\"\n [value]=\"searchQuery()\"\n (onValueChanged)=\"onSearch($event.value)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-prefix>\n <!-- <axp-layout-suffix>\n @if (selectedCount() > 0) {\n <div class=\"ax-flex ax-gap-2\">\n @if (activeTab() === 'unread') {\n <ax-button [text]=\"'Mark as read'\" (onClick)=\"markSelectedAsRead()\"></ax-button>\n }\n <ax-button look=\"outline\" color=\"danger\" [text]=\"'Delete'\" (onClick)=\"deleteSelected()\"></ax-button>\n </div>\n }\n </axp-layout-suffix> -->\n </axp-page-toolbar>\n <axp-page-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- List -->\n @if (loading()) {\n <div class=\"ax-p-4 ax-space-y-4\">\n @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {\n <div class=\"ax-flex ax-items-center ax-space-x-3\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex-1 ax-space-y-2\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-3/4 ax-h-4 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-3 ax-rounded-md\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n } @else if (filteredNotifications().length === 0) {\n <axp-state-message\n mode=\"empty\"\n [icon]=\"getNotificationIcon()\"\n [title]=\"getNotificationTitle()\"\n [description]=\"getNotificationDescription()\"\n >\n @if (searchQuery()) {\n <ax-button\n slot=\"actions\"\n look=\"outline\"\n [text]=\"'Clear search'\"\n (onClick)=\"onClearSearch()\"\n ></ax-button>\n }\n </axp-state-message>\n } @else {\n <div>\n @for (item of filteredNotifications(); track item.id) {\n @if (deviceService.isMobileDevice()) {\n <ng-container\n #contextMenuContainer\n [ngTemplateOutlet]=\"mobile\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"desktop\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n }\n }\n </div>\n }\n </div>\n </axp-page-content>\n </axp-page-layout>\n\n <ng-template #mobile let-item>\n <ax-sliding-item class=\"ax-h-24\">\n <!-- <ax-sliding-item-prefix (onClick)=\"clickHandler($event)\" color=\"danger\" text=\"delete\">\n <ax-icon class=\"fa-solid fa-trash\"></ax-icon>\n </ax-sliding-item-prefix> -->\n\n <ax-content class=\"!ax-p-0\">\n <div\n class=\"ax-select-none ax-flex ax-size-full ax-mb-2 ax-gap-3 ax-py-2 ax-px-4 ax-items-center ax-rounded-md ax-cursor-pointer ax-line-clamp-2\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ax-content>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'mark-as-read')\" color=\"primary\">\n <ax-icon class=\"fa-light fa-envelopes-bulk fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'delete')\" color=\"danger\">\n <ax-icon class=\"fa-light fa-trash-can fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n </ax-sliding-item>\n </ng-template>\n\n <ng-template #desktop let-item>\n <div\n class=\"ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer hover:ax-bg-surface ax-mb-2 last:ax-mb-0\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n <!-- @if (isSelected(item.id)) {\n <div class=\"ax-w-1 ax-self-stretch ax-rounded ax-bg-primary\"></div>\n } -->\n <!-- Select via checkbox -->\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ng-template>\n <ax-context-menu\n #contextMenu\n [openOn]=\"'click'\"\n [closeOn]=\"'click'\"\n [orientation]=\"'horizontal'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMNotificationPageComponent,\n },\n ],\n host: {\n '(document:keydown.escape)': 'deselectAll()',\n },\n imports: [\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXFormatModule,\n AXCheckBoxModule,\n AXSkeletonModule,\n AXButtonModule,\n AXBadgeModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXSearchBoxModule,\n AXPUserAvatarComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPStateMessageComponent,\n AXContextMenuComponent,\n AXLabelModule,\n AXSlidingItemModule,\n ],\n})\nexport class AXMNotificationPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n protected readonly layoutThemeService = inject(AXPLayoutThemeService);\n protected readonly deviceService = inject(AXPDeviceService);\n private readonly connector = inject(AXMNotificationConnectorService);\n private readonly definitionService = inject(AXPNotificationDefinitionService);\n\n //#endregion\n\n //#region ---- State & Computed Properties ----\n\n readonly loading = this.connector.loading;\n readonly errorMessage = this.connector.errorMessage;\n readonly notifications = this.connector.notificationList;\n readonly unreadCount = this.connector.unreadCount;\n readonly totalCount = this.connector.total;\n\n // Local UI state\n readonly searchQuery = signal('');\n protected isEditing = signal(false);\n protected contextMenu = viewChild<AXContextMenuComponent>('contextMenu');\n // #isEditingEff = effect(() => {\n // if (this.isEditing() && this.selectedIds().size === 0) {\n // this.isEditing.set(false);\n // }\n // });\n\n readonly filteredNotifications = computed(() => {\n const query = (this.searchQuery() || '').toLowerCase().trim();\n const items = this.notifications();\n if (!query) {\n return this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n }\n const base = this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n return base.filter((n) => {\n const title = (n.title || '').toLowerCase();\n const body = (n.body || '').toLowerCase();\n const sender = (n.sender?.fullName || '').toLowerCase();\n return title.includes(query) || body.includes(query) || sender.includes(query);\n });\n });\n\n // Tab state: 'all' | 'unread'\n private readonly tab = signal<'all' | 'unread'>('all');\n readonly activeTab = computed(() => this.tab());\n selectedTab(): 'all' | 'unread' {\n return this.tab();\n }\n setTab(v: 'all' | 'unread'): void {\n this.tab.set(v);\n }\n\n onTabChange(index: number): void {\n this.tab.set(index === 1 ? 'unread' : 'all');\n }\n\n //#endregion\n\n //#region ---- Page Interface Methods ----\n\n override async getPageTitle(): Promise<string> {\n return 'Notifications';\n }\n\n override getPageDescription(): string {\n const unread = this.unreadCount();\n const total = this.totalCount();\n if (!total) {\n return 'No notifications';\n }\n return unread > 0 ? `${unread} unread out of ${total}` : `${total} notifications`;\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const items: AXPActionMenuItem[] = [];\n if (this.selectedCount() > 0) {\n items.push({\n title: 'Delete',\n icon: 'fa-light fa-trash',\n command: { name: 'delete-selected' },\n color: 'danger',\n });\n items.push({\n title: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-selected-as-read' },\n color: 'primary',\n });\n }\n return items;\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const items: AXPActionMenuItem[] = [];\n if (this.selectedCount() === 0) {\n items.push(\n {\n title: 'Refresh',\n icon: 'fa-light fa-rotate',\n command: { name: 'refresh' },\n },\n {\n title: 'Mark all as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-all-as-read' },\n disabled: this.unreadCount() === 0,\n },\n {\n title: 'Select items',\n icon: 'fa-light fa-pen',\n command: { name: 'edit-mode' },\n color: 'primary',\n },\n );\n }\n\n return items;\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'refresh':\n await this.onRefresh();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'delete-selected':\n await this.deleteSelected();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-selected-as-read':\n await this.markSelectedAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-all-as-read':\n await this.onMarkAllAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'edit-mode':\n if (this.isEditing()) {\n this.deselectAll();\n this.isEditing.set(false);\n } else {\n this.isEditing.set(true);\n }\n break;\n }\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n onSearch(value: string): void {\n this.searchQuery.set(value);\n }\n\n onClearSearch(): void {\n this.searchQuery.set('');\n }\n\n async onRefresh(): Promise<void> {\n await this.connector.getList();\n }\n\n async onMarkAllAsRead(): Promise<void> {\n await this.connector.markAllAsRead();\n }\n\n // Selection state for bulk actions\n private readonly selectedIds = signal<Set<string>>(new Set<string>());\n\n selectedCount = computed(() => this.selectedIds().size);\n isSelected(id: string): boolean {\n return this.selectedIds().has(id);\n }\n\n toggleSelectionWithModel(id: string, checked: boolean): void {\n const next = new Set(this.selectedIds());\n if (checked) {\n next.add(id);\n } else {\n next.delete(id);\n }\n this.selectedIds.set(next);\n }\n\n isAllSelected(): boolean {\n const items = this.filteredNotifications();\n return items.length > 0 && items.every((i) => this.selectedIds().has(i.id));\n }\n\n toggleSelectAll(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n if (checked) {\n this.selectedIds.set(new Set(this.filteredNotifications().map((i) => i.id)));\n } else {\n this.selectedIds.set(new Set());\n }\n }\n\n async markSelectedAsRead(item?: AXMNotificationItem): Promise<void> {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0) return;\n await this.connector.markAsRead({ id: ids });\n this.selectedIds.set(new Set());\n }\n\n async deleteSelected(item?: AXMNotificationItem): Promise<void> {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0) return;\n for (const id of ids) {\n await this.connector.deleteOne(id);\n }\n this.selectedIds.set(new Set());\n }\n\n deselectAll(): void {\n if (this.selectedCount() > 0) {\n this.selectedIds.set(new Set());\n }\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n }\n\n // Row interactions\n onRowClick(id: string): void {\n this.toggleSelectionById(id);\n }\n\n async openItem(id: string): Promise<void> {\n if (this.isEditing()) {\n this.toggleSelectionById(id);\n return;\n }\n //avoid double click on selected items\n if (this.selectedCount() > 0) {\n return;\n }\n const item = this.notifications().find((n) => n.id === id);\n if (!item) {\n return;\n }\n // Mark as read (idempotent per service logic)\n await this.connector.markAsRead({ id: [id] });\n\n // Execute provider click action if available\n const provider = this.definitionService.resolve(item.type);\n await provider?.execute?.({ name: 'click' } as AXPExecuteCommand, item);\n }\n\n private toggleSelectionById(id: string): void {\n const next = new Set(this.selectedIds());\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n this.selectedIds.set(next);\n }\n\n //#endregion\n\n slidingItemsHandler(item: AXMNotificationItem, action: 'mark-as-read' | 'delete'): void {\n switch (action) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n\n handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n const item = this.contextItem();\n if (!item) {\n return;\n }\n switch (e.item.name) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n e.items = [\n {\n name: 'mark-as-read',\n text: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n color: 'primary',\n },\n ];\n e.items.push({\n name: 'delete',\n text: 'Delete',\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n });\n }\n protected contextItem = signal<AXMNotificationItem | null>(null);\n openContextMenu(e: MouseEvent, item: AXMNotificationItem) {\n if (this.isEditing() || this.selectedCount() > 0) {\n return;\n }\n e.preventDefault();\n this.contextMenu()?.showAt({\n x: e.clientX,\n y: e.clientY,\n });\n this.contextItem.set(item);\n }\n\n //#region ---- Helper Methods for State Message ----\n\n getNotificationIcon(): string {\n if (this.searchQuery()) {\n return 'fa-solid fa-magnifying-glass';\n } else if (this.activeTab() === 'unread') {\n return 'fa-solid fa-check-circle';\n } else {\n return 'fa-solid fa-bell';\n }\n }\n\n getNotificationTitle(): string {\n if (this.searchQuery()) {\n return '@notification-management:state-message.no-results.title';\n } else if (this.activeTab() === 'unread') {\n return '@notification-management:state-message.all-caught-up.title';\n } else {\n return '@notification-management:state-message.no-notifications.title';\n }\n }\n\n getNotificationDescription(): string {\n if (this.searchQuery()) {\n return `We couldn't find anything matching \"${this.searchQuery()}\".`;\n } else if (this.activeTab() === 'unread') {\n return '@notification-management:state-message.all-caught-up.description';\n } else {\n return '@notification-management:state-message.no-notifications.description';\n }\n }\n\n //#endregion\n}\n"],"names":["i1","i2","i7","i12"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-modules-notification-management-notification-page.component-D0we6H1f.mjs","sources":["../../../../libs/modules/notification-management/src/lib/features/components/notification-page/notification-page.component.ts"],"sourcesContent":["import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXDropdownButtonModule } from '@acorex/components/dropdown-button';\nimport { AXLabelModule } from '@acorex/components/label';\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXSkeletonModule } from '@acorex/components/skeleton';\nimport { AXSlidingItemModule } from '@acorex/components/sliding-item';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPActionMenuItem, AXPDeviceService, AXPExecuteCommand } from '@acorex/platform/core';\nimport {\n AXPStateMessageComponent,\n AXPThemeLayoutBlockComponent,\n AXPUserAvatarComponent,\n} from '@acorex/platform/layout/components';\nimport { AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent } from '@acorex/platform/layout/views';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, signal, viewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n AXContextMenuComponent,\n AXContextMenuItemsClickEvent,\n AXContextMenuOpeningEvent,\n} from '@acorex/components/menu';\nimport { AXPLayoutThemeService } from '@acorex/platform/themes/shared';\nimport { AXMNotificationItem } from '../../shared';\nimport { AXPNotificationDefinitionService } from '../../shared/notification-definition.service';\nimport { AXMNotificationConnectorService } from '../../shared/notification-management.service';\n\n//#region ---- Component Definition ----\n\n@Component({\n selector: 'axm-notification-page',\n template: `\n <axp-page-layout>\n <axp-page-toolbar>\n <axp-layout-prefix>\n @if (selectedCount() > 0 || isEditing()) {\n <div class=\"ax-flex ax-gap-3 ax-items-center ax-h-10\">\n <span class=\"ax-text-xl ax-font-bold\">{{ selectedCount() }} items selected</span>\n <span (click)=\"deselectAll()\" class=\"ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer\"\n >Unselect</span\n >\n </div>\n } @else {\n <ax-button [text]=\"activeTab() === 'all' ? 'All Notifications' : 'Unread Notifications'\">\n <ax-dropdown-panel>\n <ax-button-item-list class=\"ax-min-w-52\">\n <ax-button-item\n [text]=\"'All notifications'\"\n [selected]=\"activeTab() === 'all'\"\n (onClick)=\"setTab('all')\"\n ></ax-button-item>\n <ax-button-item\n [text]=\"'Unread Notifications'\"\n [selected]=\"activeTab() === 'unread'\"\n (onClick)=\"setTab('unread')\"\n >\n <ax-suffix>\n <ax-badge [text]=\"unreadCount().toString()\" [color]=\"'primary'\"></ax-badge>\n </ax-suffix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-button>\n\n <ax-search-box\n look=\"solid\"\n [placeholder]=\"'Search notifications'\"\n [value]=\"searchQuery()\"\n (onValueChanged)=\"onSearch($event.value)\"\n class=\"ax-w-72 ax-hidden md:ax-flex\"\n >\n <ax-clear-button></ax-clear-button>\n </ax-search-box>\n }\n </axp-layout-prefix>\n <!-- <axp-layout-suffix>\n @if (selectedCount() > 0) {\n <div class=\"ax-flex ax-gap-2\">\n @if (activeTab() === 'unread') {\n <ax-button [text]=\"'Mark as read'\" (onClick)=\"markSelectedAsRead()\"></ax-button>\n }\n <ax-button look=\"outline\" color=\"danger\" [text]=\"'Delete'\" (onClick)=\"deleteSelected()\"></ax-button>\n </div>\n }\n </axp-layout-suffix> -->\n </axp-page-toolbar>\n <axp-page-content>\n <div class=\"ax-flex ax-flex-col ax-gap-4\">\n <!-- List -->\n @if (loading()) {\n <div class=\"ax-p-4 ax-space-y-4\">\n @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {\n <div class=\"ax-flex ax-items-center ax-space-x-3\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-12 ax-h-12 ax-rounded-full\"></ax-skeleton>\n <div class=\"ax-flex-1 ax-space-y-2\">\n <ax-skeleton [animated]=\"true\" class=\"ax-w-3/4 ax-h-4 ax-rounded-md\"></ax-skeleton>\n <ax-skeleton [animated]=\"true\" class=\"ax-w-1/2 ax-h-3 ax-rounded-md\"></ax-skeleton>\n </div>\n </div>\n }\n </div>\n } @else if (filteredNotifications().length === 0) {\n <axp-state-message\n mode=\"empty\"\n [icon]=\"getNotificationIcon()\"\n [title]=\"getNotificationTitle()\"\n [description]=\"getNotificationDescription()\"\n >\n @if (searchQuery()) {\n <ax-button\n slot=\"actions\"\n look=\"outline\"\n [text]=\"'Clear search'\"\n (onClick)=\"onClearSearch()\"\n ></ax-button>\n }\n </axp-state-message>\n } @else {\n <div>\n @for (item of filteredNotifications(); track item.id) {\n @if (deviceService.isMobileDevice()) {\n <ng-container\n #contextMenuContainer\n [ngTemplateOutlet]=\"mobile\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n } @else {\n <ng-container\n [ngTemplateOutlet]=\"desktop\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-container>\n }\n }\n </div>\n }\n </div>\n </axp-page-content>\n </axp-page-layout>\n\n <ng-template #mobile let-item>\n <ax-sliding-item class=\"ax-h-24\">\n <!-- <ax-sliding-item-prefix (onClick)=\"clickHandler($event)\" color=\"danger\" text=\"delete\">\n <ax-icon class=\"fa-solid fa-trash\"></ax-icon>\n </ax-sliding-item-prefix> -->\n\n <ax-content class=\"!ax-p-0\">\n <div\n class=\"ax-select-none ax-flex ax-size-full ax-mb-2 ax-gap-3 ax-py-2 ax-px-4 ax-items-center ax-rounded-md ax-cursor-pointer ax-line-clamp-2\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ax-content>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'mark-as-read')\" color=\"primary\">\n <ax-icon class=\"fa-light fa-envelopes-bulk fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n\n <ax-sliding-item-suffix (onClick)=\"slidingItemsHandler(item, 'delete')\" color=\"danger\">\n <ax-icon class=\"fa-light fa-trash-can fa-xl\"></ax-icon>\n </ax-sliding-item-suffix>\n </ax-sliding-item>\n </ng-template>\n\n <ng-template #desktop let-item>\n <div\n class=\"ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer hover:ax-bg-surface ax-mb-2 last:ax-mb-0\"\n [class.ax-bg-lighter]=\"isSelected(item.id)\"\n [id]=\"item.id\"\n (click)=\"openItem(item.id)\"\n (contextmenu)=\"openContextMenu($event, item)\"\n >\n <!-- @if (isSelected(item.id)) {\n <div class=\"ax-w-1 ax-self-stretch ax-rounded ax-bg-primary\"></div>\n } -->\n <!-- Select via checkbox -->\n @if (isEditing()) {\n <ax-check-box\n class=\"ax-mt-1\"\n [ngModel]=\"isSelected(item.id)\"\n (ngModelChange)=\"toggleSelectionWithModel(item.id, $event)\"\n >\n <ax-label></ax-label>\n </ax-check-box>\n }\n <!-- Avatar + Unread Dot -->\n <div class=\"ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center\">\n <axp-user-avatar [size]=\"48\" [userId]=\"item.sender.id\"></axp-user-avatar>\n @if (!item.readAt) {\n <span class=\"ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full\"></span>\n }\n </div>\n\n <!-- Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <div class=\"ax-flex ax-items-center ax-gap-2\">\n <div class=\"ax-font-medium\" [class.ax-font-semibold]=\"!item.readAt\">\n {{ item.sender.fullName || item.title }}\n </div>\n <span>•</span>\n <div class=\"ax-text-xs ax-opacity-75\">\n {{ item.createAt | format: 'timeleft' | async }}\n </div>\n </div>\n </div>\n <div class=\"ax-text-sm ax-line-clamp-2\">{{ item.body }}</div>\n </div>\n <!-- Actions (future: per-item kebab) -->\n </div>\n </ng-template>\n <ax-context-menu\n #contextMenu\n [openOn]=\"'click'\"\n [closeOn]=\"'click'\"\n [orientation]=\"'horizontal'\"\n (onOpening)=\"handleContextMenuOpening($event)\"\n (onItemClick)=\"handleContextMenuItemClick($event)\"\n >\n </ax-context-menu>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMNotificationPageComponent,\n },\n ],\n host: {\n '(document:keydown.escape)': 'deselectAll()',\n },\n imports: [\n AXDecoratorModule,\n CommonModule,\n FormsModule,\n AXFormatModule,\n AXCheckBoxModule,\n AXSkeletonModule,\n AXButtonModule,\n AXBadgeModule,\n AXDropdownModule,\n AXDropdownButtonModule,\n AXSearchBoxModule,\n AXPUserAvatarComponent,\n AXPPageLayoutComponent,\n AXPThemeLayoutBlockComponent,\n AXPStateMessageComponent,\n AXContextMenuComponent,\n AXLabelModule,\n AXSlidingItemModule,\n ],\n})\nexport class AXMNotificationPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n protected readonly layoutThemeService = inject(AXPLayoutThemeService);\n protected readonly deviceService = inject(AXPDeviceService);\n private readonly connector = inject(AXMNotificationConnectorService);\n private readonly definitionService = inject(AXPNotificationDefinitionService);\n\n //#endregion\n\n //#region ---- State & Computed Properties ----\n\n readonly loading = this.connector.loading;\n readonly errorMessage = this.connector.errorMessage;\n readonly notifications = this.connector.notificationList;\n readonly unreadCount = this.connector.unreadCount;\n readonly totalCount = this.connector.total;\n\n // Local UI state\n readonly searchQuery = signal('');\n protected isEditing = signal(false);\n protected contextMenu = viewChild<AXContextMenuComponent>('contextMenu');\n // #isEditingEff = effect(() => {\n // if (this.isEditing() && this.selectedIds().size === 0) {\n // this.isEditing.set(false);\n // }\n // });\n\n readonly filteredNotifications = computed(() => {\n const query = (this.searchQuery() || '').toLowerCase().trim();\n const items = this.notifications();\n if (!query) {\n return this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n }\n const base = this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;\n return base.filter((n) => {\n const title = (n.title || '').toLowerCase();\n const body = (n.body || '').toLowerCase();\n const sender = (n.sender?.fullName || '').toLowerCase();\n return title.includes(query) || body.includes(query) || sender.includes(query);\n });\n });\n\n // Tab state: 'all' | 'unread'\n private readonly tab = signal<'all' | 'unread'>('all');\n readonly activeTab = computed(() => this.tab());\n selectedTab(): 'all' | 'unread' {\n return this.tab();\n }\n setTab(v: 'all' | 'unread'): void {\n this.tab.set(v);\n }\n\n onTabChange(index: number): void {\n this.tab.set(index === 1 ? 'unread' : 'all');\n }\n\n //#endregion\n\n //#region ---- Page Interface Methods ----\n\n override async getPageTitle(): Promise<string> {\n return 'Notifications';\n }\n\n override getPageDescription(): string {\n const unread = this.unreadCount();\n const total = this.totalCount();\n if (!total) {\n return 'No notifications';\n }\n return unread > 0 ? `${unread} unread out of ${total}` : `${total} notifications`;\n }\n\n override async getPrimaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const items: AXPActionMenuItem[] = [];\n if (this.selectedCount() > 0) {\n items.push({\n title: 'Delete',\n icon: 'fa-light fa-trash',\n command: { name: 'delete-selected' },\n color: 'danger',\n });\n items.push({\n title: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-selected-as-read' },\n color: 'primary',\n });\n }\n return items;\n }\n\n override async getSecondaryMenuItems(): Promise<AXPActionMenuItem[]> {\n const items: AXPActionMenuItem[] = [];\n if (this.selectedCount() === 0) {\n items.push(\n {\n title: 'Refresh',\n icon: 'fa-light fa-rotate',\n command: { name: 'refresh' },\n },\n {\n title: 'Mark all as read',\n icon: 'fa-light fa-envelopes-bulk',\n command: { name: 'mark-all-as-read' },\n disabled: this.unreadCount() === 0,\n },\n {\n title: 'Select items',\n icon: 'fa-light fa-pen',\n command: { name: 'edit-mode' },\n color: 'primary',\n },\n );\n }\n\n return items;\n }\n\n override async execute(command: AXPExecuteCommand): Promise<void> {\n switch (command.name) {\n case 'refresh':\n await this.onRefresh();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'delete-selected':\n await this.deleteSelected();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-selected-as-read':\n await this.markSelectedAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'mark-all-as-read':\n await this.onMarkAllAsRead();\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n break;\n case 'edit-mode':\n if (this.isEditing()) {\n this.deselectAll();\n this.isEditing.set(false);\n } else {\n this.isEditing.set(true);\n }\n break;\n }\n }\n\n //#endregion\n\n //#region ---- UI Handlers ----\n\n onSearch(value: string): void {\n this.searchQuery.set(value);\n }\n\n onClearSearch(): void {\n this.searchQuery.set('');\n }\n\n async onRefresh(): Promise<void> {\n await this.connector.getList();\n }\n\n async onMarkAllAsRead(): Promise<void> {\n await this.connector.markAllAsRead();\n }\n\n // Selection state for bulk actions\n private readonly selectedIds = signal<Set<string>>(new Set<string>());\n\n selectedCount = computed(() => this.selectedIds().size);\n isSelected(id: string): boolean {\n return this.selectedIds().has(id);\n }\n\n toggleSelectionWithModel(id: string, checked: boolean): void {\n const next = new Set(this.selectedIds());\n if (checked) {\n next.add(id);\n } else {\n next.delete(id);\n }\n this.selectedIds.set(next);\n }\n\n isAllSelected(): boolean {\n const items = this.filteredNotifications();\n return items.length > 0 && items.every((i) => this.selectedIds().has(i.id));\n }\n\n toggleSelectAll(event: Event): void {\n const checked = (event.target as HTMLInputElement).checked;\n if (checked) {\n this.selectedIds.set(new Set(this.filteredNotifications().map((i) => i.id)));\n } else {\n this.selectedIds.set(new Set());\n }\n }\n\n async markSelectedAsRead(item?: AXMNotificationItem): Promise<void> {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0) return;\n await this.connector.markAsRead({ id: ids });\n this.selectedIds.set(new Set());\n }\n\n async deleteSelected(item?: AXMNotificationItem): Promise<void> {\n const ids = item ? [item.id] : Array.from(this.selectedIds());\n if (ids.length === 0) return;\n for (const id of ids) {\n await this.connector.deleteOne(id);\n }\n this.selectedIds.set(new Set());\n }\n\n deselectAll(): void {\n if (this.selectedCount() > 0) {\n this.selectedIds.set(new Set());\n }\n if (this.isEditing()) {\n this.isEditing.set(false);\n }\n }\n\n // Row interactions\n onRowClick(id: string): void {\n this.toggleSelectionById(id);\n }\n\n async openItem(id: string): Promise<void> {\n if (this.isEditing()) {\n this.toggleSelectionById(id);\n return;\n }\n //avoid double click on selected items\n if (this.selectedCount() > 0) {\n return;\n }\n const item = this.notifications().find((n) => n.id === id);\n if (!item) {\n return;\n }\n // Mark as read (idempotent per service logic)\n await this.connector.markAsRead({ id: [id] });\n\n // Execute provider click action if available\n const provider = this.definitionService.resolve(item.type);\n await provider?.execute?.({ name: 'click' } as AXPExecuteCommand, item);\n }\n\n private toggleSelectionById(id: string): void {\n const next = new Set(this.selectedIds());\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n this.selectedIds.set(next);\n }\n\n //#endregion\n\n slidingItemsHandler(item: AXMNotificationItem, action: 'mark-as-read' | 'delete'): void {\n switch (action) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n\n handleContextMenuItemClick(e: AXContextMenuItemsClickEvent) {\n const item = this.contextItem();\n if (!item) {\n return;\n }\n switch (e.item.name) {\n case 'mark-as-read':\n this.markSelectedAsRead(item);\n break;\n case 'delete':\n this.deleteSelected(item);\n break;\n }\n }\n handleContextMenuOpening(e: AXContextMenuOpeningEvent) {\n e.items = [\n {\n name: 'mark-as-read',\n text: 'Mark as read',\n icon: 'fa-light fa-envelopes-bulk',\n color: 'primary',\n },\n ];\n e.items.push({\n name: 'delete',\n text: 'Delete',\n icon: 'fa-light fa-trash-can',\n color: 'danger',\n });\n }\n protected contextItem = signal<AXMNotificationItem | null>(null);\n openContextMenu(e: MouseEvent, item: AXMNotificationItem) {\n if (this.isEditing() || this.selectedCount() > 0) {\n return;\n }\n e.preventDefault();\n this.contextMenu()?.showAt({\n x: e.clientX,\n y: e.clientY,\n });\n this.contextItem.set(item);\n }\n\n //#region ---- Helper Methods for State Message ----\n\n getNotificationIcon(): string {\n if (this.searchQuery()) {\n return 'fa-solid fa-magnifying-glass';\n } else if (this.activeTab() === 'unread') {\n return 'fa-solid fa-check-circle';\n } else {\n return 'fa-solid fa-bell';\n }\n }\n\n getNotificationTitle(): string {\n if (this.searchQuery()) {\n return '@notification-management:state-message.no-results.title';\n } else if (this.activeTab() === 'unread') {\n return '@notification-management:state-message.all-caught-up.title';\n } else {\n return '@notification-management:state-message.no-notifications.title';\n }\n }\n\n getNotificationDescription(): string {\n if (this.searchQuery()) {\n return `We couldn't find anything matching \"${this.searchQuery()}\".`;\n } else if (this.activeTab() === 'unread') {\n return '@notification-management:state-message.all-caught-up.description';\n } else {\n return '@notification-management:state-message.no-notifications.description';\n }\n }\n\n //#endregion\n}\n"],"names":["i7","i12"],"mappings":"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"}
@@ -2,11 +2,11 @@ import { createAllQueryView, AXPEntityQueryType, AXP_MENU_PROVIDER, AXPEntityCom
2
2
  import { AXPWidgetsCatalog, AXPValueWidgetComponent, cloneProperty, AXPWidgetGroupEnum, AXPWidgetCoreModule, AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex/platform/layout/widget-core';
3
3
  import { AXMEntityCrudServiceImpl, entityMasterCrudActions, entityMasterRecordActions, AXP_ENTITY_DEFINITION_LOADER, AXPEntityStorageService, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';
4
4
  import * as i0 from '@angular/core';
5
- import { Injectable, NgModule, inject, signal, DestroyRef, computed, effect, Injector, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component, ChangeDetectorRef } from '@angular/core';
5
+ import { Injectable, NgModule, inject, signal, DestroyRef, computed, effect, Injector, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component, ViewEncapsulation, ChangeDetectorRef } from '@angular/core';
6
6
  import { AXPSessionService, AXPAuthGuard, AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';
7
7
  import { firstValueFrom, Subject, debounceTime } from 'rxjs';
8
8
  import { AXPUserAvatarComponent, AXPStateMessageComponent, AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';
9
- import * as i1 from '@acorex/platform/core';
9
+ import * as i1$1 from '@acorex/platform/core';
10
10
  import { AXPComponentSlotModule, AXP_MODULE_MANIFEST_PROVIDER, AXPDataGenerator } from '@acorex/platform/core';
11
11
  import { AXPRootLayoutComponent } from '@acorex/platform/themes/default';
12
12
  import { Router, ROUTES } from '@angular/router';
@@ -15,7 +15,7 @@ import * as i3 from '@acorex/components/badge';
15
15
  import { AXBadgeModule } from '@acorex/components/badge';
16
16
  import * as i6 from '@acorex/components/button';
17
17
  import { AXButtonModule } from '@acorex/components/button';
18
- import * as i2$3 from '@acorex/components/decorators';
18
+ import * as i1 from '@acorex/components/decorators';
19
19
  import { AXDecoratorModule } from '@acorex/components/decorators';
20
20
  import * as i4 from '@acorex/components/popover';
21
21
  import { AXPopoverModule, AXPopoverComponent } from '@acorex/components/popover';
@@ -37,12 +37,15 @@ import { AXPWidgetsList } from '@acorex/modules/common';
37
37
  const config = {
38
38
  i18n: 'notification-management',
39
39
  route: 'notifications',
40
+ module: 'NotificationManagement',
40
41
  };
42
+ /** Dashboard widget type ids for notification-management-hosted widgets (`{module}:Widget:Dashboard:{Segment}`). */
43
+ const dashboardWidgetId = (segment) => `${config.module}:Widget:Dashboard:${segment}`;
41
44
  const RootConfig = {
42
45
  config,
43
46
  module: {
44
47
  route: 'notification-management',
45
- name: 'NotificationManagement',
48
+ name: config.module,
46
49
  title: `@${config.i18n}:module.title`,
47
50
  icon: 'fa-light fa-bell',
48
51
  },
@@ -63,6 +66,9 @@ const RootConfig = {
63
66
  icon: 'fa-light fa-file-code',
64
67
  },
65
68
  },
69
+ widgets: {
70
+ myNotificationDashboard: dashboardWidgetId('MyNotificationDashboard'),
71
+ },
66
72
  };
67
73
 
68
74
  class AXMNotificationEntityService extends AXMEntityCrudServiceImpl {
@@ -1446,6 +1452,10 @@ class AXMNotificationConnectorService {
1446
1452
  if (event.type === 'created' && event.notification) {
1447
1453
  void this.showOsNotificationForItem(event.notification);
1448
1454
  }
1455
+ // Read paths already sync `notifications` in markAsRead / markAllAsRead; refetch would duplicate work.
1456
+ if (event.type === 'read') {
1457
+ return;
1458
+ }
1449
1459
  if (!this.isLoading()) {
1450
1460
  void this.getList();
1451
1461
  }
@@ -1516,17 +1526,14 @@ class AXMNotificationConnectorService {
1516
1526
  }
1517
1527
  async markAllAsRead() {
1518
1528
  try {
1519
- this.isLoading.set(true);
1520
1529
  this.error.set(null);
1521
1530
  await this.notificationService.markAllAsRead();
1522
- this.notifications.update((notifications) => notifications.map((notification) => ({ ...notification, readAt: new Date() })));
1531
+ const readAt = new Date();
1532
+ this.notifications.update((notifications) => notifications.map((notification) => notification.readAt ? notification : { ...notification, readAt }));
1523
1533
  }
1524
1534
  catch (err) {
1525
1535
  this.error.set(err instanceof Error ? err.message : 'Failed to mark all notifications as read');
1526
1536
  }
1527
- finally {
1528
- this.isLoading.set(false);
1529
- }
1530
1537
  }
1531
1538
  /**
1532
1539
  * Create a new notification
@@ -1894,7 +1901,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1894
1901
  class AXMAdminNotificationPanelComponent {
1895
1902
  constructor() {
1896
1903
  //#region ---- Outputs ----
1897
- this.onNewNotfication = output();
1904
+ this.onNewNotification = output();
1898
1905
  /** Emits when the popover should be closed (bubbled from item components) */
1899
1906
  this.onClosePopover = output();
1900
1907
  //#endregion
@@ -1921,7 +1928,7 @@ class AXMAdminNotificationPanelComponent {
1921
1928
  //#region ---- Computed Properties ----
1922
1929
  this.tabItems = computed(() => this.getTabItems(this.notifications(), this.providedTabs()), { ...(ngDevMode ? { debugName: "tabItems" } : /* istanbul ignore next */ {}), equal: (a, b) => JSON.stringify(a) === JSON.stringify(b) });
1923
1930
  this.NewNotification = computed(() => this.getNewNotification(this.tabItems()), ...(ngDevMode ? [{ debugName: "NewNotification" }] : /* istanbul ignore next */ []));
1924
- this.NewNotificationEffect = effect(() => this.onNewNotfication.emit(this.NewNotification()), ...(ngDevMode ? [{ debugName: "NewNotificationEffect" }] : /* istanbul ignore next */ []));
1931
+ this.NewNotificationEffect = effect(() => this.onNewNotification.emit(this.NewNotification()), ...(ngDevMode ? [{ debugName: "NewNotificationEffect" }] : /* istanbul ignore next */ []));
1925
1932
  }
1926
1933
  changeActiveTab(tab) {
1927
1934
  this.activeTab.set(tab);
@@ -2035,7 +2042,7 @@ class AXMAdminNotificationPanelComponent {
2035
2042
  this.router.navigate([`${this.sessionService.application?.name}/notifications`]);
2036
2043
  }
2037
2044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2038
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNewNotfication: "onNewNotfication", onClosePopover: "onClosePopover" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n (onClosePopover)=\"onClosePopover.emit()\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem", "onClosePopover"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2045
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNewNotification: "onNewNotification", onClosePopover: "onClosePopover" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n (onClosePopover)=\"onClosePopover.emit()\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem", "onClosePopover"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2039
2046
  }
2040
2047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
2041
2048
  type: Component,
@@ -2048,12 +2055,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2048
2055
  AXMAdminNotificationItemComponent,
2049
2056
  AXFormatModule,
2050
2057
  ], template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n (onClosePopover)=\"onClosePopover.emit()\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n" }]
2051
- }], propDecorators: { onNewNotfication: [{ type: i0.Output, args: ["onNewNotfication"] }], onClosePopover: [{ type: i0.Output, args: ["onClosePopover"] }], providedTabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "providedTabs", required: false }] }] } });
2058
+ }], propDecorators: { onNewNotification: [{ type: i0.Output, args: ["onNewNotification"] }], onClosePopover: [{ type: i0.Output, args: ["onClosePopover"] }], providedTabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "providedTabs", required: false }] }] } });
2052
2059
 
2053
2060
  class AXMAdminNotificationSlotComponent {
2054
2061
  constructor() {
2055
2062
  //#region ---- Signals ----
2056
2063
  this.totalNewNotification = signal(0, ...(ngDevMode ? [{ debugName: "totalNewNotification" }] : /* istanbul ignore next */ []));
2064
+ this.badgeDisplay = computed(() => {
2065
+ const total = this.totalNewNotification();
2066
+ if (total <= 0) {
2067
+ return '';
2068
+ }
2069
+ return total > 50 ? '50+' : total.toString();
2070
+ }, ...(ngDevMode ? [{ debugName: "badgeDisplay" }] : /* istanbul ignore next */ []));
2057
2071
  //#endregion
2058
2072
  //#region ---- View Queries ----
2059
2073
  this.popover = viewChild(AXPopoverComponent, ...(ngDevMode ? [{ debugName: "popover" }] : /* istanbul ignore next */ []));
@@ -2067,11 +2081,11 @@ class AXMAdminNotificationSlotComponent {
2067
2081
  this.popover()?.close();
2068
2082
  }
2069
2083
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2070
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "axm-admin-notification-slot", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel\n (onNewNotfication)=\"setTotalNewNotification($event)\"\n (onClosePopover)=\"closePopover()\"\n >\n </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", inputs: ["providedTabs"], outputs: ["onNewNotfication", "onClosePopover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2084
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "axm-admin-notification-slot", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n\n</ax-button>\n<div class=\"__badge\" [class.--xs]=\"badgeDisplay().length > 2\">\n @if (badgeDisplay()) {\n <ax-badge color=\"danger\" [text]=\"badgeDisplay()\"></ax-badge>\n }\n</div>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotification)=\"setTotalNewNotification($event)\"\n (onClosePopover)=\"closePopover()\">\n </axm-admin-notification-panel>\n </div>\n</ax-popover>", styles: ["axm-admin-notification-slot{position:relative}axm-admin-notification-slot .__badge{position:absolute;top:-.25rem;inset-inline-end:-.25rem;pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i6.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "repositionOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", inputs: ["providedTabs"], outputs: ["onNewNotification", "onClosePopover"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
2071
2085
  }
2072
2086
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
2073
2087
  type: Component,
2074
- args: [{ selector: 'axm-admin-notification-slot', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent], template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel\n (onNewNotfication)=\"setTotalNewNotification($event)\"\n (onClosePopover)=\"closePopover()\"\n >\n </axm-admin-notification-panel>\n </div>\n</ax-popover>\n" }]
2088
+ args: [{ selector: 'axm-admin-notification-slot', changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent], encapsulation: ViewEncapsulation.None, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n\n</ax-button>\n<div class=\"__badge\" [class.--xs]=\"badgeDisplay().length > 2\">\n @if (badgeDisplay()) {\n <ax-badge color=\"danger\" [text]=\"badgeDisplay()\"></ax-badge>\n }\n</div>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotification)=\"setTotalNewNotification($event)\"\n (onClosePopover)=\"closePopover()\">\n </axm-admin-notification-panel>\n </div>\n</ax-popover>", styles: ["axm-admin-notification-slot{position:relative}axm-admin-notification-slot .__badge{position:absolute;top:-.25rem;inset-inline-end:-.25rem;pointer-events:none}\n"] }]
2075
2089
  }], propDecorators: { popover: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXPopoverComponent), { isSignal: true }] }] } });
2076
2090
 
2077
2091
  /**
@@ -2292,7 +2306,7 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2292
2306
  popover: () => ({ close: () => { } }),
2293
2307
  },
2294
2308
  },
2295
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item [text]=\"('@notification-management:unread' | translate | async) ?? 'Unread'\" class=\"ax-font-medium\">\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('@notification-management:all' | translate | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <axp-state-message\n icon=\"fa-light fa-bell-slash\"\n [title]=\"'@notification-management:no-notifications.title'\"\n [description]=\"'@notification-management:no-notifications.description'\"\n >\n </axp-state-message>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem", "onClosePopover"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2309
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full ax-flex ax-flex-col ax-gap-2\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default ax-shrink-0\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item [text]=\"('@notification-management:unread' | translate | async) ?? 'Unread'\" class=\"ax-font-medium\">\n <ax-suffix>\n @if (getNewMessageCount() > 0) {\n <ax-badge color=\"primary\" [text]=\"getNewMessageCount().toString()\" size=\"sm\" class=\"ax-ml-1\"></ax-badge>\n }\n </ax-suffix>\n </ax-tab-item>\n <ax-tab-item\n [text]=\"('@notification-management:all' | translate | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-overflow-auto\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item [data]=\"item\" (onPressNotificationItem)=\"onAdminItemClick($event)\" />\n } @empty {\n <axp-state-message\n icon=\"fa-light fa-bell-slash\"\n [title]=\"'@notification-management:no-notifications.title'\"\n [description]=\"'@notification-management:no-notifications.description'\"\n >\n </axp-state-message>\n }\n </div>\n</div>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem", "onClosePopover"] }, { kind: "component", type: AXPStateMessageComponent, selector: "axp-state-message", inputs: ["mode", "icon", "title", "description", "variant"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2296
2310
  }
2297
2311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
2298
2312
  type: Component,
@@ -2326,12 +2340,12 @@ var notificationWidget_component = /*#__PURE__*/Object.freeze({
2326
2340
  * Configuration for the Notification Widget
2327
2341
  */
2328
2342
  const AXPMyNotificationDashboardWidget = {
2329
- name: 'my-notification-dashboard',
2330
- title: 'My Notification Widget',
2343
+ name: RootConfig.widgets.myNotificationDashboard,
2344
+ title: '@dashboard:widgets.my-notification.widget-title',
2331
2345
  categories: [AXP_WIDGETS_UTILITY_CATEGORY],
2332
2346
  groups: [AXPWidgetGroupEnum.DashboardWidget],
2333
2347
  type: 'dashboard',
2334
- description: 'Displays notifications in a widget format',
2348
+ description: '@dashboard:widgets.my-notification.widget-description',
2335
2349
  icon: 'fa-regular fa-bell',
2336
2350
  properties: [
2337
2351
  cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),
@@ -2348,7 +2362,7 @@ const AXPMyNotificationDashboardWidget = {
2348
2362
  path: 'options.title',
2349
2363
  type: AXPWidgetsCatalog.text,
2350
2364
  options: {
2351
- placeholder: 'Enter chart title',
2365
+ placeholder: '@dashboard:widgets.my-notification.title-placeholder',
2352
2366
  },
2353
2367
  },
2354
2368
  },
@@ -2500,7 +2514,7 @@ function routesFactory() {
2500
2514
  children: [
2501
2515
  {
2502
2516
  path: '',
2503
- loadComponent: () => import('./acorex-modules-notification-management-notification-page.component-DDhCqJtg.mjs').then((c) => c.AXMNotificationPageComponent),
2517
+ loadComponent: () => import('./acorex-modules-notification-management-notification-page.component-D0we6H1f.mjs').then((c) => c.AXMNotificationPageComponent),
2504
2518
  data: { reuse: true },
2505
2519
  },
2506
2520
  ],
@@ -2510,7 +2524,7 @@ function routesFactory() {
2510
2524
  }
2511
2525
  class AXMNotificationManagementModule {
2512
2526
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXMNotificationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2513
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1.AXPComponentSlotModule, AXPWidgetCoreModule,
2527
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1$1.AXPComponentSlotModule, AXPWidgetCoreModule,
2514
2528
  // Entity Modules
2515
2529
  AXMNotificationEntityModule,
2516
2530
  AXMNotificationTemplateEntityModule,