@acorex/modules 20.2.4-next.1 → 20.2.4-next.3

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 (141) hide show
  1. package/conversation/index.d.ts +1 -0
  2. package/customer-management/index.d.ts +167 -0
  3. package/document-management/index.d.ts +99 -13
  4. package/fesm2022/acorex-modules-conversation.mjs +49 -32
  5. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  6. package/fesm2022/acorex-modules-customer-management-acorex-modules-customer-management-OQ1bNJgq.mjs +679 -0
  7. package/fesm2022/acorex-modules-customer-management-acorex-modules-customer-management-OQ1bNJgq.mjs.map +1 -0
  8. package/fesm2022/acorex-modules-customer-management-activity.entity-DMe1FSzX.mjs +98 -0
  9. package/fesm2022/acorex-modules-customer-management-activity.entity-DMe1FSzX.mjs.map +1 -0
  10. package/fesm2022/acorex-modules-customer-management-customer-segment.entity-BwaPguXv.mjs +83 -0
  11. package/fesm2022/acorex-modules-customer-management-customer-segment.entity-BwaPguXv.mjs.map +1 -0
  12. package/fesm2022/acorex-modules-customer-management-customer-type.entity--593B7S-.mjs +95 -0
  13. package/fesm2022/acorex-modules-customer-management-customer-type.entity--593B7S-.mjs.map +1 -0
  14. package/fesm2022/acorex-modules-customer-management-customer.entity-Bh9tz06I.mjs +344 -0
  15. package/fesm2022/acorex-modules-customer-management-customer.entity-Bh9tz06I.mjs.map +1 -0
  16. package/fesm2022/acorex-modules-customer-management-deal-contact-role.entity-CZIIOqbm.mjs +147 -0
  17. package/fesm2022/acorex-modules-customer-management-deal-contact-role.entity-CZIIOqbm.mjs.map +1 -0
  18. package/fesm2022/acorex-modules-customer-management-lead.entity-DGtsH0mF.mjs +97 -0
  19. package/fesm2022/acorex-modules-customer-management-lead.entity-DGtsH0mF.mjs.map +1 -0
  20. package/fesm2022/acorex-modules-customer-management-lifecycle-stage.entity-BAsoYXzc.mjs +72 -0
  21. package/fesm2022/acorex-modules-customer-management-lifecycle-stage.entity-BAsoYXzc.mjs.map +1 -0
  22. package/fesm2022/acorex-modules-customer-management-opportunity-stage.entity-CwWixlpD.mjs +72 -0
  23. package/fesm2022/acorex-modules-customer-management-opportunity-stage.entity-CwWixlpD.mjs.map +1 -0
  24. package/fesm2022/acorex-modules-customer-management-opportunity.entity-U0QaZb0W.mjs +188 -0
  25. package/fesm2022/acorex-modules-customer-management-opportunity.entity-U0QaZb0W.mjs.map +1 -0
  26. package/fesm2022/acorex-modules-customer-management-sales-pipeline.entity-BKl_WTld.mjs +72 -0
  27. package/fesm2022/acorex-modules-customer-management-sales-pipeline.entity-BKl_WTld.mjs.map +1 -0
  28. package/fesm2022/acorex-modules-customer-management-sales-territory.entity-DKV0CYPg.mjs +72 -0
  29. package/fesm2022/acorex-modules-customer-management-sales-territory.entity-DKV0CYPg.mjs.map +1 -0
  30. package/fesm2022/acorex-modules-customer-management.mjs +2 -0
  31. package/fesm2022/acorex-modules-customer-management.mjs.map +1 -0
  32. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BCTTw-hI.mjs → acorex-modules-document-management-acorex-modules-document-management-uQnZ0m0T.mjs} +1437 -428
  33. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-uQnZ0m0T.mjs.map +1 -0
  34. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C80j1Gn7.mjs → acorex-modules-document-management-attachment-widget.component-Be8WgyUR.mjs} +2 -2
  35. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-C80j1Gn7.mjs.map → acorex-modules-document-management-attachment-widget.component-Be8WgyUR.mjs.map} +1 -1
  36. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BFnvHSjH.mjs → acorex-modules-document-management-create-folder-dialog.component-BlyK5a50.mjs} +4 -4
  37. package/fesm2022/{acorex-modules-document-management-create-folder-dialog.component-BFnvHSjH.mjs.map → acorex-modules-document-management-create-folder-dialog.component-BlyK5a50.mjs.map} +1 -1
  38. package/fesm2022/{acorex-modules-document-management-details-view.component-7OR6bXr-.mjs → acorex-modules-document-management-details-view.component-BlTJ_p5m.mjs} +2 -2
  39. package/fesm2022/{acorex-modules-document-management-details-view.component-7OR6bXr-.mjs.map → acorex-modules-document-management-details-view.component-BlTJ_p5m.mjs.map} +1 -1
  40. package/fesm2022/{acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs → acorex-modules-document-management-document-distribution-popup.component-BFL8zeml.mjs} +4 -4
  41. package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-BFL8zeml.mjs.map +1 -0
  42. package/fesm2022/{acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs → acorex-modules-document-management-document-send-to-review-popup.component-CoymgoD7.mjs} +4 -4
  43. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CoymgoD7.mjs.map +1 -0
  44. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs → acorex-modules-document-management-document-signature-popup.component-BONQz9u3.mjs} +4 -4
  45. package/fesm2022/{acorex-modules-document-management-document-signature-popup.component-BOjb2k4S.mjs.map → acorex-modules-document-management-document-signature-popup.component-BONQz9u3.mjs.map} +1 -1
  46. package/fesm2022/{acorex-modules-document-management-drive-choose.component-B66hegSh.mjs → acorex-modules-document-management-drive-choose.component-B1CoE7aP.mjs} +4 -4
  47. package/fesm2022/{acorex-modules-document-management-drive-choose.component-B66hegSh.mjs.map → acorex-modules-document-management-drive-choose.component-B1CoE7aP.mjs.map} +1 -1
  48. package/fesm2022/{acorex-modules-document-management-drive.component-DZhd1DUn.mjs → acorex-modules-document-management-drive.component-I5pzEVVg.mjs} +5 -5
  49. package/fesm2022/{acorex-modules-document-management-drive.component-DZhd1DUn.mjs.map → acorex-modules-document-management-drive.component-I5pzEVVg.mjs.map} +1 -1
  50. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs → acorex-modules-document-management-large-icons-view.component-9GtpGvk4.mjs} +2 -2
  51. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-DJn6kyvL.mjs.map → acorex-modules-document-management-large-icons-view.component-9GtpGvk4.mjs.map} +1 -1
  52. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs → acorex-modules-document-management-large-tiles-view.component-ByBZUD_u.mjs} +2 -2
  53. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-BeR4aIqh.mjs.map → acorex-modules-document-management-large-tiles-view.component-ByBZUD_u.mjs.map} +1 -1
  54. package/fesm2022/{acorex-modules-document-management-list-view.component-oDeeGScM.mjs → acorex-modules-document-management-list-view.component-ClW5GdHG.mjs} +2 -2
  55. package/fesm2022/{acorex-modules-document-management-list-view.component-oDeeGScM.mjs.map → acorex-modules-document-management-list-view.component-ClW5GdHG.mjs.map} +1 -1
  56. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs → acorex-modules-document-management-meta-choose-popup.component-DXTdVhrh.mjs} +3 -3
  57. package/fesm2022/{acorex-modules-document-management-meta-choose-popup.component-BbPbZmkc.mjs.map → acorex-modules-document-management-meta-choose-popup.component-DXTdVhrh.mjs.map} +1 -1
  58. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs → acorex-modules-document-management-permission-definition.provider-CljbPHm-.mjs} +2 -2
  59. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-CMEJt7pe.mjs.map → acorex-modules-document-management-permission-definition.provider-CljbPHm-.mjs.map} +1 -1
  60. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs → acorex-modules-document-management-rename-node-dialog.component-xeY0XzAG.mjs} +4 -4
  61. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-Da9v8nVj.mjs.map → acorex-modules-document-management-rename-node-dialog.component-xeY0XzAG.mjs.map} +1 -1
  62. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs → acorex-modules-document-management-small-icons-view.component--GP3AYPi.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-Wfms-st6.mjs.map → acorex-modules-document-management-small-icons-view.component--GP3AYPi.mjs.map} +1 -1
  64. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs → acorex-modules-document-management-small-tiles-view.component-BVxR6ndq.mjs} +2 -2
  65. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-DSDfR1nj.mjs.map → acorex-modules-document-management-small-tiles-view.component-BVxR6ndq.mjs.map} +1 -1
  66. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  67. package/fesm2022/{acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs → acorex-modules-help-desk-acorex-modules-help-desk-UzQZBc6W.mjs} +19 -79
  68. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-UzQZBc6W.mjs.map +1 -0
  69. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs → acorex-modules-help-desk-capture-screen.component-C4veMiCB.mjs} +4 -4
  70. package/fesm2022/{acorex-modules-help-desk-capture-screen.component-DIMqm4q_.mjs.map → acorex-modules-help-desk-capture-screen.component-C4veMiCB.mjs.map} +1 -1
  71. package/fesm2022/acorex-modules-help-desk.mjs +1 -1
  72. package/fesm2022/acorex-modules-log-management.mjs +261 -10
  73. package/fesm2022/acorex-modules-log-management.mjs.map +1 -1
  74. package/fesm2022/{acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs → acorex-modules-meeting-management-meeting-publish-popup.component-BKZy7M-X.mjs} +2 -2
  75. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-BKZy7M-X.mjs.map +1 -0
  76. package/fesm2022/acorex-modules-meeting-management.mjs +51 -11
  77. package/fesm2022/acorex-modules-meeting-management.mjs.map +1 -1
  78. package/fesm2022/{acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs → acorex-modules-organization-management-branch.entity-Dres_jqx.mjs} +4 -2
  79. package/fesm2022/acorex-modules-organization-management-branch.entity-Dres_jqx.mjs.map +1 -0
  80. package/fesm2022/{acorex-modules-organization-management-department.entity-BbBrK4BN.mjs → acorex-modules-organization-management-department.entity-Cot-9HVC.mjs} +4 -2
  81. package/fesm2022/acorex-modules-organization-management-department.entity-Cot-9HVC.mjs.map +1 -0
  82. package/fesm2022/{acorex-modules-organization-management-division.entity-DdX7LcCU.mjs → acorex-modules-organization-management-division.entity-Dg68kBto.mjs} +11 -5
  83. package/fesm2022/acorex-modules-organization-management-division.entity-Dg68kBto.mjs.map +1 -0
  84. package/fesm2022/acorex-modules-organization-management-employee-skill.entity-DoQcCwQz.mjs +296 -0
  85. package/fesm2022/acorex-modules-organization-management-employee-skill.entity-DoQcCwQz.mjs.map +1 -0
  86. package/fesm2022/{acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs → acorex-modules-organization-management-employee.entity-BuvyXqnP.mjs} +92 -311
  87. package/fesm2022/acorex-modules-organization-management-employee.entity-BuvyXqnP.mjs.map +1 -0
  88. package/fesm2022/{acorex-modules-organization-management-role.entity-BdjgFsgo.mjs → acorex-modules-organization-management-position.entity-DK-i78ck.mjs} +18 -93
  89. package/fesm2022/acorex-modules-organization-management-position.entity-DK-i78ck.mjs.map +1 -0
  90. package/fesm2022/{acorex-modules-organization-management-position.entity-DT7EyvrR.mjs → acorex-modules-organization-management-role.entity-DVoKtduv.mjs} +10 -25
  91. package/fesm2022/acorex-modules-organization-management-role.entity-DVoKtduv.mjs.map +1 -0
  92. package/fesm2022/{acorex-modules-organization-management-team.entity-DkRLWl0u.mjs → acorex-modules-organization-management-team.entity-D6iNAU4g.mjs} +14 -12
  93. package/fesm2022/acorex-modules-organization-management-team.entity-D6iNAU4g.mjs.map +1 -0
  94. package/fesm2022/acorex-modules-organization-management.mjs +59 -154
  95. package/fesm2022/acorex-modules-organization-management.mjs.map +1 -1
  96. package/fesm2022/{acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs → acorex-modules-party-management-acorex-modules-party-management-BY6hXmhQ.mjs} +42 -7
  97. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BY6hXmhQ.mjs.map +1 -0
  98. package/fesm2022/acorex-modules-party-management-industry.entity-CALiUOAF.mjs +91 -0
  99. package/fesm2022/acorex-modules-party-management-industry.entity-CALiUOAF.mjs.map +1 -0
  100. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs → acorex-modules-party-management-party-identifier-type.entity-BTkKl8Ka.mjs} +2 -2
  101. package/fesm2022/{acorex-modules-party-management-party-identifier-type.entity-BYsWpup7.mjs.map → acorex-modules-party-management-party-identifier-type.entity-BTkKl8Ka.mjs.map} +1 -1
  102. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs → acorex-modules-party-management-party-identifier.entity-eDKHu-Ek.mjs} +2 -2
  103. package/fesm2022/{acorex-modules-party-management-party-identifier.entity-DSn4lsX-.mjs.map → acorex-modules-party-management-party-identifier.entity-eDKHu-Ek.mjs.map} +1 -1
  104. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs → acorex-modules-party-management-party-relationship.entity-BNTNx-oY.mjs} +2 -2
  105. package/fesm2022/{acorex-modules-party-management-party-relationship.entity-BG5zuKPH.mjs.map → acorex-modules-party-management-party-relationship.entity-BNTNx-oY.mjs.map} +1 -1
  106. package/fesm2022/{acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs → acorex-modules-party-management-party-role.entity-iETQVgTK.mjs} +3 -3
  107. package/fesm2022/acorex-modules-party-management-party-role.entity-iETQVgTK.mjs.map +1 -0
  108. package/fesm2022/{acorex-modules-party-management-party.entity-BwAAZRJc.mjs → acorex-modules-party-management-party.entity-lRpTfdRp.mjs} +7 -7
  109. package/fesm2022/acorex-modules-party-management-party.entity-lRpTfdRp.mjs.map +1 -0
  110. package/fesm2022/acorex-modules-party-management.mjs +1 -1
  111. package/fesm2022/acorex-modules-project-management.mjs +1 -1
  112. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  113. package/fesm2022/acorex-modules-report-management.mjs +289 -160
  114. package/fesm2022/acorex-modules-report-management.mjs.map +1 -1
  115. package/fesm2022/acorex-modules-security-management.mjs +50 -243
  116. package/fesm2022/acorex-modules-security-management.mjs.map +1 -1
  117. package/fesm2022/{acorex-modules-task-management-task-board.page-BBbHu2jz.mjs → acorex-modules-task-management-task-board.page-DsaCXemI.mjs} +5 -5
  118. package/fesm2022/acorex-modules-task-management-task-board.page-DsaCXemI.mjs.map +1 -0
  119. package/fesm2022/acorex-modules-task-management.mjs +2 -2
  120. package/fesm2022/acorex-modules-task-management.mjs.map +1 -1
  121. package/organization-management/index.d.ts +49 -16
  122. package/package.json +5 -1
  123. package/party-management/index.d.ts +6 -0
  124. package/report-management/index.d.ts +234 -231
  125. package/security-management/index.d.ts +1 -4
  126. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BCTTw-hI.mjs.map +0 -1
  127. package/fesm2022/acorex-modules-document-management-document-distribution-popup.component-DB4JJ3w7.mjs.map +0 -1
  128. package/fesm2022/acorex-modules-document-management-document-send-to-review-popup.component-CtpLvPIr.mjs.map +0 -1
  129. package/fesm2022/acorex-modules-help-desk-acorex-modules-help-desk-Bvoh_GpG.mjs.map +0 -1
  130. package/fesm2022/acorex-modules-meeting-management-meeting-publish-popup.component-PcBFprq3.mjs.map +0 -1
  131. package/fesm2022/acorex-modules-organization-management-branch.entity-B_CYwiX9.mjs.map +0 -1
  132. package/fesm2022/acorex-modules-organization-management-department.entity-BbBrK4BN.mjs.map +0 -1
  133. package/fesm2022/acorex-modules-organization-management-division.entity-DdX7LcCU.mjs.map +0 -1
  134. package/fesm2022/acorex-modules-organization-management-employee.entity-zDTyY9NK.mjs.map +0 -1
  135. package/fesm2022/acorex-modules-organization-management-position.entity-DT7EyvrR.mjs.map +0 -1
  136. package/fesm2022/acorex-modules-organization-management-role.entity-BdjgFsgo.mjs.map +0 -1
  137. package/fesm2022/acorex-modules-organization-management-team.entity-DkRLWl0u.mjs.map +0 -1
  138. package/fesm2022/acorex-modules-party-management-acorex-modules-party-management-BFyD7IcC.mjs.map +0 -1
  139. package/fesm2022/acorex-modules-party-management-party-role.entity-jCTZL0mT.mjs.map +0 -1
  140. package/fesm2022/acorex-modules-party-management-party.entity-BwAAZRJc.mjs.map +0 -1
  141. package/fesm2022/acorex-modules-task-management-task-board.page-BBbHu2jz.mjs.map +0 -1
