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