@acorex/modules 19.4.3 → 19.4.5
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.
- package/conversation/README.md +113 -2
- package/conversation/index.d.ts +2 -14
- package/conversation/lib/const.d.ts +25 -6
- package/conversation/lib/conversation.module.d.ts +32 -3
- package/conversation/lib/entities/index.d.ts +2 -0
- package/conversation/lib/entities/message/index.d.ts +3 -0
- package/conversation/lib/entities/message/message.entity.d.ts +3 -0
- package/conversation/lib/entities/message/message.service.d.ts +10 -0
- package/conversation/lib/entities/message/message.types.d.ts +20 -0
- package/conversation/lib/entities/room/index.d.ts +3 -0
- package/conversation/lib/entities/room/room.entity.d.ts +3 -0
- package/conversation/lib/entities/room/room.service.d.ts +10 -0
- package/conversation/lib/entities/room/room.types.d.ts +8 -0
- package/conversation/lib/entity.provider.d.ts +12 -0
- package/conversation/lib/features/chat/chat-preview.helper.d.ts +68 -0
- package/conversation/lib/features/chat/chat.component.d.ts +42 -0
- package/conversation/lib/features/chat/chat.service.d.ts +101 -0
- package/conversation/lib/features/chat/chat.type.d.ts +38 -0
- package/conversation/lib/{entities → features}/chat/components/chat-item/chat-item.component.d.ts +6 -1
- package/conversation/lib/{entities → features}/chat/components/chat-preview/chat-preview.component.d.ts +3 -0
- package/conversation/lib/features/chat/index.d.ts +5 -0
- package/conversation/lib/{entities/comments/pages → features/comment}/comment-list-view.component.d.ts +12 -12
- package/conversation/lib/features/comment/comment.service.d.ts +66 -0
- package/conversation/lib/features/comment/comment.type.d.ts +45 -0
- package/conversation/lib/features/comment/index.d.ts +4 -0
- package/conversation/lib/features/index.d.ts +2 -0
- package/document-management/lib/entities/folder/folder.types.d.ts +3 -2
- package/document-management/lib/features/document-explorer/components/create-folder-dialog/create-folder-dialog.component.d.ts +5 -2
- package/document-management/lib/features/document-explorer/document-explorer.component.d.ts +22 -20
- package/document-management/lib/features/document-explorer/document-explorer.viewmodel.d.ts +22 -2
- package/document-management/lib/features/document-explorer/views/attachement-widget/attachment-widget.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/detail-panel/detail-panel.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/details/details-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/large-icons/large-icons-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/large-tiles/large-tiles-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/list/list-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/small-icons/small-icons-view.component.d.ts +52 -33
- package/document-management/lib/features/document-explorer/views/small-tiles/small-tiles-view.component.d.ts +52 -33
- package/document-management/lib/features/drive/drive.component.d.ts +52 -31
- package/document-management/lib/features/drive-choose/drive-choose.component.d.ts +49 -28
- package/document-management/lib/features/shared/components/document-type-choose-file/document-type-choose-file.component.d.ts +6 -6
- package/document-management/lib/features/shared/components/folder-path-breadcrumbs/folder-path-breadcrumbs.component.d.ts +21 -2
- package/document-management/lib/features/shared/document-manager.service.d.ts +177 -45
- package/document-management/lib/features/shared/document-manager.types.d.ts +2 -1
- package/document-management/lib/features/shared/index.d.ts +1 -0
- package/fesm2022/acorex-modules-application-management-module-designer.component-BJp8imYd.mjs +315 -0
- package/fesm2022/acorex-modules-application-management-module-designer.component-BJp8imYd.mjs.map +1 -0
- package/fesm2022/acorex-modules-application-management.mjs +1 -1
- package/fesm2022/acorex-modules-common.mjs +7 -0
- package/fesm2022/acorex-modules-common.mjs.map +1 -1
- package/fesm2022/acorex-modules-conversation.mjs +2382 -820
- package/fesm2022/acorex-modules-conversation.mjs.map +1 -1
- package/fesm2022/{acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs → acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs} +1679 -2019
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BATdoqJi.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-attachment-widget.component-DIF_t4fE.mjs → acorex-modules-document-management-attachment-widget.component-C1-gQepw.mjs} +2 -2
- 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
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs +144 -0
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-ZMvsadWt.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs → acorex-modules-document-management-details-view.component-CvHIETNf.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-details-view.component-D0RIYrHB.mjs.map → acorex-modules-document-management-details-view.component-CvHIETNf.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs → acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs} +29 -9
- package/fesm2022/acorex-modules-document-management-drive-choose.component-UTy9OISj.mjs.map +1 -0
- package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs +363 -0
- package/fesm2022/acorex-modules-document-management-drive.component-Crh10Z5J.mjs.map +1 -0
- package/fesm2022/{acorex-modules-document-management-large-icons-view.component-C686Ec7s.mjs → acorex-modules-document-management-large-icons-view.component-BuV7MPG5.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-document-management-large-tiles-view.component-0GpMVYv5.mjs → acorex-modules-document-management-large-tiles-view.component-CwYwVxoG.mjs} +2 -2
- 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
- package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-list-view.component-C1inszTC.mjs.map → acorex-modules-document-management-list-view.component-BHEwRA3m.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs} +2 -2
- package/fesm2022/{acorex-modules-document-management-permission-definition.provider-B7lgRLHi.mjs.map → acorex-modules-document-management-permission-definition.provider-B3qaYwRL.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-document-management-rename-node-dialog.component-C9k8WgDG.mjs → acorex-modules-document-management-rename-node-dialog.component-CrcJm9jP.mjs} +5 -5
- 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
- package/fesm2022/{acorex-modules-document-management-small-icons-view.component-BGcUzNCv.mjs → acorex-modules-document-management-small-icons-view.component-CD5UORaq.mjs} +2 -2
- 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
- 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
- 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
- package/fesm2022/acorex-modules-document-management.mjs +1 -1
- package/fesm2022/{acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs → acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs} +5 -5
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-DbVfrgVX.mjs.map +1 -0
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs} +2 -2
- package/fesm2022/{acorex-modules-issue-management-capture-screen.component-B6k0Zn9C.mjs.map → acorex-modules-issue-management-capture-screen.component-_9mwJVkz.mjs.map} +1 -1
- package/fesm2022/acorex-modules-issue-management.mjs +1 -1
- package/fesm2022/acorex-modules-notification-management.mjs +5 -5
- package/fesm2022/acorex-modules-notification-management.mjs.map +1 -1
- package/fesm2022/{acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs → acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs} +1 -2
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CrOUUr4c.mjs.map +1 -0
- package/fesm2022/acorex-modules-organization-management.mjs +2 -2
- package/fesm2022/{acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs → acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs} +326 -87
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-DtXOjIIK.mjs.map +1 -0
- package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-list-version.component-D50Xundj.mjs.map → acorex-modules-platform-management-list-version.component-DY4yMd8n.mjs.map} +1 -1
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs} +2 -2
- package/fesm2022/{acorex-modules-platform-management-settings.provider-DsHGn3AZ.mjs.map → acorex-modules-platform-management-settings.provider-BO-1dmVc.mjs.map} +1 -1
- package/fesm2022/acorex-modules-platform-management.mjs +1 -1
- package/fesm2022/acorex-modules-project-management.mjs +108 -0
- package/fesm2022/acorex-modules-project-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-settings-management.mjs +20 -21
- package/fesm2022/acorex-modules-settings-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-training-management.mjs +1 -1
- package/fesm2022/acorex-modules-training-management.mjs.map +1 -1
- package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs +305 -0
- package/fesm2022/acorex-modules-workflow-management-task-board.page-3_Tn2GeA.mjs.map +1 -0
- package/fesm2022/acorex-modules-workflow-management.mjs +123 -0
- package/fesm2022/acorex-modules-workflow-management.mjs.map +1 -0
- package/package.json +20 -16
- package/platform-management/lib/task-board.provider.d.ts +14 -0
- package/project-management/lib/task-board.provider.d.ts +14 -0
- package/settings-management/lib/settings-management.module.d.ts +1 -1
- package/workflow-management/README.md +3 -0
- package/workflow-management/index.d.ts +2 -0
- package/workflow-management/lib/const.d.ts +11 -0
- package/workflow-management/lib/features/task-board/index.d.ts +2 -0
- package/workflow-management/lib/features/task-board/settings.keys.d.ts +5 -0
- package/workflow-management/lib/features/task-board/task-board.module.d.ts +6 -0
- package/workflow-management/lib/features/task-board/task-board.page.d.ts +76 -0
- package/workflow-management/lib/features/task-board/task-board.service.d.ts +13 -0
- package/workflow-management/lib/features/task-board/task-board.viewmodel.d.ts +20 -0
- package/workflow-management/lib/features/task-board/views/task-board-calendar-view/task-board-calendar-view.page.d.ts +25 -0
- package/workflow-management/lib/workflow-management.module.d.ts +8 -0
- package/conversation/lib/entities/chat/chat.module.d.ts +0 -28
- package/conversation/lib/entities/chat/chat.service.d.ts +0 -14
- package/conversation/lib/entities/chat/chat.type.d.ts +0 -22
- package/conversation/lib/entities/chat/components/chat-item-footer/chat-item-footer.component.d.ts +0 -5
- package/conversation/lib/entities/chat/components/chat-item-header/chat-item-header.component.d.ts +0 -12
- package/conversation/lib/entities/chat/components/chat-preview-header/chat-preview-header.component.d.ts +0 -7
- package/conversation/lib/entities/chat/pages/chat/chat.component.d.ts +0 -23
- package/conversation/lib/entities/comments/comment.module.d.ts +0 -26
- package/conversation/lib/entities/comments/comments.service.d.ts +0 -13
- package/conversation/lib/entities/comments/comments.type.d.ts +0 -74
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-column.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-edit.component.d.ts +0 -212
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-print.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget-view.component.d.ts +0 -6
- package/document-management/lib/features/widgets/document-attachment/document-attachment-widget.config.d.ts +0 -7
- package/document-management/lib/features/widgets/document-attachment/index.d.ts +0 -5
- package/document-management/lib/features/widgets/index.d.ts +0 -1
- package/fesm2022/acorex-modules-application-management-module-designer.component-BRh6mzWA.mjs +0 -315
- package/fesm2022/acorex-modules-application-management-module-designer.component-BRh6mzWA.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-acorex-modules-document-management-BpmG6Dyx.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs +0 -141
- package/fesm2022/acorex-modules-document-management-create-folder-dialog.component-CCvKUDsw.mjs.map +0 -1
- package/fesm2022/acorex-modules-document-management-drive-choose.component-DMAQr0nK.mjs.map +0 -1
- package/fesm2022/acorex-modules-issue-management-acorex-modules-issue-management-ErtEMU89.mjs.map +0 -1
- package/fesm2022/acorex-modules-organization-management-org-chart.page-CP8zz-Bc.mjs.map +0 -1
- package/fesm2022/acorex-modules-platform-management-acorex-modules-platform-management-C9ZApxct.mjs.map +0 -1
- /package/conversation/lib/{entities/comments/pages → features/comment}/comment-lookup-popup.component.d.ts +0 -0
package/conversation/README.md
CHANGED
@@ -1,3 +1,114 @@
|
|
1
|
-
#
|
1
|
+
# Conversation Module
|
2
2
|
|
3
|
-
|
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
|
+
```
|
package/conversation/index.d.ts
CHANGED
@@ -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
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
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 "./
|
3
|
-
import * as i2 from "./
|
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,
|
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,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,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
|
+
}
|
package/conversation/lib/{entities → features}/chat/components/chat-item/chat-item.component.d.ts
RENAMED
@@ -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):
|
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
|
}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { AXWysiwygContainerComponent } from '@acorex/components/wysiwyg';
|
2
2
|
import { OnInit } from '@angular/core';
|
3
3
|
import { AXStyleLookType } from '@acorex/cdk/common';
|
4
|
-
import { AXMCommentEntityModel } from '../comments.type';
|
5
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
5
|
+
import { AXMCommentMessage } from './comment.type';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export declare class AXMCommentListViewComponent implements OnInit {
|
8
8
|
protected hasCooldown: import("@angular/core").WritableSignal<boolean>;
|
@@ -12,8 +12,8 @@ export declare class AXMCommentListViewComponent implements OnInit {
|
|
12
12
|
protected isEditingMode: import("@angular/core").WritableSignal<boolean>;
|
13
13
|
protected isLoading: import("@angular/core").WritableSignal<boolean>;
|
14
14
|
protected failedImageIds: import("@angular/core").WritableSignal<string[]>;
|
15
|
-
protected activeReplyComment: import("@angular/core").WritableSignal<
|
16
|
-
protected activeEditComment: import("@angular/core").WritableSignal<
|
15
|
+
protected activeReplyComment: import("@angular/core").WritableSignal<AXMCommentMessage | undefined>;
|
16
|
+
protected activeEditComment: import("@angular/core").WritableSignal<AXMCommentMessage | undefined>;
|
17
17
|
protected wysiwygEditor: import("@angular/core").Signal<AXWysiwygContainerComponent>;
|
18
18
|
private commentService;
|
19
19
|
private platform;
|
@@ -29,7 +29,7 @@ export declare class AXMCommentListViewComponent implements OnInit {
|
|
29
29
|
entityId: string;
|
30
30
|
instanceId: any;
|
31
31
|
}>;
|
32
|
-
protected comments: import("@angular/core").WritableSignal<
|
32
|
+
protected comments: import("@angular/core").WritableSignal<AXMCommentMessage[]>;
|
33
33
|
private wysiwyg;
|
34
34
|
ngOnInit(): void;
|
35
35
|
protected wysiwygOptions: import("@angular/core").WritableSignal<{
|
@@ -46,20 +46,20 @@ export declare class AXMCommentListViewComponent implements OnInit {
|
|
46
46
|
message: string;
|
47
47
|
value: string;
|
48
48
|
};
|
49
|
-
sanitizeHtml(htmlContent: string): import("@angular/platform-browser").SafeHtml;
|
49
|
+
sanitizeHtml(htmlContent: string | undefined): import("@angular/platform-browser").SafeHtml;
|
50
50
|
handleImageError(imageId: string): void;
|
51
51
|
checkImageExists(imageId: string): boolean;
|
52
|
-
extractInitials(name: string): string;
|
52
|
+
extractInitials(name: string | undefined | any): string;
|
53
53
|
loadComments(): Promise<void>;
|
54
|
-
editMessage(comment:
|
55
|
-
replyMessage(comment:
|
56
|
-
deleteComment(comment:
|
57
|
-
deleteReply(comment:
|
54
|
+
editMessage(comment: AXMCommentMessage, reply?: AXMCommentMessage): void;
|
55
|
+
replyMessage(comment: AXMCommentMessage, reply?: AXMCommentMessage): void;
|
56
|
+
deleteComment(comment: AXMCommentMessage): Promise<void>;
|
57
|
+
deleteReply(comment: AXMCommentMessage, reply: AXMCommentMessage): Promise<void>;
|
58
58
|
resetReplyEditState(): void;
|
59
|
-
toggleLike(comment:
|
59
|
+
toggleLike(comment: AXMCommentMessage, reply?: AXMCommentMessage): Promise<void>;
|
60
60
|
private updateLikeStatus;
|
61
61
|
private removeMessageById;
|
62
|
-
submitComment(isPrivate?: boolean): Promise<void>;
|
62
|
+
protected submitComment(isPrivate?: boolean): Promise<void>;
|
63
63
|
scrollMain(): void;
|
64
64
|
calcDefrenetTime(date: Date | undefined): number | undefined;
|
65
65
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMCommentListViewComponent, never>;
|