@@ -225,6 +225,7 @@ declare class AXMChatManagementService {
225
225
  private readonly sessionService;
226
226
  private readonly usersService;
227
227
  private readonly realtimeService;
228
+ private readonly notificationConnectorService;
228
229
  private getCurrentUser;
229
230
  private getUserInfo;
230
231
  private formatMessage;
@@ -0,0 +1,167 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ declare const RootConfig: {
4
+ config: {
5
+ i18n: string;
6
+ module: string;
7
+ };
8
+ module: {
9
+ route: string;
10
+ name: string;
11
+ title: string;
12
+ icon: string;
13
+ };
14
+ entities: {
15
+ customer: {
16
+ name: string;
17
+ source: string;
18
+ title: string;
19
+ titlePlural: string;
20
+ icon: string;
21
+ };
22
+ customerType: {
23
+ name: string;
24
+ source: string;
25
+ title: string;
26
+ titlePlural: string;
27
+ icon: string;
28
+ };
29
+ customerSegment: {
30
+ name: string;
31
+ source: string;
32
+ title: string;
33
+ titlePlural: string;
34
+ icon: string;
35
+ };
36
+ lead: {
37
+ name: string;
38
+ source: string;
39
+ title: string;
40
+ titlePlural: string;
41
+ icon: string;
42
+ };
43
+ opportunity: {
44
+ name: string;
45
+ source: string;
46
+ title: string;
47
+ titlePlural: string;
48
+ icon: string;
49
+ };
50
+ opportunityStage: {
51
+ name: string;
52
+ source: string;
53
+ title: string;
54
+ titlePlural: string;
55
+ icon: string;
56
+ };
57
+ salesPipeline: {
58
+ name: string;
59
+ source: string;
60
+ title: string;
61
+ titlePlural: string;
62
+ icon: string;
63
+ };
64
+ activity: {
65
+ name: string;
66
+ source: string;
67
+ title: string;
68
+ titlePlural: string;
69
+ icon: string;
70
+ };
71
+ dealContactRole: {
72
+ name: string;
73
+ source: string;
74
+ title: string;
75
+ titlePlural: string;
76
+ icon: string;
77
+ };
78
+ lifecycleStage: {
79
+ name: string;
80
+ source: string;
81
+ title: string;
82
+ titlePlural: string;
83
+ icon: string;
84
+ };
85
+ salesTerritory: {
86
+ name: string;
87
+ source: string;
88
+ title: string;
89
+ titlePlural: string;
90
+ icon: string;
91
+ };
92
+ };
93
+ };
94
+
95
+ declare class AXMCustomerManagementCustomerEntityModule {
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementCustomerEntityModule, never>;
97
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementCustomerEntityModule, never, never, never>;
98
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementCustomerEntityModule>;
99
+ }
100
+
101
+ declare class AXMCustomerManagementCustomerTypeEntityModule {
102
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementCustomerTypeEntityModule, never>;
103
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementCustomerTypeEntityModule, never, never, never>;
104
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementCustomerTypeEntityModule>;
105
+ }
106
+
107
+ declare class AXMCustomerManagementCustomerSegmentEntityModule {
108
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementCustomerSegmentEntityModule, never>;
109
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementCustomerSegmentEntityModule, never, never, never>;
110
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementCustomerSegmentEntityModule>;
111
+ }
112
+
113
+ declare class AXMCustomerManagementLeadEntityModule {
114
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementLeadEntityModule, never>;
115
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementLeadEntityModule, never, never, never>;
116
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementLeadEntityModule>;
117
+ }
118
+
119
+ declare class AXMCustomerManagementOpportunityStageEntityModule {
120
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementOpportunityStageEntityModule, never>;
121
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementOpportunityStageEntityModule, never, never, never>;
122
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementOpportunityStageEntityModule>;
123
+ }
124
+
125
+ declare class AXMCustomerManagementSalesPipelineEntityModule {
126
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementSalesPipelineEntityModule, never>;
127
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementSalesPipelineEntityModule, never, never, never>;
128
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementSalesPipelineEntityModule>;
129
+ }
130
+
131
+ declare class AXMCustomerManagementLifecycleStageEntityModule {
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementLifecycleStageEntityModule, never>;
133
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementLifecycleStageEntityModule, never, never, never>;
134
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementLifecycleStageEntityModule>;
135
+ }
136
+
137
+ declare class AXMCustomerManagementSalesTerritoryEntityModule {
138
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementSalesTerritoryEntityModule, never>;
139
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementSalesTerritoryEntityModule, never, never, never>;
140
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementSalesTerritoryEntityModule>;
141
+ }
142
+
143
+ declare class AXMCustomerManagementOpportunityEntityModule {
144
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementOpportunityEntityModule, never>;
145
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementOpportunityEntityModule, never, never, never>;
146
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementOpportunityEntityModule>;
147
+ }
148
+
149
+ declare class AXMCustomerManagementActivityEntityModule {
150
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementActivityEntityModule, never>;
151
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementActivityEntityModule, never, never, never>;
152
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementActivityEntityModule>;
153
+ }
154
+
155
+ declare class AXMCustomerManagementDealContactRoleEntityModule {
156
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementDealContactRoleEntityModule, never>;
157
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementDealContactRoleEntityModule, never, never, never>;
158
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementDealContactRoleEntityModule>;
159
+ }
160
+
161
+ declare class AXMCustomerManagementModule {
162
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMCustomerManagementModule, never>;
163
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMCustomerManagementModule, never, [typeof AXMCustomerManagementCustomerEntityModule, typeof AXMCustomerManagementCustomerTypeEntityModule, typeof AXMCustomerManagementCustomerSegmentEntityModule, typeof AXMCustomerManagementLeadEntityModule, typeof AXMCustomerManagementOpportunityStageEntityModule, typeof AXMCustomerManagementSalesPipelineEntityModule, typeof AXMCustomerManagementLifecycleStageEntityModule, typeof AXMCustomerManagementSalesTerritoryEntityModule, typeof AXMCustomerManagementOpportunityEntityModule, typeof AXMCustomerManagementActivityEntityModule, typeof AXMCustomerManagementDealContactRoleEntityModule], never>;
164
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMCustomerManagementModule>;
165
+ }
166
+
167
+ export { AXMCustomerManagementModule, RootConfig };
@@ -1,13 +1,15 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injector } from '@angular/core';
3
3
  import * as i1 from '@acorex/platform/layout/components';
