@acorex/modules 20.2.2 → 20.2.4-next.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 (176) hide show
  1. package/common/index.d.ts +16 -8
  2. package/content-management/index.d.ts +48 -3
  3. package/document-management/index.d.ts +27 -24
  4. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs} +10 -10
  5. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-CdZ9BHOa.mjs.map → acorex-modules-auth-acorex-modules-auth-C8p1VeqM.mjs.map} +1 -1
  6. package/fesm2022/{acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs} +2 -2
  7. package/fesm2022/{acorex-modules-auth-app-chooser.component-D4ehfpnB.mjs.map → acorex-modules-auth-app-chooser.component-CDKLbD_u.mjs.map} +1 -1
  8. package/fesm2022/{acorex-modules-auth-login.module-BHRC357P.mjs → acorex-modules-auth-login.module-DGPRxnXo.mjs} +4 -4
  9. package/fesm2022/{acorex-modules-auth-login.module-BHRC357P.mjs.map → acorex-modules-auth-login.module-DGPRxnXo.mjs.map} +1 -1
  10. package/fesm2022/{acorex-modules-auth-master.layout-DAYMmpBW.mjs → acorex-modules-auth-master.layout-BNFGuQQs.mjs} +2 -2
  11. package/fesm2022/{acorex-modules-auth-master.layout-DAYMmpBW.mjs.map → acorex-modules-auth-master.layout-BNFGuQQs.mjs.map} +1 -1
  12. package/fesm2022/{acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs} +2 -2
  13. package/fesm2022/{acorex-modules-auth-oauth-callback.component-B0Q3w45s.mjs.map → acorex-modules-auth-oauth-callback.component-B3sSFdOA.mjs.map} +1 -1
  14. package/fesm2022/{acorex-modules-auth-password.component-BJpxtJYh.mjs → acorex-modules-auth-password.component-Dyox9sR4.mjs} +2 -2
  15. package/fesm2022/{acorex-modules-auth-password.component-BJpxtJYh.mjs.map → acorex-modules-auth-password.component-Dyox9sR4.mjs.map} +1 -1
  16. package/fesm2022/acorex-modules-auth-password.component-ln2kDKPR.mjs +226 -0
  17. package/fesm2022/acorex-modules-auth-password.component-ln2kDKPR.mjs.map +1 -0
  18. package/fesm2022/{acorex-modules-auth-routes-hvqL2dCH.mjs → acorex-modules-auth-routes-7vr8T08D.mjs} +2 -2
  19. package/fesm2022/{acorex-modules-auth-routes-hvqL2dCH.mjs.map → acorex-modules-auth-routes-7vr8T08D.mjs.map} +1 -1
  20. package/fesm2022/{acorex-modules-auth-two-factor.module-kPuT8yUw.mjs → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs} +2 -2
  21. package/fesm2022/{acorex-modules-auth-two-factor.module-kPuT8yUw.mjs.map → acorex-modules-auth-two-factor.module-D6XCUP_A.mjs.map} +1 -1
  22. package/fesm2022/{acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs} +2 -2
  23. package/fesm2022/{acorex-modules-auth-user-sessions.component-Chx_jTSJ.mjs.map → acorex-modules-auth-user-sessions.component-B5aBDmdR.mjs.map} +1 -1
  24. package/fesm2022/acorex-modules-auth.mjs +1 -1
  25. package/fesm2022/acorex-modules-calendar-management.mjs +1 -1
  26. package/fesm2022/acorex-modules-calendar-management.mjs.map +1 -1
  27. package/fesm2022/acorex-modules-common.mjs +503 -235
  28. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  29. package/fesm2022/acorex-modules-content-management.mjs +378 -457
  30. package/fesm2022/acorex-modules-content-management.mjs.map +1 -1
  31. package/fesm2022/acorex-modules-conversation.mjs +119 -4
  32. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  33. package/fesm2022/acorex-modules-dashboard-management.mjs +9 -9
  34. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  35. package/fesm2022/acorex-modules-data-management.mjs +0 -1
  36. package/fesm2022/acorex-modules-data-management.mjs.map +1 -1
  37. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs → acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs} +875 -142
  38. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-D9oPjJnn.mjs.map +1 -0
  39. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs} +2 -2
  40. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-CbDcYxEZ.mjs.map → acorex-modules-document-management-attachment-widget.component-CcWvTWv0.mjs.map} +1 -1
  41. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs} +2 -2
  42. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BCs4aZKn.mjs.map → acorex-modules-document-management-create-folder-dialog.component-DPFIPNE_.mjs.map} +1 -1
  43. package/fesm2022/{acorex-modules-document-management-details-view.component-v1VroVv-.mjs → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs} +2 -2
  44. package/fesm2022/{acorex-modules-document-management-details-view.component-v1VroVv-.mjs.map → acorex-modules-document-management-details-view.component-BKNvUhdl.mjs.map} +1 -1
  45. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs +116 -0
  46. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs.map +1 -0
  47. package/fesm2022/{acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs} +2 -2
  48. package/fesm2022/{acorex-modules-document-management-drive-choose.component-C5gJtH7_.mjs.map → acorex-modules-document-management-drive-choose.component-BOPjvKlN.mjs.map} +1 -1
  49. package/fesm2022/{acorex-modules-document-management-drive.component-D5OwpnAP.mjs → acorex-modules-document-management-drive.component-DutBXTtm.mjs} +2 -2
  50. package/fesm2022/{acorex-modules-document-management-drive.component-D5OwpnAP.mjs.map → acorex-modules-document-management-drive.component-DutBXTtm.mjs.map} +1 -1
  51. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs} +2 -2
  52. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DkHt-dTD.mjs.map → acorex-modules-document-management-large-icons-view.component-DX2_xsbq.mjs.map} +1 -1
  53. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs} +2 -2
  54. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-D2nA00k3.mjs.map → acorex-modules-document-management-large-tiles-view.component-CshjCgG5.mjs.map} +1 -1
  55. package/fesm2022/{acorex-modules-document-management-list-view.component-RaW67V7O.mjs → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs} +2 -2
  56. package/fesm2022/{acorex-modules-document-management-list-view.component-RaW67V7O.mjs.map → acorex-modules-document-management-list-view.component-DdLTVccZ.mjs.map} +1 -1
  57. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs → acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs} +2 -2
  58. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BomZu2bT.mjs.map +1 -0
  59. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs} +2 -2
  60. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B6nu7fmX.mjs.map → acorex-modules-document-management-permission-definition.provider-_AXz3sdF.mjs.map} +1 -1
  61. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs} +2 -2
  62. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component--6V1Zaoz.mjs.map → acorex-modules-document-management-rename-node-dialog.component-DZRAXwFy.mjs.map} +1 -1
  63. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs} +2 -2
  64. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Cl1MKsX9.mjs.map → acorex-modules-document-management-small-icons-view.component-DG3AbQJO.mjs.map} +1 -1
  65. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs} +2 -2
  66. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-xoO1Loxt.mjs.map → acorex-modules-document-management-small-tiles-view.component-Cx9jczo-.mjs.map} +1 -1
  67. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  68. package/fesm2022/{acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs → acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs} +34 -12
  69. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CLSHVjDE.mjs.map +1 -0
  70. package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs} +2 -2
  71. package/fesm2022/{acorex-modules-form-template-management-category.entity-DmrE2Pfz.mjs.map → acorex-modules-form-template-management-category.entity-BBjVWSJ_.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-form-template-management-permission-definition.provider-CfOa446m.mjs.map → acorex-modules-form-template-management-permission-definition.provider-I8BY9RVh.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs} +2 -2
  75. package/fesm2022/{acorex-modules-form-template-management-settings.provider-hLlHnm-I.mjs.map → acorex-modules-form-template-management-settings.provider-B8ip0Ou_.mjs.map} +1 -1
  76. package/fesm2022/{acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs → acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs} +2 -3
  77. package/fesm2022/acorex-modules-form-template-management-template-picker.component-BNM3RyDv.mjs.map +1 -0
  78. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs} +2 -2
  79. package/fesm2022/{acorex-modules-form-template-management-template-widget-edit.component-D_Ys5kRT.mjs.map → acorex-modules-form-template-management-template-widget-edit.component-DFfvdZqJ.mjs.map} +1 -1
  80. package/fesm2022/{acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs → acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs} +10 -14
  81. package/fesm2022/acorex-modules-form-template-management-template.entity-BCpgfVMz.mjs.map +1 -0
  82. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs} +2 -2
  83. package/fesm2022/{acorex-modules-form-template-management-viewer-popup.component-CE13nuke.mjs.map → acorex-modules-form-template-management-viewer-popup.component-DDfjwbrL.mjs.map} +1 -1
  84. package/fesm2022/acorex-modules-form-template-management.mjs +1 -1
  85. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs → acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs} +77 -36
  86. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-CAibWOZT.mjs.map +1 -0
  87. package/fesm2022/acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs +28 -0
  88. package/fesm2022/acorex-modules-help-desk-capture-screen.component-BSBozesT.mjs.map +1 -0
  89. package/fesm2022/acorex-modules-help-desk.mjs +2 -0
  90. package/fesm2022/acorex-modules-help-desk.mjs.map +1 -0
  91. package/fesm2022/acorex-modules-identifier-management.mjs +81 -39
  92. package/fesm2022/acorex-modules-identifier-management.mjs.map +1 -1
  93. package/fesm2022/acorex-modules-location-management.mjs +4 -3
  94. package/fesm2022/acorex-modules-location-management.mjs.map +1 -1
  95. package/fesm2022/acorex-modules-log-management.mjs +0 -1
  96. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  97. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs +121 -0
  98. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs.map +1 -0
  99. package/fesm2022/acorex-modules-meeting-management.mjs +2899 -0
  100. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -0
  101. package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs +544 -0
  102. package/fesm2022/acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map +1 -0
  103. package/fesm2022/acorex-modules-notification-management.mjs +145 -126
  104. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  105. package/fesm2022/{acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs → acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs} +114 -68
  106. package/fesm2022/acorex-modules-organization-management-employee.entity-CRc2YjNR.mjs.map +1 -0
  107. package/fesm2022/acorex-modules-organization-management.mjs +22 -1
  108. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  109. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs} +6 -6
  110. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-B8X8tXFw.mjs.map → acorex-modules-party-management-acorex-modules-party-management-BUc-9XOG.mjs.map} +1 -1
  111. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs} +2 -2
  112. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-b8aNBCpT.mjs.map → acorex-modules-party-management-party-identifier-type.entity-Bgq-y9TN.mjs.map} +1 -1
  113. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs → acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs} +12 -10
  114. package/fesm2022/acorex-modules-party-management-party-identifier.entity-CP47qbc-.mjs.map +1 -0
  115. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs} +2 -2
  116. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-CLAAuCde.mjs.map → acorex-modules-party-management-party-relationship.entity-pGea5plN.mjs.map} +1 -1
  117. package/fesm2022/{acorex-modules-party-management-party-role.entity-C5BeakjX.mjs → acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs} +7 -7
  118. package/fesm2022/acorex-modules-party-management-party-role.entity-CDt7Rxu7.mjs.map +1 -0
  119. package/fesm2022/{acorex-modules-party-management-party.entity-Blwg8o3o.mjs → acorex-modules-party-management-party.entity-DAvqOPic.mjs} +4 -4
  120. package/fesm2022/acorex-modules-party-management-party.entity-DAvqOPic.mjs.map +1 -0
  121. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  122. package/fesm2022/{acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs → acorex-modules-platform-management-list-version.component-kFe_wuWc.mjs} +3 -3
  123. package/fesm2022/{acorex-modules-platform-management-list-version.component-DTfLeVbH.mjs.map → acorex-modules-platform-management-list-version.component-kFe_wuWc.mjs.map} +1 -1
  124. package/fesm2022/acorex-modules-platform-management.mjs +12 -232
  125. package/fesm2022/acorex-modules-platform-management.mjs.map +1 -1
  126. package/fesm2022/acorex-modules-project-management.mjs +98 -97
  127. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  128. package/fesm2022/{acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs → acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs} +2 -2
  129. package/fesm2022/acorex-modules-report-management-report-create-root.component-L-7aG8op.mjs.map +1 -0
  130. package/fesm2022/acorex-modules-report-management.mjs +1 -1
  131. package/fesm2022/acorex-modules-security-management.mjs +5 -5
  132. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  133. package/fesm2022/{acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs → acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs} +11 -1
  134. package/fesm2022/acorex-modules-settings-management-setting-page.component-D-NKWNvS.mjs.map +1 -0
  135. package/fesm2022/acorex-modules-settings-management.mjs +1 -1
  136. package/fesm2022/{acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs → acorex-modules-task-management-task-board.page-DbpqZaC7.mjs} +16 -11
  137. package/fesm2022/acorex-modules-task-management-task-board.page-DbpqZaC7.mjs.map +1 -0
  138. package/fesm2022/acorex-modules-task-management.mjs +3026 -2821
  139. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  140. package/fesm2022/acorex-modules-workflow-management.mjs +39 -1
  141. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -1
  142. package/form-template-management/index.d.ts +3 -0
  143. package/help-desk/README.md +3 -0
  144. package/{issue-management → help-desk}/index.d.ts +12 -12
  145. package/identifier-management/index.d.ts +15 -16
  146. package/meeting-management/README.md +29 -0
  147. package/meeting-management/index.d.ts +248 -0
  148. package/notification-management/index.d.ts +6 -4
  149. package/package.json +24 -20
  150. package/platform-management/index.d.ts +1 -12
  151. package/task-management/index.d.ts +34 -2
  152. package/workflow-management/index.d.ts +4 -33
  153. package/fesm2022/acorex-modules-auth-password.component-NAY46d_2.mjs +0 -226
  154. package/fesm2022/acorex-modules-auth-password.component-NAY46d_2.mjs.map +0 -1
  155. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-C4G6L94e.mjs.map +0 -1
  156. package/fesm2022/acorex-modules-document-management-meta-choose-popup.component-BZu8EbTh.mjs.map +0 -1
  157. package/fesm2022/acorex-modules-form-template-management-acorex-modules-form-template-management-CeQnu6WW.mjs.map +0 -1
  158. package/fesm2022/acorex-modules-form-template-management-template-picker.component-bxYZqmYR.mjs.map +0 -1
  159. package/fesm2022/acorex-modules-form-template-management-template.entity-CvlwS8TY.mjs.map +0 -1
  160. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-CTFlKzqy.mjs.map +0 -1
  161. package/fesm2022/acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs +0 -28
  162. package/fesm2022/acorex-modules-issue-management-capture-screen.component-DDvum8EG.mjs.map +0 -1
  163. package/fesm2022/acorex-modules-issue-management.mjs +0 -2
  164. package/fesm2022/acorex-modules-issue-management.mjs.map +0 -1
  165. package/fesm2022/acorex-modules-organization-management-employee.entity-CSY_U9Bl.mjs.map +0 -1
  166. package/fesm2022/acorex-modules-party-management-party-identifier.entity-B_5MSDF1.mjs.map +0 -1
  167. package/fesm2022/acorex-modules-party-management-party-role.entity-C5BeakjX.mjs.map +0 -1
  168. package/fesm2022/acorex-modules-party-management-party.entity-Blwg8o3o.mjs.map +0 -1
  169. package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs +0 -93
  170. package/fesm2022/acorex-modules-platform-management-list-terms.component-B1gl5xfT.mjs.map +0 -1
  171. package/fesm2022/acorex-modules-report-management-report-create-root.component-CPR6H1R1.mjs.map +0 -1
  172. package/fesm2022/acorex-modules-settings-management-setting-page.component-BWXHxXwS.mjs.map +0 -1
  173. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs +0 -244
  174. package/fesm2022/acorex-modules-workflow-management-acorex-modules-workflow-management-BfE17ZXY.mjs.map +0 -1
  175. package/fesm2022/acorex-modules-workflow-management-task-board.page-2UTqXn3s.mjs.map +0 -1
  176. package/issue-management/README.md +0 -3
