@acorex/modules 20.2.0-next.4 → 20.2.0

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 (229) hide show
  1. package/contact-management/index.d.ts +21 -163
  2. package/content-management/index.d.ts +59 -2
  3. package/conversation/index.d.ts +77 -68
  4. package/dashboard-management/index.d.ts +7 -4
  5. package/data-management/index.d.ts +66 -10
  6. package/document-management/index.d.ts +51 -2
  7. package/fesm2022/{acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs → acorex-modules-application-management-module-designer.component-BitSGI0F.mjs} +7 -7
  8. package/fesm2022/{acorex-modules-application-management-module-designer.component-CsZjqUAj.mjs.map → acorex-modules-application-management-module-designer.component-BitSGI0F.mjs.map} +1 -1
  9. package/fesm2022/acorex-modules-application-management.mjs +41 -41
  10. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  11. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs → acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs} +47 -47
  12. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-tDyQQDnk.mjs.map → acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs.map} +1 -1
  13. package/fesm2022/{acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs → acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs} +5 -5
  14. package/fesm2022/{acorex-modules-auth-app-chooser.component-yu1DJZKN.mjs.map → acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs.map} +1 -1
  15. package/fesm2022/{acorex-modules-auth-blank.layout-ZjroQcdq.mjs → acorex-modules-auth-blank.layout-D0KDl_qd.mjs} +4 -4
  16. package/fesm2022/{acorex-modules-auth-blank.layout-ZjroQcdq.mjs.map → acorex-modules-auth-blank.layout-D0KDl_qd.mjs.map} +1 -1
  17. package/fesm2022/{acorex-modules-auth-login.module-D1aa1F6G.mjs → acorex-modules-auth-login.module-BHRC357P.mjs} +8 -8
  18. package/fesm2022/{acorex-modules-auth-login.module-D1aa1F6G.mjs.map → acorex-modules-auth-login.module-BHRC357P.mjs.map} +1 -1
  19. package/fesm2022/{acorex-modules-auth-master.layout-CGQmSlGQ.mjs → acorex-modules-auth-master.layout-DAYMmpBW.mjs} +5 -5
  20. package/fesm2022/{acorex-modules-auth-master.layout-CGQmSlGQ.mjs.map → acorex-modules-auth-master.layout-DAYMmpBW.mjs.map} +1 -1
  21. package/fesm2022/{acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs → acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs} +5 -5
  22. package/fesm2022/{acorex-modules-auth-oauth-callback.component-m9YiJ4e9.mjs.map → acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs.map} +1 -1
  23. package/fesm2022/{acorex-modules-auth-password.component-Cb3FJ1DZ.mjs → acorex-modules-auth-password.component-BJpxtJYh.mjs} +5 -5
  24. package/fesm2022/{acorex-modules-auth-password.component-Cb3FJ1DZ.mjs.map → acorex-modules-auth-password.component-BJpxtJYh.mjs.map} +1 -1
  25. package/fesm2022/{acorex-modules-auth-password.component-CiWdX7f_.mjs → acorex-modules-auth-password.component-NAY46d_2.mjs} +5 -5
  26. package/fesm2022/{acorex-modules-auth-password.component-CiWdX7f_.mjs.map → acorex-modules-auth-password.component-NAY46d_2.mjs.map} +1 -1
  27. package/fesm2022/{acorex-modules-auth-routes-pae8qpX9.mjs → acorex-modules-auth-routes-hvqL2dCH.mjs} +2 -2
  28. package/fesm2022/{acorex-modules-auth-routes-pae8qpX9.mjs.map → acorex-modules-auth-routes-hvqL2dCH.mjs.map} +1 -1
  29. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs → acorex-modules-auth-tenant-chooser.component-Cy94co3S.mjs} +4 -4
  30. package/fesm2022/{acorex-modules-auth-tenant-chooser.component-Bk0l3XoV.mjs.map → acorex-modules-auth-tenant-chooser.component-Cy94co3S.mjs.map} +1 -1
  31. package/fesm2022/{acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs → acorex-modules-auth-two-factor-code.component-CAbntIoR.mjs} +4 -4
  32. package/fesm2022/{acorex-modules-auth-two-factor-code.component-DDEIajiI.mjs.map → acorex-modules-auth-two-factor-code.component-CAbntIoR.mjs.map} +1 -1
  33. package/fesm2022/{acorex-modules-auth-two-factor.module-DtcoHPH4.mjs → acorex-modules-auth-two-factor.module-kPuT8yUw.mjs} +7 -7
  34. package/fesm2022/{acorex-modules-auth-two-factor.module-DtcoHPH4.mjs.map → acorex-modules-auth-two-factor.module-kPuT8yUw.mjs.map} +1 -1
  35. package/fesm2022/{acorex-modules-auth-user-sessions.component-sI6P2joA.mjs → acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs} +5 -5
  36. package/fesm2022/{acorex-modules-auth-user-sessions.component-sI6P2joA.mjs.map → acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs.map} +1 -1
  37. package/fesm2022/acorex-modules-auth.mjs +1 -1
  38. package/fesm2022/acorex-modules-calendar-management.mjs +22 -22
  39. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  40. package/fesm2022/{acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs → acorex-modules-common-search-popup.component-39U0-TIj.mjs} +4 -4
  41. package/fesm2022/{acorex-modules-common-search-popup.component-D7Y4T3Rp.mjs.map → acorex-modules-common-search-popup.component-39U0-TIj.mjs.map} +1 -1
  42. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs → acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs} +4 -4
  43. package/fesm2022/{acorex-modules-common-timeline-version-history-popup.component-ceEtE6qB.mjs.map → acorex-modules-common-timeline-version-history-popup.component-_KJd8oGw.mjs.map} +1 -1
  44. package/fesm2022/acorex-modules-common.mjs +72 -49
  45. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  46. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs +863 -0
  47. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-_Bxallkg.mjs.map +1 -0
  48. package/fesm2022/{acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs → acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs} +2 -35
  49. package/fesm2022/acorex-modules-contact-management-contact-method.entity-CIeZtPSy.mjs.map +1 -0
  50. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs → acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-contact-management-emergency-contact-category.entity-DjOm8qQb.mjs.map → acorex-modules-contact-management-emergency-contact-category.entity-B2DPfonq.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs → acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-contact-management-emergency-contact.entity-BQyjzPR8.mjs.map → acorex-modules-contact-management-emergency-contact.entity-CeIealVy.mjs.map} +1 -1
  54. package/fesm2022/acorex-modules-contact-management.mjs +1 -1
  55. package/fesm2022/acorex-modules-content-management.mjs +823 -14
  56. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  57. package/fesm2022/acorex-modules-conversation.mjs +161 -99
  58. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  59. package/fesm2022/acorex-modules-dashboard-management.mjs +246 -142
  60. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  61. package/fesm2022/acorex-modules-data-management.mjs +516 -50
  62. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  63. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs → acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs} +1132 -191
  64. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs.map +1 -0
  65. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs → acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs} +5 -5
  66. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-NaY7Mn95.mjs.map → acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs.map} +1 -1
  67. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs → acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs} +5 -5
  68. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-epxEuBU5.mjs.map → acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs.map} +1 -1
  69. package/fesm2022/{acorex-modules-document-management-details-view.component-CMI2Eokj.mjs → acorex-modules-document-management-details-view.component-v1VroVv-.mjs} +5 -5
  70. package/fesm2022/{acorex-modules-document-management-details-view.component-CMI2Eokj.mjs.map → acorex-modules-document-management-details-view.component-v1VroVv-.mjs.map} +1 -1
  71. package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs +123 -0
  72. package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs.map +1 -0
  73. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs +105 -0
  74. package/fesm2022/acorex-modules-document-management-document-signature-popup.component-CK8MX49w.mjs.map +1 -0
  75. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs → acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs} +5 -5
  76. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DBKgwm70.mjs.map → acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs.map} +1 -1
  77. package/fesm2022/{acorex-modules-document-management-drive.component-DoGdTL3n.mjs → acorex-modules-document-management-drive.component-D5OwpnAP.mjs} +40 -17
  78. package/fesm2022/acorex-modules-document-management-drive.component-D5OwpnAP.mjs.map +1 -0
  79. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs → acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs} +5 -5
  80. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-BRsTSoln.mjs.map → acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs.map} +1 -1
  81. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs → acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs} +5 -5
  82. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-CpYeYyR5.mjs.map → acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs.map} +1 -1
  83. package/fesm2022/{acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs → acorex-modules-document-management-link-dialog.component-DKOod11R.mjs} +4 -4
  84. package/fesm2022/{acorex-modules-document-management-link-dialog.component-ZteosW8O.mjs.map → acorex-modules-document-management-link-dialog.component-DKOod11R.mjs.map} +1 -1
  85. package/fesm2022/{acorex-modules-document-management-list-view.component-C4VFnACA.mjs → acorex-modules-document-management-list-view.component-RaW67V7O.mjs} +5 -5
  86. package/fesm2022/{acorex-modules-document-management-list-view.component-C4VFnACA.mjs.map → acorex-modules-document-management-list-view.component-RaW67V7O.mjs.map} +1 -1
  87. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs → acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs} +5 -5
  88. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +1 -0
  89. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs → acorex-modules-document-management-meta-selector-widget-column.component-CBAE1KZM.mjs} +4 -4
  90. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-column.component-OXeS0kW8.mjs.map → acorex-modules-document-management-meta-selector-widget-column.component-CBAE1KZM.mjs.map} +1 -1
  91. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs → acorex-modules-document-management-meta-selector-widget-designer.component-B9Eqa6j0.mjs} +4 -4
  92. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-designer.component-BdVSGb3M.mjs.map → acorex-modules-document-management-meta-selector-widget-designer.component-B9Eqa6j0.mjs.map} +1 -1
  93. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs → acorex-modules-document-management-meta-selector-widget-view.component-BPBqDMwP.mjs} +4 -4
  94. package/fesm2022/{acorex-modules-document-management-meta-selector-widget-view.component-B-Vos30P.mjs.map → acorex-modules-document-management-meta-selector-widget-view.component-BPBqDMwP.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs → acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs} +2 -2
  96. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-Bc7rbWwN.mjs.map → acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs.map} +1 -1
  97. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs → acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs} +5 -5
  98. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-DWUVMrVt.mjs.map → acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs.map} +1 -1
  99. package/fesm2022/{acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs → acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs} +4 -4
  100. package/fesm2022/{acorex-modules-document-management-share-dialog.component-CkyuEAwV.mjs.map → acorex-modules-document-management-share-dialog.component-mBEu2KpG.mjs.map} +1 -1
  101. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs → acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs} +4 -4
  102. package/fesm2022/{acorex-modules-document-management-share-email-dialog.component-DXjcTOny.mjs.map → acorex-modules-document-management-share-email-dialog.component-CI4SKdjk.mjs.map} +1 -1
  103. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs → acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs} +5 -5
  104. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-CCirsfoz.mjs.map → acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs.map} +1 -1
  105. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs → acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs} +5 -5
  106. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-58KZSQC4.mjs.map → acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs.map} +1 -1
  107. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  108. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-DxSYInAR.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs} +56 -56
  109. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-DxSYInAR.mjs.map → acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map} +1 -1
  110. package/fesm2022/{acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs → acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs} +2 -2
  111. package/fesm2022/{acorex-modules-form-template-management-category.entity-DeCfvNqF.mjs.map → acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map} +1 -1
  112. package/fesm2022/{acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs → acorex-modules-form-template-management-designer.page-CarisHH5.mjs} +4 -4
  113. package/fesm2022/{acorex-modules-form-template-management-designer.page-BsjFGFOD.mjs.map → acorex-modules-form-template-management-designer.page-CarisHH5.mjs.map} +1 -1
  114. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs → acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs} +2 -2
  115. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CsjgxSgC.mjs.map → acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map} +1 -1
  116. package/fesm2022/{acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs → acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs} +2 -2
  117. package/fesm2022/{acorex-modules-form-template-management-settings.provider-_BIGyRt8.mjs.map → acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map} +1 -1
  118. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs → acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs} +5 -5
  119. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-BCg756yD.mjs.map → acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map} +1 -1
  120. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs → acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs} +5 -5
  121. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-DkqRsXMq.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map} +1 -1
  122. package/fesm2022/{acorex-modules-form-template-management-template.entity-CQm29n5v.mjs → acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs} +2 -2
  123. package/fesm2022/{acorex-modules-form-template-management-template.entity-CQm29n5v.mjs.map → acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map} +1 -1
  124. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs → acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs} +5 -5
  125. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-DW2Z5EcJ.mjs.map → acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map} +1 -1
  126. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  127. package/fesm2022/acorex-modules-identifier-management.mjs +512 -0
  128. package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -0
  129. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs → acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs} +36 -36
  130. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-a_wcGVPh.mjs.map → acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs.map} +1 -1
  131. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs → acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs} +5 -5
  132. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-CsahsE-E.mjs.map → acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs.map} +1 -1
  133. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  134. package/fesm2022/{acorex-modules-locale-management-settings.provider-PKnqTses.mjs → acorex-modules-locale-management-settings.provider-ClVIqYIL.mjs} +2 -2
  135. package/fesm2022/{acorex-modules-locale-management-settings.provider-PKnqTses.mjs.map → acorex-modules-locale-management-settings.provider-ClVIqYIL.mjs.map} +1 -1
  136. package/fesm2022/acorex-modules-locale-management.mjs +1974 -1
  137. package/fesm2022/acorex-modules-locale-management.mjs.map +1 -1
  138. package/fesm2022/acorex-modules-location-management.mjs +56 -43
  139. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  140. package/fesm2022/acorex-modules-log-management.mjs +198 -10
  141. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  142. package/fesm2022/acorex-modules-notification-management.mjs +158 -100
  143. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  144. package/fesm2022/{acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs → acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs} +4 -4
  145. package/fesm2022/{acorex-modules-organization-management-add-item.component-CzIIXsRJ.mjs.map → acorex-modules-organization-management-add-item.component-DkXcoyHa.mjs.map} +1 -1
  146. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs → acorex-modules-organization-management-org-chart-configuration.page-kVFv0xZ0.mjs} +5 -5
  147. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.page-XXAEpYNo.mjs.map → acorex-modules-organization-management-org-chart-configuration.page-kVFv0xZ0.mjs.map} +1 -1
  148. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs → acorex-modules-organization-management-org-chart-configuration.service-7I15ZQGa.mjs} +4 -4
  149. package/fesm2022/{acorex-modules-organization-management-org-chart-configuration.service-CIveMQUH.mjs.map → acorex-modules-organization-management-org-chart-configuration.service-7I15ZQGa.mjs.map} +1 -1
  150. package/fesm2022/{acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs → acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs} +12 -12
  151. package/fesm2022/{acorex-modules-organization-management-org-chart.page-UqJ1VOJ-.mjs.map → acorex-modules-organization-management-org-chart.page-DuyhYwnh.mjs.map} +1 -1
  152. package/fesm2022/acorex-modules-organization-management.mjs +265 -122
  153. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  154. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs +714 -0
  155. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map +1 -0
  156. package/fesm2022/{acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs → acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs} +238 -136
  157. package/fesm2022/acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map +1 -0
  158. package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs +470 -0
  159. package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +1 -0
  160. package/fesm2022/{acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs → acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs} +174 -218
  161. package/fesm2022/acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map +1 -0
  162. package/fesm2022/{acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs → acorex-modules-party-management-party-role.entity-C5BeakjX.mjs} +157 -162
  163. package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +1 -0
  164. package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs +538 -0
  165. package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +1 -0
  166. package/fesm2022/acorex-modules-party-management-permission-definition.provider-DwMPgZkB.mjs +59 -0
  167. package/fesm2022/acorex-modules-party-management-permission-definition.provider-DwMPgZkB.mjs.map +1 -0
  168. package/fesm2022/acorex-modules-party-management.mjs +2 -0
  169. package/fesm2022/acorex-modules-party-management.mjs.map +1 -0
  170. package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs +93 -0
  171. package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs.map +1 -0
  172. package/fesm2022/{acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs → acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs} +4 -4
  173. package/fesm2022/{acorex-modules-platform-management-list-version.component-wqhq6ek4.mjs.map → acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs.map} +1 -1
  174. package/fesm2022/acorex-modules-platform-management.mjs +483 -2129
  175. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  176. package/fesm2022/acorex-modules-project-management.mjs +43 -43
  177. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  178. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CFNtnshF.mjs → acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs} +4 -4
  179. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CFNtnshF.mjs.map → acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map} +1 -1
  180. package/fesm2022/{acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs → acorex-modules-report-management-report-runner-root-page.component-BIUto_c9.mjs} +8 -9
  181. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-BIUto_c9.mjs.map +1 -0
  182. package/fesm2022/acorex-modules-report-management.mjs +279 -35
  183. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  184. package/fesm2022/acorex-modules-scheduler-job-management.mjs +14 -14
  185. package/fesm2022/acorex-modules-scheduler-job-management.mjs.map +1 -1
  186. package/fesm2022/acorex-modules-security-management.mjs +60 -60
  187. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  188. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs → acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs} +4 -4
  189. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BhF5x-8D.mjs.map → acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map} +1 -1
  190. package/fesm2022/{acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs → acorex-modules-settings-management-setting-view.component-D5pKY0Ag.mjs} +4 -4
  191. package/fesm2022/{acorex-modules-settings-management-setting-view.component-Do_gNJ2t.mjs.map → acorex-modules-settings-management-setting-view.component-D5pKY0Ag.mjs.map} +1 -1
  192. package/fesm2022/acorex-modules-settings-management.mjs +6 -6
  193. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  194. package/fesm2022/acorex-modules-task-management.mjs +196 -153
  195. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  196. package/fesm2022/acorex-modules-text-template-management.mjs +24 -24
  197. package/fesm2022/acorex-modules-text-template-management.mjs.map +1 -1
  198. package/fesm2022/acorex-modules-training-management.mjs +44 -44
  199. package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
  200. package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs → acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs} +13 -13
  201. package/fesm2022/{acorex-modules-workflow-management-acorex-modules-workflow-management-DC7jdoqZ.mjs.map → acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map} +1 -1
  202. package/fesm2022/{acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs → acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs} +20 -20
  203. package/fesm2022/{acorex-modules-workflow-management-task-board.page-Bv2GAPaN.mjs.map → acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map} +1 -1
  204. package/fesm2022/acorex-modules-workflow-management.mjs +1 -1
  205. package/identifier-management/README.md +269 -0
  206. package/identifier-management/index.d.ts +271 -0
  207. package/locale-management/index.d.ts +22 -1
  208. package/location-management/index.d.ts +4 -1
  209. package/notification-management/index.d.ts +9 -5
  210. package/package.json +13 -5
  211. package/party-management/README.md +177 -0
  212. package/party-management/index.d.ts +86 -0
  213. package/platform-management/index.d.ts +2 -140
  214. package/report-management/index.d.ts +481 -35
  215. package/task-management/index.d.ts +4 -4
  216. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs +0 -2600
  217. package/fesm2022/acorex-modules-contact-management-acorex-modules-contact-management-Co0tt3cj.mjs.map +0 -1
  218. package/fesm2022/acorex-modules-contact-management-address-type.entity-DQZwgXki.mjs.map +0 -1
  219. package/fesm2022/acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs +0 -781
  220. package/fesm2022/acorex-modules-contact-management-contact-address.entity-CFfRywsB.mjs.map +0 -1
  221. package/fesm2022/acorex-modules-contact-management-contact-method.entity-Ci93_mb9.mjs.map +0 -1
  222. package/fesm2022/acorex-modules-contact-management-contact-relationship.entity-CqdXpqLN.mjs.map +0 -1
  223. package/fesm2022/acorex-modules-contact-management-contact-source.entity-BsF9p0GK.mjs.map +0 -1
  224. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-DXGX-riG.mjs.map +0 -1
  225. package/fesm2022/acorex-modules-document-management-drive.component-DoGdTL3n.mjs.map +0 -1
  226. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-D5Csi3A3.mjs.map +0 -1
  227. package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs +0 -1975
  228. package/fesm2022/acorex-modules-locale-management-acorex-modules-locale-management-CfaOC6U5.mjs.map +0 -1
  229. package/fesm2022/acorex-modules-report-management-report-runner-root-page.component-CbfJ_7Da.mjs.map +0 -1