4
+ import { AXPDynamicFormDefinition } from '@acorex/platform/layout/components';
4
5
  import * as i7 from '@acorex/platform/layout/builder';
5
- import { AXPMetaDataDefinition } from '@acorex/platform/layout/builder';
6
+ import { AXPMetaDataDefinition, AXPWidgetConfig, AXPValueWidgetComponent, AXPWidgetNode, AXPColumnWidgetComponent } from '@acorex/platform/layout/builder';
6
7
  import * as i9 from '@acorex/components/media-viewer';
7
8
  import * as i10 from '@acorex/platform/workflow';
8
9
  import { AXPEntity, AXPMenuProvider, AXPMenuProviderContext, AXPSearchCommandProvider, AXPSearchResult, AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '@acorex/platform/common';
9
10
  import { AXPEntityModel, AXMEntityCrudServiceImpl, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';
10
- import { AXPApplicationUserReference, AXPFileListItem } from '@acorex/platform/core';
11
+ import { AXPApplicationUserReference, AXPFileListItem, AXPExpression, AXPRequiredValidationRule, AXPContextData, AXPContextChangeEvent } from '@acorex/platform/core';
12
+ import { AXFileService } from '@acorex/core/file';
11
13
 
12
14
  declare class AXMDriveChooseModule {
13
15
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMDriveChooseModule, never>;
@@ -68,6 +70,12 @@ declare const RootConfig: {
68
70
  icon: string;
69
71
  };
70
72
  entities: {
73
+ documentRelated: {
74
+ name: string;
75
+ title: string;
76
+ titlePlural: string;
77
+ icon: string;
78
+ };
71
79
  distributionInteraction: {
72
80
  name: string;
73
81
  title: string;
@@ -188,12 +196,17 @@ declare class AXMReviewServiceImpl extends AXMReviewService {
188
196
  }
189
197
 
190
198
  type AXMDocumentWorkflowPhase = 'Draft' | 'PendingReview' | 'Rejected' | 'Reviewed' | 'Distributed' | 'Completed';
199
+ interface AXMDocumentMeta {
200
+ name: string;
201
+ title: string;
202
+ value: string;
203
+ }
191
204
  interface AXMDocumentManagementDocumentEntityModel extends AXPEntityModel<string> {
192
205
  name: string;
193
206
  title: string;
194
207
  documentType: AXMDocumentManagementDocumentTypeEntityModel;
195
208
  parentId: string;
196
- fileId: string;
209
+ fileId: string | AXPFileListItem | any;
197
210
  refRecordId?: string;
198
211
  refEntity?: string;
199
212
  description?: string;
@@ -202,15 +215,9 @@ interface AXMDocumentManagementDocumentEntityModel extends AXPEntityModel<string
202
215
  reviewRecordId?: string;
203
216
  expirationDate?: Date;
204
217
  fileData?: AXPFileListItem[];
205
- status: AXMDocumentWorkflowPhase;
218
+ status?: AXMDocumentWorkflowPhase;
206
219
  documentReview?: AXMDocumentManagementReviewEntityModel;
207
- meta?: {
208
- [key: string]: {
209
- name: string;
210
- title: string;
211
- value: string;
212
- };
213
- };
220
+ meta?: Record<string, AXMDocumentMeta>;
214
221
  }
215
222
  interface GetNextStatusOptions {
216
223
  current: AXMDocumentWorkflowPhase;
@@ -384,6 +391,8 @@ declare class AXMDistributionInteractionServiceImpl extends AXMDistributionInter
384
391
  static ɵprov: i0.ɵɵInjectableDeclaration<AXMDistributionInteractionServiceImpl>;
385
392
  }
386
393
 
394
+ declare function documentRelatedFactory(injector: Injector): Promise<AXPEntity | null>;
395
+
387
396
  declare class AXMEntityProvider implements AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader {
388
397
  private injector;
389
398
  preload(): AXPEntityPreloadEntity[];
@@ -406,5 +415,82 @@ declare class AXMSettingProvider implements AXPSettingDefinitionProvider {
406
415
  provide(context: AXPSettingDefinitionProviderContext): Promise<void>;
407
416
  }
408
417
 
409
- export { AXMDistributionInteractionService, AXMDistributionInteractionServiceImpl, AXMDistributionService, AXMDistributionServiceImpl, AXMDocumentManagementDocumentEntityModule, AXMDocumentManagementDocumentTypeEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl, AXMDocumentManagementDocumentTypeMetaValueEntityModule, AXMDocumentManagementDocumentTypeMetaValueEntityService, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl, AXMDocumentManagementModule, AXMDocumentService, AXMDocumentServiceImpl, AXMDocumentTypeService, AXMDocumentTypeServiceImpl, AXMEntityProvider, AXMFolderService, AXMFolderServiceImpl, AXMMenuProvider, AXMReviewService, AXMReviewServiceImpl, AXMSearchCommandProvider, AXMSettingProvider, RootConfig, canTransition, distributionFactory, distributionInteractionFactory, documentFactory, documentTypeFactory, documentTypeMetaDefinitionfactory, documentTypeMetaValueFactory, documentTypeStatusDefinitionFactory, folderFactory, getNextStatus, reviewFactory };
410
- export type { AXMDistributionInteractionSummary, AXMDocumentInheritanceType, AXMDocumentManagementDistributionEntityModel, AXMDocumentManagementDistributionInteractionEntityModel, AXMDocumentManagementDocumentEntityModel, AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModel, AXMDocumentManagementDocumentTypeMetaValueEntityModel, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModel, AXMDocumentManagementFolderCreateDto, AXMDocumentManagementFolderEntityModel, AXMDocumentManagementFolderGetDto, AXMDocumentManagementReviewEntityModel, AXMDocumentWorkflowPhase, DocumentTypeFileOutput };
418
+ declare const AXPDocumentUploaderWidget: AXPWidgetConfig;
419
+ declare module '@acorex/platform/layout/builder' {
420
+ interface AXPWidgetTypesMap {
421
+ documentUploader: 'document-uploader';
422
+ }
423
+ }
424
+ interface AXPDocumentUploaderWidgetOptions {
425
+ disabled?: boolean | AXPExpression;
426
+ readonly?: boolean | AXPExpression;
427
+ multiple?: boolean;
428
+ downloadable?: boolean;
429
+ accept?: string;
430
+ fileEditable?: boolean;
431
+ validations?: AXPRequiredValidationRule[];
432
+ }
433
+
434
+ declare class AXPDocumentUploaderWidgetDesignerComponent extends AXPValueWidgetComponent<AXPFileListItem[]> {
435
+ protected placeholder: i0.Signal<string>;
436
+ protected disabled: i0.Signal<boolean>;
437
+ protected readonly: i0.Signal<boolean>;
438
+ protected hasClearButton: i0.Signal<boolean>;
439
+ protected fileCount: i0.Signal<number>;
440
+ protected hasFiles: i0.Signal<boolean>;
441
+ private get __class();
442
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetDesignerComponent, never>;
443
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetDesignerComponent, "axp-document-uploader-widget-designer", never, {}, {}, never, never, true, never>;
444
+ }
445
+
446
+ declare class AXPDocumentUploaderWidgetEditComponent extends AXPValueWidgetComponent<AXMDocumentManagementDocumentEntityModel[]> {
447
+ protected readonly fileService: AXFileService;
448
+ protected readonly: i0.Signal<boolean>;
449
+ protected formDefinition: i0.WritableSignal<AXPDynamicFormDefinition>;
450
+ protected formContext: i0.WritableSignal<AXPContextData>;
451
+ protected defaultLayout: i0.Signal<{
452
+ positions: {
453
+ default: {
454
+ colSpan: number;
455
+ };
456
+ };
457
+ }>;
458
+ ngOnInit(): void;
459
+ private renderForm;
460
+ protected handleContextChange(event: AXPContextChangeEvent): void;
461
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetEditComponent, never>;
462
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetEditComponent, "axp-document-uploader-widget-edit", never, {}, {}, never, never, true, never>;
463
+ }
464
+
465
+ declare class AXPDocumentUploaderWidgetViewComponent extends AXPValueWidgetComponent<AXMDocumentManagementDocumentEntityModel[]> {
466
+ protected fileUploaderNode: i0.Signal<AXPWidgetNode>;
467
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetViewComponent, never>;
468
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetViewComponent, "axp-document-uploader-widget-view", never, {}, {}, never, never, true, never>;
469
+ }
470
+
471
+ declare class AXPDocumentUploaderWidgetFilterComponent extends AXPValueWidgetComponent<AXPFileListItem[]> {
472
+ protected hasFiles: i0.Signal<boolean>;
473
+ protected noFiles: i0.Signal<boolean>;
474
+ protected toggleHasFiles(): void;
475
+ protected toggleNoFiles(): void;
476
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetFilterComponent, never>;
477
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetFilterComponent, "ng-component", never, {}, {}, never, never, true, never>;
478
+ }
479
+
480
+ declare class AXPDocumentUploaderWidgetColumnComponent extends AXPColumnWidgetComponent<AXPFileListItem[]> {
481
+ protected count: i0.Signal<number>;
482
+ private fileService;
483
+ openFileList(): Promise<void>;
484
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetColumnComponent, never>;
485
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetColumnComponent, "ng-component", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
486
+ }
487
+
488
+ declare class AXPDocumentUploaderWidgetPrintComponent extends AXPValueWidgetComponent<AXPFileListItem[]> {
489
+ protected hasFiles: i0.Signal<boolean>;
490
+ protected formatFileSize(bytes?: number): string;
491
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDocumentUploaderWidgetPrintComponent, never>;
492
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXPDocumentUploaderWidgetPrintComponent, "ng-component", never, {}, {}, never, never, true, never>;
493
+ }
494
+
495
+ export { AXMDistributionInteractionService, AXMDistributionInteractionServiceImpl, AXMDistributionService, AXMDistributionServiceImpl, AXMDocumentManagementDocumentEntityModule, AXMDocumentManagementDocumentTypeEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModule, AXMDocumentManagementDocumentTypeMetaDefinitionEntityService, AXMDocumentManagementDocumentTypeMetaDefinitionEntityServiceImpl, AXMDocumentManagementDocumentTypeMetaValueEntityModule, AXMDocumentManagementDocumentTypeMetaValueEntityService, AXMDocumentManagementDocumentTypeMetaValueEntityServiceImpl, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModule, AXMDocumentManagementDocumentTypeStatusDefinitionEntityService, AXMDocumentManagementDocumentTypeStatusDefinitionEntityServiceImpl, AXMDocumentManagementModule, AXMDocumentService, AXMDocumentServiceImpl, AXMDocumentTypeService, AXMDocumentTypeServiceImpl, AXMEntityProvider, AXMFolderService, AXMFolderServiceImpl, AXMMenuProvider, AXMReviewService, AXMReviewServiceImpl, AXMSearchCommandProvider, AXMSettingProvider, AXPDocumentUploaderWidget, AXPDocumentUploaderWidgetColumnComponent, AXPDocumentUploaderWidgetDesignerComponent, AXPDocumentUploaderWidgetEditComponent, AXPDocumentUploaderWidgetFilterComponent, AXPDocumentUploaderWidgetPrintComponent, AXPDocumentUploaderWidgetViewComponent, RootConfig, canTransition, distributionFactory, distributionInteractionFactory, documentFactory, documentRelatedFactory, documentTypeFactory, documentTypeMetaDefinitionfactory, documentTypeMetaValueFactory, documentTypeStatusDefinitionFactory, folderFactory, getNextStatus, reviewFactory };
496
+ export type { AXMDistributionInteractionSummary, AXMDocumentInheritanceType, AXMDocumentManagementDistributionEntityModel, AXMDocumentManagementDistributionInteractionEntityModel, AXMDocumentManagementDocumentEntityModel, AXMDocumentManagementDocumentTypeEntityModel, AXMDocumentManagementDocumentTypeMetaDefinitionEntityModel, AXMDocumentManagementDocumentTypeMetaValueEntityModel, AXMDocumentManagementDocumentTypeStatusDefinitionEntityModel, AXMDocumentManagementFolderCreateDto, AXMDocumentManagementFolderEntityModel, AXMDocumentManagementFolderGetDto, AXMDocumentManagementReviewEntityModel, AXMDocumentMeta, AXMDocumentWorkflowPhase, AXPDocumentUploaderWidgetOptions, DocumentTypeFileOutput };
@@ -17,6 +17,7 @@ import * as i2$5 from '@acorex/platform/workflow';
17
17
  import { AXPWorkflowAction, AXPWorkflowModule } from '@acorex/platform/workflow';
18
18
  import { AXMUsersEntityService } from '@acorex/modules/security-management';
19
19
  import { Subject, filter, startWith, debounceTime } from 'rxjs';
20
+ import { AXMNotificationConnectorService, AXP_NOTIFICATION_DEFINITION_PROVIDER } from '@acorex/modules/notification-management';
20
21
  import * as i3 from '@acorex/components/avatar';
21
22
  import { AXAvatarModule } from '@acorex/components/avatar';
22
23
  import * as i2$2 from '@acorex/components/badge';
@@ -59,7 +60,6 @@ import { AXFormatModule } from '@acorex/core/format';
59
60
  import * as i4$1 from '@acorex/core/translation';
60
61
  import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
61
62
  import { AXUnsubscriber } from '@acorex/core/utils';
62
- import { AXMNotificationConnectorService, AXP_NOTIFICATION_DEFINITION_PROVIDER } from '@acorex/modules/notification-management';
63
63
  import { AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPageLayoutBase } from '@acorex/platform/layout/views';
64
64
  import { trigger, transition, style, animate } from '@angular/animations';
65
65
  import * as i10 from '@angular/forms';
@@ -982,6 +982,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.6", ngImpor
982
982
  }]
983
983
  }] });
