@acorex/modules 19.4.4 → 19.4.6

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 (145) hide show
  1. package/common/lib/widgets-names-list.d.ts +1 -0
  2. package/conversation/README.md +113 -2
  3. package/conversation/index.d.ts +2 -14
  4. package/conversation/lib/const.d.ts +25 -6
  5. package/conversation/lib/conversation.module.d.ts +32 -3
  6. package/conversation/lib/entities/index.d.ts +2 -0
  7. package/conversation/lib/entities/message/index.d.ts +3 -0
  8. package/conversation/lib/entities/message/message.entity.d.ts +3 -0
  9. package/conversation/lib/entities/message/message.service.d.ts +10 -0
  10. package/conversation/lib/entities/message/message.types.d.ts +20 -0
  11. package/conversation/lib/entities/room/index.d.ts +3 -0
  12. package/conversation/lib/entities/room/room.entity.d.ts +3 -0
  13. package/conversation/lib/entities/room/room.service.d.ts +10 -0
  14. package/conversation/lib/entities/room/room.types.d.ts +8 -0
  15. package/conversation/lib/entity.provider.d.ts +12 -0
  16. package/conversation/lib/features/chat/chat-preview.helper.d.ts +68 -0
  17. package/conversation/lib/features/chat/chat.component.d.ts +42 -0
  18. package/conversation/lib/features/chat/chat.service.d.ts +101 -0
  19. package/conversation/lib/features/chat/chat.type.d.ts +38 -0
  20. package/conversation/lib/{entities → features}/chat/components/chat-item/chat-item.component.d.ts +6 -1
  21. package/conversation/lib/{entities → features}/chat/components/chat-preview/chat-preview.component.d.ts +3 -0
  22. package/conversation/lib/features/chat/index.d.ts +5 -0
  23. package/conversation/lib/{entities/comments/pages → features/comment}/comment-list-view.component.d.ts +12 -12
  24. package/conversation/lib/features/comment/comment.service.d.ts +66 -0
  25. package/conversation/lib/features/comment/comment.type.d.ts +45 -0
  26. package/conversation/lib/features/comment/index.d.ts +4 -0
  27. package/conversation/lib/features/index.d.ts +2 -0
  28. package/dashboard-management/lib/features/home-dashboard/dashboard-home/home-dashboard.store.d.ts +11 -12
  29. package/document-management/lib/entities/folder/folder.types.d.ts +3 -2
  30. package/document-management/lib/features/document-explorer/components/create-folder-dialog/create-folder-dialog.component.d.ts +5 -2
  31. package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +22 -20
  32. package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +22 -2
  33. package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +52 -33
  34. package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +52 -33
  35. package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +52 -33
  36. package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +52 -33
  37. package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +52 -33
  38. package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +52 -33
  39. package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +52 -33
  40. package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +52 -33
  41. package/document-management/lib/features/drive/drive.component.d.ts +52 -31
  42. package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +49 -28
  43. package/document-management/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.d.ts +6 -6
  44. package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +21 -2
  45. package/document-management/lib/features/shared/document-manager.service.d.ts +177 -45
  46. package/document-management/lib/features/shared/document-manager.types.d.ts +2 -1
  47. package/document-management/lib/features/shared/index.d.ts +1 -0
  48. package/fesm2022/acorex-modules-common.mjs +8 -0
  49. package/fesm2022/acorex-modules-common.mjs.map +1 -1
  50. package/fesm2022/acorex-modules-conversation.mjs +2382 -820
  51. package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
  52. package/fesm2022/acorex-modules-dashboard-management.mjs +22 -4
  53. package/fesm2022/acorex-modules-dashboard-management.mjs.map +1 -1
  54. package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs → acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs} +1679 -2019
  55. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs.map +1 -0
  56. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs} +2 -2
  57. package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs.map → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs.map} +1 -1
  58. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs +144 -0
  59. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs.map +1 -0
  60. package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs → acorex-modules-document-management-details-view.component-CvHIETNf.mjs} +2 -2
  61. package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs.map → acorex-modules-document-management-details-view.component-CvHIETNf.mjs.map} +1 -1
  62. package/fesm2022/{acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs → acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs} +29 -9
  63. package/fesm2022/acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs.map +1 -0
  64. package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs +363 -0
  65. package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map +1 -0
  66. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs} +2 -2
  67. package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs.map → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs.map} +1 -1
  68. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs} +2 -2
  69. package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs.map → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs.map} +1 -1
  70. package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs} +2 -2
  71. package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs.map → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs.map → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs} +5 -5
  75. package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs.map → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs.map} +1 -1
  76. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs} +2 -2
  77. package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs.map → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs.map} +1 -1
  78. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs} +2 -2
  79. package/fesm2022/{acorex-modules-document-management-small-tiles-view.component-CumumWvO.mjs.map → acorex-modules-document-management-small-tiles-view.component-cpc_xfbT.mjs.map} +1 -1
  80. package/fesm2022/acorex-modules-document-management.mjs +1 -1
  81. package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs → acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs} +5 -5
  82. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs.map +1 -0
  83. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs} +2 -2
  84. package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs.map → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs.map} +1 -1
  85. package/fesm2022/acorex-modules-issue-management.mjs +1 -1
  86. package/fesm2022/acorex-modules-notification-management.mjs +5 -5
  87. package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
  88. package/fesm2022/{acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs → acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs} +1 -2
  89. package/fesm2022/acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs.map +1 -0
  90. package/fesm2022/acorex-modules-organization-management.mjs +2 -2
  91. package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs} +326 -87
  92. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs.map +1 -0
  93. package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs} +2 -2
  94. package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs.map → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs.map} +1 -1
  95. package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs} +2 -2
  96. package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs.map → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs.map} +1 -1
  97. package/fesm2022/acorex-modules-platform-management.mjs +1 -1
  98. package/fesm2022/acorex-modules-project-management.mjs +108 -0
  99. package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
  100. package/fesm2022/acorex-modules-settings-management.mjs +20 -21
  101. package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
  102. package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs +305 -0
  103. package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs.map +1 -0
  104. package/fesm2022/acorex-modules-workflow-management.mjs +123 -0
  105. package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -0
  106. package/package.json +20 -16
  107. package/platform-management/lib/task-board.provider.d.ts +14 -0
  108. package/project-management/lib/task-board.provider.d.ts +14 -0
  109. package/settings-management/lib/settings-management.module.d.ts +1 -1
  110. package/workflow-management/README.md +3 -0
  111. package/workflow-management/index.d.ts +2 -0
  112. package/workflow-management/lib/const.d.ts +11 -0
  113. package/workflow-management/lib/features/task-board/index.d.ts +2 -0
  114. package/workflow-management/lib/features/task-board/settings.keys.d.ts +5 -0
  115. package/workflow-management/lib/features/task-board/task-board.module.d.ts +6 -0
  116. package/workflow-management/lib/features/task-board/task-board.page.d.ts +76 -0
  117. package/workflow-management/lib/features/task-board/task-board.service.d.ts +13 -0
  118. package/workflow-management/lib/features/task-board/task-board.viewmodel.d.ts +20 -0
  119. package/workflow-management/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.d.ts +25 -0
  120. package/workflow-management/lib/workflow-management.module.d.ts +8 -0
  121. package/conversation/lib/entities/chat/chat.module.d.ts +0 -28
  122. package/conversation/lib/entities/chat/chat.service.d.ts +0 -14
  123. package/conversation/lib/entities/chat/chat.type.d.ts +0 -22
  124. package/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.d.ts +0 -5
  125. package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +0 -12
  126. package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +0 -7
  127. package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +0 -23
  128. package/conversation/lib/entities/comments/comment.module.d.ts +0 -26
  129. package/conversation/lib/entities/comments/comments.service.d.ts +0 -13
  130. package/conversation/lib/entities/comments/comments.type.d.ts +0 -74
  131. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-column.component.d.ts +0 -6
  132. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +0 -212
  133. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-print.component.d.ts +0 -6
  134. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-view.component.d.ts +0 -6
  135. package/document-management/lib/features/widgets/document-attachment/document-attachment-widget.config.d.ts +0 -7
  136. package/document-management/lib/features/widgets/document-attachment/index.d.ts +0 -5
  137. package/document-management/lib/features/widgets/index.d.ts +0 -1
  138. package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs.map +0 -1
  139. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs +0 -141
  140. package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs.map +0 -1
  141. package/fesm2022/acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs.map +0 -1
  142. package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs.map +0 -1
  143. package/fesm2022/acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs.map +0 -1
  144. package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs.map +0 -1
  145. /package/conversation/lib/{entities/comments/pages → features/comment}/comment-lookup-popup.component.d.ts +0 -0