@@ -1,32 +1,31 @@
1
1
  import { RootConfig as RootConfig$1 } from '@acorex/modules/text-template-management';
2
2
  import { AXPEntityCommandScope, AXPEntityQueryType, AXP_MENU_PROVIDER, AXP_SETTING_DEFINITION_PROVIDER } from '@acorex/platform/common';
3
- import * as i2$1 from '@acorex/platform/layout/builder';
3
+ import * as i2$3 from '@acorex/platform/layout/builder';
4
4
  import { AXPWidgetsCatalog, AXPValueWidgetComponent, cloneProperty, AXPWidgetGroupEnum, AXPLayoutBuilderModule } from '@acorex/platform/layout/builder';
5
5
  import { AXMEntityCrudServiceImpl, AXPEntityService, AXP_ENTITY_DEFINITION_LOADER, AXPEntityStorageService, AXPEntityDataProviderImpl } from '@acorex/platform/layout/entity';
6
6
  import * as i0 from '@angular/core';
7
7
  import { Injectable, NgModule, inject, signal, computed, effect, InjectionToken, viewChild, ViewContainerRef, input, output, afterNextRender, inputBinding, outputBinding, ChangeDetectionStrategy, Component, Injector, ChangeDetectorRef } from '@angular/core';
8
8
  import { AXPSessionService } from '@acorex/platform/auth';