984
984
 
985
+ function convertChatMessageToNotification(room, message, currentUser) {
986
+ return {
987
+ channel: 'InApp',
988
+ template: {
989
+ category: 'Inbox',
990
+ prority: 'Notice',
991
+ icon: 'fa-light fa-comment',
992
+ isPinned: false,
993
+ },
994
+ title: room.title || 'New Message',
995
+ body: message.message.content,
996
+ sender: message.author,
997
+ receiver: currentUser,
998
+ content: message.message,
999
+ readAt: null,
1000
+ type: 'Chat',
1001
+ data: {
1002
+ roomId: room.id,
1003
+ },
1004
+ };
1005
+ }
1006
+
985
1007
  class AXMChatService {
986
1008
  }
987
1009
  class AXMChatServiceImpl {
@@ -1119,6 +1141,7 @@ class AXMChatManagementService {
1119
1141
  this.sessionService = inject(AXPSessionService);
1120
1142
  this.usersService = inject(AXMUsersEntityService);
1121
1143
  this.realtimeService = inject(AXMChatRealtimeService);
1144
+ this.notificationConnectorService = inject(AXMNotificationConnectorService);
1122
1145
  }
1123
1146
  getCurrentUser() {
1124
1147
  const user = this.sessionService.user;
@@ -1138,7 +1161,7 @@ class AXMChatManagementService {
1138
1161
  return {
1139
1162
  id: user.id,
1140
1163
  type: 'user',
1141
- fullName: `${user.firstName} ${user.lastName}`.trim(),
1164
+ fullName: `${user.displayName}`.trim(),
1142
1165
  username: user.username?.trim(),
1143
1166
  };
1144
1167
  }
@@ -1329,6 +1352,24 @@ class AXMChatManagementService {
1329
1352
  const newMessage = await this.chatImplService.sendMessage(roomId, content, author, contentType, replyId);
1330
1353
  const formattedMessage = await this.formatMessage(newMessage);
1331
1354
  this.realtimeService.notifyMessage({ type: 'add', payload: formattedMessage });
1355
+ // Create a notification when a new message is sent by someone else
1356
+ try {
1357
+ const currentUser = this.getCurrentUser();
1358
+ if (formattedMessage.author.id !== currentUser.id) {
1359
+ const room = await this.getRoom(formattedMessage.roomId);
1360
+ const notification = convertChatMessageToNotification(room, formattedMessage, currentUser);
1361
+ await this.notificationConnectorService.create({
1362
+ ...notification,
1363
+ id: formattedMessage.id,
1364
+ entityName: 'notifications',
1365
+ createAt: new Date(),
1366
+ });
1367
+ }
1368
+ }
1369
+ catch (error) {
1370
+ // Non-blocking: log and continue
1371
+ console.error('Failed to create notification for new message', error);
1372
+ }
1332
1373
  return formattedMessage;
1333
1374
  }
1334
1375
  async getMessages(roomId, skip, take) {
@@ -1637,7 +1678,7 @@ class AXMCommentManagementService {
1637
1678
  async getUserInfo(userId) {
1638
1679
  try {
1639
1680
  const user = await this.usersService.getOne(userId);
1640
- return { id: userId, type: 'user', fullName: user.firstName + ' ' + user.lastName, username: user.username };
1681
+ return { id: userId, type: 'user', fullName: user.displayName, username: user.username };
1641
1682
  }
1642
1683
  catch {
1643
1684
  throw new Error(`User with ID ${userId} not found`);
@@ -2203,7 +2244,7 @@ class AXMCommentComponent {
2203
2244
  }
2204
2245
  }
2205
2246
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.6", ngImport: i0, type: AXMCommentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2206
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMCommentComponent, isStandalone: true, selector: "axm-comment", inputs: { refrenceType: { classPropertyName: "refrenceType", publicName: "refrenceType", isSignal: true, isRequired: true, transformFunction: null }, refrenceId: { classPropertyName: "refrenceId", publicName: "refrenceId", isSignal: true, isRequired: true, transformFunction: null }, subject: { classPropertyName: "subject", publicName: "subject", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "wysiwygEditor", first: true, predicate: ["w"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ax-size-full ax-flex ax-flex-col ax-justify-between ax-p-4 ax-overflow-hidden\">\n <ax-comment-container class=\"ax-overflow-auto\">\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-py-12 ax-bg-lightest ax-px-5\">\n <ax-skeleton class=\"ax-min-w-16 ax-h-16 ax-rounded-full ax-me-4\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8/12 ax-h-2 ax-rounded-full\"></ax-skeleton>\n </div>\n </div>\n } @else if (!isLoading() && comments().length > 0) {\n <ax-comment-view class=\"ax-bg-lightest\">\n @for (comment of comments(); track comment.id) {\n <ax-comment-item [id]=\"comment.id!\" [replyCount]=\"comment.replyCount\"\n [class.highlighted]=\"highlightedCommentId() === comment.id\" [@fadeIn]>\n <axp-user-avatar #user [size]=\"48\" [userId]=\"comment.author.id\" ngProjectAs=\"'ax-avatar'\"></axp-user-avatar>\n <ax-title>{{ user.firstName() + ' ' + user.lastName() }}</ax-title>\n <ax-comment-date>{{ comment.createdAt | format: 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\"\n (click)=\"editMessage(comment, undefined, user.firstName() + ' ' + user.lastName())\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment.id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.message.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment)\" [liked]=\"isLikedByUser(comment)\">\n {{ getReactionsCount(comment) }}\n </ax-comment-like>\n <ax-comment-reply-text\n (click)=\"replyMessage(comment, undefined, user.firstName() + ' ' + user.lastName())\"></ax-comment-reply-text>\n @for (reply of comment.replies; track reply.id) {\n <ax-comment-item [id]=\"reply.id\" [class.highlighted]=\"highlightedCommentId() === reply.id\" [@fadeIn]>\n <axp-user-avatar #user2 [size]=\"48\" [userId]=\"reply.author.id\" ngProjectAs=\"'ax-avatar'\"></axp-user-avatar>\n <ax-title>{{ user2.firstName() + ' ' + user2.lastName() }}</ax-title>\n <ax-comment-date>{{ reply.createdAt | format: 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\"\n (click)=\"editMessage(comment, reply, user2.firstName() + ' ' + user2.lastName())\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(reply.id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.message.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(reply)\" [liked]=\"isLikedByUser(reply)\">\n {{ getReactionsCount(reply) }}\n </ax-comment-like>\n <ax-comment-reply-text\n (click)=\"replyMessage(comment, reply, user2.firstName() + ' ' + user2.lastName())\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n }\n </ax-comment-view>\n } @else {\n <div>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-justify-center ax-items-center ax-p-10\">\n <svg class=\"ax-mx-auto\" xmlns=\"http://www.w3.org/2000/svg\" width=\"154\" height=\"161\" viewBox=\"0 0 154 161\"\n fill=\"none\">\n <path\n d=\"M0.0616455 84.4268C0.0616455 42.0213 34.435 7.83765 76.6507 7.83765C118.803 7.83765 153.224 42.0055 153.224 84.4268C153.224 102.42 147.026 118.974 136.622 132.034C122.282 150.138 100.367 161 76.6507 161C52.7759 161 30.9882 150.059 16.6633 132.034C6.25961 118.974 0.0616455 102.42 0.0616455 84.4268Z\"\n fill=\"#EEF2FF\" />\n <path\n d=\"M96.8189 0.632498L96.8189 0.632384L96.8083 0.630954C96.2034 0.549581 95.5931 0.5 94.9787 0.5H29.338C22.7112 0.5 17.3394 5.84455 17.3394 12.4473V142.715C17.3394 149.318 22.7112 154.662 29.338 154.662H123.948C130.591 154.662 135.946 149.317 135.946 142.715V38.9309C135.946 38.0244 135.847 37.1334 135.648 36.2586L135.648 36.2584C135.117 33.9309 133.874 31.7686 132.066 30.1333C132.066 30.1331 132.065 30.1329 132.065 30.1327L103.068 3.65203C103.068 3.6519 103.067 3.65177 103.067 3.65164C101.311 2.03526 99.1396 0.995552 96.8189 0.632498Z\"\n fill=\"white\" stroke=\"#E5E7EB\" />\n <ellipse cx=\"80.0618\" cy=\"81\" rx=\"28.0342\" ry=\"28.0342\" fill=\"#EEF2FF\" />\n <path\n d=\"M99.2393 61.3061L99.2391 61.3058C88.498 50.5808 71.1092 50.5804 60.3835 61.3061C49.6423 72.0316 49.6422 89.4361 60.3832 100.162C71.109 110.903 88.4982 110.903 99.2393 100.162C109.965 89.4363 109.965 72.0317 99.2393 61.3061ZM105.863 54.6832C120.249 69.0695 120.249 92.3985 105.863 106.785C91.4605 121.171 68.1468 121.171 53.7446 106.785C39.3582 92.3987 39.3582 69.0693 53.7446 54.683C68.1468 40.2965 91.4605 40.2966 105.863 54.6832Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M110.782 119.267L102.016 110.492C104.888 108.267 107.476 105.651 109.564 102.955L118.329 111.729L110.782 119.267Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M139.122 125.781L139.122 125.78L123.313 109.988C123.313 109.987 123.313 109.987 123.312 109.986C121.996 108.653 119.849 108.657 118.521 109.985L118.871 110.335L118.521 109.985L109.047 119.459C107.731 120.775 107.735 122.918 109.044 124.247L109.047 124.249L124.858 140.06C128.789 143.992 135.191 143.992 139.122 140.06C143.069 136.113 143.069 129.728 139.122 125.781Z\"\n fill=\"#A5B4FC\" stroke=\"#818CF8\" />\n <path\n d=\"M83.185 87.2285C82.5387 87.2285 82.0027 86.6926 82.0027 86.0305C82.0027 83.3821 77.9987 83.3821 77.9987 86.0305C77.9987 86.6926 77.4627 87.2285 76.8006 87.2285C76.1543 87.2285 75.6183 86.6926 75.6183 86.0305C75.6183 80.2294 84.3831 80.2451 84.3831 86.0305C84.3831 86.6926 83.8471 87.2285 83.185 87.2285Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M93.3528 77.0926H88.403C87.7409 77.0926 87.2049 76.5567 87.2049 75.8946C87.2049 75.2483 87.7409 74.7123 88.403 74.7123H93.3528C94.0149 74.7123 94.5509 75.2483 94.5509 75.8946C94.5509 76.5567 94.0149 77.0926 93.3528 77.0926Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M71.5987 77.0925H66.6488C65.9867 77.0925 65.4507 76.5565 65.4507 75.8945C65.4507 75.2481 65.9867 74.7122 66.6488 74.7122H71.5987C72.245 74.7122 72.781 75.2481 72.781 75.8945C72.781 76.5565 72.245 77.0925 71.5987 77.0925Z\"\n fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"21.5128\" width=\"41.0256\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"133.65\" width=\"54.7009\" height=\"5.47009\" rx=\"2.73504\" fill=\"#A5B4FC\" />\n <rect x=\"38.3522\" y=\"29.7179\" width=\"13.6752\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"56.13\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"61.6001\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"67.0702\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n </svg>\n <div>\n <h2 class=\"ax-text-center ax-text-neutral-600 ax-font-semibold ax-leading-loose ax-pb-2\">\n There is no Comment!\n </h2>\n </div>\n </div>\n </div>\n }\n </ax-comment-container>\n <ax-form [updateOn]=\"'submit'\">\n <ax-form-field>\n <div>\n @if (isReplyingMode() || isEditingMode()) {\n <div\n class=\"ax-flex ax-justify-between ax-rounded-b-none ax-border ax-border-b-0 ax-rounded-lg ax-px-6 ax-py-3 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\">\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 dark:ax-text-primary-300 ax-text-2xl ax-me-4\"></i>\n <div\n class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle ax-leading-4 ax-overflow-hidden\">\n <p class=\"ax-text-primary-500 dark:ax-text-primary-300\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{ isReplyingMode() ? activeReplyComment()?.userName : '' }}\n </span>\n </p>\n <div class=\"ax-truncate\" [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.message?.content ?? '')\n : sanitizeHtml(activeEditComment()?.message?.content ?? '')\n \"></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-toolbar>\n <ax-content>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n </ax-content>\n <ax-suffix>\n <ax-dropdown-button [disabled]=\"hasCooldown() || !this.commentContent()\" type=\"submit\" color=\"primary\"\n mode=\"split\" text=\"Send\" (onClick)=\"submitComment()\">\n @if (isSubmitting()) {\n <ax-loading></ax-loading>\n }\n <!-- <ax-button-item-list>\n <ax-button-item (click)=\"submitComment()\" text=\"Send Private ...\" name=\"private\" data=\"private\">\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list> -->\n </ax-dropdown-button>\n </ax-suffix>\n </ax-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>", styles: [":host{display:block;width:100%;height:100%}ax-wysiwyg-container .ax-editor-container{border-top-left-radius:0!important;border-top-right-radius:0!important}ax-wysiwyg-container .ax-error-message{padding-left:.5rem}ax-wysiwyg-container .highlighted{background:var(--ax-color-primary-050)!important;border-radius:.25rem;transition:background 1s ease-in-out}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i1.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i1.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i1.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i1.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i1.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i1.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "ngmodule", type: AXConversationModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1$1.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: AXCommentModule }, { kind: "component", type: i4.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i4.AXCommentContainerComponent, selector: "ax-comment-container" }, { kind: "component", type: i4.AxCommentItemComponent, selector: "ax-comment-item", inputs: ["replyCount"] }, { kind: "component", type: i4.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"], outputs: ["likedChange", "onLiked"] }, { kind: "component", type: i4.AXMenuOptionsComponent, selector: "ax-comment-menu-options" }, { kind: "component", type: i4.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "component", type: i4.AXCommentDateComponent, selector: "ax-comment-date" }, { 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: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { 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: AXFormatModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i8.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i8.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i8.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "component", type: i9.AXToolBarComponent, selector: "ax-toolbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i11.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "pipe", type: i12.AXFormatPipe, name: "format" }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [
2247
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.6", type: AXMCommentComponent, isStandalone: true, selector: "axm-comment", inputs: { refrenceType: { classPropertyName: "refrenceType", publicName: "refrenceType", isSignal: true, isRequired: true, transformFunction: null }, refrenceId: { classPropertyName: "refrenceId", publicName: "refrenceId", isSignal: true, isRequired: true, transformFunction: null }, subject: { classPropertyName: "subject", publicName: "subject", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "wysiwygEditor", first: true, predicate: ["w"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"ax-size-full ax-flex ax-flex-col ax-justify-between ax-p-4 ax-overflow-hidden\">\n <ax-comment-container class=\"ax-overflow-auto\">\n @if (isLoading()) {\n <div class=\"ax-flex ax-items-center ax-py-12 ax-bg-lightest ax-px-5\">\n <ax-skeleton class=\"ax-min-w-16 ax-h-16 ax-rounded-full ax-me-4\"></ax-skeleton>\n <div class=\"ax-flex ax-flex-col ax-gap-2 ax-w-full\">\n <ax-skeleton class=\"ax-w-full ax-h-6 ax-rounded\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-full ax-h-2 ax-rounded-full\"></ax-skeleton>\n <ax-skeleton class=\"ax-w-8/12 ax-h-2 ax-rounded-full\"></ax-skeleton>\n </div>\n </div>\n } @else if (!isLoading() && comments().length > 0) {\n <ax-comment-view class=\"ax-bg-lightest\">\n @for (comment of comments(); track comment.id) {\n <ax-comment-item [id]=\"comment.id!\" [replyCount]=\"comment.replyCount\"\n [class.highlighted]=\"highlightedCommentId() === comment.id\" [@fadeIn]>\n <axp-user-avatar #user [size]=\"48\" [userId]=\"comment.author.id\" ngProjectAs=\"'ax-avatar'\"></axp-user-avatar>\n <ax-title>{{ user.firstName() + ' ' + user.lastName() }}</ax-title>\n <ax-comment-date>{{ comment.createdAt | format: 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\"\n (click)=\"editMessage(comment, undefined, user.firstName() + ' ' + user.lastName())\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(comment.id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(comment.message.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(comment)\" [liked]=\"isLikedByUser(comment)\">\n {{ getReactionsCount(comment) }}\n </ax-comment-like>\n <ax-comment-reply-text\n (click)=\"replyMessage(comment, undefined, user.firstName() + ' ' + user.lastName())\"></ax-comment-reply-text>\n @for (reply of comment.replies; track reply.id) {\n <ax-comment-item [id]=\"reply.id\" [class.highlighted]=\"highlightedCommentId() === reply.id\" [@fadeIn]>\n <axp-user-avatar #user2 [size]=\"48\" [userId]=\"reply.author.id\" ngProjectAs=\"'ax-avatar'\"></axp-user-avatar>\n <ax-title>{{ user2.firstName() + ' ' + user2.lastName() }}</ax-title>\n <ax-comment-date>{{ reply.createdAt | format: 'timeleft' | async }} </ax-comment-date>\n <ax-comment-menu-options>\n <ax-button class=\"ax-sm\" look=\"blank\" color=\"neutral\">\n <ax-icon icon=\"ax-icon ax-icon-solid ax-icon-more-horizontal\"></ax-icon>\n </ax-button>\n\n <ax-dropdown-panel>\n <ax-button-item-list>\n <ax-button-item text=\"Edit\" color=\"neutral\"\n (click)=\"editMessage(comment, reply, user2.firstName() + ' ' + user2.lastName())\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-edit\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n <ax-button-item text=\"Delete\" color=\"danger\" (click)=\"deleteComment(reply.id!)\">\n <ax-prefix>\n <ax-icon icon=\"fa-solid fa-trash-can\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list>\n </ax-dropdown-panel>\n </ax-comment-menu-options>\n <ax-content [innerHTML]=\"sanitizeHtml(reply.message.content)\"></ax-content>\n <ax-comment-like (click)=\"toggleLike(reply)\" [liked]=\"isLikedByUser(reply)\">\n {{ getReactionsCount(reply) }}\n </ax-comment-like>\n <ax-comment-reply-text\n (click)=\"replyMessage(comment, reply, user2.firstName() + ' ' + user2.lastName())\"></ax-comment-reply-text>\n </ax-comment-item>\n }\n </ax-comment-item>\n }\n </ax-comment-view>\n } @else {\n <div>\n <div class=\"ax-flex ax-flex-col ax-gap-4 ax-justify-center ax-items-center ax-p-10\">\n <svg class=\"ax-mx-auto\" xmlns=\"http://www.w3.org/2000/svg\" width=\"154\" height=\"161\" viewBox=\"0 0 154 161\"\n fill=\"none\">\n <path\n d=\"M0.0616455 84.4268C0.0616455 42.0213 34.435 7.83765 76.6507 7.83765C118.803 7.83765 153.224 42.0055 153.224 84.4268C153.224 102.42 147.026 118.974 136.622 132.034C122.282 150.138 100.367 161 76.6507 161C52.7759 161 30.9882 150.059 16.6633 132.034C6.25961 118.974 0.0616455 102.42 0.0616455 84.4268Z\"\n fill=\"#EEF2FF\" />\n <path\n d=\"M96.8189 0.632498L96.8189 0.632384L96.8083 0.630954C96.2034 0.549581 95.5931 0.5 94.9787 0.5H29.338C22.7112 0.5 17.3394 5.84455 17.3394 12.4473V142.715C17.3394 149.318 22.7112 154.662 29.338 154.662H123.948C130.591 154.662 135.946 149.317 135.946 142.715V38.9309C135.946 38.0244 135.847 37.1334 135.648 36.2586L135.648 36.2584C135.117 33.9309 133.874 31.7686 132.066 30.1333C132.066 30.1331 132.065 30.1329 132.065 30.1327L103.068 3.65203C103.068 3.6519 103.067 3.65177 103.067 3.65164C101.311 2.03526 99.1396 0.995552 96.8189 0.632498Z\"\n fill=\"white\" stroke=\"#E5E7EB\" />\n <ellipse cx=\"80.0618\" cy=\"81\" rx=\"28.0342\" ry=\"28.0342\" fill=\"#EEF2FF\" />\n <path\n d=\"M99.2393 61.3061L99.2391 61.3058C88.498 50.5808 71.1092 50.5804 60.3835 61.3061C49.6423 72.0316 49.6422 89.4361 60.3832 100.162C71.109 110.903 88.4982 110.903 99.2393 100.162C109.965 89.4363 109.965 72.0317 99.2393 61.3061ZM105.863 54.6832C120.249 69.0695 120.249 92.3985 105.863 106.785C91.4605 121.171 68.1468 121.171 53.7446 106.785C39.3582 92.3987 39.3582 69.0693 53.7446 54.683C68.1468 40.2965 91.4605 40.2966 105.863 54.6832Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M110.782 119.267L102.016 110.492C104.888 108.267 107.476 105.651 109.564 102.955L118.329 111.729L110.782 119.267Z\"\n stroke=\"#E5E7EB\" />\n <path\n d=\"M139.122 125.781L139.122 125.78L123.313 109.988C123.313 109.987 123.313 109.987 123.312 109.986C121.996 108.653 119.849 108.657 118.521 109.985L118.871 110.335L118.521 109.985L109.047 119.459C107.731 120.775 107.735 122.918 109.044 124.247L109.047 124.249L124.858 140.06C128.789 143.992 135.191 143.992 139.122 140.06C143.069 136.113 143.069 129.728 139.122 125.781Z\"\n fill=\"#A5B4FC\" stroke=\"#818CF8\" />\n <path\n d=\"M83.185 87.2285C82.5387 87.2285 82.0027 86.6926 82.0027 86.0305C82.0027 83.3821 77.9987 83.3821 77.9987 86.0305C77.9987 86.6926 77.4627 87.2285 76.8006 87.2285C76.1543 87.2285 75.6183 86.6926 75.6183 86.0305C75.6183 80.2294 84.3831 80.2451 84.3831 86.0305C84.3831 86.6926 83.8471 87.2285 83.185 87.2285Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M93.3528 77.0926H88.403C87.7409 77.0926 87.2049 76.5567 87.2049 75.8946C87.2049 75.2483 87.7409 74.7123 88.403 74.7123H93.3528C94.0149 74.7123 94.5509 75.2483 94.5509 75.8946C94.5509 76.5567 94.0149 77.0926 93.3528 77.0926Z\"\n fill=\"#4F46E5\" />\n <path\n d=\"M71.5987 77.0925H66.6488C65.9867 77.0925 65.4507 76.5565 65.4507 75.8945C65.4507 75.2481 65.9867 74.7122 66.6488 74.7122H71.5987C72.245 74.7122 72.781 75.2481 72.781 75.8945C72.781 76.5565 72.245 77.0925 71.5987 77.0925Z\"\n fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"21.5128\" width=\"41.0256\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <rect x=\"38.3522\" y=\"133.65\" width=\"54.7009\" height=\"5.47009\" rx=\"2.73504\" fill=\"#A5B4FC\" />\n <rect x=\"38.3522\" y=\"29.7179\" width=\"13.6752\" height=\"2.73504\" rx=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"56.13\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"61.6001\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n <circle cx=\"67.0702\" cy=\"31.0854\" r=\"1.36752\" fill=\"#4F46E5\" />\n </svg>\n <div>\n <h2 class=\"ax-text-center ax-text-neutral-600 ax-font-semibold ax-leading-loose ax-pb-2\">\n There is no Comment!\n </h2>\n </div>\n </div>\n </div>\n }\n </ax-comment-container>\n <ax-form [updateOn]=\"'submit'\">\n <ax-form-field>\n <div>\n @if (isReplyingMode() || isEditingMode()) {\n <div\n class=\"ax-flex ax-justify-between ax-rounded-b-none ax-border ax-border-b-0 ax-rounded-lg ax-px-6 ax-py-3 ax-w-full ax-items-center ax-overflow-hidden ax-text-sm ax-leading-none\">\n <div (click)=\"scrollMain()\" class=\"ax-flex ax-justify-start ax-items-center ax-cursor-pointer\">\n <i [class]=\"isReplyingMode() ? 'fa-reply' : 'fa-pen'\"\n class=\"fa-solid ax-text-primary-500 dark:ax-text-primary-300 ax-text-2xl ax-me-4\"></i>\n <div\n class=\"ax-flex ax-flex-col ax-gap-2 ax-justify-between ax-align-middle ax-leading-4 ax-overflow-hidden\">\n <p class=\"ax-text-primary-500 dark:ax-text-primary-300\">\n {{ isReplyingMode() ? 'Reply to ' : 'Edit Message' }}\n <span class=\"ax-font-bold\">\n {{ isReplyingMode() ? activeReplyComment()?.userName : '' }}\n </span>\n </p>\n <div class=\"ax-truncate\" [innerHTML]=\"\n isReplyingMode()\n ? sanitizeHtml(activeReplyComment()?.message?.content ?? '')\n : sanitizeHtml(activeEditComment()?.message?.content ?? '')\n \"></div>\n </div>\n </div>\n <div><i (click)=\"resetReplyEditState()\" class=\"fa-solid ax-text-2xl fa-xmark ax-cursor-pointer\"></i></div>\n </div>\n }\n <ax-wysiwyg-container #w [look]=\"wysiwygOptions().look\" [(ngModel)]=\"commentContent\">\n <ax-wysiwyg-view class=\"ax-min-h-28\"></ax-wysiwyg-view>\n <ax-toolbar>\n <ax-content>\n <ax-wysiwyg-history></ax-wysiwyg-history>\n <ax-wysiwyg-font-style></ax-wysiwyg-font-style>\n <ax-wysiwyg-colors></ax-wysiwyg-colors>\n <ax-wysiwyg-list></ax-wysiwyg-list>\n <ax-wysiwyg-alignment></ax-wysiwyg-alignment>\n </ax-content>\n <ax-suffix>\n <ax-dropdown-button [disabled]=\"hasCooldown() || !this.commentContent()\" type=\"submit\" color=\"primary\"\n mode=\"split\" text=\"Send\" (onClick)=\"submitComment()\">\n @if (isSubmitting()) {\n <ax-loading></ax-loading>\n }\n <!-- <ax-button-item-list>\n <ax-button-item (click)=\"submitComment()\" text=\"Send Private ...\" name=\"private\" data=\"private\">\n <ax-prefix>\n <ax-icon icon=\"fa-regular fa-user-secret\"></ax-icon>\n </ax-prefix>\n </ax-button-item>\n </ax-button-item-list> -->\n </ax-dropdown-button>\n </ax-suffix>\n </ax-toolbar>\n <ax-validation-rule rule=\"callback\" [options]=\"{ validate: validateContent }\"></ax-validation-rule>\n </ax-wysiwyg-container>\n </div>\n </ax-form-field>\n </ax-form>\n</div>", styles: [":host{display:block;width:100%;height:100%}ax-wysiwyg-container .ax-editor-container{border-top-left-radius:0!important;border-top-right-radius:0!important}ax-wysiwyg-container .ax-error-message{padding-left:.5rem}ax-wysiwyg-container .highlighted{background:var(--ax-color-primary-050)!important;border-radius:.25rem;transition:background 1s ease-in-out}\n"], dependencies: [{ kind: "ngmodule", type: AXWysiwygModule }, { kind: "component", type: i1.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i1.AXWysiwygViewComponent, selector: "ax-wysiwyg-view", inputs: ["class"] }, { kind: "component", type: i1.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i1.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i1.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i1.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i1.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "ngmodule", type: AXConversationModule }, { kind: "ngmodule", type: AXSkeletonModule }, { kind: "component", type: i2.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i1$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i1$1.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: AXCommentModule }, { kind: "component", type: i4.AXCommentViewComponent, selector: "ax-comment-view" }, { kind: "component", type: i4.AXCommentContainerComponent, selector: "ax-comment-container" }, { kind: "component", type: i4.AXCommentItemComponent, selector: "ax-comment-item", inputs: ["replyCount"] }, { kind: "component", type: i4.AXCommentLikeComponent, selector: "ax-comment-like", inputs: ["liked"], outputs: ["likedChange", "onLiked"] }, { kind: "component", type: i4.AXMenuOptionsComponent, selector: "ax-comment-menu-options" }, { kind: "component", type: i4.AXCommentReplyTextComponent, selector: "ax-comment-reply-text" }, { kind: "component", type: i4.AXCommentDateComponent, selector: "ax-comment-date" }, { 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: AXAvatarModule }, { kind: "ngmodule", type: AXImageModule }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i6.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { 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: AXFormatModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "component", type: i8.AXFormFieldComponent, selector: "ax-form-field", inputs: ["labelMode"] }, { kind: "component", type: i8.AXFormComponent, selector: "ax-form", inputs: ["labelMode", "look", "messageStyle", "updateOn"], outputs: ["onValidate", "updateOnChange"] }, { kind: "directive", type: i8.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: AXToolBarModule }, { kind: "component", type: i9.AXToolBarComponent, selector: "ax-toolbar" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXDropdownButtonModule }, { kind: "component", type: i11.AXDropdownButtonComponent, selector: "ax-dropdown-button", inputs: ["disabled", "size", "color", "look", "text", "type", "mode"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: AXPUserAvatarComponent, selector: "axp-user-avatar", inputs: ["size", "userId"] }, { kind: "pipe", type: i12.AXFormatPipe, name: "format" }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [
2207
2248
  trigger('fadeIn', [
2208
2249
  transition(':enter', [
2209
2250
  style({ opacity: 0, transform: 'translateY(10px)' }),
@@ -2295,7 +2336,7 @@ class AXMUserLookupPopup extends AXBasePageComponent {
2295
2336
  path: 'lookup',
2296
2337
  type: 'lookup-editor',
2297
2338
  options: {
2298
- entity: 'SecurityManagement.users',
2339
+ entity: 'SecurityManagement.User',
2299
2340
  multiple: true,
2300
2341
  },
2301
2342
  },
@@ -2458,28 +2499,6 @@ const AXMCommentPopupWorkflow = {
2458
2499
  },
2459
2500
  };
2460
2501
 
2461
- function convertChatMessageToNotification(room, message, currentUser) {
2462
- return {
2463
- channel: 'InApp',
2464
- template: {
2465
- category: 'Inbox',
2466
- prority: 'Notice',
2467
- icon: 'fa-light fa-comment',
2468
- isPinned: false,
2469
- },
2470
- title: room.title || 'New Message',
2471
- body: message.message.content,
2472
- sender: message.author,
2473
- receiver: currentUser,
2474
- content: message.message,
2475
- readAt: null,
2476
- type: 'Chat',
2477
- data: {
2478
- roomId: room.id,
2479
- },
2480
- };
2481
- }
2482
-
2483
2502
  class AXMChatItemComponent {
2484
2503
  constructor() {
2485
2504
  // Input
@@ -2881,14 +2900,12 @@ class AXMChatComponent extends AXPPageLayoutBaseComponent {
2881
2900
  // Methods
2882
2901
  getRoomCountForTab(tab) {
2883
2902
  const allRooms = this.allRooms();
2884
- if (tab.name === 'all') {
2885
- return allRooms.length;
2886
- }
2887
- if (tab.name === 'unread') {
2903
+ // For all tab types, only count rooms that have unread messages
2904
+ if (tab.name === 'all' || tab.name === 'unread') {
2888
2905
  return allRooms.filter((room) => room.unreadCount > 0).length;
2889
2906
  }
2890
2907
  const includedIds = new Set(tab.includeRooms.map((r) => r.id));
2891
- return allRooms.filter((room) => includedIds.has(room.id)).length;
2908
+ return allRooms.filter((room) => includedIds.has(room.id) && room.unreadCount > 0).length;
2892
2909
  }
2893
2910
  async loadTabs() {
2894
2911
  const localTabs = [