tuikit-atomicx-vue3 4.5.0 → 4.5.1
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/dist/{PopoverTrigger-L8abAry7.js → PopoverPortal-DghpKKm8.js} +91 -136
- package/dist/PopoverTrigger-BajjNkGO.js +54 -0
- package/dist/{PopperContent-XdhqL8Y2.js → PopperContent-SLoFuK7k.js} +6 -6
- package/dist/{Teleport-CSEuZbpM.js → Teleport-DFrneqLM.js} +4 -4
- package/dist/baseComp/Modal/Modal.js +3 -3
- package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +10 -9
- package/dist/components/BarrageInput/TextEditor/CharacterCountExtension.js +1 -1
- package/dist/components/BarrageInput/TextEditor/EditorCore.js +16 -15
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +62 -40
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +29 -27
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.js +27 -23
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue.d.ts +1 -1
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +67 -65
- package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUnread.js +32 -30
- package/dist/components/ConversationList/ConversationPreview/utils.d.ts +2 -2
- package/dist/components/ConversationList/ConversationPreview/utils.js +81 -35
- package/dist/components/ConversationList/i18n/en-US.d.ts +10 -1
- package/dist/components/ConversationList/i18n/en-US.js +11 -2
- package/dist/components/ConversationList/i18n/zh-CN.d.ts +10 -1
- package/dist/components/ConversationList/i18n/zh-CN.js +11 -2
- package/dist/components/LiveScenePanel/index.js +10 -9
- package/dist/components/MessageInput/AttachmentPicker/index.js +10 -9
- package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +17 -16
- package/dist/components/MessageInput/QuotedMessagePreview/index.js +35 -35
- package/dist/components/MessageInput/TextEditor/EditorCore.d.ts +13 -12
- package/dist/components/MessageInput/TextEditor/EditorCore.js +54 -89
- package/dist/components/MessageInput/TextEditor/extensions/MentionSuggestion.js +229 -0
- package/dist/components/MessageInput/TextEditor/extensions/MentionSuggestion.vue.d.ts +15 -0
- package/dist/components/MessageInput/TextEditor/extensions/characterCountExtension.js +1 -1
- package/dist/components/MessageInput/TextEditor/extensions/emojiExtension.d.ts +1 -0
- package/dist/components/MessageInput/TextEditor/extensions/emojiExtension.js +22 -0
- package/dist/components/MessageInput/TextEditor/extensions/enterKeyExtension.d.ts +3 -0
- package/dist/components/MessageInput/TextEditor/extensions/enterKeyExtension.js +15 -0
- package/dist/components/MessageInput/TextEditor/extensions/imageExtension.js +2 -2
- package/dist/components/MessageInput/TextEditor/extensions/index.d.ts +8 -0
- package/dist/components/MessageInput/TextEditor/extensions/index.js +12 -0
- package/dist/components/MessageInput/TextEditor/extensions/mentionExtension.d.ts +5 -0
- package/dist/components/MessageInput/TextEditor/extensions/mentionExtension.js +330 -0
- package/dist/components/MessageInput/TextEditor/index.js +62 -62
- package/dist/components/MessageInput/i18n/en-US.d.ts +3 -0
- package/dist/components/MessageInput/i18n/en-US.js +4 -1
- package/dist/components/MessageInput/i18n/index.d.ts +6 -0
- package/dist/components/MessageInput/i18n/zh-CN.d.ts +3 -0
- package/dist/components/MessageInput/i18n/zh-CN.js +4 -1
- package/dist/components/MessageList/Message/ImageMessage/ImageMessage.js +119 -89
- package/dist/components/MessageList/Message/ImageMessage/ImagePreview.js +142 -0
- package/dist/components/MessageList/Message/ImageMessage/ImagePreview.vue.d.ts +20 -0
- package/dist/components/MessageList/Message/Message.vue.d.ts +8 -0
- package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +3 -3
- package/dist/components/MessageList/Message/MessageLayout/MessageLayout.js +69 -58
- package/dist/components/MessageList/Message/MessageLayout/MessageLayout.vue.d.ts +8 -0
- package/dist/components/MessageList/Message/index.js +8 -4
- package/dist/components/MessageList/MessageList.js +98 -90
- package/dist/components/MessageList/MessageList.vue.d.ts +1 -1
- package/dist/components/MessageList/index.d.ts +21 -3
- package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.js +6 -6
- package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.vue.d.ts +1 -1
- package/dist/index-BvFYOUyz.js +2936 -0
- package/dist/{index-Do-2CngU.js → index-C8Jw_xE4.js} +1621 -1731
- package/dist/{index-7vNB_Vx8.js → index-CiYL_XsE.js} +1 -1
- package/dist/index-CzCDLp99.js +2174 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +103 -103
- package/dist/states/MessageActionState/MessageActionState.js +83 -223
- package/dist/states/MessageInputState/MessageInputState.js +115 -83
- package/dist/states/MessageInputState/type.d.ts +36 -10
- package/dist/states/MessageInputState/utils.d.ts +1 -5
- package/dist/states/MessageListState/MessageListState.d.ts +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/{chat/index.d.ts → subEntry/chat/chat.d.ts} +2112 -2087
- package/dist/subEntry/chat/chat.js +89 -0
- package/dist/subEntry/chat/index.d.ts +11 -0
- package/dist/subEntry/chat/index.js +81 -0
- package/dist/{chat → subEntry/chat}/server.js +4 -4
- package/dist/{useId-CtirfF0W.js → useId-D5WE76CM.js} +1 -1
- package/dist/{utils-DaB7eSu5.js → utils-CttDpxqz.js} +1 -1
- package/package.json +8 -6
- package/src/components/ConversationList/ConversationPreview/ConversationPreview.scss +8 -0
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.vue +32 -1
- package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +3 -2
- package/src/components/ConversationList/ConversationPreview/utils.ts +98 -28
- package/src/components/ConversationList/i18n/en-US.ts +10 -1
- package/src/components/ConversationList/i18n/zh-CN.ts +10 -1
- package/src/components/LiveScenePanel/index.vue +1 -0
- package/src/components/MessageInput/QuotedMessagePreview/QuotedMessagePreview.vue +19 -22
- package/src/components/MessageInput/TextEditor/Editor.scss +25 -0
- package/src/components/MessageInput/TextEditor/EditorCore.ts +79 -99
- package/src/components/MessageInput/TextEditor/TextEditor.vue +64 -68
- package/src/components/MessageInput/TextEditor/extensions/MentionSuggestion.vue +449 -0
- package/src/components/MessageInput/TextEditor/extensions/emojiExtension.ts +22 -0
- package/src/components/MessageInput/TextEditor/extensions/enterKeyExtension.ts +22 -0
- package/src/components/MessageInput/TextEditor/extensions/index.ts +8 -0
- package/src/components/MessageInput/TextEditor/extensions/mentionExtension.ts +87 -0
- package/src/components/MessageInput/i18n/en-US.ts +3 -0
- package/src/components/MessageInput/i18n/zh-CN.ts +3 -0
- package/src/components/MessageList/Message/ImageMessage/ImageMessage.vue +49 -0
- package/src/components/MessageList/Message/ImageMessage/ImagePreview.vue +344 -0
- package/src/components/MessageList/Message/Message.vue +6 -0
- package/src/components/MessageList/Message/MessageLayout/MessageLayout.vue +8 -1
- package/src/components/MessageList/MessageList.vue +36 -14
- package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.vue +30 -31
- package/src/index.ts +1 -1
- package/src/{chat/index.ts → subEntry/chat/chat.ts} +25 -18
- package/src/subEntry/chat/index.ts +13 -0
- package/src/{chat → subEntry/chat}/server.ts +3 -3
- package/dist/chat/index.js +0 -59
- package/dist/index-ZILx4LYk.js +0 -4826
- package/dist/states/SearchState.d.ts +0 -314
- /package/dist/{chat → subEntry/chat}/server.d.ts +0 -0
|
@@ -1,32 +1,34 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { c as
|
|
3
|
-
import { View as
|
|
4
|
-
import { MessageType as
|
|
5
|
-
import { isCallMessage as
|
|
1
|
+
import { defineComponent as B, ref as b, computed as n, createElementBlock as D, openBlock as o, Fragment as h, createBlock as l, createCommentVNode as r, createVNode as c, unref as s, normalizeStyle as E, normalizeClass as m, withCtx as g, createTextVNode as G, toDisplayString as x, resolveDynamicComponent as F } from "vue";
|
|
2
|
+
import { c as d } from "../../../../index-DPczIrgX.js";
|
|
3
|
+
import { View as f } from "../../../../baseComp/View/index.js";
|
|
4
|
+
import { MessageType as a, ConversationType as C } from "../../../../types/engine.js";
|
|
5
|
+
import { isCallMessage as N } from "../../../../utils/call.js";
|
|
6
6
|
import P from "../../../Avatar/Avatar.js";
|
|
7
|
-
import
|
|
7
|
+
import H from "../../ReadReceiptInfo/ReadReceiptInfo.js";
|
|
8
8
|
import U from "../AudioMessage/AudioMessage.js";
|
|
9
9
|
import V from "../CustomMessage/CustomMessage.js";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import { GroupTipMessage as
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import { useMessageLayoutClasses as
|
|
22
|
-
import { _ as
|
|
23
|
-
const
|
|
10
|
+
import S from "../FaceMessage/FaceMessage.js";
|
|
11
|
+
import z from "../FileMessage/FileMessage.js";
|
|
12
|
+
import { GroupTipMessage as y } from "../GroupTipMessage/index.js";
|
|
13
|
+
import $ from "../ImageMessage/ImageMessage.js";
|
|
14
|
+
import X from "../LocationMessage/LocationMessage.js";
|
|
15
|
+
import j from "../MergerMessage/MergerMessage.js";
|
|
16
|
+
import q from "../RecalledMessage/RecalledMessage.js";
|
|
17
|
+
import J from "../TextMessage/TextMessage.js";
|
|
18
|
+
import K from "../VideoMessage/VideoMessage.js";
|
|
19
|
+
import Q from "./MessageBubble/MessageBubble.js";
|
|
20
|
+
import W from "./MessageMeta/MessageMeta.js";
|
|
21
|
+
import { useMessageLayoutClasses as Y } from "./useMessageLayoutClasses.js";
|
|
22
|
+
import { _ as Z } from "../../../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
23
|
+
const _ = /* @__PURE__ */ B({
|
|
24
24
|
__name: "MessageLayout",
|
|
25
25
|
props: {
|
|
26
26
|
message: { default: () => ({}) },
|
|
27
|
+
nick: { default: void 0 },
|
|
27
28
|
isAggregated: { type: Boolean, default: !1 },
|
|
28
29
|
isHiddenMessageAvatar: { type: Boolean, default: !1 },
|
|
29
30
|
isHiddenMessageMeta: { type: Boolean, default: !1 },
|
|
31
|
+
isHiddenMessageNick: { type: Boolean, default: !1 },
|
|
30
32
|
isFirstInChunk: { type: Boolean, default: void 0 },
|
|
31
33
|
isLastInChunk: { type: Boolean, default: void 0 },
|
|
32
34
|
alignment: { default: "two-sided" },
|
|
@@ -35,73 +37,82 @@ const Y = /* @__PURE__ */ b({
|
|
|
35
37
|
style: { default: void 0 }
|
|
36
38
|
},
|
|
37
39
|
setup(e) {
|
|
38
|
-
const t = e,
|
|
39
|
-
[
|
|
40
|
-
[
|
|
41
|
-
[
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
[
|
|
47
|
-
[
|
|
48
|
-
[
|
|
49
|
-
},
|
|
40
|
+
const t = e, u = b(!1), v = n(() => !!(t.message.type === a.CUSTOM && t.message.getMessageContent().businessID === "group_create" || t.message.type === a.CUSTOM && N(t.message) && t.message.conversationType === C.GROUP)), p = {
|
|
41
|
+
[a.TEXT]: J,
|
|
42
|
+
[a.IMAGE]: $,
|
|
43
|
+
[a.AUDIO]: U,
|
|
44
|
+
[a.VIDEO]: K,
|
|
45
|
+
[a.FILE]: z,
|
|
46
|
+
[a.FACE]: S,
|
|
47
|
+
[a.LOCATION]: X,
|
|
48
|
+
[a.MERGER]: j,
|
|
49
|
+
[a.CUSTOM]: V,
|
|
50
|
+
[a.GRP_TIP]: y
|
|
51
|
+
}, M = n(() => p[t.message.type]), R = n(() => t.message.flow === "out"), i = n(() => Y({
|
|
50
52
|
isMessageOwner: R.value,
|
|
51
53
|
alignment: t.alignment,
|
|
52
54
|
isAggregated: t.isAggregated
|
|
53
|
-
})), I =
|
|
55
|
+
})), I = n(() => i.value.layoutClasses), k = n(() => i.value.wrapperClasses), T = n(() => i.value.avatarClasses), A = n(() => i.value.bubbleClasses), O = n(() => i.value.metaClasses);
|
|
54
56
|
function L() {
|
|
55
|
-
|
|
57
|
+
u.value = !0;
|
|
56
58
|
}
|
|
57
59
|
function w() {
|
|
58
|
-
|
|
60
|
+
u.value = !1;
|
|
59
61
|
}
|
|
60
|
-
return (
|
|
61
|
-
e.message.isRevoked ? (
|
|
62
|
+
return (ee, se) => (o(), D(h, null, [
|
|
63
|
+
e.message.isRevoked ? (o(), l(s(q), {
|
|
62
64
|
key: 0,
|
|
63
65
|
class: "message-recalled",
|
|
64
66
|
message: e.message
|
|
65
|
-
}, null, 8, ["message"])) : e.message.type === a
|
|
67
|
+
}, null, 8, ["message"])) : e.message.type === s(a).GRP_TIP || v.value ? (o(), l(s(y), {
|
|
66
68
|
key: 1,
|
|
67
69
|
message: e.message
|
|
68
|
-
}, null, 8, ["message"])) :
|
|
70
|
+
}, null, 8, ["message"])) : M.value ? (o(), l(s(f), {
|
|
69
71
|
key: 2,
|
|
70
72
|
"data-message-id": e.message.ID,
|
|
71
|
-
class:
|
|
73
|
+
class: m(I.value),
|
|
72
74
|
style: E(e.style)
|
|
73
75
|
}, {
|
|
74
|
-
default:
|
|
75
|
-
e.isHiddenMessageAvatar ?
|
|
76
|
+
default: g(() => [
|
|
77
|
+
e.isHiddenMessageAvatar ? r("", !0) : (o(), l(s(P), {
|
|
76
78
|
key: 0,
|
|
77
|
-
class:
|
|
79
|
+
class: m(s(d)(T.value)),
|
|
78
80
|
src: e.message.avatar
|
|
79
81
|
}, null, 8, ["class", "src"])),
|
|
80
|
-
|
|
81
|
-
class:
|
|
82
|
+
c(s(f), {
|
|
83
|
+
class: m(s(d)(k.value))
|
|
82
84
|
}, {
|
|
83
|
-
default:
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
default: g(() => [
|
|
86
|
+
e.isHiddenMessageNick ? r("", !0) : (o(), l(s(f), {
|
|
87
|
+
key: 0,
|
|
88
|
+
class: m(s(d)("message-layout__nick"))
|
|
89
|
+
}, {
|
|
90
|
+
default: g(() => [
|
|
91
|
+
G(x(t.nick || e.message.nameCard || e.message.nick || e.message.from), 1)
|
|
92
|
+
]),
|
|
93
|
+
_: 1
|
|
94
|
+
}, 8, ["class"])),
|
|
95
|
+
c(s(Q), {
|
|
96
|
+
class: m(A.value),
|
|
86
97
|
message: e.message,
|
|
87
98
|
alignment: e.alignment,
|
|
88
99
|
isLastInChunk: !1,
|
|
89
100
|
messageActionList: e.messageActionList
|
|
90
101
|
}, {
|
|
91
|
-
default:
|
|
92
|
-
(
|
|
102
|
+
default: g(() => [
|
|
103
|
+
(o(), l(F(M.value), { message: e.message }, null, 8, ["message"]))
|
|
93
104
|
]),
|
|
94
105
|
_: 1
|
|
95
106
|
}, 8, ["class", "message", "alignment", "messageActionList"]),
|
|
96
|
-
e.isHiddenMessageMeta ?
|
|
97
|
-
key:
|
|
98
|
-
class:
|
|
107
|
+
e.isHiddenMessageMeta ? r("", !0) : (o(), l(s(W), {
|
|
108
|
+
key: 1,
|
|
109
|
+
class: m(O.value),
|
|
99
110
|
status: e.message.status,
|
|
100
111
|
flow: e.message.flow,
|
|
101
112
|
timestamp: e.message.time * 1e3,
|
|
102
113
|
"need-read-receipt": e.message.needReadReceipt,
|
|
103
114
|
"read-receipt-info": e.message.readReceiptInfo,
|
|
104
|
-
"is-group": e.message.conversationType ===
|
|
115
|
+
"is-group": e.message.conversationType === s(C).GROUP,
|
|
105
116
|
onOnReadReceiptTextClick: L
|
|
106
117
|
}, null, 8, ["class", "status", "flow", "timestamp", "need-read-receipt", "read-receipt-info", "is-group"]))
|
|
107
118
|
]),
|
|
@@ -109,9 +120,9 @@ const Y = /* @__PURE__ */ b({
|
|
|
109
120
|
}, 8, ["class"])
|
|
110
121
|
]),
|
|
111
122
|
_: 1
|
|
112
|
-
}, 8, ["data-message-id", "class", "style"])) :
|
|
113
|
-
|
|
114
|
-
open:
|
|
123
|
+
}, 8, ["data-message-id", "class", "style"])) : r("", !0),
|
|
124
|
+
c(s(H), {
|
|
125
|
+
open: u.value,
|
|
115
126
|
messageID: e.message.ID,
|
|
116
127
|
"read-count": e.message.readReceiptInfo.readCount,
|
|
117
128
|
"unread-count": e.message.readReceiptInfo.unreadCount,
|
|
@@ -120,7 +131,7 @@ const Y = /* @__PURE__ */ b({
|
|
|
120
131
|
}, null, 8, ["open", "messageID", "read-count", "unread-count", "is-peer-read"])
|
|
121
132
|
], 64));
|
|
122
133
|
}
|
|
123
|
-
}), Ae = /* @__PURE__ */
|
|
134
|
+
}), Ae = /* @__PURE__ */ Z(_, [["__scopeId", "data-v-90177209"]]);
|
|
124
135
|
export {
|
|
125
136
|
Ae as default
|
|
126
137
|
};
|
|
@@ -3,9 +3,11 @@ import { MessageModel } from '../../../../types/engine';
|
|
|
3
3
|
|
|
4
4
|
interface MessageLayoutProps {
|
|
5
5
|
message: MessageModel;
|
|
6
|
+
nick?: string;
|
|
6
7
|
isAggregated?: boolean;
|
|
7
8
|
isHiddenMessageAvatar?: boolean;
|
|
8
9
|
isHiddenMessageMeta?: boolean;
|
|
10
|
+
isHiddenMessageNick?: boolean;
|
|
9
11
|
isFirstInChunk?: boolean;
|
|
10
12
|
isLastInChunk?: boolean;
|
|
11
13
|
alignment?: 'left' | 'right' | 'two-sided';
|
|
@@ -16,9 +18,11 @@ interface MessageLayoutProps {
|
|
|
16
18
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MessageLayoutProps>, {
|
|
17
19
|
message: () => MessageModel;
|
|
18
20
|
alignment: string;
|
|
21
|
+
nick: undefined;
|
|
19
22
|
isAggregated: boolean;
|
|
20
23
|
isHiddenMessageAvatar: boolean;
|
|
21
24
|
isHiddenMessageMeta: boolean;
|
|
25
|
+
isHiddenMessageNick: boolean;
|
|
22
26
|
isFirstInChunk: undefined;
|
|
23
27
|
isLastInChunk: undefined;
|
|
24
28
|
messageActionList: undefined;
|
|
@@ -27,9 +31,11 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
27
31
|
}>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MessageLayoutProps>, {
|
|
28
32
|
message: () => MessageModel;
|
|
29
33
|
alignment: string;
|
|
34
|
+
nick: undefined;
|
|
30
35
|
isAggregated: boolean;
|
|
31
36
|
isHiddenMessageAvatar: boolean;
|
|
32
37
|
isHiddenMessageMeta: boolean;
|
|
38
|
+
isHiddenMessageNick: boolean;
|
|
33
39
|
isFirstInChunk: undefined;
|
|
34
40
|
isLastInChunk: undefined;
|
|
35
41
|
messageActionList: undefined;
|
|
@@ -38,6 +44,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
38
44
|
}>>> & Readonly<{}>, {
|
|
39
45
|
style: Record<string, any>;
|
|
40
46
|
message: MessageModel;
|
|
47
|
+
nick: string;
|
|
41
48
|
className: string;
|
|
42
49
|
isLastInChunk: boolean;
|
|
43
50
|
messageActionList: MessageAction[];
|
|
@@ -45,6 +52,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
45
52
|
isAggregated: boolean;
|
|
46
53
|
isHiddenMessageAvatar: boolean;
|
|
47
54
|
isHiddenMessageMeta: boolean;
|
|
55
|
+
isHiddenMessageNick: boolean;
|
|
48
56
|
isFirstInChunk: boolean;
|
|
49
57
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
50
58
|
export default _default;
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import { defineComponent as s, createBlock as a, openBlock as i, unref as
|
|
2
|
-
import
|
|
1
|
+
import { defineComponent as s, createBlock as a, openBlock as i, unref as n } from "vue";
|
|
2
|
+
import t from "./MessageLayout/MessageLayout.js";
|
|
3
3
|
const o = /* @__PURE__ */ s({
|
|
4
4
|
__name: "Message",
|
|
5
5
|
props: {
|
|
6
6
|
message: {},
|
|
7
|
+
nick: { default: void 0 },
|
|
7
8
|
alignment: { default: "two-sided" },
|
|
8
9
|
messageActionList: { default: void 0 },
|
|
9
10
|
isAggregated: { type: Boolean, default: !1 },
|
|
10
11
|
isFirstInChunk: { type: Boolean, default: void 0 },
|
|
11
12
|
isLastInChunk: { type: Boolean, default: void 0 },
|
|
12
13
|
isHiddenMessageAvatar: { type: Boolean, default: !1 },
|
|
14
|
+
isHiddenMessageNick: { type: Boolean, default: !1 },
|
|
13
15
|
isHiddenMessageMeta: { type: Boolean, default: !1 }
|
|
14
16
|
},
|
|
15
17
|
setup(e) {
|
|
16
|
-
return (
|
|
18
|
+
return (d, g) => (i(), a(n(t), {
|
|
19
|
+
nick: e.nick,
|
|
17
20
|
message: e.message,
|
|
18
21
|
messageActionList: e.messageActionList,
|
|
19
22
|
alignment: e.alignment,
|
|
@@ -21,8 +24,9 @@ const o = /* @__PURE__ */ s({
|
|
|
21
24
|
"is-first-in-chunk": e.isFirstInChunk,
|
|
22
25
|
"is-last-in-chunk": e.isLastInChunk,
|
|
23
26
|
"is-hidden-message-avatar": e.isHiddenMessageAvatar,
|
|
27
|
+
"is-hidden-message-nick": e.isHiddenMessageNick,
|
|
24
28
|
"is-hidden-message-meta": e.isHiddenMessageMeta
|
|
25
|
-
}, null, 8, ["message", "messageActionList", "alignment", "is-aggregated", "is-first-in-chunk", "is-last-in-chunk", "is-hidden-message-avatar", "is-hidden-message-meta"]));
|
|
29
|
+
}, null, 8, ["nick", "message", "messageActionList", "alignment", "is-aggregated", "is-first-in-chunk", "is-last-in-chunk", "is-hidden-message-avatar", "is-hidden-message-nick", "is-hidden-message-meta"]));
|
|
26
30
|
}
|
|
27
31
|
});
|
|
28
32
|
export {
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { c as
|
|
3
|
-
import
|
|
4
|
-
import { View as
|
|
5
|
-
import { useScroll as
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
|
|
1
|
+
import { defineComponent as Q, useSlots as Y, provide as Z, ref as v, computed as y, watch as A, nextTick as G, onMounted as ee, onUnmounted as te, createElementBlock as _, openBlock as c, createElementVNode as L, createVNode as N, createBlock as T, createCommentVNode as se, unref as n, withCtx as O, Fragment as V, renderList as F, normalizeClass as $, resolveDynamicComponent as U } from "vue";
|
|
2
|
+
import { c as x } from "../../index-DPczIrgX.js";
|
|
3
|
+
import oe from "../../baseComp/ObserverView/ObserverView.js";
|
|
4
|
+
import { View as ie } from "../../baseComp/View/index.js";
|
|
5
|
+
import { useScroll as ae } from "../../hooks/useScroll.js";
|
|
6
|
+
import { ConversationType as le, MessageType as re } from "../../types/engine.js";
|
|
7
|
+
import { isCallMessage as z } from "../../utils/call.js";
|
|
8
|
+
import { throttle as ne } from "../../utils/lodash.js";
|
|
9
|
+
import { Message as ue } from "./Message/index.js";
|
|
10
|
+
import ce from "./MessageForward/MessageForward.js";
|
|
11
|
+
import { MessageListContextSymbol as me } from "./MessageListContext.js";
|
|
12
|
+
import ve from "./MessageTimeDivider/MessageTimeDivider.js";
|
|
13
|
+
import ge from "./ScrollToBottom/ScrollToBottom.js";
|
|
14
|
+
import { useGroupSettingState as fe } from "../../states/GroupSettingState/GroupSettingState.js";
|
|
15
|
+
import { useConversationListState as de } from "../../states/ConversationListState/ConversationListState.js";
|
|
16
|
+
import { useMessageListState as pe } from "../../states/MessageListState/MessageListState.js";
|
|
17
|
+
import { _ as he } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
|
|
18
|
+
const Me = { class: "message-list" }, ke = { class: "message-chunk" }, b = 150, Te = /* @__PURE__ */ Q({
|
|
15
19
|
__name: "MessageList",
|
|
16
20
|
props: {
|
|
17
21
|
alignment: { default: "two-sided" },
|
|
@@ -22,132 +26,136 @@ const ce = { class: "message-list" }, me = { class: "message-chunk" }, y = 150,
|
|
|
22
26
|
Message: { default: void 0 },
|
|
23
27
|
MessageTimeDivider: { default: void 0 }
|
|
24
28
|
},
|
|
25
|
-
setup(
|
|
26
|
-
const a =
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
+
setup(C) {
|
|
30
|
+
const a = C, I = Y();
|
|
31
|
+
Z(me, { slots: I });
|
|
32
|
+
const f = v(!1), d = v(0), p = v(!1), t = v(null), h = v(!1), B = v(0), {
|
|
29
33
|
messageList: g,
|
|
30
|
-
loadMoreOlderMessage:
|
|
31
|
-
activeConversationID:
|
|
32
|
-
isDisableScroll:
|
|
33
|
-
setIsDisableScroll:
|
|
34
|
-
setEnableReadReceipt:
|
|
35
|
-
} =
|
|
34
|
+
loadMoreOlderMessage: P,
|
|
35
|
+
activeConversationID: W,
|
|
36
|
+
isDisableScroll: X,
|
|
37
|
+
setIsDisableScroll: M,
|
|
38
|
+
setEnableReadReceipt: j
|
|
39
|
+
} = pe(), { getGroupMemberList: q } = fe(), { scrollToBottom: S } = ae(), { activeConversation: J } = de(), D = y(() => {
|
|
40
|
+
var s;
|
|
41
|
+
return ((s = J.value) == null ? void 0 : s.type) === le.GROUP;
|
|
42
|
+
}), m = y(() => a.messageAggregationTime && a.messageAggregationTime > 0), H = y(() => {
|
|
36
43
|
if (!g.value)
|
|
37
44
|
return [];
|
|
38
|
-
const
|
|
45
|
+
const s = a.filter ? g.value.filter(a.filter) : g.value.filter((e) => !e.isDeleted);
|
|
39
46
|
if (!a.messageAggregationTime || a.messageAggregationTime <= 0)
|
|
40
|
-
return
|
|
47
|
+
return s.map((e) => ({
|
|
41
48
|
timestamp: e.time,
|
|
42
49
|
messages: [e],
|
|
43
50
|
key: `chunk-${e.ID}`
|
|
44
51
|
}));
|
|
45
|
-
const
|
|
46
|
-
return
|
|
47
|
-
const E = e.time,
|
|
48
|
-
!
|
|
52
|
+
const o = [], i = a.messageAggregationTime;
|
|
53
|
+
return s.forEach((e, u, r) => {
|
|
54
|
+
const E = e.time, k = o.length > 0 ? o[o.length - 1] : void 0, l = u > 0 ? r[u - 1] : void 0;
|
|
55
|
+
!k || E - k.timestamp > i || k.messages[0].from !== e.from || e.isRevoked || l && l.isRevoked || e.status === "fail" || l && l.status === "fail" || e.hasRiskContent || l && l.hasRiskContent || z(e) || l && z(l) || l && l.type === re.CUSTOM && l.getMessageContent().businessID === "group_create" ? o.push({
|
|
49
56
|
timestamp: E,
|
|
50
57
|
messages: [e],
|
|
51
58
|
key: `chunk-${e.ID}`
|
|
52
|
-
}) :
|
|
53
|
-
}),
|
|
54
|
-
}),
|
|
55
|
-
t.value && (
|
|
56
|
-
}, 100),
|
|
57
|
-
|
|
58
|
-
},
|
|
59
|
-
var
|
|
60
|
-
if (!(!
|
|
61
|
-
if (
|
|
62
|
-
|
|
59
|
+
}) : k.messages.push(e);
|
|
60
|
+
}), o;
|
|
61
|
+
}), R = ne(() => {
|
|
62
|
+
t.value && (d.value = t.value.scrollHeight - t.value.scrollTop - t.value.clientHeight, d.value > b && (M(!0), h.value = !0), d.value < b && (M(!1), h.value = !1));
|
|
63
|
+
}, 100), w = async () => {
|
|
64
|
+
f.value = !1, M(!1), h.value = !1;
|
|
65
|
+
}, K = async () => {
|
|
66
|
+
var s;
|
|
67
|
+
if (!(!f.value || p.value || !((s = g.value) != null && s.length))) {
|
|
68
|
+
if (M(!0), p.value = !0, !t.value) {
|
|
69
|
+
p.value = !1;
|
|
63
70
|
return;
|
|
64
71
|
}
|
|
65
|
-
if (
|
|
66
|
-
const
|
|
72
|
+
if (B.value = t.value.scrollHeight - t.value.scrollTop - t.value.clientHeight, await P(), await G(), t.value) {
|
|
73
|
+
const o = t.value.scrollHeight - t.value.clientHeight - B.value;
|
|
67
74
|
t.value.scrollTop = Math.max(0, Math.min(
|
|
68
75
|
t.value.scrollHeight - t.value.clientHeight,
|
|
69
|
-
|
|
76
|
+
o
|
|
70
77
|
));
|
|
71
78
|
}
|
|
72
|
-
|
|
79
|
+
p.value = !1;
|
|
73
80
|
}
|
|
74
81
|
};
|
|
75
|
-
return A(
|
|
76
|
-
|
|
77
|
-
}), A(g, (
|
|
78
|
-
if (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
});
|
|
82
|
+
return A(W, () => {
|
|
83
|
+
w();
|
|
84
|
+
}), A(g, (s, o) => {
|
|
85
|
+
if (o === void 0 && s && !f.value) {
|
|
86
|
+
G(() => {
|
|
87
|
+
S({ behavior: "instant" }), f.value = !0;
|
|
88
|
+
}), D.value && q();
|
|
82
89
|
return;
|
|
83
90
|
}
|
|
84
|
-
if (!
|
|
91
|
+
if (!o || !s || !s.length)
|
|
85
92
|
return;
|
|
86
|
-
const
|
|
87
|
-
(
|
|
93
|
+
const i = s[s.length - 1], e = o[o.length - 1];
|
|
94
|
+
(i == null ? void 0 : i.ID) !== (e == null ? void 0 : e.ID) && (i.flow === "out" || !X.value && d.value < b) && S({ behavior: "smooth" });
|
|
88
95
|
}, {
|
|
89
96
|
immediate: !0
|
|
90
|
-
}), A(() => a.enableReadReceipt, (
|
|
91
|
-
|
|
97
|
+
}), A(() => a.enableReadReceipt, (s) => {
|
|
98
|
+
j(s);
|
|
92
99
|
}, {
|
|
93
100
|
immediate: !0
|
|
94
|
-
}),
|
|
95
|
-
t.value && t.value.addEventListener("scroll",
|
|
96
|
-
}),
|
|
97
|
-
t.value && t.value.removeEventListener("scroll",
|
|
98
|
-
}), (
|
|
99
|
-
|
|
101
|
+
}), ee(() => {
|
|
102
|
+
t.value && t.value.addEventListener("scroll", R), w();
|
|
103
|
+
}), te(() => {
|
|
104
|
+
t.value && t.value.removeEventListener("scroll", R);
|
|
105
|
+
}), (s, o) => (c(), _("div", Me, [
|
|
106
|
+
L("div", {
|
|
100
107
|
id: "messageScrollList",
|
|
101
108
|
ref_key: "scrollContainer",
|
|
102
109
|
ref: t,
|
|
103
110
|
class: "message-list-container"
|
|
104
111
|
}, [
|
|
105
|
-
N(
|
|
112
|
+
N(n(oe), {
|
|
106
113
|
root: "#messageScrollList",
|
|
107
114
|
rootMargin: "50px 0px 0px 0px",
|
|
108
115
|
threshold: 0.1,
|
|
109
|
-
onOnShow:
|
|
116
|
+
onOnShow: K
|
|
110
117
|
}, {
|
|
111
|
-
default:
|
|
112
|
-
|
|
118
|
+
default: O(() => [...o[1] || (o[1] = [
|
|
119
|
+
L("div", { id: "loadMore" }, null, -1)
|
|
113
120
|
])]),
|
|
114
121
|
_: 1
|
|
115
122
|
}),
|
|
116
|
-
(
|
|
117
|
-
key:
|
|
118
|
-
class:
|
|
123
|
+
(c(!0), _(V, null, F(H.value, (i, e) => (c(), T(n(ie), {
|
|
124
|
+
key: i.key,
|
|
125
|
+
class: $(n(x)("message-chunk--container"))
|
|
119
126
|
}, {
|
|
120
|
-
default:
|
|
121
|
-
(
|
|
122
|
-
previousMessage: e > 0 ?
|
|
123
|
-
currentMessage:
|
|
127
|
+
default: O(() => [
|
|
128
|
+
(c(), T(U(a.MessageTimeDivider || n(ve)), {
|
|
129
|
+
previousMessage: e > 0 ? H.value[e - 1].messages[0] : void 0,
|
|
130
|
+
currentMessage: i.messages[0]
|
|
124
131
|
}, null, 8, ["previousMessage", "currentMessage"])),
|
|
125
|
-
|
|
126
|
-
(
|
|
127
|
-
key:
|
|
128
|
-
message:
|
|
132
|
+
L("div", ke, [
|
|
133
|
+
(c(!0), _(V, null, F(i.messages, (u, r) => (c(), T(U(a.Message || n(ue)), {
|
|
134
|
+
key: u.ID,
|
|
135
|
+
message: u,
|
|
129
136
|
alignment: a.alignment,
|
|
130
137
|
messageActionList: a.messageActionList,
|
|
131
|
-
isAggregated: !!(
|
|
138
|
+
isAggregated: !!(m.value && r !== 0),
|
|
132
139
|
"is-first-in-chunk": r === 0,
|
|
133
|
-
"is-last-in-chunk": r ===
|
|
134
|
-
isHiddenMessageAvatar: !!(
|
|
135
|
-
|
|
136
|
-
|
|
140
|
+
"is-last-in-chunk": r === i.messages.length - 1,
|
|
141
|
+
isHiddenMessageAvatar: !!(C.alignment === "two-sided" ? m.value && r !== 0 || u.flow === "out" : m.value && r !== 0),
|
|
142
|
+
"is-hidden-message-nick": !!(!D.value || (C.alignment === "two-sided" ? m.value && r !== 0 || u.flow === "out" : m.value && r !== 0)),
|
|
143
|
+
isHiddenMessageMeta: !!(m.value && r !== i.messages.length - 1)
|
|
144
|
+
}, null, 8, ["message", "alignment", "messageActionList", "isAggregated", "is-first-in-chunk", "is-last-in-chunk", "isHiddenMessageAvatar", "is-hidden-message-nick", "isHiddenMessageMeta"]))), 128))
|
|
137
145
|
])
|
|
138
146
|
]),
|
|
139
147
|
_: 2
|
|
140
148
|
}, 1032, ["class"]))), 128))
|
|
141
149
|
], 512),
|
|
142
|
-
N(
|
|
143
|
-
h.value ? (
|
|
150
|
+
N(n(ce)),
|
|
151
|
+
h.value ? (c(), T(n(ge), {
|
|
144
152
|
key: 0,
|
|
145
|
-
class:
|
|
146
|
-
onClick:
|
|
147
|
-
}, null, 8, ["class"])) :
|
|
153
|
+
class: $(n(x)("scroll-to-bottom")),
|
|
154
|
+
onClick: o[0] || (o[0] = (i) => n(S)({ behavior: "smooth" }))
|
|
155
|
+
}, null, 8, ["class"])) : se("", !0)
|
|
148
156
|
]));
|
|
149
157
|
}
|
|
150
|
-
}),
|
|
158
|
+
}), $e = /* @__PURE__ */ he(Te, [["__scopeId", "data-v-85ea222b"]]);
|
|
151
159
|
export {
|
|
152
|
-
|
|
160
|
+
$e as default
|
|
153
161
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component } from 'vue';
|
|
2
2
|
import { MessageAction } from '../../hooks/useMessageActions';
|
|
3
|
-
import {
|
|
3
|
+
import { MessageModel } from '../../types/engine';
|
|
4
4
|
|
|
5
5
|
interface MessageListProps {
|
|
6
6
|
alignment?: 'left' | 'right' | 'two-sided';
|
|
@@ -3,6 +3,10 @@ declare const Message: import('vue').DefineComponent<import('vue').ExtractPropTy
|
|
|
3
3
|
type: import('vue').PropType<import('../..').MessageModel>;
|
|
4
4
|
required: true;
|
|
5
5
|
};
|
|
6
|
+
nick: {
|
|
7
|
+
type: import('vue').PropType<string>;
|
|
8
|
+
default: undefined;
|
|
9
|
+
};
|
|
6
10
|
isLastInChunk: {
|
|
7
11
|
type: import('vue').PropType<boolean>;
|
|
8
12
|
default: undefined;
|
|
@@ -27,6 +31,10 @@ declare const Message: import('vue').DefineComponent<import('vue').ExtractPropTy
|
|
|
27
31
|
type: import('vue').PropType<boolean>;
|
|
28
32
|
default: boolean;
|
|
29
33
|
};
|
|
34
|
+
isHiddenMessageNick: {
|
|
35
|
+
type: import('vue').PropType<boolean>;
|
|
36
|
+
default: boolean;
|
|
37
|
+
};
|
|
30
38
|
isFirstInChunk: {
|
|
31
39
|
type: import('vue').PropType<boolean>;
|
|
32
40
|
default: undefined;
|
|
@@ -36,6 +44,10 @@ declare const Message: import('vue').DefineComponent<import('vue').ExtractPropTy
|
|
|
36
44
|
type: import('vue').PropType<import('../..').MessageModel>;
|
|
37
45
|
required: true;
|
|
38
46
|
};
|
|
47
|
+
nick: {
|
|
48
|
+
type: import('vue').PropType<string>;
|
|
49
|
+
default: undefined;
|
|
50
|
+
};
|
|
39
51
|
isLastInChunk: {
|
|
40
52
|
type: import('vue').PropType<boolean>;
|
|
41
53
|
default: undefined;
|
|
@@ -60,22 +72,28 @@ declare const Message: import('vue').DefineComponent<import('vue').ExtractPropTy
|
|
|
60
72
|
type: import('vue').PropType<boolean>;
|
|
61
73
|
default: boolean;
|
|
62
74
|
};
|
|
75
|
+
isHiddenMessageNick: {
|
|
76
|
+
type: import('vue').PropType<boolean>;
|
|
77
|
+
default: boolean;
|
|
78
|
+
};
|
|
63
79
|
isFirstInChunk: {
|
|
64
80
|
type: import('vue').PropType<boolean>;
|
|
65
81
|
default: undefined;
|
|
66
82
|
};
|
|
67
83
|
}>> & Readonly<{}>, {
|
|
84
|
+
nick: string;
|
|
68
85
|
isLastInChunk: boolean;
|
|
69
86
|
messageActionList: import('../../hooks/useMessageActions').MessageAction[];
|
|
70
87
|
alignment: "left" | "right" | "two-sided";
|
|
71
88
|
isAggregated: boolean;
|
|
72
89
|
isHiddenMessageAvatar: boolean;
|
|
73
90
|
isHiddenMessageMeta: boolean;
|
|
91
|
+
isHiddenMessageNick: boolean;
|
|
74
92
|
isFirstInChunk: boolean;
|
|
75
93
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
76
94
|
declare const MessageList: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
77
95
|
filter: {
|
|
78
|
-
type: import('vue').PropType<(message: import('
|
|
96
|
+
type: import('vue').PropType<(message: import('../..').MessageModel) => boolean>;
|
|
79
97
|
default: undefined;
|
|
80
98
|
};
|
|
81
99
|
enableReadReceipt: {
|
|
@@ -104,7 +122,7 @@ declare const MessageList: import('vue').DefineComponent<import('vue').ExtractPr
|
|
|
104
122
|
};
|
|
105
123
|
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
106
124
|
filter: {
|
|
107
|
-
type: import('vue').PropType<(message: import('
|
|
125
|
+
type: import('vue').PropType<(message: import('../..').MessageModel) => boolean>;
|
|
108
126
|
default: undefined;
|
|
109
127
|
};
|
|
110
128
|
enableReadReceipt: {
|
|
@@ -132,7 +150,7 @@ declare const MessageList: import('vue').DefineComponent<import('vue').ExtractPr
|
|
|
132
150
|
default: number;
|
|
133
151
|
};
|
|
134
152
|
}>> & Readonly<{}>, {
|
|
135
|
-
filter: (message: import('
|
|
153
|
+
filter: (message: import('../..').MessageModel) => boolean;
|
|
136
154
|
enableReadReceipt: boolean;
|
|
137
155
|
Message: import('vue').Component;
|
|
138
156
|
MessageTimeDivider: import('vue').Component;
|