9
9
  import { firstValueFrom } from 'rxjs';
10
- import * as i4 from '@acorex/components/badge';
10
+ import * as i3$1 from '@acorex/components/badge';
11
11
  import { AXBadgeModule } from '@acorex/components/badge';
12
- import * as i1$1 from '@acorex/components/button';
12
+ import * as i1 from '@acorex/components/button';
13
13
  import { AXButtonModule } from '@acorex/components/button';
14
- import * as i3 from '@acorex/components/decorators';
14
+ import * as i2 from '@acorex/components/decorators';
15
15
  import { AXDecoratorModule } from '@acorex/components/decorators';
16
- import * as i4$1 from '@acorex/components/popover';
16
+ import * as i4 from '@acorex/components/popover';
17
17
  import { AXPopoverModule, AXPopoverComponent } from '@acorex/components/popover';
18
- import * as i2 from '@acorex/components/tabs';
18
+ import * as i2$2 from '@acorex/components/tabs';
19
19
  import { AXTabsModule } from '@acorex/components/tabs';
20
20
  import { AXToastService } from '@acorex/components/toast';
21
- import * as i3$1 from '@acorex/core/format';
21
+ import * as i3 from '@acorex/core/format';
22
22
  import { AXFormatModule } from '@acorex/core/format';