@@ -0,0 +1,544 @@
1
+ import * as i3$1 from '@acorex/components/badge';
2
+ import { AXBadgeModule } from '@acorex/components/badge';
3
+ import * as i5 from '@acorex/components/button';
4
+ import { AXButtonModule } from '@acorex/components/button';
5
+ import * as i3 from '@acorex/components/check-box';
6
+ import { AXCheckBoxModule } from '@acorex/components/check-box';
7
+ import * as i2 from '@acorex/components/decorators';
8
+ import { AXDecoratorModule } from '@acorex/components/decorators';
9
+ import * as i7 from '@acorex/components/dropdown';
10
+ import { AXDropdownModule } from '@acorex/components/dropdown';
11
+ import { AXDropdownButtonModule } from '@acorex/components/dropdown-button';
12
+ import * as i9 from '@acorex/components/label';
13
+ import { AXLabelModule } from '@acorex/components/label';
14
+ import * as i8 from '@acorex/components/search-box';
15
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
16
+ import * as i4 from '@acorex/components/skeleton';
17
+ import { AXSkeletonModule } from '@acorex/components/skeleton';
18
+ import * as i2$2 from '@acorex/core/format';
19
+ import { AXFormatModule } from '@acorex/core/format';
20
+ import { AXPUserAvatarComponent, AXPThemeLayoutBlockComponent } from '@acorex/platform/layout/components';
21
+ import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
22
+ import * as i1 from '@angular/common';
23
+ import { CommonModule } from '@angular/common';
24
+ import * as i0 from '@angular/core';
25
+ import { inject, signal, computed, ChangeDetectionStrategy, Component } from '@angular/core';
26
+ import * as i2$1 from '@angular/forms';
27
+ import { FormsModule } from '@angular/forms';
28
+ import { AXMNotificationConnectorService, AXPNotificationDefinitionService } from './acorex-modules-notification-management.mjs';
29
+
30
+ //#region ---- Component Definition ----
31
+ class AXMNotificationPageComponent extends AXPPageLayoutBaseComponent {
32
+ constructor() {
33
+ super(...arguments);
34
+ //#region ---- Services & Dependencies ----
35
+ this.connector = inject(AXMNotificationConnectorService);
36
+ this.definitionService = inject(AXPNotificationDefinitionService);
37
+ //#endregion
38
+ //#region ---- State & Computed Properties ----
39
+ this.loading = this.connector.loading;
40
+ this.errorMessage = this.connector.errorMessage;
41
+ this.notifications = this.connector.notificationList;
42
+ this.unreadCount = this.connector.unreadCount;
43
+ this.totalCount = this.connector.total;
44
+ // Local UI state
45
+ this.searchQuery = signal('', ...(ngDevMode ? [{ debugName: "searchQuery" }] : []));
46
+ this.filteredNotifications = computed(() => {
47
+ const query = (this.searchQuery() || '').toLowerCase().trim();
48
+ const items = this.notifications();
49
+ if (!query) {
50
+ return this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;
51
+ }
52
+ const base = this.activeTab() === 'unread' ? items.filter((n) => !n.readAt) : items;
53
+ return base.filter((n) => {
54
+ const title = (n.title || '').toLowerCase();
55
+ const body = (n.body || '').toLowerCase();
56
+ const sender = (n.sender?.fullName || '').toLowerCase();
57
+ return title.includes(query) || body.includes(query) || sender.includes(query);
58
+ });
59
+ }, ...(ngDevMode ? [{ debugName: "filteredNotifications" }] : []));
60
+ // Tab state: 'all' | 'unread'
61
+ this.tab = signal('all', ...(ngDevMode ? [{ debugName: "tab" }] : []));
62
+ this.activeTab = computed(() => this.tab(), ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
63
+ // Selection state for bulk actions
64
+ this.selectedIds = signal(new Set(), ...(ngDevMode ? [{ debugName: "selectedIds" }] : []));
65
+ this.selectedCount = computed(() => this.selectedIds().size, ...(ngDevMode ? [{ debugName: "selectedCount" }] : []));
66
+ }
67
+ selectedTab() {
68
+ return this.tab();
69
+ }
70
+ setTab(v) {
71
+ this.tab.set(v);
72
+ }
73
+ onTabChange(index) {
74
+ this.tab.set(index === 1 ? 'unread' : 'all');
75
+ }
76
+ //#endregion
77
+ //#region ---- Page Interface Methods ----
78
+ async getPageTitle() {
79
+ return 'Notifications';
80
+ }
81
+ getPageDescription() {
82
+ const unread = this.unreadCount();
83
+ const total = this.totalCount();
84
+ if (!total) {
85
+ return 'No notifications';
86
+ }
87
+ return unread > 0 ? `${unread} unread out of ${total}` : `${total} notifications`;
88
+ }
89
+ async getSecondaryMenuItems() {
90
+ return [
91
+ {
92
+ title: 'Refresh',
93
+ icon: 'fa-light fa-rotate',
94
+ command: { name: 'refresh' },
95
+ },
96
+ {
97
+ title: 'Mark all as read',
98
+ icon: 'fa-light fa-envelopes-bulk',
99
+ command: { name: 'mark-all-as-read' },
100
+ disabled: this.unreadCount() === 0,
101
+ },
102
+ ];
103
+ }
104
+ async execute(command) {
105
+ switch (command.name) {
106
+ case 'refresh':
107
+ await this.onRefresh();
108
+ break;
109
+ case 'mark-selected-as-read':
110
+ await this.markSelectedAsRead(); // kept for keyboard/menu accessibility, though moved to suffix
111
+ break;
112
+ case 'mark-all-as-read':
113
+ await this.onMarkAllAsRead();
114
+ break;
115
+ }
116
+ }
117
+ //#endregion
118
+ //#region ---- UI Handlers ----
119
+ onSearch(value) {
120
+ this.searchQuery.set(value);
121
+ }
122
+ onClearSearch() {
123
+ this.searchQuery.set('');
124
+ }
125
+ async onRefresh() {
126
+ await this.connector.getList();
127
+ }
128
+ async onMarkAllAsRead() {
129
+ await this.connector.markAllAsRead();
130
+ }
131
+ isSelected(id) {
132
+ return this.selectedIds().has(id);
133
+ }
134
+ toggleSelectionWithModel(id, checked) {
135
+ const next = new Set(this.selectedIds());
136
+ if (checked) {
137
+ next.add(id);
138
+ }
139
+ else {
140
+ next.delete(id);
141
+ }
142
+ this.selectedIds.set(next);
143
+ }
144
+ isAllSelected() {
145
+ const items = this.filteredNotifications();
146
+ return items.length > 0 && items.every((i) => this.selectedIds().has(i.id));
147
+ }
148
+ toggleSelectAll(event) {
149
+ const checked = event.target.checked;
150
+ if (checked) {
151
+ this.selectedIds.set(new Set(this.filteredNotifications().map((i) => i.id)));
152
+ }
153
+ else {
154
+ this.selectedIds.set(new Set());
155
+ }
156
+ }
157
+ async markSelectedAsRead() {
158
+ const ids = Array.from(this.selectedIds());
159
+ if (ids.length === 0)
160
+ return;
161
+ await this.connector.markAsRead({ id: ids });
162
+ this.selectedIds.set(new Set());
163
+ }
164
+ async deleteSelected() {
165
+ const ids = Array.from(this.selectedIds());
166
+ if (ids.length === 0)
167
+ return;
168
+ for (const id of ids) {
169
+ await this.connector.deleteOne(id);
170
+ }
171
+ this.selectedIds.set(new Set());
172
+ }
173
+ deselectAll() {
174
+ this.selectedIds.set(new Set());
175
+ }
176
+ // Row interactions
177
+ onRowClick(id) {
178
+ this.toggleSelectionById(id);
179
+ }
180
+ async onItemDblClick(id) {
181
+ //avoid double click on selected items
182
+ if (this.selectedIds().size > 1) {
183
+ return;
184
+ }
185
+ const item = this.notifications().find((n) => n.id === id);
186
+ if (!item) {
187
+ return;
188
+ }
189
+ // Mark as read (idempotent per service logic)
190
+ await this.connector.markAsRead({ id: [id] });
191
+ // Execute provider click action if available
192
+ const provider = this.definitionService.resolve(item.type);
193
+ await provider?.execute?.({ name: 'click' }, item);
194
+ }
195
+ toggleSelectionById(id) {
196
+ const next = new Set(this.selectedIds());
197
+ if (next.has(id)) {
198
+ next.delete(id);
199
+ }
200
+ else {
201
+ next.add(id);
202
+ }
203
+ this.selectedIds.set(next);
204
+ }
205
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationPageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
206
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMNotificationPageComponent, isStandalone: true, selector: "axm-notification-page", providers: [
207
+ {
208
+ provide: AXPPageLayoutBase,
209
+ useExisting: AXMNotificationPageComponent,
210
+ },
211
+ ], usesInheritance: true, ngImport: i0, template: `
212
+ <axp-page-layout>
213
+ <axp-page-toolbar>
214
+ <axp-layout-prefix>
215
+ @if (selectedCount() > 0) {
216
+ <div class="ax-flex ax-gap-3 ax-items-center ax-h-10">
217
+ <span class="ax-text-xl ax-font-bold">{{ selectedCount() }} items selected</span>
218
+ <span (click)="deselectAll()" class="ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer"
219
+ >Unselect</span
220
+ >
221
+ </div>
222
+ } @else {
223
+ <ax-button [text]="activeTab() === 'all' ? 'All' : 'Unread'">
224
+ <ax-dropdown-panel>
225
+ <ax-button-item-list class="ax-p-2">
226
+ <ax-button-item
227
+ [text]="'All'"
228
+ [selected]="activeTab() === 'all'"
229
+ (onClick)="setTab('all')"
230
+ ></ax-button-item>
231
+ <ax-button-item [text]="'Unread'" [selected]="activeTab() === 'unread'" (onClick)="setTab('unread')">
232
+ <ax-suffix>
233
+ <ax-badge [text]="unreadCount().toString()" [color]="'primary'"></ax-badge>
234
+ </ax-suffix>
235
+ </ax-button-item>
236
+ </ax-button-item-list>
237
+ </ax-dropdown-panel>
238
+ </ax-button>
239
+
240
+ <ax-search-box
241
+ look="solid"
242
+ [placeholder]="'Search notifications'"
243
+ [value]="searchQuery()"
244
+ (onValueChanged)="onSearch($event.value)"
245
+ class="ax-w-72 ax-hidden md:ax-flex"
246
+ >
247
+ <ax-clear-button></ax-clear-button>
248
+ </ax-search-box>
249
+ }
250
+ </axp-layout-prefix>
251
+ <axp-layout-suffix>
252
+ @if (selectedCount() > 0) {
253
+ <div class="ax-flex ax-gap-2">
254
+ <ax-button [text]="'Mark as read'" (onClick)="markSelectedAsRead()"></ax-button>
255
+ <ax-button look="outline" color="danger" [text]="'Delete'" (onClick)="deleteSelected()"></ax-button>
256
+ </div>
257
+ }
258
+ </axp-layout-suffix>
259
+ </axp-page-toolbar>
260
+ <axp-page-content>
261
+ <div class="ax-flex ax-flex-col ax-gap-4 ax-p-4">
262
+ <!-- List -->
263
+ @if (loading()) {
264
+ <div class="ax-p-4 ax-space-y-4">
265
+ @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {
266
+ <div class="ax-flex ax-items-center ax-space-x-3">
267
+ <ax-skeleton [animated]="true" class="ax-w-12 ax-h-12 ax-rounded-full"></ax-skeleton>
268
+ <div class="ax-flex-1 ax-space-y-2">
269
+ <ax-skeleton [animated]="true" class="ax-w-3/4 ax-h-4 ax-rounded-md"></ax-skeleton>
270
+ <ax-skeleton [animated]="true" class="ax-w-1/2 ax-h-3 ax-rounded-md"></ax-skeleton>
271
+ </div>
272
+ </div>
273
+ }
274
+ </div>
275
+ } @else if (filteredNotifications().length === 0) {
276
+ <div
277
+ class="ax-rounded-xl ax-border ax-border-gray-200 ax-py-16 ax-px-6 ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-4 ax-text-center"
278
+ >
279
+ <div class="ax-h-14 ax-w-14 ax-rounded-full ax-flex ax-items-center ax-justify-center ax-text-2xl">
280
+ @if (searchQuery()) {
281
+ 🔍
282
+ } @else if (activeTab() === 'unread') {
283
+ 🎉
284
+ } @else {
285
+ 🔔
286
+ }
287
+ </div>
288
+ <div class="ax-space-y-1">
289
+ @if (searchQuery()) {
290
+ <div class="ax-text-lg ax-font-semibold">No results</div>
291
+ <div class="ax-text-sm">We couldn’t find anything matching “{{ searchQuery() }}”.</div>
292
+ } @else if (activeTab() === 'unread') {
293
+ <div class="ax-text-lg ax-font-semibold">You’re all caught up</div>
294
+ <div class="ax-text-sm">No unread notifications right now.</div>
295
+ } @else {
296
+ <div class="ax-text-lg ax-font-semibold">No notifications yet</div>
297
+ <div class="ax-text-sm">You’ll see new activity and alerts here.</div>
298
+ }
299
+ </div>
300
+ <div class="ax-flex ax-gap-2">
301
+ @if (searchQuery()) {
302
+ <ax-button look="outline" [text]="'Clear search'" (onClick)="onClearSearch()"></ax-button>
303
+ } @else {
304
+ <!-- <ax-button [text]="'Refresh'" (onClick)="onRefresh()"></ax-button> -->
305
+ }
306
+ </div>
307
+ </div>
308
+ } @else {
309
+ <div class="ax-rounded-xl ax-border">
310
+ @for (item of filteredNotifications(); track item.id) {
311
+ <div
312
+ class="ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer"
313
+ [id]="item.id"
314
+ (click)="onRowClick(item.id)"
315
+ (dblclick)="onItemDblClick(item.id)"
316
+ >
317
+ <!-- @if (isSelected(item.id)) {
318
+ <div class="ax-w-1 ax-self-stretch ax-rounded ax-bg-primary"></div>
319
+ } -->
320
+ <!-- Select via checkbox -->
321
+ <ax-check-box
322
+ class="ax-mt-1"
323
+ [ngModel]="isSelected(item.id)"
324
+ (ngModelChange)="toggleSelectionWithModel(item.id, $event)"
325
+ >
326
+ <ax-label></ax-label>
327
+ </ax-check-box>
328
+ <!-- Avatar + Unread Dot -->
329
+ <div class="ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center">
330
+ <axp-user-avatar [size]="48" [userId]="item.sender.id"></axp-user-avatar>
331
+ @if (!item.readAt) {
332
+ <span class="ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full"></span>
333
+ }
334
+ </div>
335
+
336
+ <!-- Content -->
337
+ <div class="ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center">
338
+ <div class="ax-flex ax-items-center ax-justify-between ax-gap-2">
339
+ <div class="ax-flex ax-items-center ax-gap-2">
340
+ <div class="ax-font-medium" [class.ax-font-semibold]="!item.readAt">
341
+ {{ item.sender.fullName || item.title }}
342
+ </div>
343
+ <span>•</span>
344
+ <div class="ax-text-xs ax-opacity-75">
345
+ {{ item.createAt | format: 'timeleft' | async }}
346
+ </div>
347
+ </div>
348
+ </div>
349
+ <div class="ax-text-sm ax-line-clamp-2">{{ item.body }}</div>
350
+ </div>
351
+ <!-- Actions (future: per-item kebab) -->
352
+ </div>
353
+ <!-- <div class="ax-border-t ax-border-gray-100"></div> -->
354
+ }
355
+ </div>
356
+ }
357
+ </div>
358
+ </axp-page-content>
359
+ </axp-page-layout>
360
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXFormatModule }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i3.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i5.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i5.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i3$1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXDropdownModule }, { kind: "component", type: i7.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i8.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "component", type: AXPPageLayoutComponent, selector: "axp-page-layout" }, { kind: "component", type: AXPThemeLayoutBlockComponent, selector: " axp-page-content, axp-page-footer-container, axp-page-footer, axp-page-header, axp-page-header-container, axp-page-toolbar, axp-layout-content, axp-layout-page-content, axp-layout-sections, axp-layout-body, axp-layout-page-body, axp-layout-prefix, axp-layout-suffix, axp-layout-title-bar, axp-layout-title, axp-layout-title-actions, axp-layout-nav-button, axp-layout-description, axp-layout-breadcrumbs, axp-layout-list-action, " }, { kind: "ngmodule", type: AXLabelModule }, { kind: "component", type: i9.AXLabelComponent, selector: "ax-label", inputs: ["required", "for"], outputs: ["requiredChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$2.AXFormatPipe, name: "format" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
361
+ }
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMNotificationPageComponent, decorators: [{
363
+ type: Component,
364
+ args: [{
365
+ selector: 'axm-notification-page',
366
+ template: `
367
+ <axp-page-layout>
368
+ <axp-page-toolbar>
369
+ <axp-layout-prefix>
370
+ @if (selectedCount() > 0) {
371
+ <div class="ax-flex ax-gap-3 ax-items-center ax-h-10">
372
+ <span class="ax-text-xl ax-font-bold">{{ selectedCount() }} items selected</span>
373
+ <span (click)="deselectAll()" class="ax-text-sm ax-text-secondary ax-underline ax-cursor-pointer"
374
+ >Unselect</span
375
+ >
376
+ </div>
377
+ } @else {
378
+ <ax-button [text]="activeTab() === 'all' ? 'All' : 'Unread'">
379
+ <ax-dropdown-panel>
380
+ <ax-button-item-list class="ax-p-2">
381
+ <ax-button-item
382
+ [text]="'All'"
383
+ [selected]="activeTab() === 'all'"
384
+ (onClick)="setTab('all')"
385
+ ></ax-button-item>
386
+ <ax-button-item [text]="'Unread'" [selected]="activeTab() === 'unread'" (onClick)="setTab('unread')">
387
+ <ax-suffix>
388
+ <ax-badge [text]="unreadCount().toString()" [color]="'primary'"></ax-badge>
389
+ </ax-suffix>
390
+ </ax-button-item>
391
+ </ax-button-item-list>
392
+ </ax-dropdown-panel>
393
+ </ax-button>
394
+
395
+ <ax-search-box
396
+ look="solid"
397
+ [placeholder]="'Search notifications'"
398
+ [value]="searchQuery()"
399
+ (onValueChanged)="onSearch($event.value)"
400
+ class="ax-w-72 ax-hidden md:ax-flex"
401
+ >
402
+ <ax-clear-button></ax-clear-button>
403
+ </ax-search-box>
404
+ }
405
+ </axp-layout-prefix>
406
+ <axp-layout-suffix>
407
+ @if (selectedCount() > 0) {
408
+ <div class="ax-flex ax-gap-2">
409
+ <ax-button [text]="'Mark as read'" (onClick)="markSelectedAsRead()"></ax-button>
410
+ <ax-button look="outline" color="danger" [text]="'Delete'" (onClick)="deleteSelected()"></ax-button>
411
+ </div>
412
+ }
413
+ </axp-layout-suffix>
414
+ </axp-page-toolbar>
415
+ <axp-page-content>
416
+ <div class="ax-flex ax-flex-col ax-gap-4 ax-p-4">
417
+ <!-- List -->
418
+ @if (loading()) {
419
+ <div class="ax-p-4 ax-space-y-4">
420
+ @for (_ of [1, 2, 3, 4, 5, 6]; track $index) {
421
+ <div class="ax-flex ax-items-center ax-space-x-3">
422
+ <ax-skeleton [animated]="true" class="ax-w-12 ax-h-12 ax-rounded-full"></ax-skeleton>
423
+ <div class="ax-flex-1 ax-space-y-2">
424
+ <ax-skeleton [animated]="true" class="ax-w-3/4 ax-h-4 ax-rounded-md"></ax-skeleton>
425
+ <ax-skeleton [animated]="true" class="ax-w-1/2 ax-h-3 ax-rounded-md"></ax-skeleton>
426
+ </div>
427
+ </div>
428
+ }
429
+ </div>
430
+ } @else if (filteredNotifications().length === 0) {
431
+ <div
432
+ class="ax-rounded-xl ax-border ax-border-gray-200 ax-py-16 ax-px-6 ax-flex ax-flex-col ax-items-center ax-justify-center ax-gap-4 ax-text-center"
433
+ >
434
+ <div class="ax-h-14 ax-w-14 ax-rounded-full ax-flex ax-items-center ax-justify-center ax-text-2xl">
435
+ @if (searchQuery()) {
436
+ 🔍
437
+ } @else if (activeTab() === 'unread') {
438
+ 🎉
439
+ } @else {
440
+ 🔔
441
+ }
442
+ </div>
443
+ <div class="ax-space-y-1">
444
+ @if (searchQuery()) {
445
+ <div class="ax-text-lg ax-font-semibold">No results</div>
446
+ <div class="ax-text-sm">We couldn’t find anything matching “{{ searchQuery() }}”.</div>
447
+ } @else if (activeTab() === 'unread') {
448
+ <div class="ax-text-lg ax-font-semibold">You’re all caught up</div>
449
+ <div class="ax-text-sm">No unread notifications right now.</div>
450
+ } @else {
451
+ <div class="ax-text-lg ax-font-semibold">No notifications yet</div>
452
+ <div class="ax-text-sm">You’ll see new activity and alerts here.</div>
453
+ }
454
+ </div>
455
+ <div class="ax-flex ax-gap-2">
456
+ @if (searchQuery()) {
457
+ <ax-button look="outline" [text]="'Clear search'" (onClick)="onClearSearch()"></ax-button>
458
+ } @else {
459
+ <!-- <ax-button [text]="'Refresh'" (onClick)="onRefresh()"></ax-button> -->
460
+ }
461
+ </div>
462
+ </div>
463
+ } @else {
464
+ <div class="ax-rounded-xl ax-border">
465
+ @for (item of filteredNotifications(); track item.id) {
466
+ <div
467
+ class="ax-flex ax-gap-3 ax-p-4 ax-items-center ax-rounded-md ax-cursor-pointer"
468
+ [id]="item.id"
469
+ (click)="onRowClick(item.id)"
470
+ (dblclick)="onItemDblClick(item.id)"
471
+ >
472
+ <!-- @if (isSelected(item.id)) {
473
+ <div class="ax-w-1 ax-self-stretch ax-rounded ax-bg-primary"></div>
474
+ } -->
475
+ <!-- Select via checkbox -->
476
+ <ax-check-box
477
+ class="ax-mt-1"
478
+ [ngModel]="isSelected(item.id)"
479
+ (ngModelChange)="toggleSelectionWithModel(item.id, $event)"
480
+ >
481
+ <ax-label></ax-label>
482
+ </ax-check-box>
483
+ <!-- Avatar + Unread Dot -->
484
+ <div class="ax-relative ax-w-12 ax-flex ax-items-center ax-justify-center">
485
+ <axp-user-avatar [size]="48" [userId]="item.sender.id"></axp-user-avatar>
486
+ @if (!item.readAt) {
487
+ <span class="ax-absolute ax-right-0 ax-top-0 ax-block ax-h-3 ax-w-3 ax-rounded-full"></span>
488
+ }
489
+ </div>
490
+
491
+ <!-- Content -->
492
+ <div class="ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-justify-center">
493
+ <div class="ax-flex ax-items-center ax-justify-between ax-gap-2">
494
+ <div class="ax-flex ax-items-center ax-gap-2">
495
+ <div class="ax-font-medium" [class.ax-font-semibold]="!item.readAt">
496
+ {{ item.sender.fullName || item.title }}
497
+ </div>
498
+ <span>•</span>
499
+ <div class="ax-text-xs ax-opacity-75">
500
+ {{ item.createAt | format: 'timeleft' | async }}
501
+ </div>
502
+ </div>
503
+ </div>
504
+ <div class="ax-text-sm ax-line-clamp-2">{{ item.body }}</div>
505
+ </div>
506
+ <!-- Actions (future: per-item kebab) -->
507
+ </div>
508
+ <!-- <div class="ax-border-t ax-border-gray-100"></div> -->
509
+ }
510
+ </div>
511
+ }
512
+ </div>
513
+ </axp-page-content>
514
+ </axp-page-layout>
515
+ `,
516
+ changeDetection: ChangeDetectionStrategy.OnPush,
517
+ providers: [
518
+ {
519
+ provide: AXPPageLayoutBase,
520
+ useExisting: AXMNotificationPageComponent,
521
+ },
522
+ ],
523
+ imports: [
524
+ AXDecoratorModule,
525
+ CommonModule,
526
+ FormsModule,
527
+ AXFormatModule,
528
+ AXCheckBoxModule,
529
+ AXSkeletonModule,
530
+ AXButtonModule,
531
+ AXBadgeModule,
532
+ AXDropdownModule,
533
+ AXDropdownButtonModule,
534
+ AXSearchBoxModule,
535
+ AXPUserAvatarComponent,
536
+ AXPPageLayoutComponent,
537
+ AXPThemeLayoutBlockComponent,
538
+ AXLabelModule,
539
+ ],
540
+ }]
541
+ }] });
542
+
543
+ export { AXMNotificationPageComponent };
544
+ //# sourceMappingURL=acorex-modules-notification-management-notification-page.component-TLxLpxzE.mjs.map