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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/fesm2022/{acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs → acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs} +260 -80
  2. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-CU2FvMTx.mjs.map +1 -0
  3. package/fesm2022/{acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs → acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs} +14 -19
  4. package/fesm2022/acorex-modules-ai-management-agent.entity-CUO9Jczk.mjs.map +1 -0
  5. package/fesm2022/{acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs → acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs} +52 -8
  6. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-daTGJ1Rd.mjs.map +1 -0
  7. package/fesm2022/{acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs → acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs} +49 -7
  8. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-Cmprtps-.mjs.map +1 -0
  9. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs} +2 -2
  10. package/fesm2022/{acorex-modules-ai-management-assist.entity-DX2U9sd5.mjs.map → acorex-modules-ai-management-assist.entity-C1nM_x4Z.mjs.map} +1 -1
  11. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs → acorex-modules-ai-management-index-CjTjfydP.mjs} +2 -2
  12. package/fesm2022/{acorex-modules-ai-management-index-KX3TVRXr.mjs.map → acorex-modules-ai-management-index-CjTjfydP.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs} +2 -2
  14. package/fesm2022/{acorex-modules-ai-management-model.entity-BeuDUahR.mjs.map → acorex-modules-ai-management-model.entity-CPHxj8h7.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs} +2 -2
  16. package/fesm2022/{acorex-modules-ai-management-open-ai-endpoint.entity-D-9unl6i.mjs.map → acorex-modules-ai-management-open-ai-endpoint.entity-a6MjMiXF.mjs.map} +1 -1
  17. package/fesm2022/acorex-modules-ai-management.mjs +1 -1
  18. package/fesm2022/{acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs → acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs} +509 -436
  19. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-DniyhnPK.mjs.map +1 -0
  20. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-assessment-management-assessment-case.entity-Ds8pRzvE.mjs.map → acorex-modules-assessment-management-assessment-case.entity-BggEmLhz.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-assessment-management-assessment-session.entity-tq1Q4wkS.mjs.map → acorex-modules-assessment-management-assessment-session.entity-CWR1QZv1.mjs.map} +1 -1
  24. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs} +2 -2
  25. package/fesm2022/{acorex-modules-assessment-management-fill-assessment-session.command-yf0PnWC0.mjs.map → acorex-modules-assessment-management-fill-assessment-session.command-qajn_XDh.mjs.map} +1 -1
  26. package/fesm2022/{acorex-modules-assessment-management-index-B2SncZAW.mjs → acorex-modules-assessment-management-index-B2l5Se1l.mjs} +25 -26
  27. package/fesm2022/acorex-modules-assessment-management-index-B2l5Se1l.mjs.map +1 -0
  28. package/fesm2022/{acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs → acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs} +10 -11
  29. package/fesm2022/acorex-modules-assessment-management-preview-question.command-BCS477_k.mjs.map +1 -0
  30. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs} +2 -2
  31. package/fesm2022/{acorex-modules-assessment-management-preview-questionnaire.command-BrI5gFtx.mjs.map → acorex-modules-assessment-management-preview-questionnaire.command-C8lyuqE-.mjs.map} +1 -1
  32. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs} +2 -2
  33. package/fesm2022/{acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-XD5IJpvW.mjs.map → acorex-modules-assessment-management-question-bank-interface-editor-widget-edit.component-DtowOBLy.mjs.map} +1 -1
  34. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-assessment-management-question-bank-item.entity-CZ32sQ9M.mjs.map → acorex-modules-assessment-management-question-bank-item.entity-Br7XcU_u.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs} +2 -2
  37. package/fesm2022/{acorex-modules-assessment-management-questionnaire-calculation.entity-C7gf4s1y.mjs.map → acorex-modules-assessment-management-questionnaire-calculation.entity-DNUf5RD3.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs} +3 -3
  39. package/fesm2022/{acorex-modules-assessment-management-questionnaire-viewer-popup.component-BZyIlYWg.mjs.map → acorex-modules-assessment-management-questionnaire-viewer-popup.component-BdBKHvHP.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs} +3 -3
  41. package/fesm2022/{acorex-modules-assessment-management-questionnaire.entity-CmmThk2f.mjs.map → acorex-modules-assessment-management-questionnaire.entity-B5aP_P4z.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs} +2 -2
  43. package/fesm2022/{acorex-modules-assessment-management-save-questionnaire-questions.command-GLqvK8wB.mjs.map → acorex-modules-assessment-management-save-questionnaire-questions.command-C3Qt5fmY.mjs.map} +1 -1
  44. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs} +2 -2
  45. package/fesm2022/{acorex-modules-assessment-management-view-session-answers.command-CU1TVonZ.mjs.map → acorex-modules-assessment-management-view-session-answers.command-C9VS-Tp3.mjs.map} +1 -1
  46. package/fesm2022/acorex-modules-assessment-management.mjs +1 -1
  47. package/fesm2022/{acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs → acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs} +519 -81
  48. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-F7Ok5dhs.mjs.map +1 -0
  49. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-asset-management-asset-system-history.entity-CSCwWY_F.mjs.map → acorex-modules-asset-management-asset-system-history.entity-D1HZG9wO.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs → acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs} +60 -38
  52. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-DDh5RK5M.mjs.map +1 -0
  53. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-asset-management-asset-type-section-component.entity-6Rauu2Z1.mjs.map → acorex-modules-asset-management-asset-type-section-component.entity-em7lQ1eu.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs → acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs} +6 -48
  56. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-BtcNy6Ra.mjs.map +1 -0
  57. package/fesm2022/{acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs → acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs} +53 -100
  58. package/fesm2022/acorex-modules-asset-management-asset-type.entity-DWhrFVFI.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-asset-management-asset.entity-CamZGWTM.mjs → acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs} +66 -56
  60. package/fesm2022/acorex-modules-asset-management-asset.entity-BEjXfkPD.mjs.map +1 -0
  61. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-asset-management-assetSystem.entity-Dq2ASslk.mjs.map → acorex-modules-asset-management-assetSystem.entity-CJCVALaz.mjs.map} +1 -1
  63. package/fesm2022/acorex-modules-asset-management.mjs +1 -1
  64. package/fesm2022/acorex-modules-common.mjs +38 -41
  65. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  66. package/fesm2022/acorex-modules-conversation.mjs +1046 -249
  67. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  68. package/fesm2022/acorex-modules-dashboard-management.mjs +1098 -706
  69. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  70. package/fesm2022/acorex-modules-data-management.mjs +63 -35
  71. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  72. package/fesm2022/acorex-modules-document-management.mjs +101 -57
  73. package/fesm2022/acorex-modules-document-management.mjs.map +1 -1
  74. package/fesm2022/{acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs → acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs} +48 -21
  75. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BmF6_P6d.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-human-capital-management.mjs +1 -1
  77. package/fesm2022/acorex-modules-location-management.mjs +18 -99
  78. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs +7137 -0
  80. package/fesm2022/acorex-modules-maintenance-management-acorex-modules-maintenance-management-DtODwbIN.mjs.map +1 -0
  81. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs} +2 -2
  82. package/fesm2022/{acorex-modules-maintenance-management-failure-effect.entity-DQJJtCqU.mjs.map → acorex-modules-maintenance-management-failure-effect.entity-BtczD4wu.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-asset-type.entity-gg2fpT2N.mjs.map → acorex-modules-maintenance-management-failure-mode-asset-type.entity-CDUdEH-e.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs} +2 -2
  86. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-mechanism.entity-CHUaAnID.mjs.map → acorex-modules-maintenance-management-failure-mode-mechanism.entity-re5UvGp7.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs} +2 -2
  88. package/fesm2022/{acorex-modules-maintenance-management-failure-mode-solution.entity-B93x1uP_.mjs.map → acorex-modules-maintenance-management-failure-mode-solution.entity-nbFz4LAe.mjs.map} +1 -1
  89. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs} +2 -2
  90. package/fesm2022/{acorex-modules-maintenance-management-failure-register-cause.entity-McM3l12Q.mjs.map → acorex-modules-maintenance-management-failure-register-cause.entity-CW2NlX59.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs} +2 -2
  92. package/fesm2022/{acorex-modules-maintenance-management-failure-register-effect.entity-_jjy1oeg.mjs.map → acorex-modules-maintenance-management-failure-register-effect.entity-Bi5XgfoL.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-maintenance-management-failure-register-mechanism.entity-5CmdhowW.mjs.map → acorex-modules-maintenance-management-failure-register-mechanism.entity-DcW6sK01.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs → acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs} +3 -3
  96. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-CUxVZo0w.mjs.map +1 -0
  97. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs} +2 -2
  98. package/fesm2022/{acorex-modules-maintenance-management-failure-severity.entity-BIZxoVIS.mjs.map → acorex-modules-maintenance-management-failure-severity.entity-B7LBO-UA.mjs.map} +1 -1
  99. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs +443 -0
  100. package/fesm2022/acorex-modules-maintenance-management-maintenance-template.entity-D6ATa-HR.mjs.map +1 -0
  101. package/fesm2022/acorex-modules-maintenance-management.mjs +1 -3579
  102. package/fesm2022/acorex-modules-maintenance-management.mjs.map +1 -1
  103. package/fesm2022/acorex-modules-notification-management.mjs +11 -5
  104. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  105. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs +356 -0
  106. package/fesm2022/acorex-modules-organization-management-acorex-modules-organization-management-BrVNMCi_.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs +181 -0
  108. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-CO8jMwVJ.mjs.map +1 -0
  109. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs +359 -0
  110. package/fesm2022/acorex-modules-organization-management-business-unit.entity-WiTemBLu.mjs.map +1 -0
  111. package/fesm2022/{acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs → acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs} +33 -29
  112. package/fesm2022/acorex-modules-organization-management-chart.entity-D6Y7kZfM.mjs.map +1 -0
  113. package/fesm2022/{acorex-modules-organization-management-company.entity-BohMJQNi.mjs → acorex-modules-organization-management-company.entity-wpNiu8g3.mjs} +6 -8
  114. package/fesm2022/acorex-modules-organization-management-company.entity-wpNiu8g3.mjs.map +1 -0
  115. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs +48 -0
  116. package/fesm2022/acorex-modules-organization-management-data-source-evaluator-scope.provider-BrKtojM9.mjs.map +1 -0
  117. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs +59 -0
  118. package/fesm2022/acorex-modules-organization-management-entity.provider-B0XbUW1I.mjs.map +1 -0
  119. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs +19 -0
  120. package/fesm2022/acorex-modules-organization-management-feature-definition.provider-D7t_nNNk.mjs.map +1 -0
  121. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs} +2 -2
  122. package/fesm2022/{acorex-modules-organization-management-job-definition.entity-S9Jlmr-o.mjs.map → acorex-modules-organization-management-job-definition.entity-Cb6zEf65.mjs.map} +1 -1
  123. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs +95 -0
  124. package/fesm2022/acorex-modules-organization-management-job-level.datasource-RDGmLrqD.mjs.map +1 -0
  125. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs +274 -0
  126. package/fesm2022/acorex-modules-organization-management-job-level.entity-oedF18Xm.mjs.map +1 -0
  127. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs +193 -0
  128. package/fesm2022/acorex-modules-organization-management-menu.provider-DAKmAxld.mjs.map +1 -0
  129. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs +1081 -0
  130. package/fesm2022/acorex-modules-organization-management-org-chart.page-mHV0AWGZ.mjs.map +1 -0
  131. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs +77 -0
  132. package/fesm2022/acorex-modules-organization-management-permission-definition.provider-Be8mvS_Z.mjs.map +1 -0
  133. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs +56 -0
  134. package/fesm2022/acorex-modules-organization-management-permission.keys-DwZNBc12.mjs.map +1 -0
  135. package/fesm2022/{acorex-modules-organization-management-position.entity-DLPufeWz.mjs → acorex-modules-organization-management-position.entity-BveMCKMd.mjs} +108 -106
  136. package/fesm2022/acorex-modules-organization-management-position.entity-BveMCKMd.mjs.map +1 -0
  137. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs} +25 -29
  138. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-ivufxxLL.mjs.map +1 -0
  139. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs} +2 -2
  140. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix-widget-view.component-CfRBMxLk.mjs.map → acorex-modules-organization-management-responsibilities-matrix-widget-view.component-DptdG1Nt.mjs.map} +1 -1
  141. package/fesm2022/{acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs → acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs} +14 -21
  142. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-qO33kvo_.mjs.map +1 -0
  143. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs +137 -0
  144. package/fesm2022/acorex-modules-organization-management-responsibility-level.entity-zOjyjm5H.mjs.map +1 -0
  145. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs} +2 -2
  146. package/fesm2022/{acorex-modules-organization-management-responsibility.entity-CMmr3wJa.mjs.map → acorex-modules-organization-management-responsibility.entity-jWEiPi5-.mjs.map} +1 -1
  147. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs +228 -0
  148. package/fesm2022/acorex-modules-organization-management-settings.provider-D3ged-4h.mjs.map +1 -0
  149. package/fesm2022/{acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs → acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs} +68 -8
  150. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-D9TZoACE.mjs.map +1 -0
  151. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs} +2 -2
  152. package/fesm2022/{acorex-modules-organization-management-team-member.entity-8sTjn5Jn.mjs.map → acorex-modules-organization-management-team-member.entity-Bz4o7c3d.mjs.map} +1 -1
  153. package/fesm2022/{acorex-modules-organization-management-team.entity-CGR0UlYl.mjs → acorex-modules-organization-management-team.entity-uVffZPeg.mjs} +100 -37
  154. package/fesm2022/acorex-modules-organization-management-team.entity-uVffZPeg.mjs.map +1 -0
  155. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs +48 -0
  156. package/fesm2022/acorex-modules-organization-management-widget-definition.provider-D4yjuqwx.mjs.map +1 -0
  157. package/fesm2022/acorex-modules-organization-management.mjs +1 -2216
  158. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  159. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs +40 -0
  160. package/fesm2022/acorex-modules-platform-dev-tools-menu.provider-BFueKnuF.mjs.map +1 -0
  161. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs +33 -0
  162. package/fesm2022/acorex-modules-platform-dev-tools-settings.provider-CGyf-4eq.mjs.map +1 -0
  163. package/fesm2022/acorex-modules-platform-dev-tools.mjs +14 -94
  164. package/fesm2022/acorex-modules-platform-dev-tools.mjs.map +1 -1
  165. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs → acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs} +107 -107
  166. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BjKrHoBg.mjs.map +1 -0
  167. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  168. package/fesm2022/{acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs → acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs} +65 -76
  169. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BoUiTlmu.mjs.map +1 -0
  170. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs} +2 -2
  171. package/fesm2022/{acorex-modules-reservation-management-reservation-class-status.entity-Bg7d38wV.mjs.map → acorex-modules-reservation-management-reservation-class-status.entity-D-ZdqKa8.mjs.map} +1 -1
  172. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs} +2 -2
  173. package/fesm2022/{acorex-modules-reservation-management-reservation-resource-type.entity-BK-rLEXi.mjs.map → acorex-modules-reservation-management-reservation-resource-type.entity-zPD-Psml.mjs.map} +1 -1
  174. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs} +2 -2
  175. package/fesm2022/{acorex-modules-reservation-management-reservation-status-transition.entity-2ngXhKAV.mjs.map → acorex-modules-reservation-management-reservation-status-transition.entity-CQ85ZAGF.mjs.map} +1 -1
  176. package/fesm2022/acorex-modules-reservation-management.mjs +1 -1
  177. package/fesm2022/acorex-modules-security-management.mjs +269 -190
  178. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  179. package/fesm2022/{acorex-modules-task-management-task-board.page-C1H_GTqy.mjs → acorex-modules-task-management-task-board.page-DA2563QE.mjs} +15 -10
  180. package/fesm2022/acorex-modules-task-management-task-board.page-DA2563QE.mjs.map +1 -0
  181. package/fesm2022/acorex-modules-task-management.mjs +27 -13
  182. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  183. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs +5 -0
  184. package/fesm2022/acorex-modules-workflow-management-WORKFLOW_DEFINITION_ACTIVITIES_PAGE_COMPONENT_KEY-D6q__Ewd.mjs.map +1 -0
  185. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs} +14 -6
  186. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-CDo0QVFy.mjs.map +1 -0
  187. package/fesm2022/{acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs → acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs} +31 -16
  188. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BYJpDQRs.mjs.map +1 -0
  189. package/fesm2022/{acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs → acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs} +10 -12
  190. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-B3DkgDQb.mjs.map +1 -0
  191. package/fesm2022/{acorex-modules-workflow-management-index-DWIDQsWq.mjs → acorex-modules-workflow-management-index-C9Qc07oK.mjs} +125 -3
  192. package/fesm2022/acorex-modules-workflow-management-index-C9Qc07oK.mjs.map +1 -0
  193. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs +726 -0
  194. package/fesm2022/acorex-modules-workflow-management-index-D8fjNgQJ.mjs.map +1 -0
  195. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs +294 -0
  196. package/fesm2022/acorex-modules-workflow-management-index-DMnJRDbq.mjs.map +1 -0
  197. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs +56 -0
  198. package/fesm2022/acorex-modules-workflow-management-save-workflow-definition-activities.command-fFO152ni.mjs.map +1 -0
  199. package/fesm2022/{acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs → acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs} +101 -140
  200. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-DqPVpcSv.mjs.map +1 -0
  201. package/fesm2022/{acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs → acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs} +10 -1
  202. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-sfsoT0is.mjs.map +1 -0
  203. package/fesm2022/{acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs → acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs} +11 -7
  204. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-NpUx0sB5.mjs.map +1 -0
  205. package/fesm2022/acorex-modules-workflow-management.mjs +746 -402
  206. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  207. package/organization-management/README.md +1 -1
  208. package/package.json +2 -2
  209. package/types/acorex-modules-ai-management.d.ts +64 -16
  210. package/types/acorex-modules-asset-management.d.ts +115 -58
  211. package/types/acorex-modules-common.d.ts +2 -4
  212. package/types/acorex-modules-dashboard-management.d.ts +226 -109
  213. package/types/acorex-modules-data-management.d.ts +2 -2
  214. package/types/acorex-modules-document-management.d.ts +1 -2
  215. package/types/acorex-modules-human-capital-management.d.ts +6 -0
  216. package/types/acorex-modules-maintenance-management.d.ts +561 -41
  217. package/types/acorex-modules-notification-management.d.ts +7 -3
  218. package/types/acorex-modules-organization-management.d.ts +52 -107
  219. package/types/acorex-modules-security-management.d.ts +15 -1
  220. package/types/acorex-modules-task-management.d.ts +8 -13
  221. package/types/acorex-modules-workflow-management.d.ts +67 -13
  222. package/fesm2022/acorex-modules-ai-management-acorex-modules-ai-management-WuqoH4OL.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-ai-management-agent.entity-DK9GNMdR.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-ai-management-ai-delegated-agent-transcript-popup.component-CWXEW9yL.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-ai-management-assist-delegated-agent-configurator-widget-edit.component-CNKwIqUE.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-assessment-management-acorex-modules-assessment-management-BNK6C-Ng.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-assessment-management-index-B2SncZAW.mjs.map +0 -1
  228. package/fesm2022/acorex-modules-assessment-management-preview-question.command-DPzL8C44.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-asset-management-acorex-modules-asset-management-BDs0ZgD5.mjs.map +0 -1
  230. package/fesm2022/acorex-modules-asset-management-asset-system-type.entity-CcefMT8J.mjs.map +0 -1
  231. package/fesm2022/acorex-modules-asset-management-asset-type-section.entity-r_H1QGwp.mjs.map +0 -1
  232. package/fesm2022/acorex-modules-asset-management-asset-type.entity-cWVqpbHH.mjs.map +0 -1
  233. package/fesm2022/acorex-modules-asset-management-asset.entity-CamZGWTM.mjs.map +0 -1
  234. package/fesm2022/acorex-modules-human-capital-management-employee.entity-BRpqFRuI.mjs.map +0 -1
  235. package/fesm2022/acorex-modules-maintenance-management-failure-register.entity-D_lQrda5.mjs.map +0 -1
  236. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs +0 -91
  237. package/fesm2022/acorex-modules-organization-management-business-unit-type.entity-C-EKX6Oy.mjs.map +0 -1
  238. package/fesm2022/acorex-modules-organization-management-chart.entity-bRxA8XHZ.mjs.map +0 -1
  239. package/fesm2022/acorex-modules-organization-management-company.entity-BohMJQNi.mjs.map +0 -1
  240. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs +0 -784
  241. package/fesm2022/acorex-modules-organization-management-org-chart.page-eRTHzLDQ.mjs.map +0 -1
  242. package/fesm2022/acorex-modules-organization-management-position.entity-DLPufeWz.mjs.map +0 -1
  243. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix-widget-edit.component-mMZywr0X.mjs.map +0 -1
  244. package/fesm2022/acorex-modules-organization-management-responsibilities-matrix.component-B06t1G1E.mjs.map +0 -1
  245. package/fesm2022/acorex-modules-organization-management-team-member-role.entity-CZ4MibH4.mjs.map +0 -1
  246. package/fesm2022/acorex-modules-organization-management-team.entity-CGR0UlYl.mjs.map +0 -1
  247. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-DPSNAAct.mjs.map +0 -1
  248. package/fesm2022/acorex-modules-reservation-management-acorex-modules-reservation-management-BMemqW2V.mjs.map +0 -1
  249. package/fesm2022/acorex-modules-task-management-task-board.page-C1H_GTqy.mjs.map +0 -1
  250. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-column.component-C8lgSjfc.mjs.map +0 -1
  251. package/fesm2022/acorex-modules-workflow-management-activity-command-configurator-widget-edit.component-BGUPxGXP.mjs.map +0 -1
  252. package/fesm2022/acorex-modules-workflow-management-activity-definition.entity-Bvs1OfE_.mjs.map +0 -1
  253. package/fesm2022/acorex-modules-workflow-management-index-DWIDQsWq.mjs.map +0 -1
  254. package/fesm2022/acorex-modules-workflow-management-workflow-definition.entity-aJou58ED.mjs.map +0 -1
  255. package/fesm2022/acorex-modules-workflow-management-workflow-instance.entity-Cq7LE7u5.mjs.map +0 -1
  256. package/fesm2022/acorex-modules-workflow-management-workflow-task-popover.component-CIakASVR.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-modules-notification-management.mjs","sources":["../../../../libs/modules/notification-management/src/lib/const.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.service.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.service.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.module.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.service.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.module.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.module.ts","../../../../libs/modules/notification-management/src/lib/entities/index.ts","../../../../libs/modules/notification-management/src/lib/menu.provider.ts","../../../../libs/modules/notification-management/src/lib/manifest.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-realtime.service.ts","../../../../libs/modules/notification-management/src/lib/features/shared/os-notification.service.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-management.service.ts","../../../../libs/modules/notification-management/src/lib/badge.provider.ts","../../../../libs/modules/notification-management/src/lib/permission-definition.provider.ts","../../../../libs/modules/notification-management/src/lib/entity.provider.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-definition.service.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-item/admin-notification-item.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-item/admin-notification-item.component.html","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-panel/admin-notification-panel.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-panel/admin-notification-panel.component.html","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-slot/admin-notification-slot.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-slot/admin-notification-slot.component.html","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.component.ts","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.component.html","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.config.ts","../../../../libs/modules/notification-management/src/lib/widget-definition.provider.ts","../../../../libs/modules/notification-management/src/lib/notification-management.module.ts","../../../../libs/modules/notification-management/src/lib/settings.keys.ts","../../../../libs/modules/notification-management/src/lib/settings.provider.ts","../../../../libs/modules/notification-management/src/lib/entities/my-notification.ts","../../../../libs/modules/notification-management/src/lib/entities/notification-log.entity.ts","../../../../libs/modules/notification-management/src/acorex-modules-notification-management.ts"],"sourcesContent":["const config = {\n i18n: 'notification-management',\n route: 'notifications',\n};\nexport const RootConfig = {\n config,\n module: {\n route: 'notification-management',\n name: 'NotificationManagement',\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-bell',\n },\n entities: {\n channel: {\n name: 'Channels',\n title: `t(\"channel\", {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-list',\n },\n template: {\n name: 'Templates',\n title: `t(\"template\",{scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-code',\n },\n notification: {\n name: 'Notifications',\n title: `t(\"notification\",{scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-code',\n },\n },\n};\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport {\n AXMNotificationItem,\n AXMNotificationMarkAsReadRequest,\n AXMNotificationResponse,\n} from '../../features/shared/notification-management.type';\nimport { AXMNotificationManagementNotificationEntityModel } from './notification.types';\n\nexport abstract class AXMNotificationEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementNotificationEntityModel,\n AXMNotificationItem\n> {\n abstract getList(): Promise<AXMNotificationResponse>;\n abstract markAsRead(payload?: AXMNotificationMarkAsReadRequest): Promise<void>;\n abstract markAllAsRead(): Promise<void>;\n abstract create(payload?: AXMNotificationItem): Promise<AXMNotificationItem>;\n}\n\n@Injectable()\nexport class AXMNotificationEntityServiceImpl extends AXMNotificationEntityService {\n override getList(): Promise<AXMNotificationResponse> {\n throw new Error('Method not implemented.');\n }\n override markAsRead(payload?: AXMNotificationMarkAsReadRequest): Promise<void> {\n throw new Error('Method not implemented.');\n }\n override markAllAsRead(): Promise<void> {\n throw new Error('Method not implemented.');\n }\n override create(payload?: AXMNotificationItem): Promise<AXMNotificationItem> {\n throw new Error('Method not implemented.');\n }\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.notification.name}`);\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationEntityService } from './notification.service';\n\nexport async function notificationEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMNotificationEntityService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.notification.name,\n title: RootConfig.entities.notification.title,\n icon: RootConfig.entities.notification.icon,\n formats: {\n individual: '@notification-management:entities.notification.title',\n plural: '@notification-management:entities.notification.plural',\n },\n relatedEntities: [\n {\n entity: 'notification-management.notificationLog',\n columns: ['title', 'status'],\n },\n ],\n groups: [\n {\n id: 'notification',\n title: 'Notification',\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@notification-management:entities.notification.fields.name.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: '@notification-management:entities.notification.fields.title.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'body',\n title: '@notification-management:entities.notification.fields.body.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'channel',\n title: '@notification-management:entities.notification.fields.channel.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'user.name',\n title: '@notification-management:entities.notification.fields.user-name.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'body' }, { name: 'user.name' }, { name: 'channel' }],\n queries: {\n byKey: {\n execute: async (id: string) => {\n return new Promise((resolve) => {\n setTimeout(async () => {\n const entity = await dataService.getOne(id);\n resolve(entity);\n }, 500);\n });\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'user.name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXPEntity, AXPEntityCommandScope, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\n\nexport async function notificationTemplateEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.template.name,\n title: RootConfig.entities.template.title,\n icon: RootConfig.entities.template.icon,\n formats: {\n individual: 't(\"template\",{scope: \"notification-management\"})',\n plural: 't(\"template\",{scope: \"notification-management\"})',\n },\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.channel.name}`,\n columns: ['title', 'body', 'channel'],\n conditions: [\n {\n name: 'notificationId',\n operator: {\n type: 'equal',\n },\n value: 'id',\n },\n ],\n },\n ],\n groups: [\n {\n id: 'notification',\n title: '@general:terms.common.title',\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n \n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'notification',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'notification',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationManagementTemplateEntityModel } from './template.types';\n\nexport abstract class AXMNotificationManagementTemplateEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementTemplateEntityModel\n> {}\n\n@Injectable()\nexport class AXMNotificationManagementTemplateEntityServiceImpl extends AXMNotificationManagementTemplateEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.template.name}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationManagementTemplateEntityService, AXMNotificationManagementTemplateEntityServiceImpl } from './template.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationManagementTemplateEntityService,\n useClass: AXMNotificationManagementTemplateEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationTemplateEntityModule { }\n","import { AXPEntity } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\n\nexport async function notificationChannelEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.channel.name,\n title: RootConfig.entities.channel.title,\n icon: RootConfig.entities.channel.icon,\n formats: {\n individual: `@${i18n}:channel`,\n plural: `@${i18n}:channels`,\n },\n relatedEntities: [],\n groups: [\n {\n id: 'notificationChannel',\n title: 'Notification Channel',\n },\n {\n id: 'in-app',\n title: 'In App',\n },\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'template',\n title: `@${i18n}:template`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n {\n name: 'body',\n title: `@${i18n}:body`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'imageId',\n title: `@${i18n}:body`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.fileUploader,\n options: {\n multiple: false,\n },\n },\n },\n },\n {\n name: 'channel',\n title: `@${i18n}:channel`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'SMS', name: 'sms' },\n { title: 'Email', name: 'email' },\n { title: 'In App', name: 'inApp' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'type',\n title: `@${i18n}:type`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Notification', name: 'notification' },\n { title: 'Promotion', name: 'promotion' },\n { title: 'PopUp', name: 'popup' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'contentType',\n title: `@${i18n}:contentType`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'shape',\n title: `@${i18n}:shape`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Circle', name: 'circle' },\n { title: 'Square', name: 'square' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'placement',\n title: `t(\"placement\", { scope: \"${i18n}\" })`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Side Menu Footer', name: 'side-menu-footer' },\n { title: 'Side Menu Header', name: 'side-menu-header' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'pin',\n title: `t(\"pin\", { scope: \"${i18n}\" })`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.checkbox,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'trigger',\n title: `t(\"trigger\", { scope: \"${i18n}\" })`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.cronJob,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'title' }, { name: 'body' }, { name: 'channel' }],\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n {\n name: 'all',\n title: '@general:terms.interface.selection.all-items',\n fixed: true,\n columns: [],\n conditions: [],\n sorts: [],\n },\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationManagementChannelEntityModel } from './channel.types';\n\nexport abstract class AXMNotificationManagementChannelEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementChannelEntityModel\n> {}\n\n@Injectable()\nexport class AXMNotificationManagementChannelEntityServiceImpl extends AXMNotificationManagementChannelEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.channel.name}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationEntityService, AXMNotificationEntityServiceImpl } from './notification.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationEntityService,\n useClass: AXMNotificationEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationEntityModule { }\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationManagementChannelEntityService, AXMNotificationManagementChannelEntityServiceImpl } from './channel.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationManagementChannelEntityService,\n useClass: AXMNotificationManagementChannelEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationChannelEntityModule { }\n","// Entity Services\nexport * from './notification';\nexport * from './template';\nexport * from './channel';\n\n// Entity Modules\nexport * from './notification/notification.module';\nexport * from './template/template.module';\nexport * from './channel/channel.module';\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Notification Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const NotificationManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMNotificationItem } from './notification-management.type';\n\nexport interface AXMNotificationChangeEvent {\n type: 'created' | 'updated' | 'read' | 'deleted';\n notification?: AXMNotificationItem;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMNotificationRealtimeService {\n private readonly changedSubject = new Subject<AXMNotificationChangeEvent>();\n\n readonly changed$ = this.changedSubject.asObservable();\n\n notifyChanged(event: AXMNotificationChangeEvent): void {\n this.changedSubject.next(event);\n }\n}\n","//#region ---- Core Imports ----\nimport { Injectable, signal } from '@angular/core';\n//#endregion\n\n/**\n * Extends standard NotificationOptions to include a click handler and window focusing behavior.\n */\nexport interface AXMOsNotificationOptions extends NotificationOptions {\n onClick?: () => void;\n activeWindow?: boolean;\n}\n\n/**\n * Service to display OS-level notifications using the browser's Notification API.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMOsNotificationService {\n public readonly isSupported = signal<boolean>(false);\n public readonly permission = signal<boolean>(false);\n\n constructor() {\n this.isSupported.set('Notification' in window);\n }\n\n /**\n * Requests permission from the user to display desktop notifications.\n * @returns A promise that resolves to true if permission is granted, false otherwise.\n */\n public async requestPermission(): Promise<boolean> {\n if (!this.isSupported()) {\n console.warn('This browser does not support desktop notifications.');\n return false;\n }\n\n switch (Notification.permission) {\n case 'granted':\n this.permission.set(true);\n return true;\n\n case 'default':\n const permission = await Notification.requestPermission();\n this.permission.set(permission === 'granted');\n return this.permission();\n\n default:\n this.permission.set(false);\n return false;\n }\n }\n\n /**\n * Shows a desktop notification.\n * This method should be called after ensuring permission has been granted via requestPermission().\n *\n * @param title The title of the notification.\n * @param options Optional notification options including an onClick handler and window focusing.\n * @returns The Notification object if displayed, otherwise null.\n */\n public show(title: string, options?: AXMOsNotificationOptions): Notification | null {\n if (!this.isSupported()) {\n console.warn('This browser does not support desktop notifications.');\n return null;\n }\n\n if (!this.permission()) {\n console.warn(`Notification permission is ${Notification.permission}. Call requestPermission() first.`);\n return null;\n }\n\n const notification = new Notification(title, options);\n\n if (options?.onClick) {\n notification.onclick = () => {\n if (options.activeWindow) {\n window.focus();\n }\n options.onClick!();\n };\n }\n\n return notification;\n }\n\n /**\n * Dismisses all active notifications or a specific one.\n * @param notification Optional. Pass a specific notification to close it; otherwise closes all.\n */\n public dismiss(notification?: Notification): void {\n if (notification) {\n notification.close();\n }\n }\n}\n","import { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { computed, DestroyRef, effect, inject, Injectable, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { AXMNotificationEntityService } from '../../entities/notification';\nimport { AXMNotificationManagementNotificationEntityModel } from '../../entities/notification/notification.types';\nimport {\n AXMNotificationItem,\n AXMNotificationMarkAsReadRequest,\n AXMNotificationResponse,\n} from './notification-management.type';\nimport { AXMNotificationRealtimeService } from './notification-realtime.service';\nimport { AXMOsNotificationOptions, AXMOsNotificationService } from './os-notification.service';\n\n/**\n * Signal store that provides a reactive interface for notification-related operations\n * Acts as a layer between notification components and the entity service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMNotificationConnectorService {\n private readonly notificationService = inject(AXMNotificationEntityService);\n private readonly osNotificationService = inject(AXMOsNotificationService);\n private readonly notificationRealtime = inject(AXMNotificationRealtimeService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly osNotifiedIds = new Set<string>();\n\n // State signals\n private readonly isLoading = signal<boolean>(false);\n private readonly error = signal<string | null>(null);\n private readonly notifications = signal<AXMNotificationItem[]>([]);\n private readonly totalCount = signal<number>(0);\n\n // Public computed signals\n readonly loading = computed(() => this.isLoading());\n readonly errorMessage = computed(() => this.error());\n readonly notificationList = computed(() => this.notifications());\n readonly total = computed(() => this.totalCount());\n readonly unreadCount = computed(\n () => this.notifications().filter((notification) => notification.readAt === null).length,\n );\n\n // Effects\n constructor() {\n // Auto-fetch notifications when service is initialized\n effect(() => {\n this.getList();\n });\n\n this.notificationRealtime.changed$\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.type === 'created' && event.notification) {\n void this.showOsNotificationForItem(event.notification);\n }\n if (!this.isLoading()) {\n void this.getList();\n }\n });\n }\n\n // Methods from entity service with additional state management\n\n /**\n * Get list of notifications\n */\n async getList(): Promise<AXMNotificationResponse> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const response = await this.notificationService.getList();\n\n // Sort notifications by createAt date in descending order (newest first)\n const sortedItems = [...response.items].sort((a, b) => {\n const dateA = new Date(a.createAt).getTime();\n const dateB = new Date(b.createAt).getTime();\n return dateB - dateA;\n });\n\n this.notifications.set(sortedItems);\n this.totalCount.set(response.total);\n\n return {\n ...response,\n items: sortedItems,\n };\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to fetch notifications');\n return { total: 0, items: [] };\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Mark notifications as read\n * If no specific IDs are provided, mark all unread notifications as read\n * If specific IDs are provided, set readAt only when it is currently null (no toggling)\n */\n async markAsRead(payload: AXMNotificationMarkAsReadRequest = { id: [] }): Promise<void> {\n try {\n // this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.markAsRead(payload);\n\n // Update local state to reflect read status without toggling\n if (payload?.id?.length) {\n // Set readAt for specific notifications only if currently unread\n this.notifications.update((notifications) =>\n notifications.map((notification) => {\n if (payload.id.includes(notification.id)) {\n // Only set readAt when it is null (no toggling to unread)\n return notification.readAt === null ? { ...notification, readAt: new Date() } : notification;\n }\n return notification;\n }),\n );\n } else {\n // If no specific IDs are provided, mark all unread notifications as read\n this.notifications.update((notifications) =>\n notifications.map((notification) =>\n notification.readAt ? notification : { ...notification, readAt: new Date() },\n ),\n );\n }\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to mark notifications as read');\n } finally {\n // this.isLoading.set(false);\n }\n }\n\n async markAllAsRead(): Promise<void> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.markAllAsRead();\n\n this.notifications.update((notifications) =>\n notifications.map((notification) => ({ ...notification, readAt: new Date() })),\n );\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to mark all notifications as read');\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Create a new notification\n */\n async create(payload?: AXMNotificationItem, options?: AXMOsNotificationOptions): Promise<void> {\n this.isLoading.set(true);\n this.error.set(null);\n\n //send os notification\n const isPermissionGranted = await this.osNotificationService.requestPermission();\n if (payload && isPermissionGranted) {\n this.osNotificationService.show(payload.title || 'Notification', {\n body: payload.body || 'No body',\n ...options,\n });\n this.osNotifiedIds.add(payload.id);\n }\n const createdNotification = await this.notificationService.create(payload);\n\n // Refresh list after creating a notification\n this.notifications.update((notifications) => {\n const newNotifications = [createdNotification, ...notifications];\n return newNotifications.sort((a, b) => new Date(b.createAt).getTime() - new Date(a.createAt).getTime());\n });\n this.totalCount.update((count) => count + 1);\n await this.getList();\n\n this.isLoading.set(false);\n }\n\n private async showOsNotificationForItem(\n notification: AXMNotificationItem,\n options?: AXMOsNotificationOptions,\n ): Promise<void> {\n if (!notification.id || this.osNotifiedIds.has(notification.id)) {\n return;\n }\n const isPermissionGranted = await this.osNotificationService.requestPermission();\n if (!isPermissionGranted) {\n return;\n }\n this.osNotificationService.show(notification.title || 'Notification', {\n body: notification.body || 'No body',\n ...options,\n });\n this.osNotifiedIds.add(notification.id);\n }\n\n // Methods from AXMEntityCrudServiceImpl\n\n /**\n * Insert one notification\n */\n async insertOne(request: Omit<AXMNotificationManagementNotificationEntityModel, 'id'>): Promise<string> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const id = await this.notificationService.insertOne(request);\n\n // Refresh list after inserting\n await this.getList();\n\n return id;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to insert notification');\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Get one notification by id\n */\n async getOne(id: string): Promise<AXMNotificationManagementNotificationEntityModel> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n return await this.notificationService.getOne(id);\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to get notification with id ${id}`);\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Delete one notification\n */\n async deleteOne(id: string): Promise<void> {\n try {\n // this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.deleteOne(id);\n\n // Update local state to remove deleted notification\n this.notifications.update((notifications) => notifications.filter((notification) => notification.id !== id));\n\n // Update total count\n this.totalCount.update((count) => count - 1);\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to delete notification with id ${id}`);\n throw err;\n } finally {\n // this.isLoading.set(false);\n }\n }\n\n /**\n * Update one notification\n */\n async updateOne(\n id: string,\n values: Partial<AXMNotificationManagementNotificationEntityModel>,\n ): Promise<AXMNotificationManagementNotificationEntityModel> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const updated = await this.notificationService.updateOne(id, values);\n\n // Update local state to reflect changes\n this.notifications.update((notifications) =>\n notifications.map((notification) =>\n notification.id === id ? ({ ...notification, ...values } as AXMNotificationItem) : notification,\n ),\n );\n\n return updated;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to update notification with id ${id}`);\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Query notifications\n */\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<AXMNotificationItem>> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const result = await this.notificationService.query(request);\n\n // Update local state with query results\n this.notifications.set(result.items as unknown as AXMNotificationItem[]);\n this.totalCount.set(result.total);\n\n return result;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to query notifications');\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","import { AXPTaskBadgeProvider } from '@acorex/platform/layout/components';\nimport { computed, inject, Injectable } from '@angular/core';\nimport { AXMNotificationConnectorService } from './features/shared/notification-management.service';\n\n// Provides a live unread notifications count for header/task badges\n@Injectable()\nexport class AXMNotificationBadgeProvider implements AXPTaskBadgeProvider {\n private readonly notificationService = inject(AXMNotificationConnectorService);\n readonly key = 'badge-notification';\n readonly count = computed(() => this.notificationService.unreadCount());\n}\n","import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n // TODO: Define permissions when needed\n }\n}\n\n","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\n\n@Injectable()\nexport class AXMEntityLoader implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n private injector = inject(Injector);\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n return new Promise(async (resolve) => {\n switch (entityName) {\n case RootConfig.entities.template.name: {\n const entity = (await import('./entities/template/template.entity')).notificationTemplateEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n case RootConfig.entities.channel.name: {\n const entity = (await import('./entities/channel/channel.entity')).notificationChannelEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n //TODO: Add your custom entity here\n case 'my-notification': {\n const entity = (await import('./entities/my-notification')).myNotificationEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n case RootConfig.entities.notification.name: {\n const entity = (await import('./entities/notification/notification.entity')).notificationEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n default:\n resolve(null);\n }\n });\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n return Promise.resolve(\n Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m }))\n );\n }\n}\n","import { AXPExecuteCommand } from '@acorex/platform/core';\nimport { inject, Injectable, InjectionToken, InputSignal, OutputEmitterRef, Type } from '@angular/core';\nimport { AXMNotificationItem } from './notification-management.type';\n\nexport type AXMNotificationType = 'File' | 'Chat' | 'Comment' | 'Log';\n\n/**\n * Interface for dynamic notification content components.\n * Ensures that any component used for notification content has a consistent API.\n */\nexport interface AXPNotificationContent {\n item: InputSignal<AXMNotificationItem | undefined>;\n execute: OutputEmitterRef<AXPExecuteCommand>;\n}\n\nexport abstract class AXPNotificationDefinitionProvider {\n name: AXMNotificationType;\n title: string;\n icon: string;\n // actions?: AXPActionMenuItem[];\n content?: () => Promise<Type<AXPNotificationContent>>;\n execute: (command: AXPExecuteCommand, item: AXMNotificationItem) => Promise<void>;\n}\n\nconst DEFAULT_NOTIFICATION_DEFINITION: AXPNotificationDefinitionProvider[] = [\n // {\n // name: 'File',\n // title: 'Email',\n // icon: 'fa-solid fa-envelope',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for email', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Chat',\n // title: 'SMS',\n // icon: 'fa-solid fa-comment-sms',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for sms', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Comment',\n // title: 'Comment',\n // icon: 'fa-solid fa-comment'\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for comment', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Log',\n // title: 'Log',\n // icon: 'fa-solid fa-file-lines',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for log', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n];\n\nexport class AXPNotificationDefinitionProviderDefault extends AXPNotificationDefinitionProvider {\n async provide(): Promise<AXPNotificationDefinitionProvider[]> {\n return DEFAULT_NOTIFICATION_DEFINITION;\n }\n}\n\nexport const AXP_NOTIFICATION_DEFINITION_PROVIDER = new InjectionToken<AXPNotificationDefinitionProvider[]>(\n 'AXP_NOTIFICATION_DEFINITION_PROVIDER',\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPNotificationDefinitionService {\n private providers = inject(AXP_NOTIFICATION_DEFINITION_PROVIDER, { optional: true });\n\n getProviders(): AXPNotificationDefinitionProvider[] {\n return this.providers?.flat() ?? [];\n }\n\n resolve(name: string): AXPNotificationDefinitionProvider | null {\n return this.getProviders()?.find((p) => p.name === name) ?? null;\n }\n\n execute(command: AXPExecuteCommand, item: AXMNotificationItem) {\n const provider = this.getProviders()?.find((p) => p.name === item.type);\n if (!provider) {\n throw new Error('Notification provider not found');\n }\n provider.execute(command, item);\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPUserAvatarComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n inputBinding,\n output,\n outputBinding,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { AXPNotificationDefinitionService } from '../../shared/notification-definition.service';\nimport { AXMNotificationItem } from '../../shared/notification-management.type';\n\n@Component({\n selector: 'axp-master-notification-item',\n templateUrl: './admin-notification-item.component.html',\n styleUrls: ['./admin-notification-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXPUserAvatarComponent,\n AXImageModule,\n AXBadgeModule,\n AXFormatModule,\n ],\n})\nexport class AXMAdminNotificationItemComponent {\n //#region ---- Services & Dependencies ----\n\n notificationDefinitionService = inject(AXPNotificationDefinitionService);\n\n //#endregion\n\n //#region ---- View Queries ----\n\n div = viewChild('component', { read: ViewContainerRef });\n\n //#endregion\n\n //#region ---- Inputs & Outputs ----\n\n data = input.required<AXMNotificationItem>();\n onPressNotificationItem = output<string>();\n\n /** Emits when the popover should be closed (e.g., after clicking an item or action) */\n onClosePopover = output<void>();\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n pressNotificationItem(id: string) {\n this.onPressNotificationItem.emit(id);\n this.getNotificationProvider()?.execute({ name: 'click' }, this.data());\n this.onClosePopover.emit();\n }\n\n onAction(command: AXPExecuteCommand) {\n this.getNotificationProvider()?.execute(command, this.data());\n this.onClosePopover.emit();\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n getNotificationProvider() {\n return this.notificationDefinitionService.resolve(this.data().type);\n }\n\n getNotificationContent() {\n const provider = this.getNotificationProvider();\n return provider?.content?.();\n }\n\n async renderComponent() {\n if (this.getNotificationContent() && this.getNotificationProvider()) {\n const component = await this.getNotificationContent();\n if (component) {\n this.div()?.createComponent(component, {\n bindings: [\n inputBinding('item', this.data),\n outputBinding('execute', (e: AXPExecuteCommand) => this.onAction(e)),\n ],\n });\n }\n }\n }\n\n #af = afterNextRender(() => this.renderComponent());\n}\n","<div\n class=\"notification-item ax-text-start\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXMNotificationConnectorService } from '../../shared/notification-management.service';\nimport { AXMNotificationCategory, AXMNotificationItem } from '../../shared/notification-management.type';\nimport { AXMAdminNotificationItemComponent } from '../admin-notification-item/admin-notification-item.component';\n@Component({\n selector: 'axm-admin-notification-panel',\n templateUrl: './admin-notification-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXTabsModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXPopoverModule,\n AXMAdminNotificationItemComponent,\n AXFormatModule,\n ],\n})\nexport class AXMAdminNotificationPanelComponent implements OnInit {\n //#region ---- Outputs ----\n\n onNewNotfication = output<number>();\n\n /** Emits when the popover should be closed (bubbled from item components) */\n onClosePopover = output<void>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private notificationConnector = inject(AXMNotificationConnectorService);\n private toastService = inject(AXToastService);\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Signals & Inputs ----\n\n /**\n * Tabs provided by the parent (custom categories). The component will prepend\n * \"Unread\" and \"All\" before these tabs.\n */\n providedTabs = input<AXMNotificationCategory[]>([]);\n\n // Use store's signals directly\n protected readonly notifications = this.notificationConnector.notificationList;\n protected readonly totalNotifications = this.notificationConnector.total;\n protected readonly isLoading = this.notificationConnector.loading;\n protected readonly errorMessage = this.notificationConnector.errorMessage;\n\n // Default active tab is Unread\n activeTab = signal<AXMTabDataText>('Unread');\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n tabItems = computed<AXTabData[]>(() => this.getTabItems(this.notifications(), this.providedTabs()), {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n\n changeActiveTab(tab: AXMTabDataText) {\n this.activeTab.set(tab);\n }\n\n NewNotification = computed<number>(() => this.getNewNotification(this.tabItems()));\n NewNotificationEffect = effect(() => this.onNewNotfication.emit(this.NewNotification()));\n\n //#endregion\n\n ngOnInit(): void {\n this.loadNotification();\n }\n\n private async loadNotification() {\n try {\n await this.notificationConnector.getList();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to load notifications!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n\n //#region ---- Utility Methods ----\n\n private getTabItems(\n notifications: AXMNotificationItem[] | undefined,\n userTabs: AXMNotificationCategory[],\n ): AXTabData[] {\n // Base when no notifications loaded yet\n if (!notifications) {\n const base: AXTabData[] = [\n { text: 'Unread', count: 0 },\n { text: 'All', count: 0 },\n ];\n return base.concat((userTabs ?? []).map((t) => ({ text: t, count: 0 })));\n }\n\n // Count unread by category\n const unreadCountByCategory = new Map<AXMNotificationCategory, number>();\n for (const notification of notifications) {\n const category = notification.template.category;\n if (!unreadCountByCategory.has(category)) {\n unreadCountByCategory.set(category, 0);\n }\n if (!notification.readAt) {\n unreadCountByCategory.set(category, (unreadCountByCategory.get(category) ?? 0) + 1);\n }\n }\n\n const unreadTotal = Array.from(unreadCountByCategory.values()).reduce((a, b) => a + b, 0);\n // Keep previous behavior: 'All' badge shows total UNREAD across all categories\n const allTotal = unreadTotal;\n\n // Determine which tabs to show after Unread and All\n let finalUserTabs = userTabs ?? [];\n if (finalUserTabs.length === 0) {\n // Fallback to discovered categories if parent has not provided tabs\n finalUserTabs = Array.from(unreadCountByCategory.keys());\n }\n\n // Ensure uniqueness and preserve provided order\n const seen = new Set<string>(['Unread', 'All']);\n const userCategoryTabs = finalUserTabs.filter((t) => {\n if (seen.has(t)) return false;\n seen.add(t);\n return true;\n });\n\n const result: AXTabData[] = [\n { text: 'Unread', count: unreadTotal },\n { text: 'All', count: allTotal },\n ...userCategoryTabs.map((category) => ({\n text: category as AXMTabDataText,\n count: unreadCountByCategory.get(category) ?? 0,\n })),\n ];\n\n return result;\n }\n\n private getNewNotification(data: AXTabData[]): number {\n // Use the Unread tab as the single source of truth for new notifications\n return data.find((tab) => tab.text === 'Unread')?.count ?? 0;\n }\n\n protected getNotificationItems(category: AXMTabDataText): AXMNotificationItem[] {\n const list = this.notifications();\n if (!list) return [];\n if (category === 'All') {\n return list;\n }\n if (category === 'Unread') {\n return list.filter((item) => !item.readAt);\n }\n return list.filter((item) => item.template.category === category);\n }\n\n /**\n * Mark a notification as read or unread (toggle read status)\n */\n protected async markAsRead(id: string): Promise<void> {\n try {\n await this.notificationConnector.markAsRead({ id: [id] });\n } catch (error) {\n console.error('Failed to toggle notification read status:', error);\n }\n }\n\n /**\n * Mark all unread notifications as read\n */\n protected async markAllAsRead() {\n try {\n await this.notificationConnector.markAllAsRead();\n } catch (error) {\n console.error('Failed to mark all notifications as read:', error);\n }\n }\n\n protected viewAllNotifications(): void {\n this.router.navigate([`${this.sessionService.application?.name}/notifications`]);\n }\n}\n\ninterface AXTabData {\n text: AXMTabDataText;\n count: number;\n}\ntype AXMTabDataText = 'Unread' | 'All' | AXMNotificationCategory;\n","<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","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\n\nimport { ChangeDetectionStrategy, Component, signal, viewChild } from '@angular/core';\nimport { AXMAdminNotificationPanelComponent } from '../admin-notification-panel/admin-notification-panel.component';\n\n@Component({\n selector: 'axm-admin-notification-slot',\n templateUrl: './admin-notification-slot.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent],\n})\nexport class AXMAdminNotificationSlotComponent {\n //#region ---- Signals ----\n\n totalNewNotification = signal<number>(0);\n\n //#endregion\n\n //#region ---- View Queries ----\n\n popover = viewChild(AXPopoverComponent);\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n setTotalNewNotification(value: number): void {\n this.totalNewNotification.set(value);\n }\n\n closePopover(): void {\n this.popover()?.close();\n }\n\n //#endregion\n}\n","<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","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n effect,\n inject,\n OnDestroy,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { AXMAdminNotificationItemComponent } from '../../../components/admin-notification-item/admin-notification-item.component';\nimport { AXMAdminNotificationSlotComponent } from '../../../components/admin-notification-slot/admin-notification-slot.component';\nimport { AXMNotificationConnectorService } from '../../../shared/notification-management.service';\nimport { AXMNotificationItem } from '../../../shared/notification-management.type';\n\n/**\n * Notification Widget Component\n * Displays notifications in a card with tabs\n */\n@Component({\n templateUrl: './notification-widget.component.html',\n styleUrls: ['./notification-widget.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AXTabsModule,\n AXDecoratorModule,\n AXButtonModule,\n AXBadgeModule,\n AXTranslationModule,\n AXMAdminNotificationItemComponent,\n AXPStateMessageComponent,\n ],\n providers: [\n DatePipe,\n // Provide a lightweight stub for AXMAdminNotificationSlotComponent so the admin item can inject it\n {\n provide: AXMAdminNotificationSlotComponent,\n useValue: {\n popover: () => ({ close: () => { } }),\n } as Partial<AXMAdminNotificationSlotComponent>,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent<any> implements OnInit, OnDestroy {\n // Outputs\n notificationClick = output<AXMNotificationItem>();\n markAsRead = output<AXMNotificationItem>();\n\n // Dependencies\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly datePipe = inject(DatePipe);\n private readonly notificationConnector = inject(AXMNotificationConnectorService);\n private readonly toastService = inject(AXToastService);\n\n // State\n protected activeTab = signal<'unread' | 'all'>('unread');\n private refreshTimerId: number | null = null;\n\n // Configuration\n protected readonly maxItems = computed(() => this.options()?.['maxItems'] ?? 10);\n protected readonly showAvatar = computed(() => this.options()?.['showAvatar'] ?? true);\n protected readonly showDate = computed(() => this.options()?.['showDate'] ?? true);\n protected readonly autoRefresh = computed(() => this.options()?.['autoRefresh'] ?? true);\n protected readonly refreshInterval = computed(() => (this.options()?.['refreshInterval'] ?? 60) * 1000); // Convert to milliseconds\n\n // Use store's signals directly\n protected readonly notifications = this.notificationConnector.notificationList;\n protected readonly totalNotifications = this.notificationConnector.total;\n protected readonly isLoading = this.notificationConnector.loading;\n\n // Computed data\n protected readonly notificationItems = computed(() => {\n const items = this.notifications();\n if (!items?.length) return [];\n\n // Sort by pinned status and date\n const sortedItems = [...items].sort((a, b) => {\n if (a.template.isPinned === b.template.isPinned) {\n return new Date(b.createAt).getTime() - new Date(a.createAt).getTime();\n }\n return a.template.isPinned ? -1 : 1;\n });\n\n // Filter by active tab\n const filtered = this.activeTab() === 'unread' ? sortedItems.filter((n) => !n.readAt) : sortedItems;\n\n return filtered.slice(0, this.maxItems());\n });\n\n constructor() {\n super();\n\n // Watch for changes to auto-refresh settings\n effect(() => {\n this.setupAutoRefresh();\n });\n }\n\n override ngOnInit(): void {\n this.loadNotifications();\n }\n\n ngOnDestroy(): void {\n this.clearRefreshTimer();\n }\n\n /**\n * Set up auto-refresh timer based on configuration\n */\n private setupAutoRefresh(): void {\n this.clearRefreshTimer();\n\n if (this.autoRefresh()) {\n const interval = this.refreshInterval();\n this.refreshTimerId = setInterval(() => {\n this.loadNotifications();\n }, interval);\n }\n }\n\n /**\n * Clear the refresh timer if it exists\n */\n private clearRefreshTimer(): void {\n if (this.refreshTimerId !== null) {\n clearInterval(this.refreshTimerId);\n this.refreshTimerId = null;\n }\n }\n\n /**\n * Load notifications data from service\n */\n private async loadNotifications(): Promise<void> {\n try {\n await this.notificationConnector.getList();\n this.cdr.detectChanges();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to load notifications!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n\n /**\n * Manually refresh notifications\n */\n protected refreshNotifications(): void {\n this.loadNotifications();\n }\n\n /**\n * Get the count of new messages for the badge\n */\n protected getNewMessageCount(): number {\n const items = this.notifications();\n if (!items?.length) return 0;\n\n return items.filter((n) => !n.readAt).length;\n }\n\n /**\n * Handle tab change event from ax-tabs component\n * @param data The tab change event data\n */\n protected handleTabChange(data: AXTabStripChangedEvent): void {\n const index = data.index;\n // Map index to tab name: 0 = 'unread', 1 = 'all'\n const tabName = index === 0 ? 'unread' : 'all';\n this.onTabChange(tabName);\n }\n\n /**\n * Mark all notifications as read\n */\n protected async markAllAsRead(): Promise<void> {\n try {\n await this.notificationConnector.markAsRead({ id: [] });\n this.cdr.detectChanges();\n } catch (error) {\n this.toastService.show({\n content: 'Failed to mark notifications as read',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n });\n }\n }\n\n /**\n * Change the active tab\n */\n protected onTabChange(tabName: 'unread' | 'all'): void {\n this.activeTab.set(tabName);\n this.cdr.detectChanges();\n }\n\n /**\n * Handle notification click event\n */\n protected onNotificationClick(notification: AXMNotificationItem): void {\n this.markAsReadIfNeeded(notification);\n this.notificationClick.emit(notification);\n }\n\n /**\n * Bridge click from admin item (emits notification id)\n */\n protected onAdminItemClick = (id: string): void => {\n return;\n // const item = this.notifications().find((n) => n.id === id);\n // if (!item) return;\n // this.onNotificationClick(item);\n };\n\n /**\n * Format the timestamp in a user-friendly way\n */\n protected formatTime(date: Date | string | undefined): string {\n if (!date) return '';\n\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n const diffDays = this.getDaysDifference(dateObj);\n\n // Format based on how recent the date is\n if (diffDays === 0) return this.datePipe.transform(dateObj, 'h:mm a') || ''; // Today\n if (diffDays === 1) return 'Yesterday';\n if (diffDays < 7) return this.datePipe.transform(dateObj, 'EEE') || ''; // Day of week\n return this.datePipe.transform(dateObj, 'MM/DD/YYYY') || ''; // Older date\n }\n\n /**\n * Mark notification as read if needed\n */\n private async markAsReadIfNeeded(notification: AXMNotificationItem): Promise<void> {\n try {\n // Always mark as read on click if unread, but don't toggle back to unread\n if (notification.readAt) return;\n\n await this.notificationConnector.markAsRead({ id: [notification.id] });\n\n // Emit the updated notification with readAt set\n // It will be read now because we only call this for unread notifications\n const updatedNotification = {\n ...notification,\n readAt: new Date(),\n };\n this.markAsRead.emit(updatedNotification);\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Failed to mark notification as read:', error);\n }\n }\n\n /**\n * Calculate days difference from now\n */\n private getDaysDifference(date: Date): number {\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n return Math.floor(diffMs / (1000 * 60 * 60 * 24));\n }\n}\n","<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","import { AXP_WIDGETS_UTILITY_CATEGORY } from '@acorex/modules/dashboard-management';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum, AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport {\n AXP_APPEARANCE_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_STYLING_PROPERTY_GROUP,\n} from '@acorex/platform/layout/widgets';\n\n/**\n * Configuration for the Notification Widget\n */\nexport const AXPMyNotificationDashboardWidget: AXPWidgetConfig = {\n name: 'my-notification-dashboard',\n title: 'My Notification Widget',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n description: 'Displays notifications in a widget format',\n icon: 'fa-regular fa-bell',\n properties: [\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Title ======\n {\n name: 'title',\n title: '@notification-management:widgets.my-notification-dashboard.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: 'Enter chart title',\n },\n },\n },\n visible: true,\n },\n {\n name: 'maxItems',\n title: '@notification-management:widgets.my-notification-dashboard.max-items',\n description: 'Maximum number of notification items to display',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 10,\n dataType: 'number',\n interface: {\n name: 'maxItems',\n path: 'options.maxItems',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 100,\n },\n },\n },\n visible: true,\n },\n {\n name: 'showAvatar',\n title: '@notification-management:widgets.my-notification-dashboard.show-avatar',\n description: 'Whether to show avatars in notifications',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showAvatar',\n path: 'options.showAvatar',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showDate',\n title: '@notification-management:widgets.my-notification-dashboard.show-date',\n description: 'Whether to show date in notifications',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDate',\n path: 'options.showDate',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'autoRefresh',\n title: '@notification-management:widgets.my-notification-dashboard.auto-refresh',\n description: 'Automatically refresh notifications at regular intervals',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'autoRefresh',\n path: 'options.autoRefresh',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'refreshInterval',\n title: '@notification-management:widgets.my-notification-dashboard.refresh-interval',\n description: 'Interval in seconds between automatic refreshes',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 60,\n dataType: 'number',\n interface: {\n name: 'refreshInterval',\n path: 'options.refreshInterval',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 10,\n maxValue: 3600,\n },\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./notification-widget.component').then((c) => c.AXPNotificationWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n lg: {\n width: 3,\n height: 5,\n minWidth: 2,\n minHeight: 4,\n maxWidth: 4,\n maxHeight: 7,\n },\n md: {\n width: 3,\n height: 5,\n minWidth: 2,\n minHeight: 4,\n maxWidth: 4,\n maxHeight: 7,\n },\n sm: {\n height: 5,\n minHeight: 4,\n maxHeight: 7,\n },\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPMyNotificationDashboardWidget } from './features/dashboard/widgets/my-notification';\n\n//#endregion\n\n//#region ---- Notification Management Widgets Provider ----\n\n@Injectable()\nexport class AXMNotificationManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXPMyNotificationDashboardWidget];\n }\n}\n\n//#endregion\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex/platform/core';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { NotificationManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER } from '@acorex/platform/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { NgModule } from '@angular/core';\nimport { Routes, ROUTES } from '@angular/router';\nimport { AXMNotificationBadgeProvider } from './badge.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityLoader } from './entity.provider';\nimport { AXMAdminNotificationSlotComponent } from './features/components/admin-notification-slot/admin-notification-slot.component';\nimport { AXMNotificationManagementWidgetsProvider } from './widget-definition.provider';\n\n// Entity Modules\nimport {\n AXMNotificationEntityModule,\n AXMNotificationTemplateEntityModule,\n AXMNotificationChannelEntityModule,\n} from './entities';\n\nfunction routesFactory(): Routes {\n const routes: Routes = [\n {\n path: ':app/notifications',\n canActivate: [AXPAuthGuard],\n loadComponent: () => {\n return AXPRootLayoutComponent;\n },\n title: 'Notifications',\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/components/notification-page/notification-page.component').then(\n (c) => c.AXMNotificationPageComponent,\n ),\n data: { reuse: true },\n },\n ],\n },\n ];\n return routes;\n}\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'root-header-end': [\n {\n name: 'notification',\n component: AXMAdminNotificationSlotComponent,\n },\n ],\n }),\n AXPWidgetCoreModule,\n // Entity Modules\n AXMNotificationEntityModule,\n AXMNotificationTemplateEntityModule,\n AXMNotificationChannelEntityModule,\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n {\n provide: AXP_TASK_BADGE_PROVIDERS,\n useClass: AXMNotificationBadgeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: NotificationManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityLoader,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMNotificationManagementWidgetsProvider,\n multi: true,\n },\n ],\n})\nexport class AXMNotificationManagementModule { }\n","export enum AXPSettingKeys {\n // Email Settings\n Server = 'NotificationManagement:Setting:Email.Server',\n Port = 'NotificationManagement:Setting:Email.Port',\n Username = 'NotificationManagement:Setting:Email.Username',\n Password = 'NotificationManagement:Setting:Email.Password',\n FromAddress = 'NotificationManagement:Setting:Email.FromAddress',\n UseSSL = 'NotificationManagement:Setting:Email.UseSSL',\n UseTLS = 'NotificationManagement:Setting:Email.UseTLS',\n\n // Telegram Settings\n TelegramToken = 'NotificationManagement:Setting:Telegram.Token',\n TelegramChatId = 'NotificationManagement:Setting:Telegram.ChatId',\n\n // WhatsApp Settings\n WhatsAppApiUrl = 'NotificationManagement:Setting:WhatsApp.ApiUrl',\n WhatsAppAuthToken = 'NotificationManagement:Setting:WhatsApp.AuthToken',\n\n // Firebase Settings\n FirebaseApiKey = 'NotificationManagement:Setting:Firebase.ApiKey',\n FirebaseProjectId = 'NotificationManagement:Setting:Firebase.ProjectId',\n FirebaseSenderId = 'NotificationManagement:Setting:Firebase.SenderId',\n FirebaseAppId = 'NotificationManagement:Setting:Firebase.AppId',\n}\n","import { RootConfig } from '@acorex/modules/form-template-management';\nimport { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPSettingKeys } from './settings.keys';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injector } from '@angular/core';\nimport { AXPWidgetsList } from '@acorex/modules/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n private readonly translateService = this.injector.get(AXTranslationService);\n\n constructor(private injector: Injector) { }\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const trans = async (key: string) => await this.translateService.translateAsync(`settings.notification-settings.${key}`, { scope: 'notification-management' });\n\n context\n // Add Notification Settings Group\n .addGroup(\n 'notification-settings',\n await trans('title'),\n await trans('description'),\n RootConfig.module.icon\n )\n\n // SMTP Settings Section\n .addSection('smtp-settings', await trans('smtp.title'), await trans('smtp.description'))\n .addSetting({\n key: AXPSettingKeys.Server,\n title: await trans('smtp.server.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('smtp.server.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Port,\n title: await trans('smtp.port.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 587,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: {\n minValue: 1,\n maxValue: 65535,\n },\n },\n description: await trans('smtp.port.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Username,\n title: await trans('smtp.username.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('smtp.username.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Password,\n title: await trans('smtp.password.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.PasswordBox,\n },\n description: await trans('smtp.password.description'),\n })\n .addSetting({\n key: AXPSettingKeys.UseSSL,\n title: await trans('smtp.ssl.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n description: await trans('smtp.ssl.description'),\n })\n .addSetting({\n key: AXPSettingKeys.UseTLS,\n title: await trans('smtp.tls.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n description: await trans('smtp.tls.description'),\n })\n .endSection()\n\n // Telegram Settings Section\n .addSection('telegram-settings', await trans('telegram.title'), await trans('telegram.description'))\n .addSetting({\n key: AXPSettingKeys.TelegramToken,\n title: await trans('telegram.token.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('telegram.token.description'),\n })\n .addSetting({\n key: AXPSettingKeys.TelegramChatId,\n title: await trans('telegram.chat-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('telegram.chat-id.description'),\n })\n .endSection()\n\n // WhatsApp Settings Section\n .addSection('whatsapp-settings', await trans('whatsapp.title'), await trans('whatsapp.description'))\n .addSetting({\n key: AXPSettingKeys.WhatsAppApiUrl,\n title: await trans('whatsapp.api-url.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('whatsapp.api-url.description'),\n })\n .addSetting({\n key: AXPSettingKeys.WhatsAppAuthToken,\n title: await trans('whatsapp.auth-token.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.PasswordBox,\n },\n description: await trans('whatsapp.auth-token.description'),\n })\n .endSection()\n\n // Firebase Settings Section\n .addSection('firebase-settings', await trans('firebase.title'), await trans('firebase.description'))\n .addSetting({\n key: AXPSettingKeys.FirebaseApiKey,\n title: await trans('firebase.api-key.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.api-key.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseProjectId,\n title: await trans('firebase.project-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.project-id.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseSenderId,\n title: await trans('firebase.sender-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.sender-id.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseAppId,\n title: await trans('firebase.app-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.app-id.description'),\n })\n .endSection()\n\n // End Notification Settings Group\n .endGroup();\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPEntityDataProviderImpl, AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injector } from '@angular/core';\n\nexport async function myNotificationEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const storageService = injector.get(AXPEntityStorageService);\n const dataProvider = new AXPEntityDataProviderImpl<any>(storageService, 'notifications');\n const moduleName = 'notification-management';\n const scope = `#${moduleName}`;\n\n const entityDef: AXPEntity = {\n module: moduleName,\n name: 'notification',\n title: '@notification-management:my',\n formats: {\n individual: '@notification-management:my',\n plural: '@notification-management:my',\n },\n groups: [\n { id: 'data', title: 'Data' },\n { id: 'content', title: 'Content' },\n { id: 'action', title: 'Action' },\n { id: 'user', title: 'User' },\n { id: 'template', title: 'Template' },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'data',\n schema: {\n dataType: 'string',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'body',\n title: '@general:terms.body',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.largeText,\n },\n },\n },\n {\n name: 'channel',\n title: '@notification-management:channel',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['InApp', 'Email', 'SMS'], multiple: false },\n },\n },\n },\n {\n name: 'content.type',\n title: '@notification-management:content.type',\n groupId: 'content',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n {\n name: 'action.type',\n title: '@general:terms.workflow.action.type',\n groupId: 'action',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Link', 'Entity', 'Popup'], multiple: false },\n },\n },\n },\n {\n name: 'User.name',\n title: '@general:terms.people.user',\n groupId: 'user',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n\n {\n name: 'template.category',\n title: '@notification-management:template.category',\n groupId: 'template',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Inbox', 'Archive'], multiple: false },\n },\n },\n },\n {\n name: 'template.prority',\n title: '@notification-management:template.priority',\n groupId: 'template',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Warning', 'Danger', 'Notice'], multiple: false },\n },\n },\n },\n {\n name: 'template.isPinned',\n title: '@notification-management:template.isPinned',\n groupId: 'template',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.checkbox,\n options: {\n label: 'Is Pinned',\n },\n },\n },\n },\n {\n name: 'readAt',\n title: '@notification-management:readAt',\n groupId: 'data',\n schema: {\n dataType: 'datetime',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n options: { format: 'date' },\n },\n },\n },\n {\n name: 'createAt',\n title: '@notification-management:createAt',\n groupId: 'data',\n schema: {\n dataType: 'datetime',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n options: { format: 'date' },\n },\n },\n },\n ],\n columns: [\n { name: 'title' },\n { name: 'body' },\n { name: 'channel' },\n { name: 'user.name' },\n { name: 'template.category' },\n { name: 'template.prority' },\n { name: 'createAt' },\n { name: 'readAt' },\n ],\n commands: {\n create: {\n execute: async (data: any) => {\n const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });\n await dataProvider.insertOne(entity);\n return entity;\n },\n },\n delete: {\n execute: async (id: any) => {\n await dataProvider.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n await dataProvider.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataProvider.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n const list = await dataProvider.getAll();\n return {\n total: list.length,\n items: list.slice(e.skip, e.skip + e.take),\n };\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n list: {\n actions: [\n {\n title: 'Delete',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n ],\n views: [{ name: 'all', title: 'All Notifications', fixed: true, columns: [], conditions: [], sorts: [] }],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../const';\nimport { AXMNotificationManagementChannelEntityService } from './channel/channel.service';\n\nexport async function notificationLogEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMNotificationManagementChannelEntityService);\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: 'notification-management',\n name: 'notification',\n title: 'Notification',\n formats: {\n individual: 'NotificationLog',\n plural: 'NotificationLogs',\n },\n relatedEntities: [],\n groups: [\n {\n id: 'notification',\n title: 'Notification',\n },\n ],\n properties: [\n {\n name: 'name',\n title: `t(\"name\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'title',\n title: `t(\"title\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'status',\n title: `t(\"status\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }, { name: 'body' }, { name: 'user.name' }, { name: 'channel' }],\n queries: {\n byKey: {\n execute: async (id: string) => {\n return new Promise((resolve) => {\n setTimeout(async () => {\n const entity = await dataService.getOne(id);\n resolve(entity);\n }, 500);\n });\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'user.name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: '@general:actions.detail.title',\n command: 'open-entity',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [\n {\n name: 'all',\n title: '@general:terms.interface.selection.all-items',\n fixed: true,\n columns: [],\n conditions: [],\n sorts: [],\n },\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","RootConfig"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-modules-notification-management.mjs","sources":["../../../../libs/modules/notification-management/src/lib/const.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.service.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.service.ts","../../../../libs/modules/notification-management/src/lib/entities/template/template.module.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.entity.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.service.ts","../../../../libs/modules/notification-management/src/lib/entities/notification/notification.module.ts","../../../../libs/modules/notification-management/src/lib/entities/channel/channel.module.ts","../../../../libs/modules/notification-management/src/lib/entities/index.ts","../../../../libs/modules/notification-management/src/lib/menu.provider.ts","../../../../libs/modules/notification-management/src/lib/manifest.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-realtime.service.ts","../../../../libs/modules/notification-management/src/lib/features/shared/os-notification.service.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-management.service.ts","../../../../libs/modules/notification-management/src/lib/badge.provider.ts","../../../../libs/modules/notification-management/src/lib/permission-definition.provider.ts","../../../../libs/modules/notification-management/src/lib/entity.provider.ts","../../../../libs/modules/notification-management/src/lib/features/shared/notification-definition.service.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-item/admin-notification-item.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-item/admin-notification-item.component.html","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-panel/admin-notification-panel.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-panel/admin-notification-panel.component.html","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-slot/admin-notification-slot.component.ts","../../../../libs/modules/notification-management/src/lib/features/components/admin-notification-slot/admin-notification-slot.component.html","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.component.ts","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.component.html","../../../../libs/modules/notification-management/src/lib/features/dashboard/widgets/my-notification/notification-widget.config.ts","../../../../libs/modules/notification-management/src/lib/widget-definition.provider.ts","../../../../libs/modules/notification-management/src/lib/notification-management.module.ts","../../../../libs/modules/notification-management/src/lib/settings.keys.ts","../../../../libs/modules/notification-management/src/lib/settings.provider.ts","../../../../libs/modules/notification-management/src/lib/entities/my-notification.ts","../../../../libs/modules/notification-management/src/lib/entities/notification-log.entity.ts","../../../../libs/modules/notification-management/src/acorex-modules-notification-management.ts"],"sourcesContent":["const config = {\n i18n: 'notification-management',\n route: 'notifications',\n module: 'NotificationManagement',\n} as const;\n\n/** Dashboard widget type ids for notification-management-hosted widgets (`{module}:Widget:Dashboard:{Segment}`). */\nconst dashboardWidgetId = (segment: string): string =>\n `${config.module}:Widget:Dashboard:${segment}`;\n\nexport const RootConfig = {\n config,\n module: {\n route: 'notification-management',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-bell',\n },\n entities: {\n channel: {\n name: 'Channels',\n title: `t(\"channel\", {scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-list',\n },\n template: {\n name: 'Templates',\n title: `t(\"template\",{scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-code',\n },\n notification: {\n name: 'Notifications',\n title: `t(\"notification\",{scope:\"${config.i18n}\"})`,\n icon: 'fa-light fa-file-code',\n },\n },\n widgets: {\n myNotificationDashboard: dashboardWidgetId('MyNotificationDashboard'),\n },\n};\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport {\n AXMNotificationItem,\n AXMNotificationMarkAsReadRequest,\n AXMNotificationResponse,\n} from '../../features/shared/notification-management.type';\nimport { AXMNotificationManagementNotificationEntityModel } from './notification.types';\n\nexport abstract class AXMNotificationEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementNotificationEntityModel,\n AXMNotificationItem\n> {\n abstract getList(): Promise<AXMNotificationResponse>;\n abstract markAsRead(payload?: AXMNotificationMarkAsReadRequest): Promise<void>;\n abstract markAllAsRead(): Promise<void>;\n abstract create(payload?: AXMNotificationItem): Promise<AXMNotificationItem>;\n}\n\n@Injectable()\nexport class AXMNotificationEntityServiceImpl extends AXMNotificationEntityService {\n override getList(): Promise<AXMNotificationResponse> {\n throw new Error('Method not implemented.');\n }\n override markAsRead(payload?: AXMNotificationMarkAsReadRequest): Promise<void> {\n throw new Error('Method not implemented.');\n }\n override markAllAsRead(): Promise<void> {\n throw new Error('Method not implemented.');\n }\n override create(payload?: AXMNotificationItem): Promise<AXMNotificationItem> {\n throw new Error('Method not implemented.');\n }\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.notification.name}`);\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationEntityService } from './notification.service';\n\nexport async function notificationEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMNotificationEntityService);\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.notification.name,\n title: RootConfig.entities.notification.title,\n icon: RootConfig.entities.notification.icon,\n formats: {\n individual: '@notification-management:entities.notification.title',\n plural: '@notification-management:entities.notification.plural',\n },\n relatedEntities: [\n {\n entity: 'notification-management.notificationLog',\n columns: ['title', 'status'],\n },\n ],\n groups: [\n {\n id: 'notification',\n title: 'Notification',\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@notification-management:entities.notification.fields.name.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: '@notification-management:entities.notification.fields.title.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'body',\n title: '@notification-management:entities.notification.fields.body.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'channel',\n title: '@notification-management:entities.notification.fields.channel.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'user.name',\n title: '@notification-management:entities.notification.fields.user-name.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n ],\n columns: [{ name: 'title' }, { name: 'body' }, { name: 'user.name' }, { name: 'channel' }],\n queries: {\n byKey: {\n execute: async (id: string) => {\n return new Promise((resolve) => {\n setTimeout(async () => {\n const entity = await dataService.getOne(id);\n resolve(entity);\n }, 500);\n });\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'user.name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXPEntity, AXPEntityCommandScope, createAllQueryView } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\n\nexport async function notificationTemplateEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.template.name,\n title: RootConfig.entities.template.title,\n icon: RootConfig.entities.template.icon,\n formats: {\n individual: 't(\"template\",{scope: \"notification-management\"})',\n plural: 't(\"template\",{scope: \"notification-management\"})',\n },\n relatedEntities: [\n {\n entity: `${RootConfig.module.name}.${RootConfig.entities.channel.name}`,\n columns: ['title', 'body', 'channel'],\n conditions: [\n {\n name: 'notificationId',\n operator: {\n type: 'equal',\n },\n value: 'id',\n },\n ],\n },\n ],\n groups: [\n {\n id: 'notification',\n title: '@general:terms.common.title',\n },\n ],\n properties: [\n {\n name: 'name',\n title: '@general:terms.common.name',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'description',\n title: '@general:terms.common.description',\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }],\n \n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'notification',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'notification',\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'description',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [createAllQueryView()],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationManagementTemplateEntityModel } from './template.types';\n\nexport abstract class AXMNotificationManagementTemplateEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementTemplateEntityModel\n> {}\n\n@Injectable()\nexport class AXMNotificationManagementTemplateEntityServiceImpl extends AXMNotificationManagementTemplateEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.template.name}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationManagementTemplateEntityService, AXMNotificationManagementTemplateEntityServiceImpl } from './template.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationManagementTemplateEntityService,\n useClass: AXMNotificationManagementTemplateEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationTemplateEntityModule { }\n","import { AXPEntity } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { entityMasterCrudActions, entityMasterRecordActions } from '@acorex/platform/layout/entity';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../../const';\n\nexport async function notificationChannelEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.channel.name,\n title: RootConfig.entities.channel.title,\n icon: RootConfig.entities.channel.icon,\n formats: {\n individual: `@${i18n}:channel`,\n plural: `@${i18n}:channels`,\n },\n relatedEntities: [],\n groups: [\n {\n id: 'notificationChannel',\n title: 'Notification Channel',\n },\n {\n id: 'in-app',\n title: 'In App',\n },\n ],\n properties: [\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'template',\n title: `@${i18n}:template`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n {\n name: 'body',\n title: `@${i18n}:body`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'imageId',\n title: `@${i18n}:body`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.fileUploader,\n options: {\n multiple: false,\n },\n },\n },\n },\n {\n name: 'channel',\n title: `@${i18n}:channel`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'SMS', name: 'sms' },\n { title: 'Email', name: 'email' },\n { title: 'In App', name: 'inApp' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'type',\n title: `@${i18n}:type`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Notification', name: 'notification' },\n { title: 'Promotion', name: 'promotion' },\n { title: 'PopUp', name: 'popup' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n },\n {\n name: 'contentType',\n title: `@${i18n}:contentType`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Media', name: 'media' },\n { title: 'Text', name: 'text' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'shape',\n title: `@${i18n}:shape`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Circle', name: 'circle' },\n { title: 'Square', name: 'square' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'placement',\n title: `t(\"placement\", { scope: \"${i18n}\" })`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n dataSource: [\n { title: 'Side Menu Footer', name: 'side-menu-footer' },\n { title: 'Side Menu Header', name: 'side-menu-header' },\n ],\n direction: 'horizontal',\n multiple: false,\n },\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'pin',\n title: `t(\"pin\", { scope: \"${i18n}\" })`,\n groupId: 'in-app',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.checkbox,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n {\n name: 'trigger',\n title: `t(\"trigger\", { scope: \"${i18n}\" })`,\n groupId: 'notificationChannel',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.cronJob,\n },\n },\n validations: [\n {\n rule: 'required',\n },\n ],\n },\n ],\n columns: [{ name: 'title' }, { name: 'body' }, { name: 'channel' }],\n interfaces: {\n master: {\n create: {\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n },\n update: {\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 1,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notificationChannel',\n },\n {\n id: 'in-app',\n },\n ],\n properties: [\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'imageId',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 2,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'template',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'trigger',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 10,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n\n {\n name: 'type',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n order: 3,\n },\n },\n },\n },\n {\n name: 'contentType',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 4,\n },\n },\n },\n },\n {\n name: 'shape',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 5,\n },\n },\n },\n },\n {\n name: 'placement',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n order: 6,\n },\n },\n },\n },\n {\n name: 'pin',\n layout: {\n positions: {\n lg: {\n colSpan: 4,\n },\n },\n },\n },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n {\n name: 'all',\n title: '@general:terms.interface.selection.all-items',\n fixed: true,\n columns: [],\n conditions: [],\n sorts: [],\n },\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '../../const';\nimport { AXMNotificationManagementChannelEntityModel } from './channel.types';\n\nexport abstract class AXMNotificationManagementChannelEntityService extends AXMEntityCrudServiceImpl<\n string,\n AXMNotificationManagementChannelEntityModel\n> {}\n\n@Injectable()\nexport class AXMNotificationManagementChannelEntityServiceImpl extends AXMNotificationManagementChannelEntityService {\n constructor() {\n super(`${RootConfig.module.name}.${RootConfig.entities.channel.name}`);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationEntityService, AXMNotificationEntityServiceImpl } from './notification.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationEntityService,\n useClass: AXMNotificationEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationEntityModule { }\n","import { NgModule } from '@angular/core';\nimport { AXMNotificationManagementChannelEntityService, AXMNotificationManagementChannelEntityServiceImpl } from './channel.service';\n\n@NgModule({\n imports: [],\n exports: [],\n declarations: [],\n providers: [\n {\n provide: AXMNotificationManagementChannelEntityService,\n useClass: AXMNotificationManagementChannelEntityServiceImpl,\n },\n ],\n})\nexport class AXMNotificationChannelEntityModule { }\n","// Entity Services\nexport * from './notification';\nexport * from './template';\nexport * from './channel';\n\n// Entity Modules\nexport * from './notification/notification.module';\nexport * from './template/template.module';\nexport * from './channel/channel.module';\n","import { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex/platform/common';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\n\nexport class AXMMenuProvider implements AXPMenuProvider {\n private sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n }\n}\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex/platform/core';\nimport { RootConfig } from './const';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\n/**\n * Notification Management Module Manifest.\n * Defines module metadata, features, and provider references.\n */\nexport const NotificationManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n required: true,\n\n // Module dependencies (optional)\n};\n\n//#endregion\n\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXMNotificationItem } from './notification-management.type';\n\nexport interface AXMNotificationChangeEvent {\n type: 'created' | 'updated' | 'read' | 'deleted';\n notification?: AXMNotificationItem;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMNotificationRealtimeService {\n private readonly changedSubject = new Subject<AXMNotificationChangeEvent>();\n\n readonly changed$ = this.changedSubject.asObservable();\n\n notifyChanged(event: AXMNotificationChangeEvent): void {\n this.changedSubject.next(event);\n }\n}\n","//#region ---- Core Imports ----\nimport { Injectable, signal } from '@angular/core';\n//#endregion\n\n/**\n * Extends standard NotificationOptions to include a click handler and window focusing behavior.\n */\nexport interface AXMOsNotificationOptions extends NotificationOptions {\n onClick?: () => void;\n activeWindow?: boolean;\n}\n\n/**\n * Service to display OS-level notifications using the browser's Notification API.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMOsNotificationService {\n public readonly isSupported = signal<boolean>(false);\n public readonly permission = signal<boolean>(false);\n\n constructor() {\n this.isSupported.set('Notification' in window);\n }\n\n /**\n * Requests permission from the user to display desktop notifications.\n * @returns A promise that resolves to true if permission is granted, false otherwise.\n */\n public async requestPermission(): Promise<boolean> {\n if (!this.isSupported()) {\n console.warn('This browser does not support desktop notifications.');\n return false;\n }\n\n switch (Notification.permission) {\n case 'granted':\n this.permission.set(true);\n return true;\n\n case 'default':\n const permission = await Notification.requestPermission();\n this.permission.set(permission === 'granted');\n return this.permission();\n\n default:\n this.permission.set(false);\n return false;\n }\n }\n\n /**\n * Shows a desktop notification.\n * This method should be called after ensuring permission has been granted via requestPermission().\n *\n * @param title The title of the notification.\n * @param options Optional notification options including an onClick handler and window focusing.\n * @returns The Notification object if displayed, otherwise null.\n */\n public show(title: string, options?: AXMOsNotificationOptions): Notification | null {\n if (!this.isSupported()) {\n console.warn('This browser does not support desktop notifications.');\n return null;\n }\n\n if (!this.permission()) {\n console.warn(`Notification permission is ${Notification.permission}. Call requestPermission() first.`);\n return null;\n }\n\n const notification = new Notification(title, options);\n\n if (options?.onClick) {\n notification.onclick = () => {\n if (options.activeWindow) {\n window.focus();\n }\n options.onClick!();\n };\n }\n\n return notification;\n }\n\n /**\n * Dismisses all active notifications or a specific one.\n * @param notification Optional. Pass a specific notification to close it; otherwise closes all.\n */\n public dismiss(notification?: Notification): void {\n if (notification) {\n notification.close();\n }\n }\n}\n","import { AXPPagedListResult, AXPQueryRequest } from '@acorex/platform/core';\nimport { computed, DestroyRef, effect, inject, Injectable, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { AXMNotificationEntityService } from '../../entities/notification';\nimport { AXMNotificationManagementNotificationEntityModel } from '../../entities/notification/notification.types';\nimport {\n AXMNotificationItem,\n AXMNotificationMarkAsReadRequest,\n AXMNotificationResponse,\n} from './notification-management.type';\nimport { AXMNotificationRealtimeService } from './notification-realtime.service';\nimport { AXMOsNotificationOptions, AXMOsNotificationService } from './os-notification.service';\n\n/**\n * Signal store that provides a reactive interface for notification-related operations\n * Acts as a layer between notification components and the entity service\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMNotificationConnectorService {\n private readonly notificationService = inject(AXMNotificationEntityService);\n private readonly osNotificationService = inject(AXMOsNotificationService);\n private readonly notificationRealtime = inject(AXMNotificationRealtimeService);\n private readonly destroyRef = inject(DestroyRef);\n private readonly osNotifiedIds = new Set<string>();\n\n // State signals\n private readonly isLoading = signal<boolean>(false);\n private readonly error = signal<string | null>(null);\n private readonly notifications = signal<AXMNotificationItem[]>([]);\n private readonly totalCount = signal<number>(0);\n\n // Public computed signals\n readonly loading = computed(() => this.isLoading());\n readonly errorMessage = computed(() => this.error());\n readonly notificationList = computed(() => this.notifications());\n readonly total = computed(() => this.totalCount());\n readonly unreadCount = computed(\n () => this.notifications().filter((notification) => notification.readAt === null).length,\n );\n\n // Effects\n constructor() {\n // Auto-fetch notifications when service is initialized\n effect(() => {\n this.getList();\n });\n\n this.notificationRealtime.changed$\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\n .subscribe((event) => {\n if (event.type === 'created' && event.notification) {\n void this.showOsNotificationForItem(event.notification);\n }\n if (!this.isLoading()) {\n void this.getList();\n }\n });\n }\n\n // Methods from entity service with additional state management\n\n /**\n * Get list of notifications\n */\n async getList(): Promise<AXMNotificationResponse> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const response = await this.notificationService.getList();\n\n // Sort notifications by createAt date in descending order (newest first)\n const sortedItems = [...response.items].sort((a, b) => {\n const dateA = new Date(a.createAt).getTime();\n const dateB = new Date(b.createAt).getTime();\n return dateB - dateA;\n });\n\n this.notifications.set(sortedItems);\n this.totalCount.set(response.total);\n\n return {\n ...response,\n items: sortedItems,\n };\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to fetch notifications');\n return { total: 0, items: [] };\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Mark notifications as read\n * If no specific IDs are provided, mark all unread notifications as read\n * If specific IDs are provided, set readAt only when it is currently null (no toggling)\n */\n async markAsRead(payload: AXMNotificationMarkAsReadRequest = { id: [] }): Promise<void> {\n try {\n // this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.markAsRead(payload);\n\n // Update local state to reflect read status without toggling\n if (payload?.id?.length) {\n // Set readAt for specific notifications only if currently unread\n this.notifications.update((notifications) =>\n notifications.map((notification) => {\n if (payload.id.includes(notification.id)) {\n // Only set readAt when it is null (no toggling to unread)\n return notification.readAt === null ? { ...notification, readAt: new Date() } : notification;\n }\n return notification;\n }),\n );\n } else {\n // If no specific IDs are provided, mark all unread notifications as read\n this.notifications.update((notifications) =>\n notifications.map((notification) =>\n notification.readAt ? notification : { ...notification, readAt: new Date() },\n ),\n );\n }\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to mark notifications as read');\n } finally {\n // this.isLoading.set(false);\n }\n }\n\n async markAllAsRead(): Promise<void> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.markAllAsRead();\n\n this.notifications.update((notifications) =>\n notifications.map((notification) => ({ ...notification, readAt: new Date() })),\n );\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to mark all notifications as read');\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Create a new notification\n */\n async create(payload?: AXMNotificationItem, options?: AXMOsNotificationOptions): Promise<void> {\n this.isLoading.set(true);\n this.error.set(null);\n\n //send os notification\n const isPermissionGranted = await this.osNotificationService.requestPermission();\n if (payload && isPermissionGranted) {\n this.osNotificationService.show(payload.title || 'Notification', {\n body: payload.body || 'No body',\n ...options,\n });\n this.osNotifiedIds.add(payload.id);\n }\n const createdNotification = await this.notificationService.create(payload);\n\n // Refresh list after creating a notification\n this.notifications.update((notifications) => {\n const newNotifications = [createdNotification, ...notifications];\n return newNotifications.sort((a, b) => new Date(b.createAt).getTime() - new Date(a.createAt).getTime());\n });\n this.totalCount.update((count) => count + 1);\n await this.getList();\n\n this.isLoading.set(false);\n }\n\n private async showOsNotificationForItem(\n notification: AXMNotificationItem,\n options?: AXMOsNotificationOptions,\n ): Promise<void> {\n if (!notification.id || this.osNotifiedIds.has(notification.id)) {\n return;\n }\n const isPermissionGranted = await this.osNotificationService.requestPermission();\n if (!isPermissionGranted) {\n return;\n }\n this.osNotificationService.show(notification.title || 'Notification', {\n body: notification.body || 'No body',\n ...options,\n });\n this.osNotifiedIds.add(notification.id);\n }\n\n // Methods from AXMEntityCrudServiceImpl\n\n /**\n * Insert one notification\n */\n async insertOne(request: Omit<AXMNotificationManagementNotificationEntityModel, 'id'>): Promise<string> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const id = await this.notificationService.insertOne(request);\n\n // Refresh list after inserting\n await this.getList();\n\n return id;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to insert notification');\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Get one notification by id\n */\n async getOne(id: string): Promise<AXMNotificationManagementNotificationEntityModel> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n return await this.notificationService.getOne(id);\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to get notification with id ${id}`);\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Delete one notification\n */\n async deleteOne(id: string): Promise<void> {\n try {\n // this.isLoading.set(true);\n this.error.set(null);\n\n await this.notificationService.deleteOne(id);\n\n // Update local state to remove deleted notification\n this.notifications.update((notifications) => notifications.filter((notification) => notification.id !== id));\n\n // Update total count\n this.totalCount.update((count) => count - 1);\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to delete notification with id ${id}`);\n throw err;\n } finally {\n // this.isLoading.set(false);\n }\n }\n\n /**\n * Update one notification\n */\n async updateOne(\n id: string,\n values: Partial<AXMNotificationManagementNotificationEntityModel>,\n ): Promise<AXMNotificationManagementNotificationEntityModel> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const updated = await this.notificationService.updateOne(id, values);\n\n // Update local state to reflect changes\n this.notifications.update((notifications) =>\n notifications.map((notification) =>\n notification.id === id ? ({ ...notification, ...values } as AXMNotificationItem) : notification,\n ),\n );\n\n return updated;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : `Failed to update notification with id ${id}`);\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n\n /**\n * Query notifications\n */\n async query(request: AXPQueryRequest = { skip: 0, take: 100 }): Promise<AXPPagedListResult<AXMNotificationItem>> {\n try {\n this.isLoading.set(true);\n this.error.set(null);\n\n const result = await this.notificationService.query(request);\n\n // Update local state with query results\n this.notifications.set(result.items as unknown as AXMNotificationItem[]);\n this.totalCount.set(result.total);\n\n return result;\n } catch (err) {\n this.error.set(err instanceof Error ? err.message : 'Failed to query notifications');\n throw err;\n } finally {\n this.isLoading.set(false);\n }\n }\n}\n","import { AXPTaskBadgeProvider } from '@acorex/platform/layout/components';\nimport { computed, inject, Injectable } from '@angular/core';\nimport { AXMNotificationConnectorService } from './features/shared/notification-management.service';\n\n// Provides a live unread notifications count for header/task badges\n@Injectable()\nexport class AXMNotificationBadgeProvider implements AXPTaskBadgeProvider {\n private readonly notificationService = inject(AXMNotificationConnectorService);\n readonly key = 'badge-notification';\n readonly count = computed(() => this.notificationService.unreadCount());\n}\n","import { AXPPermissionDefinitionProvider, AXPPermissionDefinitionProviderContext } from '@acorex/platform/auth';\n\nexport class AXMPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n // TODO: Define permissions when needed\n }\n}\n\n","import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPEntityDefinitionLoader,\n AXPEntityDefinitionPreloader,\n AXPEntityPreloadEntity,\n} from '@acorex/platform/layout/entity';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { RootConfig } from './const';\n\n@Injectable()\nexport class AXMEntityLoader implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {\n preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Array.from(Object.values(RootConfig.entities)).map((entity: any) => ({\n module: module,\n entity: entity.name,\n }));\n }\n private injector = inject(Injector);\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName == RootConfig.module.name) {\n return new Promise(async (resolve) => {\n switch (entityName) {\n case RootConfig.entities.template.name: {\n const entity = (await import('./entities/template/template.entity')).notificationTemplateEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n case RootConfig.entities.channel.name: {\n const entity = (await import('./entities/channel/channel.entity')).notificationChannelEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n //TODO: Add your custom entity here\n case 'my-notification': {\n const entity = (await import('./entities/my-notification')).myNotificationEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n case RootConfig.entities.notification.name: {\n const entity = (await import('./entities/notification/notification.entity')).notificationEntityFactory;\n resolve(entity(this.injector));\n break;\n }\n default:\n resolve(null);\n }\n });\n }\n return null;\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const m = RootConfig.module.name;\n return Promise.resolve(\n Object.values(RootConfig.entities).map((e) => ({ name: e.name, module: m }))\n );\n }\n}\n","import { AXPExecuteCommand } from '@acorex/platform/core';\nimport { inject, Injectable, InjectionToken, InputSignal, OutputEmitterRef, Type } from '@angular/core';\nimport { AXMNotificationItem } from './notification-management.type';\n\nexport type AXMNotificationType = 'File' | 'Chat' | 'Comment' | 'Log';\n\n/**\n * Interface for dynamic notification content components.\n * Ensures that any component used for notification content has a consistent API.\n */\nexport interface AXPNotificationContent {\n item: InputSignal<AXMNotificationItem | undefined>;\n execute: OutputEmitterRef<AXPExecuteCommand>;\n}\n\nexport abstract class AXPNotificationDefinitionProvider {\n name: AXMNotificationType;\n title: string;\n icon: string;\n // actions?: AXPActionMenuItem[];\n content?: () => Promise<Type<AXPNotificationContent>>;\n execute: (command: AXPExecuteCommand, item: AXMNotificationItem) => Promise<void>;\n}\n\nconst DEFAULT_NOTIFICATION_DEFINITION: AXPNotificationDefinitionProvider[] = [\n // {\n // name: 'File',\n // title: 'Email',\n // icon: 'fa-solid fa-envelope',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for email', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Chat',\n // title: 'SMS',\n // icon: 'fa-solid fa-comment-sms',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for sms', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Comment',\n // title: 'Comment',\n // icon: 'fa-solid fa-comment'\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for comment', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n // {\n // name: 'Log',\n // title: 'Log',\n // icon: 'fa-solid fa-file-lines',\n // async execute(command: AXPExecuteCommand, item: AXMNotificationItem): Promise<void> {\n // console.log('Execute for log', item);\n // // In a real implementation, you would perform an action\n // return Promise.resolve();\n // },\n // },\n];\n\nexport class AXPNotificationDefinitionProviderDefault extends AXPNotificationDefinitionProvider {\n async provide(): Promise<AXPNotificationDefinitionProvider[]> {\n return DEFAULT_NOTIFICATION_DEFINITION;\n }\n}\n\nexport const AXP_NOTIFICATION_DEFINITION_PROVIDER = new InjectionToken<AXPNotificationDefinitionProvider[]>(\n 'AXP_NOTIFICATION_DEFINITION_PROVIDER',\n);\n\n@Injectable({ providedIn: 'root' })\nexport class AXPNotificationDefinitionService {\n private providers = inject(AXP_NOTIFICATION_DEFINITION_PROVIDER, { optional: true });\n\n getProviders(): AXPNotificationDefinitionProvider[] {\n return this.providers?.flat() ?? [];\n }\n\n resolve(name: string): AXPNotificationDefinitionProvider | null {\n return this.getProviders()?.find((p) => p.name === name) ?? null;\n }\n\n execute(command: AXPExecuteCommand, item: AXMNotificationItem) {\n const provider = this.getProviders()?.find((p) => p.name === item.type);\n if (!provider) {\n throw new Error('Notification provider not found');\n }\n provider.execute(command, item);\n }\n}\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXImageModule } from '@acorex/components/image';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPExecuteCommand } from '@acorex/platform/core';\nimport { AXPUserAvatarComponent } from '@acorex/platform/layout/components';\nimport { CommonModule } from '@angular/common';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n inject,\n input,\n inputBinding,\n output,\n outputBinding,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { AXPNotificationDefinitionService } from '../../shared/notification-definition.service';\nimport { AXMNotificationItem } from '../../shared/notification-management.type';\n\n@Component({\n selector: 'axp-master-notification-item',\n templateUrl: './admin-notification-item.component.html',\n styleUrls: ['./admin-notification-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n AXButtonModule,\n AXDecoratorModule,\n AXPUserAvatarComponent,\n AXImageModule,\n AXBadgeModule,\n AXFormatModule,\n ],\n})\nexport class AXMAdminNotificationItemComponent {\n //#region ---- Services & Dependencies ----\n\n notificationDefinitionService = inject(AXPNotificationDefinitionService);\n\n //#endregion\n\n //#region ---- View Queries ----\n\n div = viewChild('component', { read: ViewContainerRef });\n\n //#endregion\n\n //#region ---- Inputs & Outputs ----\n\n data = input.required<AXMNotificationItem>();\n onPressNotificationItem = output<string>();\n\n /** Emits when the popover should be closed (e.g., after clicking an item or action) */\n onClosePopover = output<void>();\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n pressNotificationItem(id: string) {\n this.onPressNotificationItem.emit(id);\n this.getNotificationProvider()?.execute({ name: 'click' }, this.data());\n this.onClosePopover.emit();\n }\n\n onAction(command: AXPExecuteCommand) {\n this.getNotificationProvider()?.execute(command, this.data());\n this.onClosePopover.emit();\n }\n\n //#endregion\n\n //#region ---- Utility Methods ----\n\n getNotificationProvider() {\n return this.notificationDefinitionService.resolve(this.data().type);\n }\n\n getNotificationContent() {\n const provider = this.getNotificationProvider();\n return provider?.content?.();\n }\n\n async renderComponent() {\n if (this.getNotificationContent() && this.getNotificationProvider()) {\n const component = await this.getNotificationContent();\n if (component) {\n this.div()?.createComponent(component, {\n bindings: [\n inputBinding('item', this.data),\n outputBinding('execute', (e: AXPExecuteCommand) => this.onAction(e)),\n ],\n });\n }\n }\n }\n\n #af = afterNextRender(() => this.renderComponent());\n}\n","<div\n class=\"notification-item ax-text-start\"\n [id]=\"data().id\"\n (click)=\"pressNotificationItem(data().id)\"\n [class]=\"[data().template.prority, data().readAt ? 'read' : 'unread']\"\n>\n <div class=\"notification-avatar\">\n <axp-user-avatar [size]=\"48\" [userId]=\"data().sender.id\"></axp-user-avatar>\n @if (!data().readAt) {\n <!-- <div class=\"unread-badge\"></div> -->\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data().sender.fullName || data().title }}</div>\n <div class=\"notification-meta\">\n <!-- @if (data().template.isPinned) {\n <div class=\"pin-notification\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n } -->\n <div class=\"notification-time\">{{ data().createAt | format: 'timeleft' | async }}</div>\n </div>\n </div>\n @if (this.getNotificationContent() && this.getNotificationProvider()) {\n <div #component></div>\n } @else {\n <div class=\"notification-body\">{{ data().body }}</div>\n }\n </div>\n</div>\n","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXPSessionService } from '@acorex/platform/auth';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AXMNotificationConnectorService } from '../../shared/notification-management.service';\nimport { AXMNotificationCategory, AXMNotificationItem } from '../../shared/notification-management.type';\nimport { AXMAdminNotificationItemComponent } from '../admin-notification-item/admin-notification-item.component';\n@Component({\n selector: 'axm-admin-notification-panel',\n templateUrl: './admin-notification-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AXButtonModule,\n AXTabsModule,\n AXDecoratorModule,\n AXBadgeModule,\n AXPopoverModule,\n AXMAdminNotificationItemComponent,\n AXFormatModule,\n ],\n})\nexport class AXMAdminNotificationPanelComponent implements OnInit {\n //#region ---- Outputs ----\n\n onNewNotfication = output<number>();\n\n /** Emits when the popover should be closed (bubbled from item components) */\n onClosePopover = output<void>();\n\n //#endregion\n\n //#region ---- Services & Dependencies ----\n\n private notificationConnector = inject(AXMNotificationConnectorService);\n private toastService = inject(AXToastService);\n private router = inject(Router);\n private sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Signals & Inputs ----\n\n /**\n * Tabs provided by the parent (custom categories). The component will prepend\n * \"Unread\" and \"All\" before these tabs.\n */\n providedTabs = input<AXMNotificationCategory[]>([]);\n\n // Use store's signals directly\n protected readonly notifications = this.notificationConnector.notificationList;\n protected readonly totalNotifications = this.notificationConnector.total;\n protected readonly isLoading = this.notificationConnector.loading;\n protected readonly errorMessage = this.notificationConnector.errorMessage;\n\n // Default active tab is Unread\n activeTab = signal<AXMTabDataText>('Unread');\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n tabItems = computed<AXTabData[]>(() => this.getTabItems(this.notifications(), this.providedTabs()), {\n equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),\n });\n\n changeActiveTab(tab: AXMTabDataText) {\n this.activeTab.set(tab);\n }\n\n NewNotification = computed<number>(() => this.getNewNotification(this.tabItems()));\n NewNotificationEffect = effect(() => this.onNewNotfication.emit(this.NewNotification()));\n\n //#endregion\n\n ngOnInit(): void {\n this.loadNotification();\n }\n\n private async loadNotification() {\n try {\n await this.notificationConnector.getList();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to load notifications!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n\n //#region ---- Utility Methods ----\n\n private getTabItems(\n notifications: AXMNotificationItem[] | undefined,\n userTabs: AXMNotificationCategory[],\n ): AXTabData[] {\n // Base when no notifications loaded yet\n if (!notifications) {\n const base: AXTabData[] = [\n { text: 'Unread', count: 0 },\n { text: 'All', count: 0 },\n ];\n return base.concat((userTabs ?? []).map((t) => ({ text: t, count: 0 })));\n }\n\n // Count unread by category\n const unreadCountByCategory = new Map<AXMNotificationCategory, number>();\n for (const notification of notifications) {\n const category = notification.template.category;\n if (!unreadCountByCategory.has(category)) {\n unreadCountByCategory.set(category, 0);\n }\n if (!notification.readAt) {\n unreadCountByCategory.set(category, (unreadCountByCategory.get(category) ?? 0) + 1);\n }\n }\n\n const unreadTotal = Array.from(unreadCountByCategory.values()).reduce((a, b) => a + b, 0);\n // Keep previous behavior: 'All' badge shows total UNREAD across all categories\n const allTotal = unreadTotal;\n\n // Determine which tabs to show after Unread and All\n let finalUserTabs = userTabs ?? [];\n if (finalUserTabs.length === 0) {\n // Fallback to discovered categories if parent has not provided tabs\n finalUserTabs = Array.from(unreadCountByCategory.keys());\n }\n\n // Ensure uniqueness and preserve provided order\n const seen = new Set<string>(['Unread', 'All']);\n const userCategoryTabs = finalUserTabs.filter((t) => {\n if (seen.has(t)) return false;\n seen.add(t);\n return true;\n });\n\n const result: AXTabData[] = [\n { text: 'Unread', count: unreadTotal },\n { text: 'All', count: allTotal },\n ...userCategoryTabs.map((category) => ({\n text: category as AXMTabDataText,\n count: unreadCountByCategory.get(category) ?? 0,\n })),\n ];\n\n return result;\n }\n\n private getNewNotification(data: AXTabData[]): number {\n // Use the Unread tab as the single source of truth for new notifications\n return data.find((tab) => tab.text === 'Unread')?.count ?? 0;\n }\n\n protected getNotificationItems(category: AXMTabDataText): AXMNotificationItem[] {\n const list = this.notifications();\n if (!list) return [];\n if (category === 'All') {\n return list;\n }\n if (category === 'Unread') {\n return list.filter((item) => !item.readAt);\n }\n return list.filter((item) => item.template.category === category);\n }\n\n /**\n * Mark a notification as read or unread (toggle read status)\n */\n protected async markAsRead(id: string): Promise<void> {\n try {\n await this.notificationConnector.markAsRead({ id: [id] });\n } catch (error) {\n console.error('Failed to toggle notification read status:', error);\n }\n }\n\n /**\n * Mark all unread notifications as read\n */\n protected async markAllAsRead() {\n try {\n await this.notificationConnector.markAllAsRead();\n } catch (error) {\n console.error('Failed to mark all notifications as read:', error);\n }\n }\n\n protected viewAllNotifications(): void {\n this.router.navigate([`${this.sessionService.application?.name}/notifications`]);\n }\n}\n\ninterface AXTabData {\n text: AXMTabDataText;\n count: number;\n}\ntype AXMTabDataText = 'Unread' | 'All' | AXMNotificationCategory;\n","<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","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';\n\nimport { ChangeDetectionStrategy, Component, signal, viewChild } from '@angular/core';\nimport { AXMAdminNotificationPanelComponent } from '../admin-notification-panel/admin-notification-panel.component';\n\n@Component({\n selector: 'axm-admin-notification-slot',\n templateUrl: './admin-notification-slot.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent],\n})\nexport class AXMAdminNotificationSlotComponent {\n //#region ---- Signals ----\n\n totalNewNotification = signal<number>(0);\n\n //#endregion\n\n //#region ---- View Queries ----\n\n popover = viewChild(AXPopoverComponent);\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n setTotalNewNotification(value: number): void {\n this.totalNewNotification.set(value);\n }\n\n closePopover(): void {\n this.popover()?.close();\n }\n\n //#endregion\n}\n","<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","import { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTabsModule, AXTabStripChangedEvent } from '@acorex/components/tabs';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXPStateMessageComponent } from '@acorex/platform/layout/components';\nimport { AXPValueWidgetComponent } from '@acorex/platform/layout/widget-core';\nimport { CommonModule, DatePipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n effect,\n inject,\n OnDestroy,\n OnInit,\n output,\n signal,\n} from '@angular/core';\nimport { AXMAdminNotificationItemComponent } from '../../../components/admin-notification-item/admin-notification-item.component';\nimport { AXMAdminNotificationSlotComponent } from '../../../components/admin-notification-slot/admin-notification-slot.component';\nimport { AXMNotificationConnectorService } from '../../../shared/notification-management.service';\nimport { AXMNotificationItem } from '../../../shared/notification-management.type';\n\n/**\n * Notification Widget Component\n * Displays notifications in a card with tabs\n */\n@Component({\n templateUrl: './notification-widget.component.html',\n styleUrls: ['./notification-widget.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n AXTabsModule,\n AXDecoratorModule,\n AXButtonModule,\n AXBadgeModule,\n AXTranslationModule,\n AXMAdminNotificationItemComponent,\n AXPStateMessageComponent,\n ],\n providers: [\n DatePipe,\n // Provide a lightweight stub for AXMAdminNotificationSlotComponent so the admin item can inject it\n {\n provide: AXMAdminNotificationSlotComponent,\n useValue: {\n popover: () => ({ close: () => { } }),\n } as Partial<AXMAdminNotificationSlotComponent>,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent<any> implements OnInit, OnDestroy {\n // Outputs\n notificationClick = output<AXMNotificationItem>();\n markAsRead = output<AXMNotificationItem>();\n\n // Dependencies\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly datePipe = inject(DatePipe);\n private readonly notificationConnector = inject(AXMNotificationConnectorService);\n private readonly toastService = inject(AXToastService);\n\n // State\n protected activeTab = signal<'unread' | 'all'>('unread');\n private refreshTimerId: number | null = null;\n\n // Configuration\n protected readonly maxItems = computed(() => this.options()?.['maxItems'] ?? 10);\n protected readonly showAvatar = computed(() => this.options()?.['showAvatar'] ?? true);\n protected readonly showDate = computed(() => this.options()?.['showDate'] ?? true);\n protected readonly autoRefresh = computed(() => this.options()?.['autoRefresh'] ?? true);\n protected readonly refreshInterval = computed(() => (this.options()?.['refreshInterval'] ?? 60) * 1000); // Convert to milliseconds\n\n // Use store's signals directly\n protected readonly notifications = this.notificationConnector.notificationList;\n protected readonly totalNotifications = this.notificationConnector.total;\n protected readonly isLoading = this.notificationConnector.loading;\n\n // Computed data\n protected readonly notificationItems = computed(() => {\n const items = this.notifications();\n if (!items?.length) return [];\n\n // Sort by pinned status and date\n const sortedItems = [...items].sort((a, b) => {\n if (a.template.isPinned === b.template.isPinned) {\n return new Date(b.createAt).getTime() - new Date(a.createAt).getTime();\n }\n return a.template.isPinned ? -1 : 1;\n });\n\n // Filter by active tab\n const filtered = this.activeTab() === 'unread' ? sortedItems.filter((n) => !n.readAt) : sortedItems;\n\n return filtered.slice(0, this.maxItems());\n });\n\n constructor() {\n super();\n\n // Watch for changes to auto-refresh settings\n effect(() => {\n this.setupAutoRefresh();\n });\n }\n\n override ngOnInit(): void {\n this.loadNotifications();\n }\n\n ngOnDestroy(): void {\n this.clearRefreshTimer();\n }\n\n /**\n * Set up auto-refresh timer based on configuration\n */\n private setupAutoRefresh(): void {\n this.clearRefreshTimer();\n\n if (this.autoRefresh()) {\n const interval = this.refreshInterval();\n this.refreshTimerId = setInterval(() => {\n this.loadNotifications();\n }, interval);\n }\n }\n\n /**\n * Clear the refresh timer if it exists\n */\n private clearRefreshTimer(): void {\n if (this.refreshTimerId !== null) {\n clearInterval(this.refreshTimerId);\n this.refreshTimerId = null;\n }\n }\n\n /**\n * Load notifications data from service\n */\n private async loadNotifications(): Promise<void> {\n try {\n await this.notificationConnector.getList();\n this.cdr.detectChanges();\n } catch (error) {\n this.toastService.show({\n content: typeof error === 'string' ? error : 'Failed to load notifications!',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n }\n }\n\n /**\n * Manually refresh notifications\n */\n protected refreshNotifications(): void {\n this.loadNotifications();\n }\n\n /**\n * Get the count of new messages for the badge\n */\n protected getNewMessageCount(): number {\n const items = this.notifications();\n if (!items?.length) return 0;\n\n return items.filter((n) => !n.readAt).length;\n }\n\n /**\n * Handle tab change event from ax-tabs component\n * @param data The tab change event data\n */\n protected handleTabChange(data: AXTabStripChangedEvent): void {\n const index = data.index;\n // Map index to tab name: 0 = 'unread', 1 = 'all'\n const tabName = index === 0 ? 'unread' : 'all';\n this.onTabChange(tabName);\n }\n\n /**\n * Mark all notifications as read\n */\n protected async markAllAsRead(): Promise<void> {\n try {\n await this.notificationConnector.markAsRead({ id: [] });\n this.cdr.detectChanges();\n } catch (error) {\n this.toastService.show({\n content: 'Failed to mark notifications as read',\n color: 'danger',\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n });\n }\n }\n\n /**\n * Change the active tab\n */\n protected onTabChange(tabName: 'unread' | 'all'): void {\n this.activeTab.set(tabName);\n this.cdr.detectChanges();\n }\n\n /**\n * Handle notification click event\n */\n protected onNotificationClick(notification: AXMNotificationItem): void {\n this.markAsReadIfNeeded(notification);\n this.notificationClick.emit(notification);\n }\n\n /**\n * Bridge click from admin item (emits notification id)\n */\n protected onAdminItemClick = (id: string): void => {\n return;\n // const item = this.notifications().find((n) => n.id === id);\n // if (!item) return;\n // this.onNotificationClick(item);\n };\n\n /**\n * Format the timestamp in a user-friendly way\n */\n protected formatTime(date: Date | string | undefined): string {\n if (!date) return '';\n\n const dateObj = typeof date === 'string' ? new Date(date) : date;\n const diffDays = this.getDaysDifference(dateObj);\n\n // Format based on how recent the date is\n if (diffDays === 0) return this.datePipe.transform(dateObj, 'h:mm a') || ''; // Today\n if (diffDays === 1) return 'Yesterday';\n if (diffDays < 7) return this.datePipe.transform(dateObj, 'EEE') || ''; // Day of week\n return this.datePipe.transform(dateObj, 'MM/DD/YYYY') || ''; // Older date\n }\n\n /**\n * Mark notification as read if needed\n */\n private async markAsReadIfNeeded(notification: AXMNotificationItem): Promise<void> {\n try {\n // Always mark as read on click if unread, but don't toggle back to unread\n if (notification.readAt) return;\n\n await this.notificationConnector.markAsRead({ id: [notification.id] });\n\n // Emit the updated notification with readAt set\n // It will be read now because we only call this for unread notifications\n const updatedNotification = {\n ...notification,\n readAt: new Date(),\n };\n this.markAsRead.emit(updatedNotification);\n this.cdr.detectChanges();\n } catch (error) {\n console.error('Failed to mark notification as read:', error);\n }\n }\n\n /**\n * Calculate days difference from now\n */\n private getDaysDifference(date: Date): number {\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n return Math.floor(diffMs / (1000 * 60 * 60 * 24));\n }\n}\n","<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","import { AXP_WIDGETS_UTILITY_CATEGORY } from '@acorex/modules/dashboard-management';\nimport { AXPWidgetConfig, AXPWidgetGroupEnum, AXPWidgetsCatalog, cloneProperty } from '@acorex/platform/layout/widget-core';\nimport {\n AXP_APPEARANCE_PROPERTY_GROUP,\n AXP_DATA_PATH_PROPERTY,\n AXP_STYLING_PROPERTY_GROUP,\n} from '@acorex/platform/layout/widgets';\nimport { RootConfig } from '../../../../const';\n\n/**\n * Configuration for the Notification Widget\n */\nexport const AXPMyNotificationDashboardWidget: AXPWidgetConfig = {\n name: RootConfig.widgets.myNotificationDashboard,\n title: '@dashboard:widgets.my-notification.widget-title',\n categories: [AXP_WIDGETS_UTILITY_CATEGORY],\n groups: [AXPWidgetGroupEnum.DashboardWidget],\n type: 'dashboard',\n description: '@dashboard:widgets.my-notification.widget-description',\n icon: 'fa-regular fa-bell',\n properties: [\n cloneProperty(AXP_DATA_PATH_PROPERTY, { visible: false }),\n // ====== Title ======\n {\n name: 'title',\n title: '@notification-management:widgets.my-notification-dashboard.chart-title',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: '',\n dataType: 'string',\n interface: {\n name: 'title',\n path: 'options.title',\n type: AXPWidgetsCatalog.text,\n options: {\n placeholder: '@dashboard:widgets.my-notification.title-placeholder',\n },\n },\n },\n visible: true,\n },\n {\n name: 'maxItems',\n title: '@notification-management:widgets.my-notification-dashboard.max-items',\n description: 'Maximum number of notification items to display',\n group: AXP_STYLING_PROPERTY_GROUP,\n schema: {\n defaultValue: 10,\n dataType: 'number',\n interface: {\n name: 'maxItems',\n path: 'options.maxItems',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 1,\n maxValue: 100,\n },\n },\n },\n visible: true,\n },\n {\n name: 'showAvatar',\n title: '@notification-management:widgets.my-notification-dashboard.show-avatar',\n description: 'Whether to show avatars in notifications',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showAvatar',\n path: 'options.showAvatar',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'showDate',\n title: '@notification-management:widgets.my-notification-dashboard.show-date',\n description: 'Whether to show date in notifications',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'showDate',\n path: 'options.showDate',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'autoRefresh',\n title: '@notification-management:widgets.my-notification-dashboard.auto-refresh',\n description: 'Automatically refresh notifications at regular intervals',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: true,\n dataType: 'boolean',\n interface: {\n name: 'autoRefresh',\n path: 'options.autoRefresh',\n type: AXPWidgetsCatalog.toggle,\n },\n },\n visible: true,\n },\n {\n name: 'refreshInterval',\n title: '@notification-management:widgets.my-notification-dashboard.refresh-interval',\n description: 'Interval in seconds between automatic refreshes',\n group: AXP_APPEARANCE_PROPERTY_GROUP,\n schema: {\n defaultValue: 60,\n dataType: 'number',\n interface: {\n name: 'refreshInterval',\n path: 'options.refreshInterval',\n type: AXPWidgetsCatalog.number,\n options: {\n minValue: 10,\n maxValue: 3600,\n },\n },\n },\n visible: true,\n },\n ],\n components: {\n view: {\n component: () => import('./notification-widget.component').then((c) => c.AXPNotificationWidgetViewComponent),\n },\n },\n meta: {\n dimensions: {\n lg: {\n width: 3,\n height: 5,\n minWidth: 2,\n minHeight: 4,\n maxWidth: 4,\n maxHeight: 7,\n },\n md: {\n width: 3,\n height: 5,\n minWidth: 2,\n minHeight: 4,\n maxWidth: 4,\n maxHeight: 7,\n },\n sm: {\n height: 5,\n minHeight: 4,\n maxHeight: 7,\n },\n },\n },\n};\n","//#region ---- Imports ----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex/platform/layout/widget-core';\nimport { Injectable } from '@angular/core';\nimport { AXPMyNotificationDashboardWidget } from './features/dashboard/widgets/my-notification';\n\n//#endregion\n\n//#region ---- Notification Management Widgets Provider ----\n\n@Injectable()\nexport class AXMNotificationManagementWidgetsProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXPMyNotificationDashboardWidget];\n }\n}\n\n//#endregion\n","import { AXPAuthGuard } from '@acorex/platform/auth';\nimport { AXP_WIDGET_DEFINITION_PROVIDER, AXPWidgetCoreModule } from '@acorex/platform/layout/widget-core';\nimport { AXP_TASK_BADGE_PROVIDERS } from '@acorex/platform/layout/components';\nimport { AXPComponentSlotModule } from '@acorex/platform/core';\nimport { AXP_MODULE_MANIFEST_PROVIDER } from '@acorex/platform/core';\nimport { AXP_ENTITY_DEFINITION_LOADER } from '@acorex/platform/layout/entity';\nimport { NotificationManagementManifest } from './manifest';\nimport { AXP_MENU_PROVIDER } from '@acorex/platform/common';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex/platform/auth';\nimport { AXPRootLayoutComponent } from '@acorex/platform/themes/default';\nimport { NgModule } from '@angular/core';\nimport { Routes, ROUTES } from '@angular/router';\nimport { AXMNotificationBadgeProvider } from './badge.provider';\nimport { AXMPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMMenuProvider } from './menu.provider';\nimport { AXMEntityLoader } from './entity.provider';\nimport { AXMAdminNotificationSlotComponent } from './features/components/admin-notification-slot/admin-notification-slot.component';\nimport { AXMNotificationManagementWidgetsProvider } from './widget-definition.provider';\n\n// Entity Modules\nimport {\n AXMNotificationEntityModule,\n AXMNotificationTemplateEntityModule,\n AXMNotificationChannelEntityModule,\n} from './entities';\n\nfunction routesFactory(): Routes {\n const routes: Routes = [\n {\n path: ':app/notifications',\n canActivate: [AXPAuthGuard],\n loadComponent: () => {\n return AXPRootLayoutComponent;\n },\n title: 'Notifications',\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./features/components/notification-page/notification-page.component').then(\n (c) => c.AXMNotificationPageComponent,\n ),\n data: { reuse: true },\n },\n ],\n },\n ];\n return routes;\n}\n\n@NgModule({\n imports: [\n AXPComponentSlotModule.forChild({\n 'root-header-end': [\n {\n name: 'notification',\n component: AXMAdminNotificationSlotComponent,\n },\n ],\n }),\n AXPWidgetCoreModule,\n // Entity Modules\n AXMNotificationEntityModule,\n AXMNotificationTemplateEntityModule,\n AXMNotificationChannelEntityModule,\n ],\n exports: [],\n declarations: [],\n providers: [\n // Module-specific providers (not part of manifest system)\n {\n provide: ROUTES,\n multi: true,\n useFactory: routesFactory,\n },\n {\n provide: AXP_TASK_BADGE_PROVIDERS,\n useClass: AXMNotificationBadgeProvider,\n multi: true,\n },\n // Module Manifest Provider\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: NotificationManagementManifest,\n multi: true,\n },\n // Provider references (now using tokens)\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMPermissionDefinitionProvider,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXMEntityLoader,\n multi: true,\n },\n {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMNotificationManagementWidgetsProvider,\n multi: true,\n },\n ],\n})\nexport class AXMNotificationManagementModule { }\n","export enum AXPSettingKeys {\n // Email Settings\n Server = 'NotificationManagement:Setting:Email.Server',\n Port = 'NotificationManagement:Setting:Email.Port',\n Username = 'NotificationManagement:Setting:Email.Username',\n Password = 'NotificationManagement:Setting:Email.Password',\n FromAddress = 'NotificationManagement:Setting:Email.FromAddress',\n UseSSL = 'NotificationManagement:Setting:Email.UseSSL',\n UseTLS = 'NotificationManagement:Setting:Email.UseTLS',\n\n // Telegram Settings\n TelegramToken = 'NotificationManagement:Setting:Telegram.Token',\n TelegramChatId = 'NotificationManagement:Setting:Telegram.ChatId',\n\n // WhatsApp Settings\n WhatsAppApiUrl = 'NotificationManagement:Setting:WhatsApp.ApiUrl',\n WhatsAppAuthToken = 'NotificationManagement:Setting:WhatsApp.AuthToken',\n\n // Firebase Settings\n FirebaseApiKey = 'NotificationManagement:Setting:Firebase.ApiKey',\n FirebaseProjectId = 'NotificationManagement:Setting:Firebase.ProjectId',\n FirebaseSenderId = 'NotificationManagement:Setting:Firebase.SenderId',\n FirebaseAppId = 'NotificationManagement:Setting:Firebase.AppId',\n}\n","import { RootConfig } from '@acorex/modules/form-template-management';\nimport { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';\nimport { AXPSettingKeys } from './settings.keys';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injector } from '@angular/core';\nimport { AXPWidgetsList } from '@acorex/modules/common';\n\nexport class AXMSettingProvider implements AXPSettingDefinitionProvider {\n private readonly translateService = this.injector.get(AXTranslationService);\n\n constructor(private injector: Injector) { }\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const trans = async (key: string) => await this.translateService.translateAsync(`settings.notification-settings.${key}`, { scope: 'notification-management' });\n\n context\n // Add Notification Settings Group\n .addGroup(\n 'notification-settings',\n await trans('title'),\n await trans('description'),\n RootConfig.module.icon\n )\n\n // SMTP Settings Section\n .addSection('smtp-settings', await trans('smtp.title'), await trans('smtp.description'))\n .addSetting({\n key: AXPSettingKeys.Server,\n title: await trans('smtp.server.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('smtp.server.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Port,\n title: await trans('smtp.port.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: 587,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: {\n minValue: 1,\n maxValue: 65535,\n },\n },\n description: await trans('smtp.port.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Username,\n title: await trans('smtp.username.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('smtp.username.description'),\n })\n .addSetting({\n key: AXPSettingKeys.Password,\n title: await trans('smtp.password.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.PasswordBox,\n },\n description: await trans('smtp.password.description'),\n })\n .addSetting({\n key: AXPSettingKeys.UseSSL,\n title: await trans('smtp.ssl.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n description: await trans('smtp.ssl.description'),\n })\n .addSetting({\n key: AXPSettingKeys.UseTLS,\n title: await trans('smtp.tls.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n },\n description: await trans('smtp.tls.description'),\n })\n .endSection()\n\n // Telegram Settings Section\n .addSection('telegram-settings', await trans('telegram.title'), await trans('telegram.description'))\n .addSetting({\n key: AXPSettingKeys.TelegramToken,\n title: await trans('telegram.token.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('telegram.token.description'),\n })\n .addSetting({\n key: AXPSettingKeys.TelegramChatId,\n title: await trans('telegram.chat-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('telegram.chat-id.description'),\n })\n .endSection()\n\n // WhatsApp Settings Section\n .addSection('whatsapp-settings', await trans('whatsapp.title'), await trans('whatsapp.description'))\n .addSetting({\n key: AXPSettingKeys.WhatsAppApiUrl,\n title: await trans('whatsapp.api-url.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('whatsapp.api-url.description'),\n })\n .addSetting({\n key: AXPSettingKeys.WhatsAppAuthToken,\n title: await trans('whatsapp.auth-token.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.PasswordBox,\n },\n description: await trans('whatsapp.auth-token.description'),\n })\n .endSection()\n\n // Firebase Settings Section\n .addSection('firebase-settings', await trans('firebase.title'), await trans('firebase.description'))\n .addSetting({\n key: AXPSettingKeys.FirebaseApiKey,\n title: await trans('firebase.api-key.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.api-key.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseProjectId,\n title: await trans('firebase.project-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.project-id.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseSenderId,\n title: await trans('firebase.sender-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.sender-id.description'),\n })\n .addSetting({\n key: AXPSettingKeys.FirebaseAppId,\n title: await trans('firebase.app-id.title'),\n scope: 'T',\n isInherited: true,\n defaultValue: '',\n widget: {\n type: AXPWidgetsList.Editors.TextBox,\n },\n description: await trans('firebase.app-id.description'),\n })\n .endSection()\n\n // End Notification Settings Group\n .endGroup();\n }\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';\nimport { AXPDataGenerator } from '@acorex/platform/core';\nimport { AXPEntityDataProviderImpl, AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injector } from '@angular/core';\n\nexport async function myNotificationEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const storageService = injector.get(AXPEntityStorageService);\n const dataProvider = new AXPEntityDataProviderImpl<any>(storageService, 'notifications');\n const moduleName = 'notification-management';\n const scope = `#${moduleName}`;\n\n const entityDef: AXPEntity = {\n module: moduleName,\n name: 'notification',\n title: '@notification-management:my',\n formats: {\n individual: '@notification-management:my',\n plural: '@notification-management:my',\n },\n groups: [\n { id: 'data', title: 'Data' },\n { id: 'content', title: 'Content' },\n { id: 'action', title: 'Action' },\n { id: 'user', title: 'User' },\n { id: 'template', title: 'Template' },\n ],\n properties: [\n {\n name: 'id',\n title: 'ID',\n groupId: 'data',\n schema: {\n dataType: 'string',\n visible: false,\n nullable: false,\n readonly: true,\n unique: { enabled: true },\n },\n },\n {\n name: 'title',\n title: '@general:terms.common.title',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'body',\n title: '@general:terms.body',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.largeText,\n },\n },\n },\n {\n name: 'channel',\n title: '@notification-management:channel',\n groupId: 'data',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['InApp', 'Email', 'SMS'], multiple: false },\n },\n },\n },\n {\n name: 'content.type',\n title: '@notification-management:content.type',\n groupId: 'content',\n schema: {\n dataType: 'object',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n {\n name: 'action.type',\n title: '@general:terms.workflow.action.type',\n groupId: 'action',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Link', 'Entity', 'Popup'], multiple: false },\n },\n },\n },\n {\n name: 'User.name',\n title: '@general:terms.people.user',\n groupId: 'user',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n\n {\n name: 'template.category',\n title: '@notification-management:template.category',\n groupId: 'template',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Inbox', 'Archive'], multiple: false },\n },\n },\n },\n {\n name: 'template.prority',\n title: '@notification-management:template.priority',\n groupId: 'template',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: { dataSource: ['Warning', 'Danger', 'Notice'], multiple: false },\n },\n },\n },\n {\n name: 'template.isPinned',\n title: '@notification-management:template.isPinned',\n groupId: 'template',\n schema: {\n dataType: 'boolean',\n interface: {\n type: AXPWidgetsCatalog.checkbox,\n options: {\n label: 'Is Pinned',\n },\n },\n },\n },\n {\n name: 'readAt',\n title: '@notification-management:readAt',\n groupId: 'data',\n schema: {\n dataType: 'datetime',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n options: { format: 'date' },\n },\n },\n },\n {\n name: 'createAt',\n title: '@notification-management:createAt',\n groupId: 'data',\n schema: {\n dataType: 'datetime',\n interface: {\n type: AXPWidgetsCatalog.dateTime,\n options: { format: 'date' },\n },\n },\n },\n ],\n columns: [\n { name: 'title' },\n { name: 'body' },\n { name: 'channel' },\n { name: 'user.name' },\n { name: 'template.category' },\n { name: 'template.prority' },\n { name: 'createAt' },\n { name: 'readAt' },\n ],\n commands: {\n create: {\n execute: async (data: any) => {\n const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });\n await dataProvider.insertOne(entity);\n return entity;\n },\n },\n delete: {\n execute: async (id: any) => {\n await dataProvider.deleteOne(id);\n },\n },\n update: {\n execute: async (data: any) => {\n await dataProvider.updateOne(data.id, data);\n },\n },\n },\n queries: {\n byKey: {\n execute: async (id: string) => {\n return await dataProvider.getOne(id);\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n const list = await dataProvider.getAll();\n return {\n total: list.length,\n items: list.slice(e.skip, e.skip + e.take),\n };\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n list: {\n actions: [\n {\n title: 'Delete',\n command: 'delete-entity',\n priority: 'primary',\n type: 'delete',\n scope: AXPEntityCommandScope.Selected,\n },\n ],\n views: [{ name: 'all', title: 'All Notifications', fixed: true, columns: [], conditions: [], sorts: [] }],\n },\n },\n },\n };\n\n return entityDef;\n}\n","import { AXPEntity, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injector } from '@angular/core';\nimport { RootConfig } from '../const';\nimport { AXMNotificationManagementChannelEntityService } from './channel/channel.service';\n\nexport async function notificationLogEntityFactory(injector: Injector): Promise<AXPEntity | null> {\n const dataService = injector.get(AXMNotificationManagementChannelEntityService);\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: 'notification-management',\n name: 'notification',\n title: 'Notification',\n formats: {\n individual: 'NotificationLog',\n plural: 'NotificationLogs',\n },\n relatedEntities: [],\n groups: [\n {\n id: 'notification',\n title: 'Notification',\n },\n ],\n properties: [\n {\n name: 'name',\n title: `t(\"name\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'title',\n title: `t(\"title\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.text,\n },\n },\n },\n {\n name: 'status',\n title: `t(\"status\", { scope: \"${i18n}\" })`,\n groupId: 'notification',\n schema: {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.richText,\n },\n },\n },\n ],\n columns: [{ name: 'name' }, { name: 'title' }, { name: 'body' }, { name: 'user.name' }, { name: 'channel' }],\n queries: {\n byKey: {\n execute: async (id: string) => {\n return new Promise((resolve) => {\n setTimeout(async () => {\n const entity = await dataService.getOne(id);\n resolve(entity);\n }, 500);\n });\n },\n type: AXPEntityQueryType.Single,\n },\n list: {\n execute: async (e: any) => {\n return await dataService.query(e);\n },\n type: AXPEntityQueryType.List,\n },\n },\n interfaces: {\n master: {\n single: {\n title: '{{title}}',\n sections: [\n {\n id: 'notification',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n ],\n properties: [\n {\n name: 'name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'user.name',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n {\n name: 'title',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'body',\n layout: {\n positions: {\n lg: {\n colSpan: 12,\n },\n },\n },\n },\n {\n name: 'channel',\n layout: {\n positions: {\n lg: {\n colSpan: 6,\n },\n },\n },\n },\n ],\n actions: [],\n },\n list: {\n actions: [\n {\n title: '@general:actions.detail.title',\n command: 'open-entity',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n },\n ],\n views: [\n {\n name: 'all',\n title: '@general:terms.interface.selection.all-items',\n fixed: true,\n columns: [],\n conditions: [],\n sorts: [],\n },\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","RootConfig"],"mappings":"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"}