23
23
  import { Router } from '@angular/router';
24
24
  import { AXImageModule } from '@acorex/components/image';
25
- import * as i1$2 from '@acorex/platform/layout/components';
25
+ import * as i1$1 from '@acorex/platform/layout/components';
26
26
  import { AXPUserAvatarComponent, AXPComponentSlotModule } from '@acorex/platform/layout/components';
27
- import * as i1 from '@angular/common';
27
+ import * as i2$1 from '@angular/common';
28
28
  import { CommonModule, DatePipe } from '@angular/common';
29
- import { AXAvatarModule } from '@acorex/components/avatar';
30
29
  import * as i5 from '@acorex/core/translation';
31
30
  import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
32
31
  import { AXP_WIDGETS_UTILITY_CATEGORY } from '@acorex/modules/dashboard-management';
@@ -71,10 +70,10 @@ class AXMNotificationManagementChannelEntityServiceImpl extends AXMNotificationM
71
70
  constructor() {
72
71
  super(`${RootConfig.module.name}.${RootConfig.entities.channel.name}`);
73
72
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
75
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
74
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl }); }
76
75
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementChannelEntityServiceImpl, decorators: [{
78
77
  type: Injectable
79
78
  }], ctorParameters: () => [] });
80
79
 
@@ -830,10 +829,10 @@ class AXMNotificationEntityServiceImpl extends AXMNotificationEntityService {
830
829
  constructor() {
831
830
  super(`${RootConfig.module.name}.${RootConfig.entities.notification.name}`);
832
831
  }
833
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
834
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationEntityServiceImpl }); }
832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
833
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationEntityServiceImpl }); }
835
834
  }
836
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationEntityServiceImpl, decorators: [{
835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationEntityServiceImpl, decorators: [{
837
836
  type: Injectable
838
837
  }], ctorParameters: () => [] });
839
838
 
@@ -1061,10 +1060,10 @@ class AXMNotificationManagementTemplateEntityServiceImpl extends AXMNotification
1061
1060
  constructor() {
1062
1061
  super(`${RootConfig.module.name}.${RootConfig.entities.template.name}`);
1063
1062
  }
1064
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1065
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl }); }
1063
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1064
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl }); }
1066
1065
  }
1067
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl, decorators: [{
1066
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityServiceImpl, decorators: [{
1068
1067
  type: Injectable
1069
1068
  }], ctorParameters: () => [] });
1070
1069
 
@@ -1366,16 +1365,16 @@ var template_entity = /*#__PURE__*/Object.freeze({
1366
1365
  });
1367
1366
 
1368
1367
  class AXMNotificationManagementTemplateEntityModule {
1369
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1370
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule }); }
1371
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, providers: [
1368
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1369
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule }); }
1370
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, providers: [
1372
1371
  {
1373
1372
  provide: AXMNotificationManagementTemplateEntityService,
1374
1373
  useClass: AXMNotificationManagementTemplateEntityServiceImpl,
1375
1374
  },
1376
1375
  ] }); }
1377
1376
  }
1378
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, decorators: [{
1377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementTemplateEntityModule, decorators: [{
1379
1378
  type: NgModule,
1380
1379
  args: [{
1381
1380
  imports: [],
@@ -1517,10 +1516,10 @@ class AXMOsNotificationService {
1517
1516
  notification.close();
1518
1517
  }
1519
1518
  }
1520
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMOsNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1521
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMOsNotificationService, providedIn: 'root' }); }
1519
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMOsNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1520
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMOsNotificationService, providedIn: 'root' }); }
1522
1521
  }
1523
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMOsNotificationService, decorators: [{
1522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMOsNotificationService, decorators: [{
1524
1523
  type: Injectable,
1525
1524
  args: [{
1526
1525
  providedIn: 'root',
@@ -1583,25 +1582,24 @@ class AXMNotificationConnectorService {
1583
1582
  }
1584
1583
  }
1585
1584
  /**
1586
- * Mark notifications as read or toggle read status
1587
- * If no specific IDs are provided, mark all as read
1588
- * If specific IDs are provided, toggle their read status (mark as read if unread, mark as unread if read)
1585
+ * Mark notifications as read
1586
+ * If no specific IDs are provided, mark all unread notifications as read
1587
+ * If specific IDs are provided, set readAt only when it is currently null (no toggling)
1589
1588
  */
1590
1589
  async markAsRead(payload = { id: [] }) {
1591
1590
  try {
1592
1591
  this.isLoading.set(true);
1593
1592
  this.error.set(null);
1594
1593
  await this.notificationService.markAsRead(payload);
1595
- // Update local state to reflect toggled read status
1594
+ // Update local state to reflect read status without toggling
1596
1595
  if (payload?.id?.length) {
1597
- // Toggle read status for specific notifications
1596
+ // Set readAt for specific notifications only if currently unread
1598
1597
  this.notifications.update((notifications) => notifications.map((notification) => {
1599
1598
  if (payload.id.includes(notification.id)) {
1600
- // Toggle read status
1601
- return {
1602
- ...notification,
1603
- readAt: notification.readAt ? null : new Date(),
1604
- };
1599
+ // Only set readAt when it is null (no toggling to unread)
1600
+ return notification.readAt === null
1601
+ ? { ...notification, readAt: new Date() }
1602
+ : notification;
1605
1603
  }
1606
1604
  return notification;
1607
1605
  }));
@@ -1756,10 +1754,10 @@ class AXMNotificationConnectorService {
1756
1754
  this.isLoading.set(false);
1757
1755
  }
1758
1756
  }
1759
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationConnectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1760
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationConnectorService, providedIn: 'root' }); }
1757
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationConnectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1758
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationConnectorService, providedIn: 'root' }); }
1761
1759
  }