@@ -5,6 +5,7 @@ export declare const AXPWidgetsList: {
5
5
  CheckBox: string;
6
6
  ColorBox: string;
7
7
  DateTimeBox: string;
8
+ Direction: string;
8
9
  LargeTextBox: string;
9
10
  NumberBox: string;
10
11
  UnitValueBox: string;
@@ -1,3 +1,114 @@
1
- # @acorex/modules/conversation
1
+ # Conversation Module
2
2
 
3
- Secondary entry point of `@acorex/modules`. It can be used by importing from `@acorex/modules/conversation`.
3
+ This module provides chat and comment functionality for the ACoreX Platform.
4
+
5
+ ## Service Architecture
6
+
7
+ The module follows the abstract service pattern with clear interface definitions:
8
+
9
+ ### Comment System
10
+
11
+ - `AXMCommentService`: Abstract service defining the comment functionality contract
12
+ - `AXMCommentServiceImpl`: Concrete implementation of the comment service
13
+ - Types defined in `comment.type.ts`:
14
+ - `AXMCommentUser`: User interface for comments
15
+ - `AXMCommentMessage`: Extended message interface for comments
16
+ - `AXMCommentRoom`: Room interface for comments
17
+ - `AXMCreateCommentDto`: DTO for creating comments
18
+
19
+ ### Chat System
20
+
21
+ - `AXMChatService`: Abstract service defining the chat functionality contract
22
+ - `AXMChatServiceImpl`: Concrete implementation of the chat service
23
+ - Types defined in `chat.type.ts`:
24
+ - `AXMChatMember`: User interface for chat members
25
+ - `AXMChatMessage`: Extended message interface for chat messages
26
+ - `AXMChatRoom`: Room interface for chat rooms
27
+ - `AXMCreateChatMessageDto`: DTO for creating chat messages
28
+ - `AXMCreateChatRoomDto`: DTO for creating chat rooms
29
+
30
+ ## Core Entities
31
+
32
+ The services build on core conversation entities:
33
+
34
+ - `AXMConversationMessage`: Base message entity
35
+ - `AXMConversationRoom`: Base room entity
36
+ - `AXMConversationAuthorDto`: Author information
37
+ - `AXMConversationContent`: Message content structure
38
+
39
+ ## Features
40
+
41
+ ### Comments
42
+
43
+ The comment system provides:
44
+
45
+ - Hierarchical comments with replies
46
+ - Reactions (likes)
47
+ - Formatted dates and content
48
+ - User avatars and information
49
+
50
+ ### Chat
51
+
52
+ The chat system provides:
53
+
54
+ - Real-time messaging
55
+ - Message status (seen)
56
+ - Message reactions
57
+ - Room management
58
+ - Member management
59
+
60
+ ## Dependencies
61
+
62
+ The module depends on the following services:
63
+
64
+ - `AXPSessionService`: For user information
65
+ - `AXMMessageService`: For base message operations
66
+ - `AXMRoomService`: For room management
67
+
68
+ ## Usage
69
+
70
+ ### Comment System
71
+
72
+ ```typescript
73
+ // Get comment service
74
+ private commentService = inject(AXMCommentService);
75
+
76
+ // Get comments
77
+ const response = await this.commentService.query({
78
+ params: {
79
+ entityId: 'entity-id',
80
+ instanceId: 'instance-id'
81
+ }
82
+ });
83
+
84
+ // Add comment
85
+ await this.commentService.insertOne({
86
+ entityId: 'entity-id',
87
+ instanceId: 'instance-id',
88
+ content: 'Comment content',
89
+ contentType: 'text'
90
+ });
91
+
92
+ // Like comment
93
+ await this.commentService.like('comment-id');
94
+ ```
95
+
96
+ ### Chat System
97
+
98
+ ```typescript
99
+ // Get chat service
100
+ private chatService = inject(AXMChatService);
101
+
102
+ // Get chat rooms
103
+ const { items } = await this.chatService.getAllChatRooms();
104
+
105
+ // Send message
106
+ await this.chatService.sendMessage(
107
+ 'room-id',
108
+ 'Message content',
109
+ 'text'
110
+ );
111
+
112
+ // Mark as read
113
+ await this.chatService.markChatAsRead('room-id');
114
+ ```
@@ -1,16 +1,4 @@
1
- export * from './lib/entities/comments/comment.module';
2
- export * from './lib/entities/comments/comments.service';
3
- export * from './lib/entities/comments/comments.type';
4
- export * from './lib/entities/comments/pages/comment-list-view.component';
5
- export * from './lib/entities/comments/pages/comment-lookup-popup.component';
6
- export * from './lib/entities/chat/chat.module';
7
- export * from './lib/entities/chat/chat.service';
8
- export * from './lib/entities/chat/chat.type';
9
- export * from './lib/entities/chat/components/chat-item-footer/chat-item-footer.component';
10
- export * from './lib/entities/chat/components/chat-item-header/chat-item-header.component';
11
- export * from './lib/entities/chat/components/chat-item/chat-item.component';
12
- export * from './lib/entities/chat/components/chat-preview-header/chat-preview-header.component';
13
- export * from './lib/entities/chat/components/chat-preview/chat-preview.component';
14
- export * from './lib/entities/chat/pages/chat/chat.component';
15
1
  export * from './lib/const';
16
2
  export * from './lib/conversation.module';
3
+ export * from './lib/entities';
4
+ export * from './lib/features';
@@ -1,7 +1,26 @@
1
- export declare const AXMConverstionModuleConst: {
2
- moduleName: string;
3
- moduleRoute: string;
4
- i18n: string;
5
- chatName: string;
6
- commentName: string;
1
+ export declare const RootConfig: {
2
+ config: {
3
+ i18n: string;
4
+ module: string;
5
+ };
6
+ module: {
7
+ route: string;
8
+ name: string;
9
+ title: string;
10
+ icon: string;
11
+ };
12
+ entities: {
13
+ room: {
14
+ name: string;
15
+ title: string;
16
+ source: string;
17
+ icon: string;
18
+ };
19
+ message: {
20
+ name: string;
21
+ title: string;
22
+ source: string;
23
+ icon: string;
24
+ };
25
+ };
7
26
  };
@@ -1,8 +1,37 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./entities/comments/comment.module";
3
- import * as i2 from "./entities/chat/chat.module";
2
+ import * as i1 from "./features/chat/chat.component";
3
+ import * as i2 from "./features/chat/components/chat-item/chat-item.component";
4
+ import * as i3 from "./features/chat/components/chat-preview/chat-preview.component";
5
+ import * as i4 from "./features/comment/comment-list-view.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@angular/forms";
8
+ import * as i7 from "@angular/router";
9
+ import * as i8 from "@acorex/core/format";
10
+ import * as i9 from "@acorex/components/conversation";
11
+ import * as i10 from "@acorex/components/comment";
12
+ import * as i11 from "@acorex/core/translation";
13
+ import * as i12 from "@acorex/cdk/resizable";
14
+ import * as i13 from "@acorex/components/image";
15
+ import * as i14 from "@acorex/components/avatar";
16
+ import * as i15 from "@acorex/components/badge";
17
+ import * as i16 from "@acorex/components/decorators";
18
+ import * as i17 from "@acorex/components/text-box";
19
+ import * as i18 from "@acorex/components/search-box";
20
+ import * as i19 from "@acorex/components/tabs";
21
+ import * as i20 from "@acorex/components/button";
22
+ import * as i21 from "@acorex/components/loading";
23
+ import * as i22 from "@acorex/components/wysiwyg";
24
+ import * as i23 from "@acorex/components/label";
25
+ import * as i24 from "@acorex/components/select-box";
26
+ import * as i25 from "@acorex/components/form";
27
+ import * as i26 from "@acorex/components/dropdown-button";
28
+ import * as i27 from "@acorex/components/dropdown";
29
+ import * as i28 from "@acorex/components/toolbar";
30
+ import * as i29 from "@acorex/components/skeleton";
31
+ import * as i30 from "@acorex/platform/layout/views";
32
+ import * as i31 from "@acorex/platform/layout/components";
4
33
  export declare class AXMConversationModule {
5
34
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMConversationModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXMConversationModule, never, [typeof i1.AXMCommentModule, typeof i2.AXMChatModule], [typeof i1.AXMCommentModule, typeof i2.AXMChatModule]>;
35
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMConversationModule, [typeof i1.AXMChatComponent, typeof i2.AXMChatItemComponent, typeof i3.AXMChatPreviewComponent, typeof i4.AXMCommentListViewComponent], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i7.RouterModule, typeof i8.AXFormatModule, typeof i9.AXConversationModule, typeof i10.AXCommentModule, typeof i11.AXTranslationModule, typeof i12.AXResizableDirective, typeof i13.AXImageModule, typeof i14.AXAvatarModule, typeof i15.AXBadgeModule, typeof i16.AXDecoratorModule, typeof i17.AXTextBoxModule, typeof i18.AXSearchBoxModule, typeof i19.AXTabsModule, typeof i20.AXButtonModule, typeof i21.AXLoadingModule, typeof i22.AXWysiwygModule, typeof i23.AXLabelModule, typeof i24.AXSelectBoxModule, typeof i25.AXFormModule, typeof i26.AXDropdownButtonModule, typeof i27.AXDropdownModule, typeof i28.AXToolBarModule, typeof i29.AXSkeletonModule, typeof i30.AXPPageLayoutComponent, typeof i31.AXPThemeLayoutBlockComponent, typeof i31.AXPThemeLayoutStartSideComponent, typeof i31.AXPThemeLayoutHeaderComponent, typeof i31.AXPThemeLayoutToolbarComponent], [typeof i2.AXMChatItemComponent, typeof i3.AXMChatPreviewComponent, typeof i4.AXMCommentListViewComponent, typeof i7.RouterModule]>;
7
36
  static ɵinj: i0.ɵɵInjectorDeclaration<AXMConversationModule>;
8
37
  }
@@ -0,0 +1,2 @@
1
+ export * from './message';
2
+ export * from './room';
@@ -0,0 +1,3 @@
1
+ export * from './message.entity';
2
+ export * from './message.service';
3
+ export * from './message.types';
@@ -0,0 +1,3 @@
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { Injector } from '@angular/core';
3
+ export declare function messageFactory(injector: Injector): Promise<AXPEntity | null>;
@@ -0,0 +1,10 @@
1
+ import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
2
+ import { AXMConversationMessage } from './message.types';
3
+ import * as i0 from "@angular/core";
4
+ export declare abstract class AXMMessageService extends AXMEntityCrudServiceImpl<string, AXMConversationMessage> {
5
+ }
6
+ export declare class AXMMessageServiceImpl extends AXMMessageService {
7
+ constructor();
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMMessageServiceImpl, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMMessageServiceImpl>;
10
+ }
@@ -0,0 +1,20 @@
1
+ import { AXPContent, AXPUserReference } from '@acorex/platform/core';
2
+ import { AXPEntityModel } from '@acorex/platform/layout/entity';
3
+ export type AXMSeenType = 'delivered' | 'read';
4
+ export type AXMReactionType = 'like' | 'love' | 'laugh' | 'angry' | 'sad' | string;
5
+ export interface AXMConversationReaction {
6
+ author: AXPUserReference;
7
+ type: AXMReactionType;
8
+ }
9
+ export interface AXMConversationSeen {
10
+ author: AXPUserReference;
11
+ type: AXMSeenType;
12
+ }
13
+ export interface AXMConversationMessage extends AXPEntityModel<string> {
14
+ roomId: string;
15
+ message: AXPContent;
16
+ author: AXPUserReference;
17
+ replyId?: string | null;
18
+ reactions?: AXMConversationReaction[];
19
+ seen?: AXMConversationSeen[];
20
+ }
@@ -0,0 +1,3 @@
1
+ export * from './room.entity';
2
+ export * from './room.service';
3
+ export * from './room.types';
@@ -0,0 +1,3 @@
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { Injector } from '@angular/core';
3
+ export declare function roomFactory(injector: Injector): Promise<AXPEntity | null>;
@@ -0,0 +1,10 @@
1
+ import { AXMEntityCrudServiceImpl } from '@acorex/platform/layout/entity';
2
+ import { AXMConversationRoom } from './room.types';
3
+ import * as i0 from "@angular/core";
4
+ export declare abstract class AXMRoomService extends AXMEntityCrudServiceImpl<string, AXMConversationRoom> {
5
+ }
6
+ export declare class AXMRoomServiceImpl extends AXMRoomService {
7
+ constructor();
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMRoomServiceImpl, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMRoomServiceImpl>;
10
+ }
@@ -0,0 +1,8 @@
1
+ import { AXPEntityReference, AXPUserReference } from '@acorex/platform/core';
2
+ import { AXPEntityModel } from '@acorex/platform/layout/entity';
3
+ export interface AXMConversationRoom extends AXPEntityModel<string> {
4
+ title?: string;
5
+ members: AXPUserReference[];
6
+ entityRef?: AXPEntityReference;
7
+ topic?: 'support' | 'group' | 'channel' | 'personal' | string;
8
+ }
@@ -0,0 +1,12 @@
1
+ import { AXPEntity } from '@acorex/platform/common';
2
+ import { AXPEntityDefinitionLoader, AXPEntityPreloadEntity } from '@acorex/platform/layout/entity';
3
+ import { Injector } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AXMConversationModuleEntityProvider implements AXPEntityDefinitionLoader {
6
+ private injector;
7
+ constructor(injector: Injector);
8
+ preload(): AXPEntityPreloadEntity[];
9
+ get(moduleName: string, entityName: string): Promise<AXPEntity | null>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMConversationModuleEntityProvider, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMConversationModuleEntityProvider>;
12
+ }
@@ -0,0 +1,68 @@
1
+ import { AXMChatMessage } from './chat.type';
2
+ export interface ChatPreviewMessage {
3
+ id: string;
4
+ fromId?: string;
5
+ sendTime: Date;
6
+ readTime: Date;
7
+ type: 'text' | 'voice' | 'file' | 'image' | 'video' | 'audio';
8
+ content: string;
9
+ name: string;
10
+ replyTo?: ChatPreviewMessage;
11
+ }
12
+ /**
13
+ * Converts chat service response to chat preview format
14
+ * @param chatResponse - The response from chat service containing items and total
15
+ * @returns Array of formatted chat preview messages
16
+ */
17
+ export declare function convertToChatPreview(chatResponse: {
18
+ items: AXMChatMessage[];
19
+ total: number;
20
+ }): ChatPreviewMessage[];
21
+ /**
22
+ * Creates a ChatPreviewMessage from reply information
23
+ * @param message - The original message that is being referenced
24
+ * @returns A ChatPreviewMessage formatted for use as a replyTo
25
+ */
26
+ export declare function createReplyPreview(message: AXMChatMessage): ChatPreviewMessage | undefined;
27
+ /**
28
+ * Generate demo chat preview data with a variety of message types
29
+ * @returns Array of sample chat preview messages
30
+ */
31
+ export declare function generateDemoChatPreview(): ChatPreviewMessage[];
32
+ /**
33
+ * Usage Examples:
34
+ *
35
+ * Example 1: Converting chat service response to chat preview format
36
+ * ```typescript
37
+ * import { AXMChatService } from '../chat.service';
38
+ * import { convertToChatPreview } from './chat-preview.helper';
39
+ *
40
+ * export class ChatPreviewComponent {
41
+ * constructor(private chatService: AXMChatService) {}
42
+ *
43
+ * async loadChatMessages(roomId: string) {
44
+ * const response = await this.chatService.getChatMessages(roomId);
45
+ *
46
+ * // Convert to chat preview format
47
+ * const previewMessages = convertToChatPreview(response);
48
+ *
49
+ * // Use the converted messages
50
+ * this.conversationService.chats.set(previewMessages);
51
+ * }
52
+ * }
53
+ * ```
54
+ *
55
+ * Example 2: Using demo data for development/testing
56
+ * ```typescript
57
+ * import { generateDemoChatPreview } from './chat-preview.helper';
58
+ *
59
+ * export class ChatPreviewDemoComponent {
60
+ * ngOnInit() {
61
+ * // Load demo messages
62
+ * const demoMessages = generateDemoChatPreview();
63
+ *
64
+ * // Use the demo messages
65
+ * this.conversationService.chats.set(demoMessages);
66
+ * }
67
+ * }
68
+ */
@@ -0,0 +1,42 @@
1
+ import { AXTabsComponent } from '@acorex/components/tabs';
2
+ import { OnInit } from '@angular/core';
3
+ import { AXMChatRoom } from './chat.type';
4
+ import * as i0 from "@angular/core";
5
+ export declare class AXMChatComponent implements OnInit {
6
+ private route;
7
+ private router;
8
+ private chatService;
9
+ tab: import("@angular/core").Signal<AXTabsComponent | undefined>;
10
+ rooms: import("@angular/core").WritableSignal<AXMChatRoom[]>;
11
+ allRooms: import("@angular/core").WritableSignal<AXMChatRoom[]>;
12
+ selectedRoom: import("@angular/core").WritableSignal<AXMChatRoom | null>;
13
+ isLoading: import("@angular/core").WritableSignal<boolean>;
14
+ error: import("@angular/core").WritableSignal<string | null>;
15
+ activeTab: import("@angular/core").WritableSignal<number>;
16
+ isSearching: import("@angular/core").WritableSignal<boolean>;
17
+ searchQuery: import("@angular/core").WritableSignal<string>;
18
+ showSearch: import("@angular/core").WritableSignal<boolean>;
19
+ placeholder: import("@angular/core").WritableSignal<string>;
20
+ filteredRooms: import("@angular/core").Signal<AXMChatRoom[]>;
21
+ unreadCount: import("@angular/core").Signal<number>;
22
+ allCount: import("@angular/core").Signal<number>;
23
+ hasUnread: import("@angular/core").Signal<boolean>;
24
+ totalCount: import("@angular/core").Signal<number>;
25
+ constructor();
26
+ ngOnInit(): Promise<void>;
27
+ getPageTitle(): string;
28
+ getPageDescription(): string;
29
+ getMenuItems(): any[];
30
+ loadChats(): Promise<void>;
31
+ refreshChat(): Promise<void>;
32
+ markChatAsRead(chatId: string): Promise<void>;
33
+ searchChat(query: string): void;
34
+ goBack(): void;
35
+ onSearch(query: string): void;
36
+ clearSearch(): void;
37
+ onNewConversation(): void;
38
+ emitBack(): void;
39
+ ngOnDestroy(): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatComponent, "axm-chat", never, {}, {}, never, never, false, never>;
42
+ }
@@ -0,0 +1,101 @@
1
+ import { AXPContentType } from '@acorex/platform/core';
2
+ import { AXMConversationMessage, AXMReactionType } from '../../entities/message/message.types';
3
+ import { AXMConversationRoom } from '../../entities/room/room.types';
4
+ import { AXMChatMessage, AXMChatRoom } from './chat.type';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Abstract Chat Service defining the contract for chat functionality
8
+ */
9
+ export declare abstract class AXMChatService {
10
+ /**
11
+ * Get all chat rooms available to the current user
12
+ */
13
+ abstract getAllChatRooms(skip?: number, take?: number): Promise<{
14
+ items: AXMChatRoom[];
15
+ total: number;
16
+ }>;
17
+ /**
18
+ * Get details of a specific chat room
19
+ */
20
+ abstract getChatRoom(roomId: string): Promise<AXMChatRoom>;
21
+ /**
22
+ * Get messages for a specific chat room
23
+ */
24
+ abstract getChatMessages(roomId: string, skip?: number, take?: number): Promise<{
25
+ items: AXMChatMessage[];
26
+ total: number;
27
+ }>;
28
+ /**
29
+ * Send a message to a chat room
30
+ */
31
+ abstract sendMessage(roomId: string, content: string, contentType?: AXPContentType, replyId?: string): Promise<AXMConversationMessage>;
32
+ /**
33
+ * Mark all messages in a chat room as read
34
+ */
35
+ abstract markChatAsRead(roomId: string): Promise<boolean>;
36
+ /**
37
+ * Edit an existing message
38
+ */
39
+ abstract editMessage(messageId: string, content: string, contentType?: AXPContentType): Promise<AXMConversationMessage>;
40
+ /**
41
+ * Delete a message
42
+ */
43
+ abstract deleteMessage(messageId: string): Promise<boolean>;
44
+ /**
45
+ * Create a new conversation with specified members
46
+ */
47
+ abstract createNewConversation(memberIds: string[]): Promise<AXMChatRoom>;
48
+ /**
49
+ * Add a reaction to a message
50
+ */
51
+ abstract addReaction(messageId: string, type: AXMReactionType): Promise<AXMConversationMessage>;
52
+ /**
53
+ * Remove a reaction from a message
54
+ */
55
+ abstract removeReaction(messageId: string, type: AXMReactionType): Promise<AXMConversationMessage>;
56
+ /**
57
+ * Add a member to a chat room
58
+ */
59
+ abstract addRoomMember(roomId: string, userId: string): Promise<AXMConversationRoom>;
60
+ /**
61
+ * Remove a member from a chat room
62
+ */
63
+ abstract removeRoomMember(roomId: string, memberId: string): Promise<AXMConversationRoom>;
64
+ }
65
+ export declare class AXMChatServiceImpl implements AXMChatService {
66
+ private readonly roomService;
67
+ private readonly messageService;
68
+ private readonly sessionService;
69
+ private readonly usersService;
70
+ private getCurrentUser;
71
+ private getUserInfo;
72
+ private formatMessage;
73
+ private formatMember;
74
+ getRoomList(skip?: number, take?: number): Promise<import("@acorex/platform/core").AXPPagedListResult<AXMConversationRoom>>;
75
+ getRoomDetails(roomId: string): Promise<AXMConversationRoom>;
76
+ createRoom(roomData: Omit<AXMConversationRoom, 'id'>): Promise<string>;
77
+ addRoomMember(roomId: string, userId: string): Promise<AXMConversationRoom>;
78
+ removeRoomMember(roomId: string, memberId: string): Promise<AXMConversationRoom>;
79
+ deleteRoom(roomId: string): Promise<void>;
80
+ listMessages(roomId: string, skip?: number, take?: number): Promise<import("@acorex/platform/core").AXPPagedListResult<AXMConversationMessage>>;
81
+ sendMessage(roomId: string, content: string, contentType?: AXPContentType, replyId?: string): Promise<AXMConversationMessage>;
82
+ editMessage(messageId: string, content: string, contentType?: AXPContentType): Promise<AXMConversationMessage>;
83
+ deleteMessage(messageId: string): Promise<boolean>;
84
+ markAsSeen(messageId: string): Promise<AXMConversationMessage>;
85
+ addReaction(messageId: string, type: AXMReactionType): Promise<AXMConversationMessage>;
86
+ removeReaction(messageId: string, type: AXMReactionType): Promise<AXMConversationMessage>;
87
+ markChatAsRead(roomId: string): Promise<boolean>;
88
+ getUnreadCount(roomId: string): Promise<number>;
89
+ getChatRoom(roomId: string): Promise<AXMChatRoom>;
90
+ getAllChatRooms(skip?: number, take?: number): Promise<{
91
+ items: AXMChatRoom[];
92
+ total: number;
93
+ }>;
94
+ getChatMessages(roomId: string, skip?: number, take?: number): Promise<{
95
+ items: AXMChatMessage[];
96
+ total: number;
97
+ }>;
98
+ createNewConversation(memberIds: string[]): Promise<AXMChatRoom>;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatServiceImpl, never>;
100
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMChatServiceImpl>;
101
+ }
@@ -0,0 +1,38 @@
1
+ import { AXMConversationMessage } from '../../entities/message/message.types';
2
+ import { AXMConversationRoom } from '../../entities/room/room.types';
3
+ /**
4
+ * Extended user interface for chat members with UI-specific properties
5
+ */
6
+ export interface AXMChatMember {
7
+ id: string;
8
+ firstName: string;
9
+ lastName: string;
10
+ fullName: string;
11
+ avatar?: string;
12
+ isOnline?: boolean;
13
+ }
14
+ /**
15
+ * Extended message interface for chat messages with UI-specific properties
16
+ */
17
+ export interface AXMChatMessage extends AXMConversationMessage {
18
+ isFromCurrentUser?: boolean;
19
+ formattedDate?: string;
20
+ hasSeen?: boolean;
21
+ }
22
+ /**
23
+ * Extended room interface for chat rooms with UI-specific properties
24
+ */
25
+ export interface AXMChatRoom extends AXMConversationRoom {
26
+ lastMessage?: AXMChatMessage;
27
+ unreadCount: number;
28
+ roomMembers: AXMChatMember[];
29
+ }
30
+ /**
31
+ * Data transfer object for creating a new chat message
32
+ */
33
+ export interface AXMCreateChatMessageDto {
34
+ roomId: string;
35
+ content: string;
36
+ contentType?: string;
37
+ replyId?: string | null;
38
+ }
@@ -7,9 +7,14 @@ export declare class AXMChatItemComponent {
7
7
  private router;
8
8
  private activatedRoute;
9
9
  protected fullName: import("@angular/core").Signal<string>;
10
+ protected lastMessage: import("@angular/core").Signal<string>;
11
+ protected lastMessageDate: import("@angular/core").Signal<string>;
12
+ protected hasUnread: import("@angular/core").Signal<boolean>;
13
+ protected unreadCount: import("@angular/core").Signal<string>;
14
+ protected isOnline: import("@angular/core").Signal<boolean>;
10
15
  protected myId: string | undefined;
11
16
  protected extractInitials(name: string): string;
12
- protected onPressChatItem(id: string): Promise<void>;
17
+ protected onPressChatItem(id: string): void;
13
18
  protected messageSeenStatus(): string;
14
19
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatItemComponent, never>;
15
20
  static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatItemComponent, "axm-chat-item", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; }, { "pressChatItem": "pressChatItem"; }, never, never, false, never>;
@@ -6,6 +6,7 @@ export declare class AXMChatPreviewComponent implements OnDestroy {
6
6
  private activatedRoute;
7
7
  private fileService;
8
8
  private conversationService;
9
+ private chatService;
9
10
  protected options: import("@angular/core").WritableSignal<{
10
11
  disabled: boolean;
11
12
  readonly: boolean;
@@ -26,6 +27,8 @@ export declare class AXMChatPreviewComponent implements OnDestroy {
26
27
  handleOnAction(e: AXConversationActionEvent): void;
27
28
  scrollToEnd(): void;
28
29
  addMockMessage(): void;
30
+ loadMessages(roomId: string): Promise<void>;
31
+ loadDemoMessages(): void;
29
32
  static ɵfac: i0.ɵɵFactoryDeclaration<AXMChatPreviewComponent, never>;
30
33
  static ɵcmp: i0.ɵɵComponentDeclaration<AXMChatPreviewComponent, "axm-chat-preview", never, {}, {}, never, never, false, never>;
31
34
  }
@@ -0,0 +1,5 @@
1
+ export * from './chat.component';
2
+ export * from './chat.service';
3
+ export * from './chat.type';
4
+ export * from './components/chat-item/chat-item.component';
5
+ export * from './components/chat-preview/chat-preview.component';