1762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationConnectorService, decorators: [{
1760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationConnectorService, decorators: [{
1763
1761
  type: Injectable,
1764
1762
  args: [{
1765
1763
  providedIn: 'root',
@@ -1833,10 +1831,10 @@ class AXPNotificationDefinitionService {
1833
1831
  }
1834
1832
  provider.execute(command, item);
1835
1833
  }
1836
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPNotificationDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1837
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPNotificationDefinitionService, providedIn: 'root' }); }
1834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationDefinitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1835
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationDefinitionService, providedIn: 'root' }); }
1838
1836
  }
1839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPNotificationDefinitionService, decorators: [{
1837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationDefinitionService, decorators: [{
1840
1838
  type: Injectable,
1841
1839
  args: [{ providedIn: 'root' }]
1842
1840
  }] });
@@ -1848,7 +1846,6 @@ class AXMAdminNotificationItemComponent {
1848
1846
  this.adminSlot = inject(AXMAdminNotificationSlotComponent);
1849
1847
  this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
1850
1848
  this.onPressNotificationItem = output();
1851
- this.differentTime = computed(() => Date.now() - this.data().createAt.getTime(), ...(ngDevMode ? [{ debugName: "differentTime" }] : []));
1852
1849
  this.#af = afterNextRender(() => this.renderComponent());
1853
1850
  }
1854
1851
  pressNotificationItem(id) {
@@ -1881,10 +1878,10 @@ class AXMAdminNotificationItemComponent {
1881
1878
  }
1882
1879
  }
1883
1880
  #af;
1884
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1885
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div\n class=\"notification-item\"\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.username || data().title }}</div>\n <div class=\"notification-meta\">\n @if (!data().template.isPinned) {\n <div class=\"pin-notification\" (click)=\"$event.stopPropagation()\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }\n <div class=\"notification-time\">{{ differentTime() | 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", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3$1.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1881
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1882
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationItemComponent, isStandalone: true, selector: "axp-master-notification-item", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onPressNotificationItem: "onPressNotificationItem" }, viewQueries: [{ propertyName: "div", first: true, predicate: ["component"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div\n class=\"notification-item\"\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", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "ngmodule", type: AXFormatModule }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1886
1883
  }
1887
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationItemComponent, decorators: [{
1884
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationItemComponent, decorators: [{
1888
1885
  type: Component,
1889
1886
  args: [{ selector: 'axp-master-notification-item', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
1890
1887
  CommonModule,
@@ -1894,23 +1891,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
1894
1891
  AXImageModule,
1895
1892
  AXBadgeModule,
1896
1893
  AXFormatModule,
1897
- ], template: "<div\n class=\"notification-item\"\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.username || data().title }}</div>\n <div class=\"notification-meta\">\n @if (!data().template.isPinned) {\n <div class=\"pin-notification\" (click)=\"$event.stopPropagation()\">\n <ax-icon>\n <i class=\"fa-solid fa-thumbtack\"></i>\n </ax-icon>\n </div>\n }\n <div class=\"notification-time\">{{ differentTime() | 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", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"] }]
1894
+ ], template: "<div\n class=\"notification-item\"\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", styles: [".notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:.125rem;padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;animation-duration:.2s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notification-item.read{background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface))}.notification-item.unread{background-color:rgb(var(--ax-sys-color-lighter-surface));color:rgb(var(--ax-sys-color-on-lighter-surface));border-color:rgb(var(--ax-sys-color-border-lighter-surface))}.notification-item:hover{background-color:rgb(var(--ax-sys-color-light-surface));color:rgb(var(--ax-sys-color-on-light-surface));border-color:rgb(var(--ax-sys-color-border-light-surface))}.notification-item.Notice:before,.notification-item.Danger:before,.notification-item.Warning:before{content:\"\";position:absolute;top:.5rem;bottom:.5rem;inset-inline-start:0px;width:.125rem;border-radius:9999px}.notification-item.Notice:before{background:rgb(var(--ax-sys-color-success-500))}.notification-item.Danger:before{background:rgb(var(--ax-sys-color-danger-500))}.notification-item.Warning:before{background:rgb(var(--ax-sys-color-warning-500))}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-meta{display:flex;align-items:center;gap:.5rem}.notification-item .notification-content .notification-header .notification-meta .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification{border-radius:9999px;padding:.375rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .pin-notification i{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}\n"] }]
1898
1895
  }] });
1899
1896
 
1900
1897
  class AXMAdminNotificationPanelComponent {
1901
1898
  constructor() {
1899
+ //#region ---- Outputs ----
1902
1900
  this.onNewNotfication = output();
1901
+ //#endregion
1902
+ //#region ---- Services & Dependencies ----
1903
1903
  this.notificationConnector = inject(AXMNotificationConnectorService);
1904
1904
  this.toastService = inject(AXToastService);
1905
1905
  this.router = inject(Router);
1906
1906
  this.sessionService = inject(AXPSessionService);
1907
+ //#endregion
1908
+ //#region ---- Signals & Inputs ----
1909
+ /**
1910
+ * Tabs provided by the parent (custom categories). The component will prepend
1911
+ * "Unread" and "All" before these tabs.
1912
+ */
1913
+ this.providedTabs = input([], ...(ngDevMode ? [{ debugName: "providedTabs" }] : []));
1907
1914
  // Use store's signals directly
1908
1915
  this.notifications = this.notificationConnector.notificationList;
1909
1916
  this.totalNotifications = this.notificationConnector.total;
1910
1917
  this.isLoading = this.notificationConnector.loading;
1911
1918
  this.errorMessage = this.notificationConnector.errorMessage;
1912
- this.activeTab = signal('All', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
1913
- this.tabItems = computed(() => this.getTabItems(this.notifications()), ...(ngDevMode ? [{ debugName: "tabItems", equal: (a, b) => JSON.stringify(a) === JSON.stringify(b) }] : [{
1919
+ // Default active tab is Unread
1920
+ this.activeTab = signal('Unread', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
1921
+ //#endregion
1922
+ //#region ---- Computed Properties ----
1923
+ this.tabItems = computed(() => this.getTabItems(this.notifications(), this.providedTabs()), ...(ngDevMode ? [{ debugName: "tabItems", equal: (a, b) => JSON.stringify(a) === JSON.stringify(b) }] : [{
1914
1924
  equal: (a, b) => JSON.stringify(a) === JSON.stringify(b),
1915
1925
  }]));
1916
1926
  this.NewNotification = computed(() => this.getNewNotification(this.tabItems()), ...(ngDevMode ? [{ debugName: "NewNotification" }] : []));
@@ -1919,6 +1929,7 @@ class AXMAdminNotificationPanelComponent {
1919
1929
  changeActiveTab(tab) {
1920
1930
  this.activeTab.set(tab);
1921
1931
  }
1932
+ //#endregion
1922
1933
  ngOnInit() {
1923
1934
  this.loadNotification();
1924
1935
  }
@@ -1937,47 +1948,69 @@ class AXMAdminNotificationPanelComponent {
1937
1948
  });
1938
1949
  }
1939
1950
  }
1940
- getTabItems(notifications) {
1951
+ //#region ---- Utility Methods ----
1952
+ getTabItems(notifications, userTabs) {
1953
+ // Base when no notifications loaded yet
1941
1954
  if (!notifications) {
1942
- return [
1943
- {
1944
- text: 'All',
1945
- count: 0,
1946
- },
1955
+ const base = [
1956
+ { text: 'Unread', count: 0 },
1957
+ { text: 'All', count: 0 },
1947
1958
  ];
1959
+ return base.concat((userTabs ?? []).map((t) => ({ text: t, count: 0 })));
1948
1960
  }
1949
- const categoryCountMap = new Map();
1950
- notifications.forEach((notification) => {
1961
+ // Count unread by category
1962
+ const unreadCountByCategory = new Map();
1963
+ for (const notification of notifications) {
1951
1964
  const category = notification.template.category;
1952
- if (!categoryCountMap.has(category)) {
1953
- categoryCountMap.set(category, 0);
1965
+ if (!unreadCountByCategory.has(category)) {
1966
+ unreadCountByCategory.set(category, 0);
1954
1967
  }
1955
1968
  if (!notification.readAt) {
1956
- categoryCountMap.set(category, categoryCountMap.get(category) + 1);
1969
+ unreadCountByCategory.set(category, (unreadCountByCategory.get(category) ?? 0) + 1);
1957
1970
  }
1971
+ }
1972
+ const unreadTotal = Array.from(unreadCountByCategory.values()).reduce((a, b) => a + b, 0);
1973
+ // Keep previous behavior: 'All' badge shows total UNREAD across all categories
1974
+ const allTotal = unreadTotal;
1975
+ // Determine which tabs to show after Unread and All
1976
+ let finalUserTabs = userTabs ?? [];
1977
+ if (finalUserTabs.length === 0) {
1978
+ // Fallback to discovered categories if parent has not provided tabs
1979
+ finalUserTabs = Array.from(unreadCountByCategory.keys());
1980
+ }
1981
+ // Ensure uniqueness and preserve provided order
1982
+ const seen = new Set(['Unread', 'All']);
1983
+ const userCategoryTabs = finalUserTabs.filter((t) => {
1984
+ if (seen.has(t))
1985
+ return false;
1986
+ seen.add(t);
1987
+ return true;
1958
1988
  });
1959
- const tabItems = Array.from(categoryCountMap.entries()).map(([category, count]) => ({
1960
- text: category,
1961
- count: count,
1962
- }));
1963
- const totalCount = Array.from(categoryCountMap.values()).reduce((a, b) => a + b, 0);
1964
- tabItems.unshift({
1965
- text: 'All',
1966
- count: totalCount,
1967
- });
1968
- return tabItems;
1989
+ const result = [
1990
+ { text: 'Unread', count: unreadTotal },
1991
+ { text: 'All', count: allTotal },
1992
+ ...userCategoryTabs.map((category) => ({
1993
+ text: category,
1994
+ count: unreadCountByCategory.get(category) ?? 0,
1995
+ })),
1996
+ ];
1997
+ return result;
1969
1998
  }
1970
1999
  getNewNotification(data) {
1971
- const total = data.filter((tab) => tab.text !== 'All').reduce((sum, tab) => sum + tab.count, 0);
1972
- return total;
2000
+ // Use the Unread tab as the single source of truth for new notifications
2001
+ return data.find((tab) => tab.text === 'Unread')?.count ?? 0;
1973
2002
  }
1974
2003
  getNotificationItems(category) {
2004
+ const list = this.notifications();
2005
+ if (!list)
2006
+ return [];
1975
2007
  if (category === 'All') {
1976
- return this.notifications();
2008
+ return list;
1977
2009
  }
1978
- else {
1979
- return this.notifications()?.filter((item) => item.template.category === category);
2010
+ if (category === 'Unread') {
2011
+ return list.filter((item) => !item.readAt);
1980
2012
  }
2013
+ return list.filter((item) => item.template.category === category);
1981
2014
  }
1982
2015
  /**
1983
2016
  * Mark a notification as read or unread (toggle read status)
@@ -2004,10 +2037,10 @@ class AXMAdminNotificationPanelComponent {
2004
2037
  viewAllNotifications() {
2005
2038
  this.router.navigate([`${this.sessionService.application?.name}/m/notification-management/e/my-notification/list`]);
2006
2039
  }
2007
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2008
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count) {\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] ax-max-w-[30rem] ax-overflow-y-auto\">\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2040
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2041
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationPanelComponent, isStandalone: true, selector: "axm-admin-notification-panel", inputs: { providedTabs: { classPropertyName: "providedTabs", publicName: "providedTabs", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNewNotfication: "onNewNotfication" }, ngImport: i0, template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\n }\n }\n </div>\n <div class=\"ax-flex ax-gap-4 ax-justify-between ax-p-4 ax-border-t ax-border-default\">\n <ax-button\n [disabled]=\"NewNotification() === 0\"\n [color]=\"'default'\"\n text=\"Mark all as read\"\n (onClick)=\"markAllAsRead()\"\n ></ax-button>\n <ax-button color=\"primary\" text=\"View all notifications\" (onClick)=\"viewAllNotifications()\"></ax-button>\n </div>\n </ax-content>\n </ax-tab-item>\n }\n</ax-tabs>\n\n<ng-template [axTabContent] #cons=\"axTabContent\"></ng-template>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "directive", type: i2$2.AXTabContentDirective, selector: "[axTabContent]", inputs: ["axTabContent"], exportAs: ["axTabContent"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "ngmodule", type: AXFormatModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2009
2042
  }
2010
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
2043
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationPanelComponent, decorators: [{
2011
2044
  type: Component,
2012
2045
  args: [{ selector: 'axm-admin-notification-panel', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
2013
2046
  AXButtonModule,
@@ -2017,7 +2050,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
2017
2050
  AXPopoverModule,
2018
2051
  AXMAdminNotificationItemComponent,
2019
2052
  AXFormatModule,
2020
- ], template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count) {\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] ax-max-w-[30rem] ax-overflow-y-auto\">\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></axp-master-notification-item>\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" }]
2053
+ ], template: "<div class=\"ax-p-4 ax-flex ax-justify-between ax-items-center\">\n <span class=\"ax-text-xl\">Notifications</span>\n <ax-button color=\"default\" look=\"blank\">\n <ax-icon>\n <i class=\"fa-regular fa-gear fa-lg\"></i>\n </ax-icon>\n </ax-button>\n</div>\n<ax-tabs [content]=\"cons\" look=\"with-line\" location=\"bottom\">\n @for (tab of tabItems(); track tab.text) {\n <ax-tab-item [text]=\"tab.text\" [active]=\"activeTab() === tab.text\" (activeChange)=\"changeActiveTab(tab.text)\">\n <ax-suffix>\n @if (tab.count && tab.text === 'Unread') {\n <ax-badge [color]=\"activeTab() === tab.text ? 'primary' : 'ghost'\" [text]=\"tab.count.toString()\"></ax-badge>\n }\n </ax-suffix>\n <ax-content>\n <div class=\"ax-max-h-[50vh] md:ax-w-[32rem] ax-overflow-y-auto\">\n @if (getNotificationItems(tab.text).length === 0) {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-2 ax-p-6\">\n <i class=\"fa-regular fa-bell-slash ax-text-2xl\"></i>\n <div class=\"ax-text-sm\">No notifications</div>\n </div>\n } @else {\n @for (notif of getNotificationItems(tab.text); track notif.id) {\n <axp-master-notification-item\n [data]=\"notif\"\n (onPressNotificationItem)=\"markAsRead($event)\"\n ></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" }]
2021
2054
  }] });
2022
2055
 
2023
2056
  class AXMAdminNotificationSlotComponent {
@@ -2028,10 +2061,10 @@ class AXMAdminNotificationSlotComponent {
2028
2061
  setTotalNewNotification(value) {
2029
2062
  this.totalNewNotification.set(value);
2030
2063
  }
2031
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2032
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4$1.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2064
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2065
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMAdminNotificationSlotComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXPopoverModule }, { kind: "component", type: i4.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXMAdminNotificationPanelComponent, selector: "axm-admin-notification-panel", inputs: ["providedTabs"], outputs: ["onNewNotfication"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2033
2066
  }
2034
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
2067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMAdminNotificationSlotComponent, decorators: [{
2035
2068
  type: Component,
2036
2069
  args: [{ changeDetection: ChangeDetectionStrategy.OnPush, imports: [AXButtonModule, AXDecoratorModule, AXBadgeModule, AXPopoverModule, AXMAdminNotificationPanelComponent], template: "<ax-button class=\"ax-relative\" color=\"primary\" #notification>\n <ax-icon>\n <i class=\"fa-regular fa-bell\"></i>\n </ax-icon>\n <ax-suffix class=\"ax-absolute ax-top-0 ax-left-1/2\">\n @if (totalNewNotification()) {\n <ax-badge color=\"success\" [text]=\"totalNewNotification().toString()\"></ax-badge>\n }\n </ax-suffix>\n</ax-button>\n<ax-popover [target]=\"notification\" [openOn]=\"'toggle'\" [closeOn]=\"'clickOut'\" [adaptivityEnabled]=\"true\">\n <div class=\"ax-bg-lightest ax-border ax-border-default ax-rounded-md ax-shadow-md ax-w-full\">\n <axm-admin-notification-panel (onNewNotfication)=\"setTotalNewNotification($event)\"> </axm-admin-notification-panel>\n </div>\n</ax-popover>\n" }]
2037
2070
  }] });
@@ -2079,10 +2112,10 @@ class AXMEntityLoader {
2079
2112
  }
2080
2113
  return null;
2081
2114
  }
2082
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMEntityLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2083
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMEntityLoader }); }
2115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2116
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader }); }
2084
2117
  }
2085
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMEntityLoader, decorators: [{
2118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMEntityLoader, decorators: [{
2086
2119
  type: Injectable
2087
2120
  }] });
2088
2121
 
@@ -2102,7 +2135,7 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2102
2135
  this.notificationConnector = inject(AXMNotificationConnectorService);
2103
2136
  this.toastService = inject(AXToastService);
2104
2137
  // State
2105
- this.activeTab = signal('new', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
2138
+ this.activeTab = signal('unread', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
2106
2139
  this.refreshTimerId = null;
2107
2140
  // Configuration
2108
2141
  this.maxItems = computed(() => this.options()?.maxItems ?? 10, ...(ngDevMode ? [{ debugName: "maxItems" }] : []));
@@ -2127,9 +2160,18 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2127
2160
  return a.template.isPinned ? -1 : 1;
2128
2161
  });
2129
2162
  // Filter by active tab
2130
- const filtered = this.activeTab() === 'new' ? sortedItems.filter((n) => !n.readAt) : sortedItems;
2163
+ const filtered = this.activeTab() === 'unread' ? sortedItems.filter((n) => !n.readAt) : sortedItems;
2131
2164
  return filtered.slice(0, this.maxItems());
2132
2165
  }, ...(ngDevMode ? [{ debugName: "notificationItems" }] : []));
2166
+ /**
2167
+ * Bridge click from admin item (emits notification id)
2168
+ */
2169
+ this.onAdminItemClick = (id) => {
2170
+ return;
2171
+ // const item = this.notifications().find((n) => n.id === id);
2172
+ // if (!item) return;
2173
+ // this.onNotificationClick(item);
2174
+ };
2133
2175
  // Watch for changes to auto-refresh settings
2134
2176
  effect(() => {
2135
2177
  this.setupAutoRefresh();
@@ -2202,8 +2244,8 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2202
2244
  */
2203
2245
  handleTabChange(data) {
2204
2246
  const index = data.index;
2205
- // Map index to tab name: 0 = 'new', 1 = 'all'
2206
- const tabName = index === 0 ? 'new' : 'all';
2247
+ // Map index to tab name: 0 = 'unread', 1 = 'all'
2248
+ const tabName = index === 0 ? 'unread' : 'all';
2207
2249
  this.onTabChange(tabName);
2208
2250
  }
2209
2251
  /**
@@ -2285,10 +2327,19 @@ class AXPNotificationWidgetViewComponent extends AXPValueWidgetComponent {
2285
2327
  const diffMs = now.getTime() - date.getTime();
2286
2328
  return Math.floor(diffMs / (1000 * 60 * 60 * 24));
2287
2329
  }
2288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPNotificationWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2289
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.4", type: AXPNotificationWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { notificationClick: "notificationClick", markAsRead: "markAsRead" }, providers: [DatePipe], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('new' | translate: { scope: 'notification-management' } | async) ?? 'New'\"\n class=\"ax-font-medium\"\n >\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]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-mt-2\">\n @for (item of notificationItems(); track item.id) {\n <ng-container [ngTemplateOutlet]=\"chatItemTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\n </ng-container>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n\n<ng-template #chatItemTemplateRef let-data>\n <div class=\"notification-item\" [class.unread]=\"!data.readAt\" [class.read]=\"data.readAt\">\n <div class=\"notification-avatar\">\n @if (showAvatar()) {\n <axp-user-avatar [size]=\"48\" [userId]=\"data.user?.id\"></axp-user-avatar>\n @if (!data.readAt) {\n <div class=\"unread-badge\"></div>\n }\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data.user?.name || data.title }}</div>\n @if (showDate()) {\n <div class=\"notification-time\">{{ formatTime(data.createdAt) }}</div>\n }\n </div>\n\n <div class=\"notification-body\">{{ data.body }}</div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i4.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationWidgetViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXPNotificationWidgetViewComponent, isStandalone: true, selector: "ng-component", outputs: { notificationClick: "notificationClick", markAsRead: "markAsRead" }, providers: [
2332
+ DatePipe,
2333
+ // Provide a lightweight stub for AXMAdminNotificationSlotComponent so the admin item can inject it
2334
+ {
2335
+ provide: AXMAdminNotificationSlotComponent,
2336
+ useValue: {
2337
+ popover: () => ({ close: () => { } }),
2338
+ },
2339
+ },
2340
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\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]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-mt-2\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item\n [data]=\"item\"\n (onPressNotificationItem)=\"onAdminItemClick($event)\"\n />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXTabsModule }, { kind: "component", type: i2$2.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i2$2.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXButtonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXMAdminNotificationItemComponent, selector: "axp-master-notification-item", inputs: ["data"], outputs: ["onPressNotificationItem"] }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2290
2341
  }
2291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
2342
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXPNotificationWidgetViewComponent, decorators: [{
2292
2343
  type: Component,
2293
2344
  args: [{ standalone: true, imports: [
2294
2345
  CommonModule,
@@ -2296,11 +2347,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImpor
2296
2347
  AXDecoratorModule,
2297
2348
  AXButtonModule,
2298
2349
  AXBadgeModule,
2299
- AXAvatarModule,
2300
- AXImageModule,
2301
2350
  AXTranslationModule,
2302
- AXPUserAvatarComponent,
2303
- ], providers: [DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('new' | translate: { scope: 'notification-management' } | async) ?? 'New'\"\n class=\"ax-font-medium\"\n >\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]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-mt-2\">\n @for (item of notificationItems(); track item.id) {\n <ng-container [ngTemplateOutlet]=\"chatItemTemplateRef\" [ngTemplateOutletContext]=\"{ $implicit: item }\">\n </ng-container>\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n\n<ng-template #chatItemTemplateRef let-data>\n <div class=\"notification-item\" [class.unread]=\"!data.readAt\" [class.read]=\"data.readAt\">\n <div class=\"notification-avatar\">\n @if (showAvatar()) {\n <axp-user-avatar [size]=\"48\" [userId]=\"data.user?.id\"></axp-user-avatar>\n @if (!data.readAt) {\n <div class=\"unread-badge\"></div>\n }\n }\n </div>\n\n <div class=\"notification-content\">\n <div class=\"notification-header\">\n <div class=\"notification-title\">{{ data.user?.name || data.title }}</div>\n @if (showDate()) {\n <div class=\"notification-time\">{{ formatTime(data.createdAt) }}</div>\n }\n </div>\n\n <div class=\"notification-body\">{{ data.body }}</div>\n </div>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
2351
+ AXMAdminNotificationItemComponent,
2352
+ ], providers: [
2353
+ DatePipe,
2354
+ // Provide a lightweight stub for AXMAdminNotificationSlotComponent so the admin item can inject it
2355
+ {
2356
+ provide: AXMAdminNotificationSlotComponent,
2357
+ useValue: {
2358
+ popover: () => ({ close: () => { } }),
2359
+ },
2360
+ },
2361
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"ax-p-2 ax-size-full\">\n <ax-tabs\n class=\"ax-bg-light-start ax-border-b ax-border-default\"\n [fitParent]=\"true\"\n location=\"bottom\"\n (onActiveTabChanged)=\"handleTabChange($event)\"\n >\n <ax-tab-item\n [text]=\"('unread' | translate: { scope: 'notification-management' } | async) ?? 'Unread'\"\n class=\"ax-font-medium\"\n >\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]=\"('all' | translate: { scope: 'notification-management' } | async) ?? 'All'\"\n class=\"ax-font-medium\"\n ></ax-tab-item>\n </ax-tabs>\n <div class=\"ax-space-y-1 ax-mt-2\">\n @for (item of notificationItems(); track item.id) {\n <axp-master-notification-item\n [data]=\"item\"\n (onPressNotificationItem)=\"onAdminItemClick($event)\"\n />\n } @empty {\n <div class=\"ax-flex ax-flex-col ax-items-center ax-justify-center ax-py-12 ax-px-4 ax-text-gray-400\">\n <ax-icon class=\"ax-text-4xl ax-mb-3 ax-text-gray-300\">\n <i class=\"fa-light fa-bell-slash\"></i>\n </ax-icon>\n <p class=\"ax-text-center\">{{ 'no-notifications' | translate: { scope: 'notification-management' } | async }}</p>\n </div>\n }\n </div>\n</div>\n\n", styles: [":host{display:block;width:100%;height:100%}.notification-item{position:relative;margin-top:2px;margin-bottom:2px;display:flex;cursor:pointer;gap:1rem;border-radius:1rem;padding:.5rem;text-align:start;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;background-color:rgb(var(--ax-sys-color-lightest-surface));color:rgb(var(--ax-sys-color-on-lightest-surface));border-color:rgb(var(--ax-sys-color-border-lightest-surface));animation-duration:.2s}.notification-item .notification-avatar{position:relative}.notification-item .notification-avatar .unread-badge{position:absolute;bottom:.25rem;inset-inline-end:.25rem;width:10px;height:10px;background:rgb(var(--ax-sys-color-primary-500));border:2px solid rgb(var(--ax-sys-color-surface));border-radius:50%}.notification-item .notification-content{min-width:0px;flex:1 1 0%}.notification-item .notification-content .notification-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.notification-item .notification-content .notification-header .notification-title{font-size:1rem;line-height:1.5rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface))}.notification-item .notification-content .notification-header .notification-time{white-space:nowrap;font-size:.75rem;line-height:1rem;color:rgb(var(--ax-sys-color-on-surface-variant))}.notification-item .notification-content .notification-body{margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface-variant))}\n"] }]
2304
2362
  }], ctorParameters: () => [] });
2305
2363
 
2306
2364
  var notificationWidget_component = /*#__PURE__*/Object.freeze({
@@ -2447,9 +2505,9 @@ const AXPMyNotificationDashboardWidget = {
2447
2505
  };
2448
2506
 
2449
2507
  class AXMNotificationManagementModule {
2450
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2451
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1$2.AXPComponentSlotModule, i2$1.AXPLayoutBuilderModule] }); }
2452
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementModule, providers: [
2508
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2509
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, imports: [i1$1.AXPComponentSlotModule, i2$3.AXPLayoutBuilderModule] }); }
2510
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, providers: [
2453
2511
  {
2454
2512
  provide: AXMNotificationManagementTemplateEntityService,
2455
2513
  useClass: AXMNotificationManagementTemplateEntityServiceImpl,
@@ -2495,7 +2553,7 @@ class AXMNotificationManagementModule {
2495
2553
  ],
2496
2554
  })] }); }
2497
2555
  }
2498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: AXMNotificationManagementModule, decorators: [{
2556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationManagementModule, decorators: [{
2499
2557
  type: NgModule,
2500
2558
  args: [{
2501
2559
  imports: [