@tencentcloud/chat-uikit-react 3.0.2 → 3.4.2

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 (115) hide show
  1. package/.eslintrc.cjs +5 -4
  2. package/CHANGELOG.md +9 -0
  3. package/debug/GenerateTestUserSig-es.js +26 -0
  4. package/debug/lib-generate-test-usersig-es.min.js +2 -0
  5. package/dist/components/Chat/Chat.d.ts +1 -1
  6. package/dist/components/Chat/Chat.js +18 -23
  7. package/dist/components/ChatHeader/AudioCallPicker/AudioCallPicker.d.ts +30 -0
  8. package/dist/components/ChatHeader/AudioCallPicker/AudioCallPicker.js +135 -0
  9. package/dist/components/ChatHeader/AudioCallPicker/index.d.ts +1 -0
  10. package/dist/components/ChatHeader/AudioCallPicker/index.js +4 -0
  11. package/dist/components/ChatHeader/ChatHeader.d.ts +6 -0
  12. package/dist/components/ChatHeader/ChatHeader.js +43 -41
  13. package/dist/components/ChatHeader/ChatHeaderUI/ChatHeaderUI.d.ts +14 -9
  14. package/dist/components/ChatHeader/ChatHeaderUI/ChatHeaderUI.js +47 -65
  15. package/dist/components/ChatHeader/VideoCallPicker/VideoCallPicker.d.ts +30 -0
  16. package/dist/components/ChatHeader/VideoCallPicker/VideoCallPicker.js +135 -0
  17. package/dist/components/ChatHeader/VideoCallPicker/index.d.ts +1 -0
  18. package/dist/components/ChatHeader/VideoCallPicker/index.js +4 -0
  19. package/dist/components/ChatHeader/index.d.ts +2 -1
  20. package/dist/components/ChatHeader/index.js +4 -2
  21. package/dist/components/Checkbox/index.js +1 -1
  22. package/dist/components/Modal/Modal.js +1 -1
  23. package/dist/components/Model/index.js +1 -1
  24. package/dist/components/Plugins/index.js +1 -1
  25. package/dist/components/Popup/index.js +1 -1
  26. package/dist/components/PopupNew/Popup.js +1 -1
  27. package/dist/components/Profile/Profile.js +20 -22
  28. package/dist/components/Profile/ProfileDefault.d.ts +3 -2
  29. package/dist/components/Profile/ProfileDefault.js +55 -56
  30. package/dist/components/Profile/hooks/useMyProfile.d.ts +2 -3
  31. package/dist/components/Profile/hooks/useMyProfile.js +1 -1
  32. package/dist/components/Profile/myProfile/MyProfile.d.ts +1 -1
  33. package/dist/components/Profile/myProfile/MyProfile.js +12 -16
  34. package/dist/components/index.js +27 -25
  35. package/dist/context/ChatContext.d.ts +1 -1
  36. package/dist/context/ChatContext.js +11 -16
  37. package/dist/context/ContactContext.d.ts +1 -1
  38. package/dist/external_modules/mui-BhvHeL5-.js +2253 -0
  39. package/dist/hooks/index.d.ts +2 -2
  40. package/dist/hooks/index.js +2 -2
  41. package/dist/{states/ChatHeaderState.d.ts → hooks/useChatHeader.d.ts} +6 -6
  42. package/dist/hooks/useChatHeader.js +41 -0
  43. package/dist/index-UBuvRM8r-DTXQB6zV.js +34000 -0
  44. package/dist/index.d.ts +3 -1
  45. package/dist/index.js +93 -4129
  46. package/dist/server/mainServer.js +2 -2
  47. package/dist/states/UIManagerState.d.ts +5 -5
  48. package/dist/states/UIManagerState.js +2 -2
  49. package/dist/states/index.d.ts +0 -1
  50. package/dist/states/index.js +2 -4
  51. package/dist/styles/AudioCallPicker.css +1 -0
  52. package/dist/styles/ChatHeaderUI.css +1 -1
  53. package/dist/styles/VideoCallPicker.css +1 -0
  54. package/dist/styles/index-UBuvRM8r.css +1 -0
  55. package/dist/styles/index.css +1 -1
  56. package/dist/styles/index2.css +1 -1
  57. package/dist/styles/index3.css +1 -1
  58. package/dist/styles/index4.css +1 -1
  59. package/dist/styles/index5.css +1 -1
  60. package/dist/types/message.d.ts +1 -1
  61. package/dist/types/user.d.ts +4 -4
  62. package/package.json +12 -20
  63. package/src/components/ChatHeader/AudioCallPicker/AudioCallPicker.module.scss +57 -0
  64. package/src/components/ChatHeader/AudioCallPicker/AudioCallPicker.tsx +234 -0
  65. package/src/components/ChatHeader/AudioCallPicker/index.ts +1 -0
  66. package/src/components/ChatHeader/ChatHeader.tsx +15 -3
  67. package/src/components/ChatHeader/ChatHeaderUI/ChatHeaderUI.tsx +33 -40
  68. package/src/components/ChatHeader/VideoCallPicker/VideoCallPicker.module.scss +57 -0
  69. package/src/components/ChatHeader/VideoCallPicker/VideoCallPicker.tsx +233 -0
  70. package/src/components/ChatHeader/VideoCallPicker/index.ts +1 -0
  71. package/src/components/ChatHeader/index.ts +2 -1
  72. package/src/components/Profile/Profile.tsx +7 -6
  73. package/src/components/Profile/ProfileDefault.tsx +8 -8
  74. package/src/components/Profile/hooks/useMyProfile.tsx +2 -3
  75. package/src/components/Profile/myProfile/MyProfile.tsx +1 -1
  76. package/src/context/ChatContext.tsx +1 -1
  77. package/src/context/ContactContext.tsx +1 -1
  78. package/src/hooks/index.ts +2 -2
  79. package/src/{states/ChatHeaderState.ts → hooks/useChatHeader.ts} +19 -22
  80. package/src/index.ts +3 -5
  81. package/src/server/mainServer.ts +2 -2
  82. package/src/states/UIManagerState.ts +9 -9
  83. package/src/states/index.ts +0 -2
  84. package/src/styles/index.scss +0 -1
  85. package/src/types/message.ts +1 -1
  86. package/src/types/user.ts +4 -4
  87. package/vite.config.ts +4 -25
  88. package/dist/ChatSetting-BtQwjHr0.js +0 -28525
  89. package/dist/assets/fonts/iconfont.ttf +0 -0
  90. package/dist/assets/fonts/iconfont.woff +0 -0
  91. package/dist/assets/fonts/iconfont.woff2 +0 -0
  92. package/dist/components/ChatHeader/ChatHeaderActions/ChatHeaderActions.d.ts +0 -11
  93. package/dist/components/ChatHeader/ChatHeaderActions/ChatHeaderActions.js +0 -79
  94. package/dist/components/ChatHeader/ChatHeaderActions/index.d.ts +0 -1
  95. package/dist/components/ChatHeader/ChatHeaderActions/index.js +0 -4
  96. package/dist/components/IconFont/Icon.d.ts +0 -21
  97. package/dist/components/IconFont/Icon.js +0 -47
  98. package/dist/components/IconFont/index.d.ts +0 -2
  99. package/dist/components/IconFont/index.js +0 -4
  100. package/dist/external_modules/lodash-vwDjcXxQ.js +0 -0
  101. package/dist/external_modules/mui-BcA3SBHM.js +0 -2473
  102. package/dist/states/ChatHeaderState.js +0 -48
  103. package/dist/styles/ChatHeaderActions.css +0 -1
  104. package/dist/styles/ChatSetting.css +0 -1
  105. package/dist/styles/Icon2.css +0 -1
  106. package/src/assets/fonts/iconfont.ttf +0 -0
  107. package/src/assets/fonts/iconfont.woff +0 -0
  108. package/src/assets/fonts/iconfont.woff2 +0 -0
  109. package/src/components/ChatHeader/ChatHeaderActions/ChatHeaderActions.module.scss +0 -44
  110. package/src/components/ChatHeader/ChatHeaderActions/ChatHeaderActions.tsx +0 -105
  111. package/src/components/ChatHeader/ChatHeaderActions/index.ts +0 -1
  112. package/src/components/IconFont/Icon.module.scss +0 -42
  113. package/src/components/IconFont/Icon.tsx +0 -68
  114. package/src/components/IconFont/index.ts +0 -3
  115. package/src/styles/fonts/icon-font.scss +0 -18
package/dist/index.js CHANGED
@@ -1,4132 +1,96 @@
1
- import { useUIKit as w, IconHorizontalMoreTwo as jt, IconAddCircle as Wt, IconChevronRight as Kt, Button as ne, Toast as ze, IconCloseCircleFilled as zt, IconSearch as en, IconAdd as Rt, IconCheckCircleFilled as tn, IconCircle as nn, IconChevronLeft as an, IconLoading as on, IconMuteFilled as rn, Dialog as kt, IconChevronDown as cn, Input as sn, IconEdit1 as ln, Switch as Yn, IconFile as Mt, IconImageRectangle as ft, IconVideo as Pt, IconBeautyAR as Zn, IconSendFilled as un } from "@tencentcloud/uikit-base-component-react";
2
- import { UIKitProvider as Zr, useUIKit as ur } from "@tencentcloud/uikit-base-component-react";
1
+ import { UIKitProvider as n, useUIKit as i } from "@tencentcloud/uikit-base-component-react";
3
2
  import "./locales/index.js";
4
- import Cn from "./server/mainServer.js";
5
- import { ChatHeader as Lr } from "./components/ChatHeader/ChatHeader.js";
6
- import { ChatHeaderActions as dr } from "./components/ChatHeader/ChatHeaderActions/ChatHeaderActions.js";
7
- import { Chat as pr } from "./components/Chat/Chat.js";
8
- import { Checkbox as Tr } from "./components/Checkbox/index.js";
9
- import { DivWithEdit as mr } from "./components/DivWithEdit/DivWithEdit.js";
10
- import { EmptyStateIndicator as _r } from "./components/EmptyStateIndicator/EmptyStateIndicator.js";
11
- import { Icon as Hr, changeTypeToIconClassName as hr } from "./components/Icon/Icon.js";
12
- import { IconTypes as fr } from "./components/Icon/type.js";
13
- import { Model as Gr } from "./components/Model/index.js";
14
- import { Plugins as Br } from "./components/Plugins/index.js";
15
- import { Popup as gr } from "./components/Popup/index.js";
16
- import { Profile as Kr } from "./components/Profile/Profile.js";
17
- import { TUIProfileDefault as kr } from "./components/Profile/ProfileDefault.js";
18
- import { Switch as Ar } from "./components/Switch/Switch.js";
19
- import { TUIContactContext as yr, TUIContactContextProvider as Ur, useTUIContactContext as br } from "./context/ContactContext.js";
20
- import { ChatProvider as xr, useChatContext as Or } from "./context/ChatContext.js";
21
- import { tagDoNotDelete as $r } from "./hooks/index.js";
22
- import { useUIManagerState as jr } from "./states/UIManagerState.js";
23
- import { useChatHeaderState as ec } from "./states/ChatHeaderState.js";
24
- import { E as De, g as P, s as He, a as pt, R as We, r as pe, z as ot, V as z, t as Ln, U as Sn, b as dn, c as Xn, d as pn, e as Jn, o as Tn, D as he, f as St, h as It, k as Dn, l as mn, n as ve, J as At, $ as Et, K as yt, q as Be, i as Ut, _ as Jt, u as Qn, O as Gt, j as ke, v as Tt, m as q, w as x, G as bt, x as at, y as st, N as _n, A as vn, M as Hn, T as lt, B as hn, C as Mn, F as wt, H as fn, P as Pn, I as Gn, L as Nn, Q as Bn, S as Fn, W as gn, X as Wn, Y as Kn } from "./ChatSetting-BtQwjHr0.js";
25
- import { Z as nc, a0 as ac, a1 as ic, a2 as oc, a3 as rc, a4 as cc, a5 as sc, a6 as lc, a7 as Yc, a8 as Zc, a9 as uc, aa as Cc, ab as Lc, ac as Sc, ad as dc, ae as Xc, af as pc, ag as Jc, ah as Tc, ai as Dc, aj as mc, ak as Qc, al as _c, am as vc, an as Hc, ao as hc, ap as Mc, aq as fc, ar as Pc, as as Gc, at as Nc, au as Bc, av as Fc, aw as gc, ax as Wc, ay as Kc, az as Rc, aA as kc, p as Ic, aB as Ac, aC as Ec, aD as yc } from "./ChatSetting-BtQwjHr0.js";
26
- import { jsxs as C, jsx as a, Fragment as Le } from "react/jsx-runtime";
27
- import Yt, { useState as R, useEffect as b, useCallback as O, useRef as U, useMemo as et, useLayoutEffect as Rn, Fragment as kn } from "react";
28
- import re, { TUIStore as dt, StoreName as In, TUIUserService as An, TUIConversationService as rt, TUIFriendService as En, ISearchType as qe, TUIChatService as yn } from "@tencentcloud/chat-uikit-engine";
29
- import { ISearchType as bc } from "@tencentcloud/chat-uikit-engine";
30
- import { TUILogin as Un } from "@tencentcloud/tui-core";
31
- import ye from "@tencentcloud/chat";
32
- import './styles/index5.css';function tr(n, e) {
33
- let t = 0;
34
- return (...i) => {
35
- const r = Date.now();
36
- if (!(r - t < e))
37
- return t = r, n(...i);
38
- };
39
- }
40
- const bn = "uikit-conversationActions", wn = "uikit-conversationActions__container", xn = "uikit-conversationActions__item", On = "uikit-conversationActions__popupIcon", Vn = "uikit-conversationActions__H5", $n = "uikit-conversationActions__H5__container", me = {
41
- conversationActions: bn,
42
- conversationActions__container: wn,
43
- conversationActions__item: xn,
44
- "conversationActions__item--delete": "uikit-conversationActions__item--delete",
45
- conversationActions__popupIcon: On,
46
- conversationActions__H5: Vn,
47
- conversationActions__H5__container: $n
48
- }, Dt = (n) => {
49
- const {
50
- conversation: e,
51
- enablePin: t,
52
- enableMute: i,
53
- enableDelete: r,
54
- enableMarkUnread: o,
55
- onMarkConversationUnread: c,
56
- onConversationPin: s,
57
- onConversationMute: l,
58
- onConversationDelete: Y,
59
- customConversationActions: u,
60
- PopupIcon: Z,
61
- PopupElements: S,
62
- onClick: d,
63
- className: L,
64
- style: p,
65
- onClose: D
66
- } = n, { t: J } = w(), [
67
- T,
68
- H
69
- ] = R({}), [X, G] = R(!0), [Q, K] = R(null), { markConversationUnread: h } = De();
70
- b(() => {
71
- if (e.unreadCount > 0)
72
- G(!0);
73
- else {
74
- const m = re.TYPES.CONV_MARK_TYPE_UNREAD, _ = e == null ? void 0 : e.markList.includes(m);
75
- G(_);
76
- }
77
- }, [e]);
78
- const F = O(() => ({
79
- pin: {
80
- enable: !!t,
81
- label: J(e.isPinned ? "TUIConversation.Unpin" : "TUIConversation.Pin"),
82
- onClick: (m) => {
83
- m.pinConversation(), s == null || s(m);
84
- }
85
- },
86
- mute: {
87
- enable: !!i,
88
- label: J(e.isMuted ? "TUIConversation.Unmute" : "TUIConversation.Mute"),
89
- onClick: (m) => {
90
- m.muteConversation(), l == null || l(m);
91
- }
92
- },
93
- markUnread: {
94
- enable: !!o,
95
- label: J(X ? "TUIConversation.MarkRead" : "TUIConversation.MarkUnRead"),
96
- onClick: (m) => {
97
- h(m.conversationID, !X), c == null || c(m);
98
- }
99
- },
100
- delete: {
101
- enable: !!r,
102
- label: J("TUIConversation.Delete"),
103
- onClick: (m) => {
104
- m.deleteConversation(), Y == null || Y(m);
105
- }
106
- }
107
- }), [
108
- t,
109
- i,
110
- r,
111
- o,
112
- J,
113
- e.isPinned,
114
- e.isMuted,
115
- X,
116
- s,
117
- l,
118
- h,
119
- c,
120
- Y
121
- ]);
122
- b(() => {
123
- H({
124
- ...F(),
125
- ...u
126
- });
127
- }, [e, u, F]);
128
- const W = (m) => {
129
- K(Q ? null : m.currentTarget);
130
- }, k = (m, _) => {
131
- var V;
132
- W(m), d == null || d(m, _, e), (V = T[_]) == null || V.onClick(e, m), D && D();
133
- }, v = (m) => {
134
- m.stopPropagation(), m.target === m.currentTarget && He && D && D();
135
- };
136
- return /* @__PURE__ */ C(
137
- "div",
138
- {
139
- className: P({
140
- [me.conversationActions]: !0,
141
- [me.conversationActions__H5]: He,
142
- className: L
143
- }),
144
- style: p,
145
- onClick: v,
146
- children: [
147
- /* @__PURE__ */ a("div", { onClick: W, className: me.conversationActions__popupIcon, children: Z || /* @__PURE__ */ a(jt, {}) }),
148
- S || He ? /* @__PURE__ */ a(
149
- "div",
150
- {
151
- className: me.conversationActions__H5__container,
152
- onClick: (m) => {
153
- m.stopPropagation();
154
- },
155
- children: Object.keys(T).map((m) => T[m].enable === !1 ? null : /* @__PURE__ */ a(
156
- "div",
157
- {
158
- className: P(
159
- me.conversationActions__item,
160
- {
161
- [me["conversationActions__item--delete"]]: m === "delete"
162
- }
163
- ),
164
- onClick: (_) => k(_, m),
165
- children: T[m].label
166
- },
167
- m
168
- ))
169
- }
170
- ) : /* @__PURE__ */ a(
171
- pt,
172
- {
173
- slotProps: {
174
- root: {
175
- style: {
176
- zIndex: 5
177
- }
178
- }
179
- },
180
- open: !!Q,
181
- anchor: Q,
182
- placement: "bottom-end",
183
- disablePortal: !0,
184
- children: /* @__PURE__ */ a("div", { className: me.conversationActions__container, children: Object.keys(T).map((m) => T[m].enable === !1 ? null : /* @__PURE__ */ a(
185
- "div",
186
- {
187
- className: P(
188
- me.conversationActions__item,
189
- {
190
- [me["conversationActions__item--delete"]]: m === "delete"
191
- }
192
- ),
193
- onClick: (_) => k(_, m),
194
- children: T[m].label
195
- },
196
- m
197
- )) })
198
- }
199
- )
200
- ]
201
- }
202
- );
203
- }, qn = "uikit-conversationCreateButton", jn = {
204
- conversationCreateButton: qn
205
- }, zn = (n) => {
206
- const {
207
- visible: e = !0,
208
- className: t,
209
- onClick: i
210
- } = n;
211
- return e ? /* @__PURE__ */ a(
212
- Wt,
213
- {
214
- className: P(
215
- jn.conversationCreateButton,
216
- t
217
- ),
218
- onClick: i,
219
- size: "24px"
220
- }
221
- ) : null;
222
- }, ea = "uikit-conversationCreateGroupDetail__nextContainer", ta = "uikit-conversationCreateGroupDetail__main", na = "uikit-conversationCreateGroupDetail__box", aa = "uikit-conversationCreateGroupDetail__inputText", ia = "uikit-conversationCreateGroupDetail__inputTitle", oa = "uikit-conversationCreateGroupDetail__illustrate", ra = "uikit-conversationCreateGroupDetail__portraitTitle", ca = "uikit-conversationCreateGroupDetail__portraitInfoContainer", sa = "uikit-conversationCreateGroupDetail__portraitInfo", la = "uikit-conversationCreateGroupDetail__portraitInfoNick", ae = {
223
- conversationCreateGroupDetail__nextContainer: ea,
224
- conversationCreateGroupDetail__main: ta,
225
- conversationCreateGroupDetail__box: na,
226
- conversationCreateGroupDetail__inputText: aa,
227
- conversationCreateGroupDetail__inputTitle: ia,
228
- conversationCreateGroupDetail__illustrate: oa,
229
- conversationCreateGroupDetail__portraitTitle: ra,
230
- conversationCreateGroupDetail__portraitInfoContainer: ca,
231
- conversationCreateGroupDetail__portraitInfo: sa,
232
- conversationCreateGroupDetail__portraitInfoNick: la
233
- };
234
- function Ya(n) {
235
- const {
236
- profileList: e,
237
- pageState: t,
238
- setPageState: i,
239
- onBeforeCreateConversation: r,
240
- onConversationCreated: o
241
- } = n, { t: c } = w(), { createGroupConversation: s } = De(), l = [dt.getData(In.USER, "userProfile"), ...e].map((X) => (X == null ? void 0 : X.nick) || (X == null ? void 0 : X.userID)).toString(), [Y, u] = R(
242
- l.length >= 15 ? `${l.slice(0, 12)}...` : l
243
- ), [Z, S] = R(""), [d, L] = R(We.WORK), p = (X, G) => {
244
- const { value: Q } = X.target;
245
- switch (G) {
246
- case "name":
247
- u(Q);
248
- break;
249
- case "id":
250
- S(Q);
251
- break;
252
- case "type":
253
- L(Q);
254
- break;
255
- }
256
- }, D = () => {
257
- i(pe.GROUP_TYPE);
258
- }, J = (X) => {
259
- switch (X) {
260
- case We.WORK:
261
- return Tn;
262
- case We.PUBLIC:
263
- return Jn;
264
- case We.MEETING:
265
- return pn;
266
- case We.AVCHATROOM:
267
- return Xn;
268
- default:
269
- return "";
270
- }
271
- }, T = () => {
272
- var X;
273
- return (X = dn) == null ? void 0 : X.find((G) => G.type === d).des;
274
- }, H = async () => {
275
- const X = e.map((h) => ({
276
- userID: h.userID
277
- })), G = J(d), Q = {
278
- name: Y,
279
- type: d,
280
- groupID: Z,
281
- avatar: G,
282
- memberList: X
283
- }, K = (r == null ? void 0 : r(Q)) || Q;
284
- s(K).then((h) => {
285
- o == null || o(h);
286
- }).catch((h) => {
287
- ze.error({ message: h.message });
288
- });
289
- };
290
- return t !== pe.GROUP_TYPE ? /* @__PURE__ */ C(Le, { children: [
291
- /* @__PURE__ */ C("div", { className: ae.conversationCreateGroupDetail__main, children: [
292
- /* @__PURE__ */ a("div", { className: `${ae.conversationCreateGroupDetail__box} ${ae.conversationCreateGroupDetail__name}`, children: /* @__PURE__ */ a(
293
- ot,
294
- {
295
- maxLength: 15,
296
- value: Y,
297
- onChange: (X) => {
298
- p(X, "name");
299
- },
300
- border: "bottom",
301
- inputClassName: ae.conversationCreateGroupDetail__inputText,
302
- clearable: !0,
303
- placeholder: c("TUIConversation.Group Name")
304
- }
305
- ) }),
306
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__box, children: /* @__PURE__ */ a(
307
- ot,
308
- {
309
- border: "bottom",
310
- inputClassName: ae.conversationCreateGroupDetail__inputText,
311
- clearable: !0,
312
- value: Z,
313
- onChange: (X) => {
314
- p(X, "id");
315
- },
316
- placeholder: c("TUIConversation.Group ID")
317
- }
318
- ) }),
319
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__box, onClick: D, children: /* @__PURE__ */ a(
320
- ot,
321
- {
322
- readOnly: !0,
323
- border: "bottom",
324
- inputClassName: ae.conversationCreateGroupDetail__inputText,
325
- prefix: /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__inputTitle, children: c("TUIConversation.Group Type") }),
326
- suffix: /* @__PURE__ */ a(Kt, {}),
327
- value: c(`TUIConversation.${d}`),
328
- onChange: (X) => {
329
- p(X, "type");
330
- }
331
- }
332
- ) }),
333
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__illustrate, children: c(`TUIConversation.${T()}`) }),
334
- /* @__PURE__ */ C("div", { className: ae.conversationCreateGroupDetail__portrait, children: [
335
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__portraitTitle, children: c("TUIConversation.Participants") }),
336
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__portraitInfoContainer, children: e.map(({ avatar: X, userID: G, nick: Q }) => /* @__PURE__ */ C("div", { className: ae.conversationCreateGroupDetail__portraitInfo, children: [
337
- /* @__PURE__ */ a(z, { src: X || Ln }),
338
- /* @__PURE__ */ a(
339
- "div",
340
- {
341
- className: ae.conversationCreateGroupDetail__portraitInfoNick,
342
- children: Q || G
343
- }
344
- )
345
- ] }, G)) })
346
- ] })
347
- ] }),
348
- /* @__PURE__ */ a("div", { className: ae.conversationCreateGroupDetail__nextContainer, children: /* @__PURE__ */ a(ne, { onClick: H, children: c("TUIConversation.Create") }) })
349
- ] }) : /* @__PURE__ */ a(
350
- Sn,
351
- {
352
- groupType: d,
353
- setGroupType: L,
354
- setPageState: i
355
- }
356
- );
357
- }
358
- const Za = "uikit-conversationCreateSelectView", ua = "uikit-conversationCreateSelectView__item", Ca = "uikit-conversationCreateSelectView__close", La = "uikit-conversationCreateSelectView__nick", it = {
359
- conversationCreateSelectView: Za,
360
- conversationCreateSelectView__item: ua,
361
- conversationCreateSelectView__close: Ca,
362
- conversationCreateSelectView__nick: La
363
- };
364
- function Sa(n) {
365
- const { selectList: e, setSelectList: t } = n, i = (r) => {
366
- e.splice(r, 1), t([...e]);
367
- };
368
- return /* @__PURE__ */ a("div", { className: it.conversationCreateSelectView, children: e.map((r, o) => {
369
- const { nick: c, userID: s, avatar: l } = r;
370
- return /* @__PURE__ */ C("div", { className: it.conversationCreateSelectView__item, children: [
371
- /* @__PURE__ */ a(
372
- "div",
373
- {
374
- className: it.conversationCreateSelectView__close,
375
- onClick: () => {
376
- i(o);
377
- },
378
- children: /* @__PURE__ */ a(zt, {})
379
- }
380
- ),
381
- /* @__PURE__ */ a(z, { src: l }),
382
- /* @__PURE__ */ a("div", { className: it.conversationCreateSelectView__nick, children: c || s })
383
- ] }, s);
384
- }) });
385
- }
386
- const da = "YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXXGJHHSDSJNKKTMOMLCRXYPSNQSECCQZGGLLYJLMYZZSECYKYYHQWJSSGGYXYZYJWWKDJHYCHMYXJTLXJYQBYXZLDWRDJRWYSRLDZJPCBZJJBRCFTLECZSTZFXXZHTRQHYBDLYCZSSYMMRFMYQZPWWJJYFCRWFDFZQPYDDWYXKYJAWJFFXYPSFTZYHHYZYSWCJYXSCLCXXWZZXNBGNNXBXLZSZSBSGPYSYZDHMDZBQBZCWDZZYYTZHBTSYYBZGNTNXQYWQSKBPHHLXGYBFMJEBJHHGQTJCYSXSTKZHLYCKGLYSMZXYALMELDCCXGZYRJXSDLTYZCQKCNNJWHJTZZCQLJSTSTBNXBTYXCEQXGKWJYFLZQLYHYXSPSFXLMPBYSXXXYDJCZYLLLSJXFHJXPJBTFFYABYXBHZZBJYZLWLCZGGBTSSMDTJZXPTHYQTGLJSCQFZKJZJQNLZWLSLHDZBWJNCJZYZSQQYCQYRZCJJWYBRTWPYFTWEXCSKDZCTBZHYZZYYJXZCFFZZMJYXXSDZZOTTBZLQWFCKSZSXFYRLNYJMBDTHJXSQQCCSBXYYTSYFBXDZTGBCNSLCYZZPSAZYZZSCJCSHZQYDXLBPJLLMQXTYDZXSQJTZPXLCGLQTZWJBHCTSYJSFXYEJJTLBGXSXJMYJQQPFZASYJNTYDJXKJCDJSZCBARTDCLYJQMWNQNCLLLKBYBZZSYHQQLTWLCCXTXLLZNTYLNEWYZYXCZXXGRKRMTCNDNJTSYYSSDQDGHSDBJGHRWRQLYBGLXHLGTGXBQJDZPYJSJYJCTMRNYMGRZJCZGJMZMGXMPRYXKJNYMSGMZJYMKMFXMLDTGFBHCJHKYLPFMDXLQJJSMTQGZSJLQDLDGJYCALCMZCSDJLLNXDJFFFFJCZFMZFFPFKHKGDPSXKTACJDHHZDDCRRCFQYJKQCCWJDXHWJLYLLZGCFCQDSMLZPBJJPLSBCJGGDCKKDEZSQCCKJGCGKDJTJDLZYCXKLQSCGJCLTFPCQCZGWPJDQYZJJBYJHSJDZWGFSJGZKQCCZLLPSPKJGQJHZZLJPLGJGJJTHJJYJZCZMLZLYQBGJWMLJKXZDZNJQSYZMLJLLJKYWXMKJLHSKJGBMCLYYMKXJQLBMLLKMDXXKWYXYSLMLPSJQQJQXYXFJTJDXMXXLLCXQBSYJBGWYMBGGBCYXPJYGPEPFGDJGBHBNSQJYZJKJKHXQFGQZKFHYGKHDKLLSDJQXPQYKYBNQSXQNSZSWHBSXWHXWBZZXDMNSJBSBKBBZKLYLXGWXDRWYQZMYWSJQLCJXXJXKJEQXSCYETLZHLYYYSDZPAQYZCMTLSHTZCFYZYXYLJSDCJQAGYSLCQLYYYSHMRQQKLDXZSCSSSYDYCJYSFSJBFRSSZQSBXXPXJYSDRCKGJLGDKZJZBDKTCSYQPYHSTCLDJDHMXMCGXYZHJDDTMHLTXZXYLYMOHYJCLTYFBQQXPFBDFHHTKSQHZYYWCNXXCRWHOWGYJLEGWDQCWGFJYCSNTMYTOLBYGWQWESJPWNMLRYDZSZTXYQPZGCWXHNGPYXSHMYQJXZTDPPBFYHZHTJYFDZWKGKZBLDNTSXHQEEGZZYLZMMZYJZGXZXKHKSTXNXXWYLYAPSTHXDWHZYMPXAGKYDXBHNHXKDPJNMYHYLPMGOCSLNZHKXXLPZZLBMLSFBHHGYGYYGGBHSCYAQTYWLXTZQCEZYDQDQMMHTKLLSZHLSJZWFYHQSWSCWLQAZYNYTLSXTHAZNKZZSZZLAXXZWWCTGQQTDDYZTCCHYQZFLXPSLZYGPZSZNGLNDQTBDLXGTCTAJDKYWNSYZLJHHZZCWNYYZYWMHYCHHYXHJKZWSXHZYXLYSKQYSPSLYZWMYPPKBYGLKZHTYXAXQSYSHXASMCHKDSCRSWJPWXSGZJLWWSCHSJHSQNHCSEGNDAQTBAALZZMSSTDQJCJKTSCJAXPLGGXHHGXXZCXPDMMHLDGTYBYSJMXHMRCPXXJZCKZXSHMLQXXTTHXWZFKHCCZDYTCJYXQHLXDHYPJQXYLSYYDZOZJNYXQEZYSQYAYXWYPDGXDDXSPPYZNDLTWRHXYDXZZJHTCXMCZLHPYYYYMHZLLHNXMYLLLMDCPPXHMXDKYCYRDLTXJCHHZZXZLCCLYLNZSHZJZZLNNRLWHYQSNJHXYNTTTKYJPYCHHYEGKCTTWLGQRLGGTGTYGYHPYHYLQYQGCWYQKPYYYTTTTLHYHLLTYTTSPLKYZXGZWGPYDSSZZDQXSKCQNMJJZZBXYQMJRTFFBTKHZKBXLJJKDXJTLBWFZPPTKQTZTGPDGNTPJYFALQMKGXBDCLZFHZCLLLLADPMXDJHLCCLGYHDZFGYDDGCYYFGYDXKSSEBDHYKDKDKHNAXXYBPBYYHXZQGAFFQYJXDMLJCSQZLLPCHBSXGJYNDYBYQSPZWJLZKSDDTACTBXZDYZYPJZQSJNKKTKNJDJGYYPGTLFYQKASDNTCYHBLWDZHBBYDWJRYGKZYHEYYFJMSDTYFZJJHGCXPLXHLDWXXJKYTCYKSSSMTWCTTQZLPBSZDZWZXGZAGYKTYWXLHLSPBCLLOQMMZSSLCMBJCSZZKYDCZJGQQDSMCYTZQQLWZQZXSSFPTTFQMDDZDSHDTDWFHTDYZJYQJQKYPBDJYYXTLJHDRQXXXHAYDHRJLKLYTWHLLRLLRCXYLBWSRSZZSYMKZZHHKYHXKSMDSYDYCJPBZBSQLFCXXXNXKXWYWSDZYQOGGQMMYHCDZTTFJYYBGSTTTYBYKJDHKYXBELHTYPJQNFXFDYKZHQKZBYJTZBXHFDXKDASWTAWAJLDYJSFHBLDNNTNQJTJNCHXFJSRFWHZFMDRYJYJWZPDJKZYJYMPCYZNYNXFBYTFYFWYGDBNZZZDNYTXZEMMQBSQEHXFZMBMFLZZSRXYMJGSXWZJSPRYDJSJGXHJJGLJJYNZZJXHGXKYMLPYYYCXYTWQZSWHWLYRJLPXSLSXMFSWWKLCTNXNYNPSJSZHDZEPTXMYYWXYYSYWLXJQZQXZDCLEEELMCPJPCLWBXSQHFWWTFFJTNQJHJQDXHWLBYZNFJLALKYYJLDXHHYCSTYYWNRJYXYWTRMDRQHWQCMFJDYZMHMYYXJWMYZQZXTLMRSPWWCHAQBXYGZYPXYYRRCLMPYMGKSJSZYSRMYJSNXTPLNBAPPYPYLXYYZKYNLDZYJZCZNNLMZHHARQMPGWQTZMXXMLLHGDZXYHXKYXYCJMFFYYHJFSBSSQLXXNDYCANNMTCJCYPRRNYTYQNYYMBMSXNDLYLYSLJRLXYSXQMLLYZLZJJJKYZZCSFBZXXMSTBJGNXYZHLXNMCWSCYZYFZLXBRNNNYLBNRTGZQYSATSWRYHYJZMZDHZGZDWYBSSCSKXSYHYTXXGCQGXZZSHYXJSCRHMKKBXCZJYJYMKQHZJFNBHMQHYSNJNZYBKNQMCLGQHWLZNZSWXKHLJHYYBQLBFCDSXDLDSPFZPSKJYZWZXZDDXJSMMEGJSCSSMGCLXXKYYYLNYPWWWGYDKZJGGGZGGSYCKNJWNJPCXBJJTQTJWDSSPJXZXNZXUMELPXFSXTLLXCLJXJJLJZXCTPSWXLYDHLYQRWHSYCSQYYBYAYWJJJQFWQCQQCJQGXALDBZZYJGKGXPLTZYFXJLTPADKYQHPMATLCPDCKBMTXYBHKLENXDLEEGQDYMSAWHZMLJTWYGXLYQZLJEEYYBQQFFNLYXRDSCTGJGXYYNKLLYQKCCTLHJLQMKKZGCYYGLLLJDZGYDHZWXPYSJBZKDZGYZZHYWYFQYTYZSZYEZZLYMHJJHTSMQWYZLKYYWZCSRKQYTLTDXWCTYJKLWSQZWBDCQYNCJSRSZJLKCDCDTLZZZACQQZZDDXYPLXZBQJYLZLLLQDDZQJYJYJZYXNYYYNYJXKXDAZWYRDLJYYYRJLXLLDYXJCYWYWNQCCLDDNYYYNYCKCZHXXCCLGZQJGKWPPCQQJYSBZZXYJSQPXJPZBSBDSFNSFPZXHDWZTDWPPTFLZZBZDMYYPQJRSDZSQZSQXBDGCPZSWDWCSQZGMDHZXMWWFYBPDGPHTMJTHZSMMBGZMBZJCFZWFZBBZMQCFMBDMCJXLGPNJBBXGYHYYJGPTZGZMQBQTCGYXJXLWZKYDPDYMGCFTPFXYZTZXDZXTGKMTYBBCLBJASKYTSSQYYMSZXFJEWLXLLSZBQJJJAKLYLXLYCCTSXMCWFKKKBSXLLLLJYXTYLTJYYTDPJHNHNNKBYQNFQYYZBYYESSESSGDYHFHWTCJBSDZZTFDMXHCNJZYMQWSRYJDZJQPDQBBSTJGGFBKJBXTGQHNGWJXJGDLLTHZHHYYYYYYSXWTYYYCCBDBPYPZYCCZYJPZYWCBDLFWZCWJDXXHYHLHWZZXJTCZLCDPXUJCZZZLYXJJTXPHFXWPYWXZPTDZZBDZCYHJHMLXBQXSBYLRDTGJRRCTTTHYTCZWMXFYTWWZCWJWXJYWCSKYBZSCCTZQNHXNWXXKHKFHTSWOCCJYBCMPZZYKBNNZPBZHHZDLSYDDYTYFJPXYNGFXBYQXCBHXCPSXTYZDMKYSNXSXLHKMZXLYHDHKWHXXSSKQYHHCJYXGLHZXCSNHEKDTGZXQYPKDHEXTYKCNYMYYYPKQYYYKXZLTHJQTBYQHXBMYHSQCKWWYLLHCYYLNNEQXQWMCFBDCCMLJGGXDQKTLXKGNQCDGZJWYJJLYHHQTTTNWCHMXCXWHWSZJYDJCCDBQCDGDNYXZTHCQRXCBHZTQCBXWGQWYYBXHMBYMYQTYEXMQKYAQYRGYZSLFYKKQHYSSQYSHJGJCNXKZYCXSBXYXHYYLSTYCXQTHYSMGSCPMMGCCCCCMTZTASMGQZJHKLOSQYLSWTMXSYQKDZLJQQYPLSYCZTCQQPBBQJZCLPKHQZYYXXDTDDTSJCXFFLLCHQXMJLWCJCXTSPYCXNDTJSHJWXDQQJSKXYAMYLSJHMLALYKXCYYDMNMDQMXMCZNNCYBZKKYFLMCHCMLHXRCJJHSYLNMTJZGZGYWJXSRXCWJGJQHQZDQJDCJJZKJKGDZQGJJYJYLXZXXCDQHHHEYTMHLFSBDJSYYSHFYSTCZQLPBDRFRZTZYKYWHSZYQKWDQZRKMSYNBCRXQBJYFAZPZZEDZCJYWBCJWHYJBQSZYWRYSZPTDKZPFPBNZTKLQYHBBZPNPPTYZZYBQNYDCPJMMCYCQMCYFZZDCMNLFPBPLNGQJTBTTNJZPZBBZNJKLJQYLNBZQHKSJZNGGQSZZKYXSHPZSNBCGZKDDZQANZHJKDRTLZLSWJLJZLYWTJNDJZJHXYAYNCBGTZCSSQMNJPJYTYSWXZFKWJQTKHTZPLBHSNJZSYZBWZZZZLSYLSBJHDWWQPSLMMFBJDWAQYZTCJTBNNWZXQXCDSLQGDSDPDZHJTQQPSWLYYJZLGYXYZLCTCBJTKTYCZJTQKBSJLGMGZDMCSGPYNJZYQYYKNXRPWSZXMTNCSZZYXYBYHYZAXYWQCJTLLCKJJTJHGDXDXYQYZZBYWDLWQCGLZGJGQRQZCZSSBCRPCSKYDZNXJSQGXSSJMYDNSTZTPBDLTKZWXQWQTZEXNQCZGWEZKSSBYBRTSSSLCCGBPSZQSZLCCGLLLZXHZQTHCZMQGYZQZNMCOCSZJMMZSQPJYGQLJYJPPLDXRGZYXCCSXHSHGTZNLZWZKJCXTCFCJXLBMQBCZZWPQDNHXLJCTHYZLGYLNLSZZPCXDSCQQHJQKSXZPBAJYEMSMJTZDXLCJYRYYNWJBNGZZTMJXLTBSLYRZPYLSSCNXPHLLHYLLQQZQLXYMRSYCXZLMMCZLTZSDWTJJLLNZGGQXPFSKYGYGHBFZPDKMWGHCXMSGDXJMCJZDYCABXJDLNBCDQYGSKYDQTXDJJYXMSZQAZDZFSLQXYJSJZYLBTXXWXQQZBJZUFBBLYLWDSLJHXJYZJWTDJCZFQZQZZDZSXZZQLZCDZFJHYSPYMPQZMLPPLFFXJJNZZYLSJEYQZFPFZKSYWJJJHRDJZZXTXXGLGHYDXCSKYSWMMZCWYBAZBJKSHFHJCXMHFQHYXXYZFTSJYZFXYXPZLCHMZMBXHZZSXYFYMNCWDABAZLXKTCSHHXKXJJZJSTHYGXSXYYHHHJWXKZXSSBZZWHHHCWTZZZPJXSNXQQJGZYZYWLLCWXZFXXYXYHXMKYYSWSQMNLNAYCYSPMJKHWCQHYLAJJMZXHMMCNZHBHXCLXTJPLTXYJHDYYLTTXFSZHYXXSJBJYAYRSMXYPLCKDUYHLXRLNLLSTYZYYQYGYHHSCCSMZCTZQXKYQFPYYRPFFLKQUNTSZLLZMWWTCQQYZWTLLMLMPWMBZSSTZRBPDDTLQJJBXZCSRZQQYGWCSXFWZLXCCRSZDZMCYGGDZQSGTJSWLJMYMMZYHFBJDGYXCCPSHXNZCSBSJYJGJMPPWAFFYFNXHYZXZYLREMZGZCYZSSZDLLJCSQFNXZKPTXZGXJJGFMYYYSNBTYLBNLHPFZDCYFBMGQRRSSSZXYSGTZRNYDZZCDGPJAFJFZKNZBLCZSZPSGCYCJSZLMLRSZBZZLDLSLLYSXSQZQLYXZLSKKBRXBRBZCYCXZZZEEYFGKLZLYYHGZSGZLFJHGTGWKRAAJYZKZQTSSHJJXDCYZUYJLZYRZDQQHGJZXSSZBYKJPBFRTJXLLFQWJHYLQTYMBLPZDXTZYGBDHZZRBGXHWNJTJXLKSCFSMWLSDQYSJTXKZSCFWJLBXFTZLLJZLLQBLSQMQQCGCZFPBPHZCZJLPYYGGDTGWDCFCZQYYYQYSSCLXZSKLZZZGFFCQNWGLHQYZJJCZLQZZYJPJZZBPDCCMHJGXDQDGDLZQMFGPSYTSDYFWWDJZJYSXYYCZCYHZWPBYKXRYLYBHKJKSFXTZJMMCKHLLTNYYMSYXYZPYJQYCSYCWMTJJKQYRHLLQXPSGTLYYCLJSCPXJYZFNMLRGJJTYZBXYZMSJYJHHFZQMSYXRSZCWTLRTQZSSTKXGQKGSPTGCZNJSJCQCXHMXGGZTQYDJKZDLBZSXJLHYQGGGTHQSZPYHJHHGYYGKGGCWJZZYLCZLXQSFTGZSLLLMLJSKCTBLLZZSZMMNYTPZSXQHJCJYQXYZXZQZCPSHKZZYSXCDFGMWQRLLQXRFZTLYSTCTMJCXJJXHJNXTNRZTZFQYHQGLLGCXSZSJDJLJCYDSJTLNYXHSZXCGJZYQPYLFHDJSBPCCZHJJJQZJQDYBSSLLCMYTTMQTBHJQNNYGKYRQYQMZGCJKPDCGMYZHQLLSLLCLMHOLZGDYYFZSLJCQZLYLZQJESHNYLLJXGJXLYSYYYXNBZLJSSZCQQCJYLLZLTJYLLZLLBNYLGQCHXYYXOXCXQKYJXXXYKLXSXXYQXCYKQXQCSGYXXYQXYGYTQOHXHXPYXXXULCYEYCHZZCBWQBBWJQZSCSZSSLZYLKDESJZWMYMCYTSDSXXSCJPQQSQYLYYZYCMDJDZYWCBTJSYDJKCYDDJLBDJJSODZYSYXQQYXDHHGQQYQHDYXWGMMMAJDYBBBPPBCMUUPLJZSMTXERXJMHQNUTPJDCBSSMSSSTKJTSSMMTRCPLZSZMLQDSDMJMQPNQDXCFYNBFSDQXYXHYAYKQYDDLQYYYSSZBYDSLNTFQTZQPZMCHDHCZCWFDXTMYQSPHQYYXSRGJCWTJTZZQMGWJJTJHTQJBBHWZPXXHYQFXXQYWYYHYSCDYDHHQMNMTMWCPBSZPPZZGLMZFOLLCFWHMMSJZTTDHZZYFFYTZZGZYSKYJXQYJZQBHMBZZLYGHGFMSHPZFZSNCLPBQSNJXZSLXXFPMTYJYGBXLLDLXPZJYZJYHHZCYWHJYLSJEXFSZZYWXKZJLUYDTMLYMQJPWXYHXSKTQJEZRPXXZHHMHWQPWQLYJJQJJZSZCPHJLCHHNXJLQWZJHBMZYXBDHHYPZLHLHLGFWLCHYYTLHJXCJMSCPXSTKPNHQXSRTYXXTESYJCTLSSLSTDLLLWWYHDHRJZSFGXTSYCZYNYHTDHWJSLHTZDQDJZXXQHGYLTZPHCSQFCLNJTCLZPFSTPDYNYLGMJLLYCQHYSSHCHYLHQYQTMZYPBYWRFQYKQSYSLZDQJMPXYYSSRHZJNYWTQDFZBWWTWWRXCWHGYHXMKMYYYQMSMZHNGCEPMLQQMTCWCTMMPXJPJJHFXYYZSXZHTYBMSTSYJTTQQQYYLHYNPYQZLCYZHZWSMYLKFJXLWGXYPJYTYSYXYMZCKTTWLKSMZSYLMPWLZWXWQZSSAQSYXYRHSSNTSRAPXCPWCMGDXHXZDZYFJHGZTTSBJHGYZSZYSMYCLLLXBTYXHBBZJKSSDMALXHYCFYGMQYPJYCQXJLLLJGSLZGQLYCJCCZOTYXMTMTTLLWTGPXYMZMKLPSZZZXHKQYSXCTYJZYHXSHYXZKXLZWPSQPYHJWPJPWXQQYLXSDHMRSLZZYZWTTCYXYSZZSHBSCCSTPLWSSCJCHNLCGCHSSPHYLHFHHXJSXYLLNYLSZDHZXYLSXLWZYKCLDYAXZCMDDYSPJTQJZLNWQPSSSWCTSTSZLBLNXSMNYYMJQBQHRZWTYYDCHQLXKPZWBGQYBKFCMZWPZLLYYLSZYDWHXPSBCMLJBSCGBHXLQHYRLJXYSWXWXZSLDFHLSLYNJLZYFLYJYCDRJLFSYZFSLLCQYQFGJYHYXZLYLMSTDJCYHBZLLNWLXXYGYYHSMGDHXXHHLZZJZXCZZZCYQZFNGWPYLCPKPYYPMCLQKDGXZGGWQBDXZZKZFBXXLZXJTPJPTTBYTSZZDWSLCHZHSLTYXHQLHYXXXYYZYSWTXZKHLXZXZPYHGCHKCFSYHUTJRLXFJXPTZTWHPLYXFCRHXSHXKYXXYHZQDXQWULHYHMJTBFLKHTXCWHJFWJCFPQRYQXCYYYQYGRPYWSGSUNGWCHKZDXYFLXXHJJBYZWTSXXNCYJJYMSWZJQRMHXZWFQSYLZJZGBHYNSLBGTTCSYBYXXWXYHXYYXNSQYXMQYWRGYQLXBBZLJSYLPSYTJZYHYZAWLRORJMKSCZJXXXYXCHDYXRYXXJDTSQFXLYLTSFFYXLMTYJMJUYYYXLTZCSXQZQHZXLYYXZHDNBRXXXJCTYHLBRLMBRLLAXKYLLLJLYXXLYCRYLCJTGJCMTLZLLCYZZPZPCYAWHJJFYBDYYZSMPCKZDQYQPBPCJPDCYZMDPBCYYDYCNNPLMTMLRMFMMGWYZBSJGYGSMZQQQZTXMKQWGXLLPJGZBQCDJJJFPKJKCXBLJMSWMDTQJXLDLPPBXCWRCQFBFQJCZAHZGMYKPHYYHZYKNDKZMBPJYXPXYHLFPNYYGXJDBKXNXHJMZJXSTRSTLDXSKZYSYBZXJLXYSLBZYSLHXJPFXPQNBYLLJQKYGZMCYZZYMCCSLCLHZFWFWYXZMWSXTYNXJHPYYMCYSPMHYSMYDYSHQYZCHMJJMZCAAGCFJBBHPLYZYLXXSDJGXDHKXXTXXNBHRMLYJSLTXMRHNLXQJXYZLLYSWQGDLBJHDCGJYQYCMHWFMJYBMBYJYJWYMDPWHXQLDYGPDFXXBCGJSPCKRSSYZJMSLBZZJFLJJJLGXZGYXYXLSZQYXBEXYXHGCXBPLDYHWETTWWCJMBTXCHXYQXLLXFLYXLLJLSSFWDPZSMYJCLMWYTCZPCHQEKCQBWLCQYDPLQPPQZQFJQDJHYMMCXTXDRMJWRHXCJZYLQXDYYNHYYHRSLSRSYWWZJYMTLTLLGTQCJZYABTCKZCJYCCQLJZQXALMZYHYWLWDXZXQDLLQSHGPJFJLJHJABCQZDJGTKHSSTCYJLPSWZLXZXRWGLDLZRLZXTGSLLLLZLYXXWGDZYGBDPHZPBRLWSXQBPFDWOFMWHLYPCBJCCLDMBZPBZZLCYQXLDOMZBLZWPDWYYGDSTTHCSQSCCRSSSYSLFYBFNTYJSZDFNDPDHDZZMBBLSLCMYFFGTJJQWFTMTPJWFNLBZCMMJTGBDZLQLPYFHYYMJYLSDCHDZJWJCCTLJCLDTLJJCPDDSQDSSZYBNDBJLGGJZXSXNLYCYBJXQYCBYLZCFZPPGKCXZDZFZTJJFJSJXZBNZYJQTTYJYHTYCZHYMDJXTTMPXSPLZCDWSLSHXYPZGTFMLCJTYCBPMGDKWYCYZCDSZZYHFLYCTYGWHKJYYLSJCXGYWJCBLLCSNDDBTZBSCLYZCZZSSQDLLMQYYHFSLQLLXFTYHABXGWNYWYYPLLSDLDLLBJCYXJZMLHLJDXYYQYTDLLLBUGBFDFBBQJZZMDPJHGCLGMJJPGAEHHBWCQXAXHHHZCHXYPHJAXHLPHJPGPZJQCQZGJJZZUZDMQYYBZZPHYHYBWHAZYJHYKFGDPFQSDLZMLJXKXGALXZDAGLMDGXMWZQYXXDXXPFDMMSSYMPFMDMMKXKSYZYSHDZKXSYSMMZZZMSYDNZZCZXFPLSTMZDNMXCKJMZTYYMZMZZMSXHHDCZJEMXXKLJSTLWLSQLYJZLLZJSSDPPMHNLZJCZYHMXXHGZCJMDHXTKGRMXFWMCGMWKDTKSXQMMMFZZYDKMSCLCMPCGMHSPXQPZDSSLCXKYXTWLWJYAHZJGZQMCSNXYYMMPMLKJXMHLMLQMXCTKZMJQYSZJSYSZHSYJZJCDAJZYBSDQJZGWZQQXFKDMSDJLFWEHKZQKJPEYPZYSZCDWYJFFMZZYLTTDZZEFMZLBNPPLPLPEPSZALLTYLKCKQZKGENQLWAGYXYDPXLHSXQQWQCQXQCLHYXXMLYCCWLYMQYSKGCHLCJNSZKPYZKCQZQLJPDMDZHLASXLBYDWQLWDNBQCRYDDZTJYBKBWSZDXDTNPJDTCTQDFXQQMGNXECLTTBKPWSLCTYQLPWYZZKLPYGZCQQPLLKCCYLPQMZCZQCLJSLQZDJXLDDHPZQDLJJXZQDXYZQKZLJCYQDYJPPYPQYKJYRMPCBYMCXKLLZLLFQPYLLLMBSGLCYSSLRSYSQTMXYXZQZFDZUYSYZTFFMZZSMZQHZSSCCMLYXWTPZGXZJGZGSJSGKDDHTQGGZLLBJDZLCBCHYXYZHZFYWXYZYMSDBZZYJGTSMTFXQYXQSTDGSLNXDLRYZZLRYYLXQHTXSRTZNGZXBNQQZFMYKMZJBZYMKBPNLYZPBLMCNQYZZZSJZHJCTZKHYZZJRDYZHNPXGLFZTLKGJTCTSSYLLGZRZBBQZZKLPKLCZYSSUYXBJFPNJZZXCDWXZYJXZZDJJKGGRSRJKMSMZJLSJYWQSKYHQJSXPJZZZLSNSHRNYPZTWCHKLPSRZLZXYJQXQKYSJYCZTLQZYBBYBWZPQDWWYZCYTJCJXCKCWDKKZXSGKDZXWWYYJQYYTCYTDLLXWKCZKKLCCLZCQQDZLQLCSFQCHQHSFSMQZZLNBJJZBSJHTSZDYSJQJPDLZCDCWJKJZZLPYCGMZWDJJBSJQZSYZYHHXJPBJYDSSXDZNCGLQMBTSFSBPDZDLZNFGFJGFSMPXJQLMBLGQCYYXBQKDJJQYRFKZTJDHCZKLBSDZCFJTPLLJGXHYXZCSSZZXSTJYGKGCKGYOQXJPLZPBPGTGYJZGHZQZZLBJLSQFZGKQQJZGYCZBZQTLDXRJXBSXXPZXHYZYCLWDXJJHXMFDZPFZHQHQMQGKSLYHTYCGFRZGNQXCLPDLBZCSCZQLLJBLHBZCYPZZPPDYMZZSGYHCKCPZJGSLJLNSCDSLDLXBMSTLDDFJMKDJDHZLZXLSZQPQPGJLLYBDSZGQLBZLSLKYYHZTTNTJYQTZZPSZQZTLLJTYYLLQLLQYZQLBDZLSLYYZYMDFSZSNHLXZNCZQZPBWSKRFBSYZMTHBLGJPMCZZLSTLXSHTCSYZLZBLFEQHLXFLCJLYLJQCBZLZJHHSSTBRMHXZHJZCLXFNBGXGTQJCZTMSFZKJMSSNXLJKBHSJXNTNLZDNTLMSJXGZJYJCZXYJYJWRWWQNZTNFJSZPZSHZJFYRDJSFSZJZBJFZQZZHZLXFYSBZQLZSGYFTZDCSZXZJBQMSZKJRHYJZCKMJKHCHGTXKXQGLXPXFXTRTYLXJXHDTSJXHJZJXZWZLCQSBTXWXGXTXXHXFTSDKFJHZYJFJXRZSDLLLTQSQQZQWZXSYQTWGWBZCGZLLYZBCLMQQTZHZXZXLJFRMYZFLXYSQXXJKXRMQDZDMMYYBSQBHGZMWFWXGMXLZPYYTGZYCCDXYZXYWGSYJYZNBHPZJSQSYXSXRTFYZGRHZTXSZZTHCBFCLSYXZLZQMZLMPLMXZJXSFLBYZMYQHXJSXRXSQZZZSSLYFRCZJRCRXHHZXQYDYHXSJJHZCXZBTYNSYSXJBQLPXZQPYMLXZKYXLXCJLCYSXXZZLXDLLLJJYHZXGYJWKJRWYHCPSGNRZLFZWFZZNSXGXFLZSXZZZBFCSYJDBRJKRDHHGXJLJJTGXJXXSTJTJXLYXQFCSGSWMSBCTLQZZWLZZKXJMLTMJYHSDDBXGZHDLBMYJFRZFSGCLYJBPMLYSMSXLSZJQQHJZFXGFQFQBPXZGYYQXGZTCQWYLTLGWSGWHRLFSFGZJMGMGBGTJFSYZZGZYZAFLSSPMLPFLCWBJZCLJJMZLPJJLYMQDMYYYFBGYGYZMLYZDXQYXRQQQHSYYYQXYLJTYXFSFSLLGNQCYHYCWFHCCCFXPYLYPLLZYXXXXXKQHHXSHJZCFZSCZJXCPZWHHHHHAPYLQALPQAFYHXDYLUKMZQGGGDDESRNNZLTZGCHYPPYSQJJHCLLJTOLNJPZLJLHYMHEYDYDSQYCDDHGZUNDZCLZYZLLZNTNYZGSLHSLPJJBDGWXPCDUTJCKLKCLWKLLCASSTKZZDNQNTTLYYZSSYSSZZRYLJQKCQDHHCRXRZYDGRGCWCGZQFFFPPJFZYNAKRGYWYQPQXXFKJTSZZXSWZDDFBBXTBGTZKZNPZZPZXZPJSZBMQHKCYXYLDKLJNYPKYGHGDZJXXEAHPNZKZTZCMXCXMMJXNKSZQNMNLWBWWXJKYHCPSTMCSQTZJYXTPCTPDTNNPGLLLZSJLSPBLPLQHDTNJNLYYRSZFFJFQWDPHZDWMRZCCLODAXNSSNYZRESTYJWJYJDBCFXNMWTTBYLWSTSZGYBLJPXGLBOCLHPCBJLTMXZLJYLZXCLTPNCLCKXTPZJSWCYXSFYSZDKNTLBYJCYJLLSTGQCBXRYZXBXKLYLHZLQZLNZCXWJZLJZJNCJHXMNZZGJZZXTZJXYCYYCXXJYYXJJXSSSJSTSSTTPPGQTCSXWZDCSYFPTFBFHFBBLZJCLZZDBXGCXLQPXKFZFLSYLTUWBMQJHSZBMDDBCYSCCLDXYCDDQLYJJWMQLLCSGLJJSYFPYYCCYLTJANTJJPWYCMMGQYYSXDXQMZHSZXPFTWWZQSWQRFKJLZJQQYFBRXJHHFWJJZYQAZMYFRHCYYBYQWLPEXCCZSTYRLTTDMQLYKMBBGMYYJPRKZNPBSXYXBHYZDJDNGHPMFSGMWFZMFQMMBCMZZCJJLCNUXYQLMLRYGQZCYXZLWJGCJCGGMCJNFYZZJHYCPRRCMTZQZXHFQGTJXCCJEAQCRJYHPLQLSZDJRBCQHQDYRHYLYXJSYMHZYDWLDFRYHBPYDTSSCNWBXGLPZMLZZTQSSCPJMXXYCSJYTYCGHYCJWYRXXLFEMWJNMKLLSWTXHYYYNCMMCWJDQDJZGLLJWJRKHPZGGFLCCSCZMCBLTBHBQJXQDSPDJZZGKGLFQYWBZYZJLTSTDHQHCTCBCHFLQMPWDSHYYTQWCNZZJTLBYMBPDYYYXSQKXWYYFLXXNCWCXYPMAELYKKJMZZZBRXYYQJFLJPFHHHYTZZXSGQQMHSPGDZQWBWPJHZJDYSCQWZKTXXSQLZYYMYSDZGRXCKKUJLWPYSYSCSYZLRMLQSYLJXBCXTLWDQZPCYCYKPPPNSXFYZJJRCEMHSZMSXLXGLRWGCSTLRSXBZGBZGZTCPLUJLSLYLYMTXMTZPALZXPXJTJWTCYYZLBLXBZLQMYLXPGHDSLSSDMXMBDZZSXWHAMLCZCPJMCNHJYSNSYGCHSKQMZZQDLLKABLWJXSFMOCDXJRRLYQZKJMYBYQLYHETFJZFRFKSRYXFJTWDSXXSYSQJYSLYXWJHSNLXYYXHBHAWHHJZXWMYLJCSSLKYDZTXBZSYFDXGXZJKHSXXYBSSXDPYNZWRPTQZCZENYGCXQFJYKJBZMLJCMQQXUOXSLYXXLYLLJDZBTYMHPFSTTQQWLHOKYBLZZALZXQLHZWRRQHLSTMYPYXJJXMQSJFNBXYXYJXXYQYLTHYLQYFMLKLJTMLLHSZWKZHLJMLHLJKLJSTLQXYLMBHHLNLZXQJHXCFXXLHYHJJGBYZZKBXSCQDJQDSUJZYYHZHHMGSXCSYMXFEBCQWWRBPYYJQTYZCYQYQQZYHMWFFHGZFRJFCDPXNTQYZPDYKHJLFRZXPPXZDBBGZQSTLGDGYLCQMLCHHMFYWLZYXKJLYPQHSYWMQQGQZMLZJNSQXJQSYJYCBEHSXFSZPXZWFLLBCYYJDYTDTHWZSFJMQQYJLMQXXLLDTTKHHYBFPWTYYSQQWNQWLGWDEBZWCMYGCULKJXTMXMYJSXHYBRWFYMWFRXYQMXYSZTZZTFYKMLDHQDXWYYNLCRYJBLPSXCXYWLSPRRJWXHQYPHTYDNXHHMMYWYTZCSQMTSSCCDALWZTCPQPYJLLQZYJSWXMZZMMYLMXCLMXCZMXMZSQTZPPQQBLPGXQZHFLJJHYTJSRXWZXSCCDLXTYJDCQJXSLQYCLZXLZZXMXQRJMHRHZJBHMFLJLMLCLQNLDXZLLLPYPSYJYSXCQQDCMQJZZXHNPNXZMEKMXHYKYQLXSXTXJYYHWDCWDZHQYYBGYBCYSCFGPSJNZDYZZJZXRZRQJJYMCANYRJTLDPPYZBSTJKXXZYPFDWFGZZRPYMTNGXZQBYXNBUFNQKRJQZMJEGRZGYCLKXZDSKKNSXKCLJSPJYYZLQQJYBZSSQLLLKJXTBKTYLCCDDBLSPPFYLGYDTZJYQGGKQTTFZXBDKTYYHYBBFYTYYBCLPDYTGDHRYRNJSPTCSNYJQHKLLLZSLYDXXWBCJQSPXBPJZJCJDZFFXXBRMLAZHCSNDLBJDSZBLPRZTSWSBXBCLLXXLZDJZSJPYLYXXYFTFFFBHJJXGBYXJPMMMPSSJZJMTLYZJXSWXTYLEDQPJMYGQZJGDJLQJWJQLLSJGJGYGMSCLJJXDTYGJQJQJCJZCJGDZZSXQGSJGGCXHQXSNQLZZBXHSGZXCXYLJXYXYYDFQQJHJFXDHCTXJYRXYSQTJXYEFYYSSYYJXNCYZXFXMSYSZXYYSCHSHXZZZGZZZGFJDLTYLNPZGYJYZYYQZPBXQBDZTZCZYXXYHHSQXSHDHGQHJHGYWSZTMZMLHYXGEBTYLZKQWYTJZRCLEKYSTDBCYKQQSAYXCJXWWGSBHJYZYDHCSJKQCXSWXFLTYNYZPZCCZJQTZWJQDZZZQZLJJXLSBHPYXXPSXSHHEZTXFPTLQYZZXHYTXNCFZYYHXGNXMYWXTZSJPTHHGYMXMXQZXTSBCZYJYXXTYYZYPCQLMMSZMJZZLLZXGXZAAJZYXJMZXWDXZSXZDZXLEYJJZQBHZWZZZQTZPSXZTDSXJJJZNYAZPHXYYSRNQDTHZHYYKYJHDZXZLSWCLYBZYECWCYCRYLCXNHZYDZYDYJDFRJJHTRSQTXYXJRJHOJYNXELXSFSFJZGHPZSXZSZDZCQZBYYKLSGSJHCZSHDGQGXYZGXCHXZJWYQWGYHKSSEQZZNDZFKWYSSTCLZSTSYMCDHJXXYWEYXCZAYDMPXMDSXYBSQMJMZJMTZQLPJYQZCGQHXJHHLXXHLHDLDJQCLDWBSXFZZYYSCHTYTYYBHECXHYKGJPXHHYZJFXHWHBDZFYZBCAPNPGNYDMSXHMMMMAMYNBYJTMPXYYMCTHJBZYFCGTYHWPHFTWZZEZSBZEGPFMTSKFTYCMHFLLHGPZJXZJGZJYXZSBBQSCZZLZCCSTPGXMJSFTCCZJZDJXCYBZLFCJSYZFGSZLYBCWZZBYZDZYPSWYJZXZBDSYUXLZZBZFYGCZXBZHZFTPBGZGEJBSTGKDMFHYZZJHZLLZZGJQZLSFDJSSCBZGPDLFZFZSZYZYZSYGCXSNXXCHCZXTZZLJFZGQSQYXZJQDCCZTQCDXZJYQJQCHXZTDLGSCXZSYQJQTZWLQDQZTQCHQQJZYEZZZPBWKDJFCJPZTYPQYQTTYNLMBDKTJZPQZQZZFPZSBNJLGYJDXJDZZKZGQKXDLPZJTCJDQBXDJQJSTCKNXBXZMSLYJCQMTJQWWCJQNJNLLLHJCWQTBZQYDZCZPZZDZYDDCYZZZCCJTTJFZDPRRTZTJDCQTQZDTJNPLZBCLLCTZSXKJZQZPZLBZRBTJDCXFCZDBCCJJLTQQPLDCGZDBBZJCQDCJWYNLLZYZCCDWLLXWZLXRXNTQQCZXKQLSGDFQTDDGLRLAJJTKUYMKQLLTZYTDYYCZGJWYXDXFRSKSTQTENQMRKQZHHQKDLDAZFKYPBGGPZREBZZYKZZSPEGJXGYKQZZZSLYSYYYZWFQZYLZZLZHWCHKYPQGNPGBLPLRRJYXCCSYYHSFZFYBZYYTGZXYLXCZWXXZJZBLFFLGSKHYJZEYJHLPLLLLCZGXDRZELRHGKLZZYHZLYQSZZJZQLJZFLNBHGWLCZCFJYSPYXZLZLXGCCPZBLLCYBBBBUBBCBPCRNNZCZYRBFSRLDCGQYYQXYGMQZWTZYTYJXYFWTEHZZJYWLCCNTZYJJZDEDPZDZTSYQJHDYMBJNYJZLXTSSTPHNDJXXBYXQTZQDDTJTDYYTGWSCSZQFLSHLGLBCZPHDLYZJYCKWTYTYLBNYTSDSYCCTYSZYYEBHEXHQDTWNYGYCLXTSZYSTQMYGZAZCCSZZDSLZCLZRQXYYELJSBYMXSXZTEMBBLLYYLLYTDQYSHYMRQWKFKBFXNXSBYCHXBWJYHTQBPBSBWDZYLKGZSKYHXQZJXHXJXGNLJKZLYYCDXLFYFGHLJGJYBXQLYBXQPQGZTZPLNCYPXDJYQYDYMRBESJYYHKXXSTMXRCZZYWXYQYBMCLLYZHQYZWQXDBXBZWZMSLPDMYSKFMZKLZCYQYCZLQXFZZYDQZPZYGYJYZMZXDZFYFYTTQTZHGSPCZMLCCYTZXJCYTJMKSLPZHYSNZLLYTPZCTZZCKTXDHXXTQCYFKSMQCCYYAZHTJPCYLZLYJBJXTPNYLJYYNRXSYLMMNXJSMYBCSYSYLZYLXJJQYLDZLPQBFZZBLFNDXQKCZFYWHGQMRDSXYCYTXNQQJZYYPFZXDYZFPRXEJDGYQBXRCNFYYQPGHYJDYZXGRHTKYLNWDZNTSMPKLBTHBPYSZBZTJZSZZJTYYXZPHSSZZBZCZPTQFZMYFLYPYBBJQXZMXXDJMTSYSKKBJZXHJCKLPSMKYJZCXTMLJYXRZZQSLXXQPYZXMKYXXXJCLJPRMYYGADYSKQLSNDHYZKQXZYZTCGHZTLMLWZYBWSYCTBHJHJFCWZTXWYTKZLXQSHLYJZJXTMPLPYCGLTBZZTLZJCYJGDTCLKLPLLQPJMZPAPXYZLKKTKDZCZZBNZDYDYQZJYJGMCTXLTGXSZLMLHBGLKFWNWZHDXUHLFMKYSLGXDTWWFRJEJZTZHYDXYKSHWFZCQSHKTMQQHTZHYMJDJSKHXZJZBZZXYMPAGQMSTPXLSKLZYNWRTSQLSZBPSPSGZWYHTLKSSSWHZZLYYTNXJGMJSZSUFWNLSOZTXGXLSAMMLBWLDSZYLAKQCQCTMYCFJBSLXCLZZCLXXKSBZQCLHJPSQPLSXXCKSLNHPSFQQYTXYJZLQLDXZQJZDYYDJNZPTUZDSKJFSLJHYLZSQZLBTXYDGTQFDBYAZXDZHZJNHHQBYKNXJJQCZMLLJZKSPLDYCLBBLXKLELXJLBQYCXJXGCNLCQPLZLZYJTZLJGYZDZPLTQCSXFDMNYCXGBTJDCZNBGBQYQJWGKFHTNPYQZQGBKPBBYZMTJDYTBLSQMPSXTBNPDXKLEMYYCJYNZCTLDYKZZXDDXHQSHDGMZSJYCCTAYRZLPYLTLKXSLZCGGEXCLFXLKJRTLQJAQZNCMBYDKKCXGLCZJZXJHPTDJJMZQYKQSECQZDSHHADMLZFMMZBGNTJNNLGBYJBRBTMLBYJDZXLCJLPLDLPCQDHLXZLYCBLCXZZJADJLNZMMSSSMYBHBSQKBHRSXXJMXSDZNZPXLGBRHWGGFCXGMSKLLTSJYYCQLTSKYWYYHYWXBXQYWPYWYKQLSQPTNTKHQCWDQKTWPXXHCPTHTWUMSSYHBWCRWXHJMKMZNGWTMLKFGHKJYLSYYCXWHYECLQHKQHTTQKHFZLDXQWYZYYDESBPKYRZPJFYYZJCEQDZZDLATZBBFJLLCXDLMJSSXEGYGSJQXCWBXSSZPDYZCXDNYXPPZYDLYJCZPLTXLSXYZYRXCYYYDYLWWNZSAHJSYQYHGYWWAXTJZDAXYSRLTDPSSYYFNEJDXYZHLXLLLZQZSJNYQYQQXYJGHZGZCYJCHZLYCDSHWSHJZYJXCLLNXZJJYYXNFXMWFPYLCYLLABWDDHWDXJMCXZTZPMLQZHSFHZYNZTLLDYWLSLXHYMMYLMBWWKYXYADTXYLLDJPYBPWUXJMWMLLSAFDLLYFLBHHHBQQLTZJCQJLDJTFFKMMMBYTHYGDCQRDDWRQJXNBYSNWZDBYYTBJHPYBYTTJXAAHGQDQTMYSTQXKBTZPKJLZRBEQQSSMJJBDJOTGTBXPGBKTLHQXJJJCTHXQDWJLWRFWQGWSHCKRYSWGFTGYGBXSDWDWRFHWYTJJXXXJYZYSLPYYYPAYXHYDQKXSHXYXGSKQHYWFDDDPPLCJLQQEEWXKSYYKDYPLTJTHKJLTCYYHHJTTPLTZZCDLTHQKZXQYSTEEYWYYZYXXYYSTTJKLLPZMCYHQGXYHSRMBXPLLNQYDQHXSXXWGDQBSHYLLPJJJTHYJKYPPTHYYKTYEZYENMDSHLCRPQFDGFXZPSFTLJXXJBSWYYSKSFLXLPPLBBBLBSFXFYZBSJSSYLPBBFFFFSSCJDSTZSXZRYYSYFFSYZYZBJTBCTSBSDHRTJJBYTCXYJEYLXCBNEBJDSYXYKGSJZBXBYTFZWGENYHHTHZHHXFWGCSTBGXKLSXYWMTMBYXJSTZSCDYQRCYTWXZFHMYMCXLZNSDJTTTXRYCFYJSBSDYERXJLJXBBDEYNJGHXGCKGSCYMBLXJMSZNSKGXFBNBPTHFJAAFXYXFPXMYPQDTZCXZZPXRSYWZDLYBBKTYQPQJPZYPZJZNJPZJLZZFYSBTTSLMPTZRTDXQSJEHBZYLZDHLJSQMLHTXTJECXSLZZSPKTLZKQQYFSYGYWPCPQFHQHYTQXZKRSGTTSQCZLPTXCDYYZXSQZSLXLZMYCPCQBZYXHBSXLZDLTCDXTYLZJYYZPZYZLTXJSJXHLPMYTXCQRBLZSSFJZZTNJYTXMYJHLHPPLCYXQJQQKZZSCPZKSWALQSBLCCZJSXGWWWYGYKTJBBZTDKHXHKGTGPBKQYSLPXPJCKBMLLXDZSTBKLGGQKQLSBKKTFXRMDKBFTPZFRTBBRFERQGXYJPZSSTLBZTPSZQZSJDHLJQLZBPMSMMSXLQQNHKNBLRDDNXXDHDDJCYYGYLXGZLXSYGMQQGKHBPMXYXLYTQWLWGCPBMQXCYZYDRJBHTDJYHQSHTMJSBYPLWHLZFFNYPMHXXHPLTBQPFBJWQDBYGPNZTPFZJGSDDTQSHZEAWZZYLLTYYBWJKXXGHLFKXDJTMSZSQYNZGGSWQSPHTLSSKMCLZXYSZQZXNCJDQGZDLFNYKLJCJLLZLMZZNHYDSSHTHZZLZZBBHQZWWYCRZHLYQQJBEYFXXXWHSRXWQHWPSLMSSKZTTYGYQQWRSLALHMJTQJSMXQBJJZJXZYZKXBYQXBJXSHZTSFJLXMXZXFGHKZSZGGYLCLSARJYHSLLLMZXELGLXYDJYTLFBHBPNLYZFBBHPTGJKWETZHKJJXZXXGLLJLSTGSHJJYQLQZFKCGNNDJSSZFDBCTWWSEQFHQJBSAQTGYPQLBXBMMYWXGSLZHGLZGQYFLZBYFZJFRYSFMBYZHQGFWZSYFYJJPHZBYYZFFWODGRLMFTWLBZGYCQXCDJYGZYYYYTYTYDWEGAZYHXJLZYYHLRMGRXXZCLHNELJJTJTPWJYBJJBXJJTJTEEKHWSLJPLPSFYZPQQBDLQJJTYYQLYZKDKSQJYYQZLDQTGJQYZJSUCMRYQTHTEJMFCTYHYPKMHYZWJDQFHYYXWSHCTXRLJHQXHCCYYYJLTKTTYTMXGTCJTZAYYOCZLYLBSZYWJYTSJYHBYSHFJLYGJXXTMZYYLTXXYPZLXYJZYZYYPNHMYMDYYLBLHLSYYQQLLNJJYMSOYQBZGDLYXYLCQYXTSZEGXHZGLHWBLJHEYXTWQMAKBPQCGYSHHEGQCMWYYWLJYJHYYZLLJJYLHZYHMGSLJLJXCJJYCLYCJPCPZJZJMMYLCQLNQLJQJSXYJMLSZLJQLYCMMHCFMMFPQQMFYLQMCFFQMMMMHMZNFHHJGTTHHKHSLNCHHYQDXTMMQDCYZYXYQMYQYLTDCYYYZAZZCYMZYDLZFFFMMYCQZWZZMABTBYZTDMNZZGGDFTYPCGQYTTSSFFWFDTZQSSYSTWXJHXYTSXXYLBYQHWWKXHZXWZNNZZJZJJQJCCCHYYXBZXZCYZTLLCQXYNJYCYYCYNZZQYYYEWYCZDCJYCCHYJLBTZYYCQWMPWPYMLGKDLDLGKQQBGYCHJXY", Xa = (n, e) => {
387
- const [
388
- t,
389
- i
390
- ] = R({}), r = (u) => {
391
- const Z = u.trim(), S = Z.charCodeAt(0);
392
- return S > 40869 || S < 19968 ? Z.charAt(0) : da.charAt(S - 19968);
393
- }, o = (u) => {
394
- const Z = u.toUpperCase();
395
- return u >= "a" && u <= "z" ? Z : u >= "A" && u <= "Z" ? u : "#";
396
- }, c = (u, Z, S) => {
397
- const d = u[S];
398
- d.find((L) => L.userID === Z.userID) || d.push(Z);
399
- }, s = (u, Z) => {
400
- const S = {
401
- "#": Z || []
402
- };
403
- for (let d = 65; d <= 90; d += 1)
404
- S[String.fromCharCode(d)] = [];
405
- return u == null || u.forEach((d) => {
406
- const { nick: L, userID: p } = d, D = r(L || p), J = o(D);
407
- c(S, d, J);
408
- }), Object.keys(S).forEach((d) => {
409
- S[d].sort((L, p) => {
410
- const D = (L.nick || L.userID).toLowerCase(), J = (p.nick || p.userID).toLowerCase();
411
- return D.localeCompare(J);
412
- });
413
- }), S;
414
- }, l = O((u, Z) => {
415
- const S = s(
416
- u,
417
- Z
418
- );
419
- i(S);
420
- }, []), Y = async (u) => {
421
- var Z;
422
- if (!u)
423
- return t;
424
- const { data: S } = await An.getUserProfile({
425
- userIDList: [u]
426
- }), d = {};
427
- let L = !1;
428
- return Object.keys(t).forEach((p) => {
429
- d[p] = t[p].filter(
430
- ({ nick: D, userID: J }) => {
431
- var T;
432
- const H = D == null ? void 0 : D.toLocaleLowerCase(), X = u.toLocaleLowerCase(), G = J.toLocaleLowerCase();
433
- let Q;
434
- return ((T = process.env) == null ? void 0 : T.REACT_APP_ONLINE) === "TencentCloudDemo" ? Q = H ? H.includes(X) : G.includes(X) : Q = G === X, L = L || Q, Q;
435
- }
436
- );
437
- }), ((Z = process.env) == null ? void 0 : Z.REACT_APP_ONLINE) === "TencentCloudDemo" || L ? d : s(S);
438
- };
439
- return b(() => {
440
- let u = [];
441
- n && n.length > 0 && (u = n.filter((Z) => (Z == null ? void 0 : Z.type) === re.TYPES.CONV_C2C).slice(0, 5).map((Z) => Z == null ? void 0 : Z.userProfile)), l(e, u);
442
- }, [e, n, l]), {
443
- getFirstLetter: r,
444
- queryFriendList: l,
445
- getFriendListSortSearchResult: Y,
446
- friendListSortResult: t
447
- };
448
- }, pa = "uikit-conversationCreateUserSelectList__searchInput", Ja = "uikit-conversationCreateUserSelectList__user", Ta = "uikit-conversationCreateUserSelectList__userName", Da = "uikit-conversationCreateUserSelectList__userCheckbox", ma = "uikit-conversationCreateUserSelectList__activeIcon", Qa = "uikit-conversationCreateUserSelectList__nextContainer", _a = "uikit-conversationCreateUserSelectList__container", va = "uikit-conversationCreateUserSelectList__list", Ha = "uikit-conversationCreateUserSelectList__groupContainer", ha = "uikit-conversationCreateUserSelectList__title", ce = {
449
- conversationCreateUserSelectList__searchInput: pa,
450
- conversationCreateUserSelectList__user: Ja,
451
- conversationCreateUserSelectList__userName: Ta,
452
- "conversationCreateUserSelectList__userName--active": "uikit-conversationCreateUserSelectList__userName--active",
453
- conversationCreateUserSelectList__userCheckbox: Da,
454
- conversationCreateUserSelectList__activeIcon: ma,
455
- conversationCreateUserSelectList__nextContainer: Qa,
456
- conversationCreateUserSelectList__container: _a,
457
- conversationCreateUserSelectList__list: va,
458
- conversationCreateUserSelectList__groupContainer: Ha,
459
- conversationCreateUserSelectList__title: ha
460
- };
461
- function Ma(n) {
462
- const { friendList: e } = he(), {
463
- isCreateGroup: t,
464
- selectList: i,
465
- setSelectList: r,
466
- className: o,
467
- conversationList: c,
468
- setIsCreateGroup: s,
469
- setPageState: l,
470
- onBeforeCreateConversation: Y,
471
- onConversationCreated: u
472
- } = n, { t: Z } = w(), [S, d] = R(""), [L, p] = R({}), {
473
- friendListSortResult: D,
474
- getFriendListSortSearchResult: J
475
- } = Xa(
476
- c,
477
- e
478
- );
479
- b(() => {
480
- p(D);
481
- }, [D]);
482
- const { createC2CConversation: T } = De(), H = U(/* @__PURE__ */ new Map()), X = async (W) => {
483
- const { value: k } = W.target;
484
- d(k), p(await J(k));
485
- }, G = () => {
486
- s(!0), H.current.clear(), r([]);
487
- }, Q = (W) => {
488
- const { userID: k } = W;
489
- i.find((v) => v.userID === k) ? i.splice(i.findIndex((v) => v.userID === k), 1) : i.push(W), r([...i]);
490
- }, K = async (W) => {
491
- if (t)
492
- return;
493
- const { userID: k } = W;
494
- Y == null || Y(k), T(k).then((v) => {
495
- u == null || u(v);
496
- }).catch((v) => {
497
- ze.error({ message: v.message });
498
- });
499
- }, h = (W) => {
500
- t ? Q(W) : K(W);
501
- }, F = () => {
502
- if (i && i.length === 0) {
503
- ze.error({ message: Z("TUIConversation.Participant cannot be empty") });
504
- return;
505
- }
506
- l(pe.CREATE_DETAIL);
507
- };
508
- return /* @__PURE__ */ C(Le, { children: [
509
- /* @__PURE__ */ a(
510
- ot,
511
- {
512
- className: ce.conversationCreateUserSelectList__searchInput,
513
- placeholder: Z("TUIConversation.Search"),
514
- clearable: !0,
515
- value: S,
516
- onChange: X,
517
- prefix: /* @__PURE__ */ a(en, {})
518
- }
519
- ),
520
- t && /* @__PURE__ */ a(Sa, { selectList: i, setSelectList: r }),
521
- !t && /* @__PURE__ */ C("div", { role: "presentation", className: ce.conversationCreateUserSelectList__user, onClick: G, children: [
522
- /* @__PURE__ */ a(Rt, { size: "24px" }),
523
- /* @__PURE__ */ a("div", { className: P(ce.conversationCreateUserSelectList__userName, ce["conversationCreateUserSelectList__userName--active"]), children: Z("TUIConversation.New group chat") })
524
- ] }),
525
- /* @__PURE__ */ a("div", { className: P(ce.conversationCreateUserSelectList__container, o), children: /* @__PURE__ */ a("div", { className: ce.conversationCreateUserSelectList__list, children: /* @__PURE__ */ a("div", { className: ce.conversationCreateUserSelectList__groupContainer, children: Object.keys(L).map(
526
- (W) => L[W].length !== 0 && /* @__PURE__ */ C("div", { className: ce.conversationCreateUserSelectList__groupBox, children: [
527
- /* @__PURE__ */ a("div", { className: ce.conversationCreateUserSelectList__title, children: W }),
528
- L[W].map((k) => {
529
- const { userID: v, nick: m, avatar: _ } = k;
530
- return /* @__PURE__ */ C(
531
- "label",
532
- {
533
- role: "presentation",
534
- className: ce.conversationCreateUserSelectList__user,
535
- htmlFor: `userChecked-${W}-${v}`,
536
- onClick: () => {
537
- h(k);
538
- },
539
- children: [
540
- /* @__PURE__ */ a(z, { src: _ }),
541
- /* @__PURE__ */ a("div", { className: ce.conversationCreateUserSelectList__userName, children: m || `${v}` }),
542
- t && /* @__PURE__ */ a(
543
- "div",
544
- {
545
- className: ce.conversationCreateUserSelectList__userCheckbox,
546
- children: i.find((V) => V.userID === v) ? /* @__PURE__ */ a(
547
- tn,
548
- {
549
- className: ce.conversationCreateUserSelectList__activeIcon
550
- }
551
- ) : /* @__PURE__ */ a(nn, {})
552
- }
553
- )
554
- ]
555
- },
556
- v
557
- );
558
- })
559
- ] }, W)
560
- ) }) }) }),
561
- t && /* @__PURE__ */ a("div", { className: ce.conversationCreateUserSelectList__nextContainer, children: /* @__PURE__ */ a(ne, { onClick: F, children: Z("TUIConversation.Next") }) })
562
- ] });
563
- }
564
- const fa = "uikit-conversationCreate__container", Pa = "uikit-conversationCreate__main", Ga = "uikit-conversationCreate__header", Na = "uikit-conversationCreate__title", Ba = "uikit-conversationCreate__icon", Ue = {
565
- conversationCreate__container: fa,
566
- conversationCreate__main: Pa,
567
- conversationCreate__header: Ga,
568
- conversationCreate__title: Na,
569
- conversationCreate__icon: Ba
570
- };
571
- function Fa(n) {
572
- const {
573
- visible: e = !0,
574
- className: t,
575
- style: i,
576
- onChangeCreateModelVisible: r,
577
- conversationList: o = [],
578
- onBeforeCreateConversation: c,
579
- onConversationCreated: s
580
- } = n, { t: l } = w(), [Y, u] = R(!1), [Z, S] = R(!1), [d, L] = R(pe.USER_SELECT), [p, D] = R([]), J = (X) => {
581
- u(!1), H(), rt.switchConversation(X.conversationID), s == null || s(X);
582
- };
583
- b(() => {
584
- r == null || r(Y);
585
- }, [r, Y]);
586
- const T = () => {
587
- if (Z)
588
- switch (d) {
589
- case pe.USER_SELECT:
590
- S(!1);
591
- break;
592
- case pe.CREATE_DETAIL:
593
- L(pe.USER_SELECT), D([]);
594
- break;
595
- case pe.GROUP_TYPE:
596
- L(pe.CREATE_DETAIL);
597
- break;
598
- }
599
- else
600
- u(!1), H();
601
- };
602
- function H() {
603
- S(!1), L(pe.USER_SELECT), D([]);
604
- }
605
- return et(() => e ? /* @__PURE__ */ C(
606
- "div",
607
- {
608
- className: P(
609
- Ue.conversationCreate__container,
610
- t
611
- ),
612
- style: i,
613
- children: [
614
- !Y && /* @__PURE__ */ a(
615
- zn,
616
- {
617
- onClick: () => u(!0)
618
- }
619
- ),
620
- Y && /* @__PURE__ */ C("div", { className: Ue.conversationCreate__main, children: [
621
- /* @__PURE__ */ C("div", { className: Ue.conversationCreate__header, children: [
622
- /* @__PURE__ */ a("div", { className: Ue.conversationCreate__icon, onClick: T, children: /* @__PURE__ */ a(an, { size: "24px" }) }),
623
- /* @__PURE__ */ a("div", { className: Ue.conversationCreate__title, children: l(Z ? "TUIConversation.Add Participants" : "TUIConversation.Start chat") })
624
- ] }),
625
- d === pe.USER_SELECT ? /* @__PURE__ */ a(
626
- Ma,
627
- {
628
- isCreateGroup: Z,
629
- setIsCreateGroup: S,
630
- selectList: p,
631
- setSelectList: D,
632
- conversationList: o,
633
- onBeforeCreateConversation: c,
634
- onConversationCreated: J,
635
- setPageState: L
636
- }
637
- ) : /* @__PURE__ */ a(
638
- Ya,
639
- {
640
- pageState: d,
641
- setPageState: L,
642
- profileList: p,
643
- onBeforeCreateConversation: c,
644
- onConversationCreated: J
645
- }
646
- )
647
- ] })
648
- ]
649
- }
650
- ) : null, [
651
- e,
652
- t,
653
- i,
654
- Y,
655
- T,
656
- l,
657
- Z,
658
- d,
659
- p,
660
- o,
661
- c,
662
- J
663
- ]);
664
- }
665
- const ga = "data:image/png;base64,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";
666
- function Wa() {
667
- return /* @__PURE__ */ a(
668
- "div",
669
- {
670
- className: "tui-kit-icon tui-kit-icon-cry",
671
- children: /* @__PURE__ */ a("img", { className: "icon-image icon-image-cry", src: ga })
672
- }
673
- );
674
- }
675
- const Ka = "data:image/png;base64,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";
676
- function Ra() {
677
- return /* @__PURE__ */ a(
678
- "div",
679
- {
680
- className: "tui-kit-icon tui-kit-icon-effort",
681
- children: /* @__PURE__ */ a("img", { className: "icon-image icon-image-effort", src: Ka })
682
- }
683
- );
684
- }
685
- const Te = {
686
- LOADING: "LOADING",
687
- NO_CONVERSATIONS: "NO_CONVERSATIONS",
688
- WRONG: "WRONG"
689
- };
690
- function Zt({
691
- className: n = "",
692
- type: e,
693
- iconSize: t = 42,
694
- searchString: i = "",
695
- retry: r
696
- }) {
697
- const { t: o } = w(), c = {
698
- [Te.LOADING]: "",
699
- [Te.NO_CONVERSATIONS]: o("TUIConversation.No conversation"),
700
- [Te.WRONG]: o("TUIConversation.Something was wrong")
701
- };
702
- return /* @__PURE__ */ C(
703
- "div",
704
- {
705
- className: P(
706
- n,
707
- "tui-place-holder"
708
- ),
709
- children: [
710
- /* @__PURE__ */ C("div", { className: "tui-place-holder__icon", children: [
711
- e === Te.LOADING && /* @__PURE__ */ a(on, { className: "tui-place-holder-loading", size: t ? `${t}px` : "auto" }),
712
- e === Te.NO_CONVERSATIONS && /* @__PURE__ */ a(Ra, {}),
713
- e === Te.WRONG && /* @__PURE__ */ a(Wa, {})
714
- ] }),
715
- c[e] && /* @__PURE__ */ a("div", { className: "tui-place-holder__label", children: i ? `${c[e]} '${i}' ` : c[e] }),
716
- e === Te.WRONG && r && /* @__PURE__ */ a("div", { className: "tui-place-holder__button", children: /* @__PURE__ */ a("button", { onClick: r, children: "Retry" }) })
717
- ]
718
- }
719
- );
720
- }
721
- const ka = "uikit-conversationListContent", Ia = {
722
- conversationListContent: ka
723
- };
724
- function Aa(n) {
725
- const {
726
- children: e,
727
- empty: t = !1,
728
- loading: i = !1,
729
- error: r = !1,
730
- PlaceholderEmptyList: o = /* @__PURE__ */ a(Zt, { type: Te.NO_CONVERSATIONS }),
731
- PlaceholderLoading: c = /* @__PURE__ */ a(Zt, { type: Te.LOADING }),
732
- PlaceholderLoadError: s = /* @__PURE__ */ a(Zt, { type: Te.WRONG }),
733
- className: l,
734
- style: Y
735
- } = n;
736
- let u;
737
- return r ? u = s : i ? u = c : t ? u = o : u = e, /* @__PURE__ */ a(
738
- "div",
739
- {
740
- className: P(Ia.conversationListContent, l),
741
- style: Y,
742
- children: u
743
- }
744
- );
745
- }
746
- const Ea = "uikit-conversationListHeader", ya = "uikit-conversationListHeader__left", Ua = "uikit-conversationListHeader__right", ut = {
747
- conversationListHeader: Ea,
748
- conversationListHeader__left: ya,
749
- conversationListHeader__right: Ua
750
- };
751
- function ba(n) {
752
- const {
753
- children: e,
754
- left: t,
755
- right: i,
756
- className: r,
757
- style: o
758
- } = n;
759
- return /* @__PURE__ */ C(
760
- "div",
761
- {
762
- className: P(
763
- ut.conversationListHeader,
764
- r
765
- ),
766
- style: o,
767
- children: [
768
- /* @__PURE__ */ a("div", { className: ut.conversationListHeader__left, children: t }),
769
- e,
770
- /* @__PURE__ */ a("div", { className: ut.conversationListHeader__right, children: i })
771
- ]
772
- }
773
- );
774
- }
775
- function wa(n) {
776
- const [e, t] = R(!1), i = () => {
777
- t(!0);
778
- }, r = () => {
779
- t(!1);
780
- };
781
- return b(() => {
782
- const o = n == null ? void 0 : n.current;
783
- return o && (o.addEventListener("mouseenter", i), o.addEventListener("mouseleave", r)), () => {
784
- o && (o.removeEventListener("mouseenter", i), o.removeEventListener("mouseleave", r));
785
- };
786
- }, [n]), e;
787
- }
788
- const Nt = {
789
- "[草稿]": "[Drafts]",
790
- "[自定义消息]": "[Custom Message]",
791
- "[图片]": "[Image]",
792
- "[语音]": "[Voice]",
793
- "[视频]": "[Video]",
794
- "[文件]": "[File]",
795
- "[位置]": "[Location]",
796
- "[地理位置]": "[Location]",
797
- "[动画表情]": "[Animated Sticker]",
798
- "[群提示消息]": "[Group Notification]",
799
- "[聊天记录]": "[Chat History]"
800
- }, xa = (n, e) => {
801
- const t = n.getShowName();
802
- if (!e)
803
- return [{ text: t, isHighlight: !1 }];
804
- const i = e.toLowerCase();
805
- return t.split(new RegExp(`(${e})`, "gi")).map((r) => ({ text: r, isHighlight: r.toLowerCase() === i }));
806
- }, Oa = (n, e) => {
807
- var t;
808
- if (n.draftText) {
809
- const c = St(n.draftText);
810
- return c.abstract || c;
811
- }
812
- if (n.operationType === 4)
813
- return e("TUIConversation.You have been removed from the group by the group administrator");
814
- if (n.operationType === 5)
815
- return e("TUIConversation.The group chat has been disbanded");
816
- if (n.operationType === 8)
817
- return e("TUIConversation.You have left the group chat");
818
- const { lastMessage: i } = n;
819
- let r = "", o = "";
820
- if (n.type === re.TYPES.CONV_GROUP)
821
- if ((i == null ? void 0 : i.fromAccount) === re.getMyUserID())
822
- r = e("TUIConversation.Me");
823
- else {
824
- const c = (i == null ? void 0 : i.fromAccount) || "";
825
- r = En.getFriendRemark([c])[c] || (i == null ? void 0 : i.nameCard) || (i == null ? void 0 : i.nick) || c;
826
- }
827
- if ((i == null ? void 0 : i.type) === re.TYPES.MSG_TEXT)
828
- o = It(i == null ? void 0 : i.payload.text);
829
- else if ((i == null ? void 0 : i.type) === re.TYPES.MSG_CUSTOM) {
830
- const c = St((t = i == null ? void 0 : i.payload) == null ? void 0 : t.data);
831
- if ((c == null ? void 0 : c.businessID) === 1)
832
- return o = re.TUIChat.messageHandler.handleCallKitSignaling(i), o;
833
- const s = Nt[`${(i == null ? void 0 : i.messageForShow) || ""}`];
834
- o = s ? e(`TUIChat.${s}`) : i == null ? void 0 : i.messageForShow;
835
- } else {
836
- const c = Nt[`${(i == null ? void 0 : i.messageForShow) || ""}`];
837
- o = c ? e(`TUIChat.${c}`) : i == null ? void 0 : i.messageForShow;
838
- }
839
- return i != null && i.isRevoked && (o = e("TUIChat.recalled a message")), n.type === re.TYPES.CONV_GROUP && (i == null ? void 0 : i.type) === re.TYPES.MSG_GRP_TIP ? o : `${r ? `${r}:` : ""}${o}`;
840
- }, Va = "uikit-conversationPreview", $a = "uikit-conversationPreview__title", qa = "uikit-conversationPreview__unread", ja = "uikit-conversationPreview__avatar", za = "uikit-conversationPreview__content", ei = "uikit-conversationPreview__abstract", ti = "uikit-conversationPreview__drafts", ni = "uikit-conversationPreview__external", ai = "uikit-conversationPreview__time", ii = "uikit-textEllipsis", te = {
841
- conversationPreview: Va,
842
- "conversationPreview--mobile": "uikit-conversationPreview--mobile",
843
- "conversationPreview--pin": "uikit-conversationPreview--pin",
844
- conversationPreview__title: $a,
845
- "conversationPreview__title--normal": "uikit-conversationPreview__title--normal",
846
- "conversationPreview__title--highlight": "uikit-conversationPreview__title--highlight",
847
- conversationPreview__unread: qa,
848
- "conversationPreview--active": "uikit-conversationPreview--active",
849
- "conversationPreview--unread": "uikit-conversationPreview--unread",
850
- conversationPreview__avatar: ja,
851
- conversationPreview__content: za,
852
- conversationPreview__abstract: ei,
853
- conversationPreview__drafts: ti,
854
- conversationPreview__external: ni,
855
- conversationPreview__time: ai,
856
- textEllipsis: ii
857
- };
858
- function oi(n) {
859
- const { conversation: e, highlightMatchString: t } = n;
860
- return /* @__PURE__ */ a("div", { className: P(te.conversationPreview__title, te.textEllipsis), children: xa(e, t).map((i, r) => /* @__PURE__ */ a(
861
- "span",
862
- {
863
- className: P({
864
- [te["conversationPreview__title--highlight"]]: i.isHighlight,
865
- [te["conversationPreview__title--normal"]]: !i.isHighlight
866
- }),
867
- children: i.text
868
- },
869
- r
870
- )) });
871
- }
872
- function ri(n) {
873
- var e;
874
- const { conversation: t } = n, { language: i } = w();
875
- return /* @__PURE__ */ a("div", { className: te.conversationPreview__time, children: mn(+(((e = t.lastMessage) == null ? void 0 : e.lastTime) || 0) * 1e3, i) });
876
- }
877
- function ci(n) {
878
- var e;
879
- const { conversation: t } = n, { t: i } = w(), { draftText: r } = t, o = ((e = St(r)) == null ? void 0 : e.abstract) || r;
880
- return /* @__PURE__ */ a("div", { className: te.conversationPreview__abstract, children: o ? /* @__PURE__ */ C(Le, { children: [
881
- /* @__PURE__ */ a("label", { className: te.conversationPreview__drafts, children: i("TUIChat.[Drafts]") }),
882
- " ",
883
- o
884
- ] }) : Oa(t, i) });
885
- }
886
- function si(n) {
887
- const { conversation: e } = n;
888
- let t;
889
- return e.isMuted ? t = /* @__PURE__ */ a(rn, {}) : e.unreadCount > 99 ? t = "99+" : e.unreadCount > 0 ? t = e.unreadCount : e.markList.includes(re.TYPES.CONV_MARK_TYPE_UNREAD) ? t = "1" : t = null, /* @__PURE__ */ a("div", { className: te.conversationPreview__unread, children: t });
890
- }
891
- function li(n) {
892
- const {
893
- conversation: e,
894
- isSelected: t = !1,
895
- enableActions: i = !0,
896
- highlightMatchString: r,
897
- Preview: o = xt,
898
- Avatar: c = z,
899
- ConversationActions: s = Dt,
900
- Title: l = oi({ conversation: e, highlightMatchString: r }),
901
- LastMessageTimestamp: Y = ri({ conversation: e }),
902
- LastMessageAbstract: u = ci({ conversation: e }),
903
- Unread: Z = si({ conversation: e }),
904
- onSelectConversation: S,
905
- actionsConfig: d,
906
- className: L,
907
- style: p,
908
- children: D
909
- } = n;
910
- return /* @__PURE__ */ a(
911
- o,
912
- {
913
- conversation: e,
914
- isSelected: t,
915
- enableActions: i,
916
- highlightMatchString: r,
917
- Avatar: c,
918
- ConversationActions: s,
919
- Title: l,
920
- LastMessageTimestamp: Y,
921
- LastMessageAbstract: u,
922
- Unread: Z,
923
- onSelectConversation: S,
924
- actionsConfig: d,
925
- className: L,
926
- style: p,
927
- children: D
928
- }
929
- );
930
- }
931
- function xt(n) {
932
- const {
933
- conversation: e,
934
- isSelected: t,
935
- enableActions: i,
936
- Avatar: r = z,
937
- ConversationActions: o = Dt,
938
- Title: c,
939
- LastMessageTimestamp: s,
940
- LastMessageAbstract: l,
941
- Unread: Y,
942
- onSelectConversation: u,
943
- actionsConfig: Z,
944
- className: S,
945
- style: d,
946
- children: L
947
- } = n, {
948
- activeConversation: p,
949
- setActiveConversation: D
950
- } = De(), J = U(null), [T, H] = R(!1), X = wa(J), G = () => {
951
- u == null || u(e), D(e.conversationID);
952
- }, Q = Dn(() => {
953
- He && H(!0);
954
- })();
955
- b(() => {
956
- He || H(X);
957
- }, [X]);
958
- const K = () => {
959
- H(!1);
960
- };
961
- return /* @__PURE__ */ C(Le, { children: [
962
- /* @__PURE__ */ a(
963
- "div",
964
- {
965
- ref: J,
966
- className: P(te.conversationPreview, S, {
967
- [te["conversationPreview--mobile"]]: He,
968
- [te["conversationPreview--active"]]: t || e.conversationID === (p == null ? void 0 : p.conversationID),
969
- [te["conversationPreview--unread"]]: !e.isMuted && (e.unreadCount > 0 || e.markList.includes(re.TYPES.CONV_MARK_TYPE_UNREAD)),
970
- [te["conversationPreview--pin"]]: e.isPinned,
971
- [te["conversationPreview--mute"]]: e.isMuted
972
- }),
973
- style: d,
974
- onClick: G,
975
- ...Q,
976
- children: L || /* @__PURE__ */ C(Le, { children: [
977
- /* @__PURE__ */ a("div", { className: te.conversationPreview__avatar, children: /* @__PURE__ */ a(
978
- r,
979
- {
980
- src: e.getAvatar(),
981
- isDotUnreadCount: e.isMuted && e.markList.includes(re.TYPES.CONV_MARK_TYPE_UNREAD)
982
- }
983
- ) }),
984
- /* @__PURE__ */ C("div", { className: te.conversationPreview__content, children: [
985
- c,
986
- l
987
- ] }),
988
- /* @__PURE__ */ C("div", { className: te.conversationPreview__external, children: [
989
- Y,
990
- i && T && !He ? /* @__PURE__ */ a(
991
- o,
992
- {
993
- conversation: e,
994
- ...Z,
995
- onClose: K
996
- }
997
- ) : s
998
- ] })
999
- ] })
1000
- }
1001
- ),
1002
- He && i && T && /* @__PURE__ */ a(
1003
- o,
1004
- {
1005
- conversation: e,
1006
- ...Z,
1007
- onClose: K
1008
- }
1009
- )
1010
- ] });
1011
- }
1012
- const Yi = "uikit-conversationSearch", Zi = "uikit-conversationSearch__box", ui = "uikit-conversationSearch__advanced", Qe = {
1013
- conversationSearch: Yi,
1014
- "conversationSearch--active": "uikit-conversationSearch--active",
1015
- conversationSearch__box: Zi,
1016
- conversationSearch__advanced: ui,
1017
- "conversationSearch__advanced--h5": "uikit-conversationSearch__advanced--h5"
1018
- }, Ci = (n = {}) => {
1019
- const {
1020
- visible: e = !0,
1021
- SearchBar: t,
1022
- Search: i,
1023
- SearchResultsPresearch: r,
1024
- SearchResultsLoading: o,
1025
- SearchResultsEmpty: c,
1026
- SearchResultItem: s,
1027
- className: l,
1028
- style: Y,
1029
- onKeywordChange: u,
1030
- onResultItemClick: Z,
1031
- onSearchComplete: S,
1032
- onError: d,
1033
- ...L
1034
- } = n, [p, D] = R(!1), [J, T] = R(!1), [H, X] = R(ve.MINI), { t: G } = w(), { keyword: Q, setKeyword: K, setSelectedType: h } = At(), F = () => {
1035
- T(!1), X(ve.MINI), K("");
1036
- }, W = (B) => {
1037
- D(!!B);
1038
- const M = !B && H === ve.MINI, I = !Be && H === ve.STANDARD && !B;
1039
- (M || I) && F(), u == null || u(B);
1040
- };
1041
- if (b(() => {
1042
- W(Q);
1043
- }, [Q]), !e)
1044
- return null;
1045
- const k = (B) => {
1046
- const { profile: M } = B || {}, I = `C2C${M.userID}`;
1047
- rt.switchConversation(I), F();
1048
- }, v = (B) => {
1049
- const { conversation: M } = B || {};
1050
- M ? rt.switchConversation(M.conversationID) : ze.error({
1051
- message: G("TUIConversation.You are not in the group, please join the group first")
1052
- }), F();
1053
- }, m = (B) => {
1054
- const { conversationID: M = "" } = B || {}, { conversationID: I = "" } = (B == null ? void 0 : B.conversation) || {}, g = I || M;
1055
- g && (rt.switchConversation(g), F());
1056
- }, _ = (B, M) => {
1057
- if (Z) {
1058
- Z(B, M);
1059
- return;
1060
- }
1061
- switch (M) {
1062
- case qe.USER:
1063
- k(B);
1064
- break;
1065
- case qe.GROUP:
1066
- v(B);
1067
- break;
1068
- case qe.CHAT_MESSAGE:
1069
- m(B);
1070
- break;
1071
- default:
1072
- H === ve.MINI && (T(!0), X(ve.STANDARD), h(M));
1073
- break;
1074
- }
1075
- }, V = i || yt, E = t || Et;
1076
- return /* @__PURE__ */ C(
1077
- "div",
1078
- {
1079
- className: P(Qe.conversationSearch, l, {
1080
- [Qe["conversationSearch--active"]]: p && !J
1081
- }),
1082
- style: Y,
1083
- children: [
1084
- J && /* @__PURE__ */ a(E, {}),
1085
- !J && /* @__PURE__ */ a("div", { className: Qe.conversationSearch__box, children: /* @__PURE__ */ a(
1086
- V,
1087
- {
1088
- className: P({
1089
- [Qe.conversationSearch__content]: Be,
1090
- [Qe["searchContainer--h5"]]: !Be
1091
- }),
1092
- variant: ve.MINI,
1093
- SearchBar: E,
1094
- SearchResultsPresearch: r || (() => /* @__PURE__ */ a("div", {})),
1095
- SearchResultsLoading: o,
1096
- SearchResultsEmpty: c,
1097
- SearchResultItem: s,
1098
- onResultItemClick: _,
1099
- ...S && { onSearchComplete: S },
1100
- ...d && { onError: d },
1101
- ...L
1102
- }
1103
- ) }),
1104
- /* @__PURE__ */ a(
1105
- kt,
1106
- {
1107
- className: P({
1108
- [Qe.conversationSearch__advanced]: Be,
1109
- [Qe["conversationSearch__advanced--h5"]]: !Be
1110
- }),
1111
- visible: J,
1112
- showClose: !1,
1113
- showConfirm: !1,
1114
- showCancel: !1,
1115
- onClose: F,
1116
- children: /* @__PURE__ */ a(
1117
- V,
1118
- {
1119
- className: P({
1120
- [Qe.conversationSearch__content]: Be,
1121
- [Qe["searchContainer--h5"]]: !Be
1122
- }),
1123
- variant: ve.STANDARD,
1124
- SearchBar: E,
1125
- SearchResultsPresearch: r,
1126
- SearchResultsLoading: o,
1127
- SearchResultsEmpty: c,
1128
- SearchResultItem: s,
1129
- onResultItemClick: _,
1130
- ...S && { onSearchComplete: S },
1131
- ...d && { onError: d },
1132
- ...L
1133
- }
1134
- )
1135
- }
1136
- )
1137
- ]
1138
- }
1139
- );
1140
- }, Li = "uikit-conversationList", Ct = {
1141
- conversationList: Li
1142
- };
1143
- function Si(n) {
1144
- const {
1145
- enableSearch: e,
1146
- enableCreate: t,
1147
- enableActions: i = !0,
1148
- actionsConfig: r,
1149
- Header: o = ba,
1150
- List: c = Aa,
1151
- Preview: s = xt,
1152
- ConversationCreate: l = Fa,
1153
- ConversationSearch: Y = Ci,
1154
- ConversationActions: u = Dt,
1155
- PlaceholderEmptyList: Z,
1156
- PlaceholderLoading: S,
1157
- PlaceholderLoadError: d,
1158
- Avatar: L = z,
1159
- onSelectConversation: p,
1160
- onBeforeCreateConversation: D,
1161
- onConversationCreated: J,
1162
- className: T,
1163
- style: H,
1164
- filter: X,
1165
- sort: G
1166
- } = n, { searchConfig: Q, conversationListConfig: K } = w(), { enableCreateConversation: h, conversationActionList: F } = K, W = (e || !(Q != null && Q.hideSearch)) ?? !0, k = (t || h) ?? !0, {
1167
- conversationList: v = [],
1168
- setActiveConversation: m
1169
- } = De(), [_, V] = R(!1), [
1170
- E,
1171
- B
1172
- ] = R({
1173
- enableDelete: !0,
1174
- enableMute: !0,
1175
- enableMarkUnread: !0,
1176
- enablePin: !0
1177
- });
1178
- b(() => {
1179
- if (!r && !F && B({
1180
- enableDelete: !0,
1181
- enableMute: !0,
1182
- enableMarkUnread: !0,
1183
- enablePin: !0
1184
- }), r && B(r), F && F.length > 0) {
1185
- const g = {};
1186
- for (let $ = 0; $ < F.length; $ += 1) {
1187
- const Ze = F[$], Me = `enable${Ze == null ? void 0 : Ze.replace(Ze[0], Ze[0].toUpperCase())}`;
1188
- g[`${Me}`] = g[`${Me}`] ?? !0;
1189
- }
1190
- B(g);
1191
- }
1192
- }, [r, F]);
1193
- const M = et(() => {
1194
- let g = v;
1195
- return X && (g = X(g)), G && (g = G(g)), g;
1196
- }, [v, X, G]), I = (g) => {
1197
- m(g.conversationID), p == null || p(g);
1198
- };
1199
- return /* @__PURE__ */ C(
1200
- "div",
1201
- {
1202
- className: P(T, Ct.conversationList, {
1203
- [Ct["conversationList--mobile"]]: He
1204
- }),
1205
- style: H,
1206
- children: [
1207
- /* @__PURE__ */ C(o, { children: [
1208
- W && /* @__PURE__ */ a(Y, {}),
1209
- /* @__PURE__ */ a(
1210
- l,
1211
- {
1212
- className: P({
1213
- [Ct.conversationList__headerCreating]: _
1214
- }),
1215
- conversationList: v,
1216
- visible: k,
1217
- onChangeCreateModelVisible: (g) => V(g),
1218
- onBeforeCreateConversation: D,
1219
- onConversationCreated: J
1220
- }
1221
- )
1222
- ] }),
1223
- /* @__PURE__ */ a(
1224
- c,
1225
- {
1226
- empty: M.length === 0,
1227
- loading: !v,
1228
- error: !1,
1229
- PlaceholderEmptyList: Z,
1230
- PlaceholderLoadError: d,
1231
- PlaceholderLoading: S,
1232
- children: M.map((g) => /* @__PURE__ */ a(
1233
- li,
1234
- {
1235
- conversation: g,
1236
- enableActions: i,
1237
- Preview: s,
1238
- Avatar: L,
1239
- ConversationActions: u,
1240
- onSelectConversation: I,
1241
- actionsConfig: E
1242
- },
1243
- g.conversationID
1244
- ))
1245
- }
1246
- )
1247
- ]
1248
- }
1249
- );
1250
- }
1251
- function nr(n) {
1252
- return /* @__PURE__ */ a(Si, { ...n });
1253
- }
1254
- var f = /* @__PURE__ */ ((n) => (n.FRIEND = "friend", n.BLACK = "black", n.GROUP = "group", n.FRIEND_REQUEST = "friendRequest", n.GROUP_REQUEST = "groupRequest", n.SEARCH_USER = "searchUser", n.SEARCH_GROUP = "searchGroup", n))(f || {}), di = /* @__PURE__ */ ((n) => (n[n.USER_JOIN_REQUEST = 0] = "USER_JOIN_REQUEST", n[n.INVITE_MEMBER_REQUEST = 2] = "INVITE_MEMBER_REQUEST", n))(di || {});
1255
- const Xi = "uikit-blacklistItem", pi = "uikit-blacklistItem__avatar", Ji = "uikit-blacklistItem__content", Ti = "uikit-blacklistItem__name", be = {
1256
- blacklistItem: Xi,
1257
- "blacklistItem--active": "uikit-blacklistItem--active",
1258
- blacklistItem__avatar: pi,
1259
- blacklistItem__content: Ji,
1260
- blacklistItem__name: Ti
1261
- }, Di = ({
1262
- profile: n,
1263
- isActive: e,
1264
- onClick: t,
1265
- className: i,
1266
- style: r
1267
- }) => {
1268
- const o = () => t == null ? void 0 : t(n);
1269
- return /* @__PURE__ */ C(
1270
- "div",
1271
- {
1272
- className: P(be.blacklistItem, i, e && be["blacklistItem--active"]),
1273
- style: r,
1274
- onClick: o,
1275
- role: "button",
1276
- tabIndex: 0,
1277
- onKeyDown: (c) => (c.key === "Enter" || c.key === " ") && o(),
1278
- children: [
1279
- /* @__PURE__ */ a("div", { className: be.blacklistItem__avatar, children: /* @__PURE__ */ a(
1280
- z,
1281
- {
1282
- ...n.avatar && { src: n.avatar },
1283
- alt: n.nick || n.userID
1284
- }
1285
- ) }),
1286
- /* @__PURE__ */ a("div", { className: be.blacklistItem__content, children: /* @__PURE__ */ a("div", { className: be.blacklistItem__name, children: n.nick || n.userID }) })
1287
- ]
1288
- }
1289
- );
1290
- }, mi = "uikit-friendApplicationItem", Qi = "uikit-friendApplicationItem__avatar", _i = "uikit-friendApplicationItem__content", vi = "uikit-friendApplicationItem__name", Hi = "uikit-friendApplicationItem__text", hi = "uikit-friendApplicationItem__actions", Fe = {
1291
- friendApplicationItem: mi,
1292
- "friendApplicationItem--active": "uikit-friendApplicationItem--active",
1293
- friendApplicationItem__avatar: Qi,
1294
- friendApplicationItem__content: _i,
1295
- friendApplicationItem__name: vi,
1296
- friendApplicationItem__text: Hi,
1297
- friendApplicationItem__actions: hi
1298
- }, Mi = ({
1299
- application: n,
1300
- isActive: e,
1301
- onClick: t,
1302
- onAction: i,
1303
- className: r,
1304
- style: o
1305
- }) => {
1306
- const { t: c } = w(), s = () => t == null ? void 0 : t(n), l = (Y, u) => {
1307
- u.stopPropagation(), i == null || i(Y, n);
1308
- };
1309
- return /* @__PURE__ */ C(
1310
- "div",
1311
- {
1312
- className: P(Fe.friendApplicationItem, r, e && Fe["friendApplicationItem--active"]),
1313
- style: o,
1314
- onClick: s,
1315
- role: "button",
1316
- tabIndex: 0,
1317
- onKeyDown: (Y) => (Y.key === "Enter" || Y.key === " ") && s(),
1318
- children: [
1319
- /* @__PURE__ */ a("div", { className: Fe.friendApplicationItem__avatar, children: /* @__PURE__ */ a(
1320
- z,
1321
- {
1322
- ...n.avatar && { src: n.avatar },
1323
- alt: n.nick || n.userID
1324
- }
1325
- ) }),
1326
- /* @__PURE__ */ C("div", { className: Fe.friendApplicationItem__content, children: [
1327
- /* @__PURE__ */ a("div", { className: Fe.friendApplicationItem__name, children: n.nick || n.userID }),
1328
- /* @__PURE__ */ a("div", { className: Fe.friendApplicationItem__text, children: c("TUIContact.Request to add you as friend") })
1329
- ] }),
1330
- /* @__PURE__ */ a("div", { className: Fe.friendApplicationItem__actions, children: /* @__PURE__ */ a(
1331
- ne,
1332
- {
1333
- type: "primary",
1334
- size: "small",
1335
- onClick: (Y) => l("accept", Y),
1336
- children: c("TUIContact.Agree")
1337
- }
1338
- ) })
1339
- ]
1340
- }
1341
- );
1342
- }, fi = "uikit-friendItem", Pi = "uikit-friendItem__avatar", Gi = "uikit-friendItem__content", Ni = "uikit-friendItem__name", we = {
1343
- friendItem: fi,
1344
- "friendItem--active": "uikit-friendItem--active",
1345
- friendItem__avatar: Pi,
1346
- friendItem__content: Gi,
1347
- friendItem__name: Ni
1348
- }, Bi = ({
1349
- friend: n,
1350
- isActive: e,
1351
- onClick: t,
1352
- className: i,
1353
- style: r
1354
- }) => {
1355
- const o = () => t == null ? void 0 : t(n);
1356
- return /* @__PURE__ */ C(
1357
- "div",
1358
- {
1359
- className: P(we.friendItem, i, e && we["friendItem--active"]),
1360
- style: r,
1361
- onClick: o,
1362
- role: "button",
1363
- tabIndex: 0,
1364
- onKeyDown: (c) => (c.key === "Enter" || c.key === " ") && o(),
1365
- children: [
1366
- /* @__PURE__ */ a("div", { className: we.friendItem__avatar, children: /* @__PURE__ */ a(
1367
- z,
1368
- {
1369
- ...(n == null ? void 0 : n.avatar) && { src: n.avatar },
1370
- alt: n.remark || (n == null ? void 0 : n.nick) || n.userID
1371
- }
1372
- ) }),
1373
- /* @__PURE__ */ a("div", { className: we.friendItem__content, children: /* @__PURE__ */ a("div", { className: we.friendItem__name, children: n.remark || (n == null ? void 0 : n.nick) || n.userID }) })
1374
- ]
1375
- }
1376
- );
1377
- }, Fi = "uikit-groupApplicationItem", gi = "uikit-groupApplicationItem__avatar", Wi = "uikit-groupApplicationItem__content", Ki = "uikit-groupApplicationItem__name", Ri = "uikit-groupApplicationItem__text", ki = "uikit-groupApplicationItem__actions", ge = {
1378
- groupApplicationItem: Fi,
1379
- "groupApplicationItem--active": "uikit-groupApplicationItem--active",
1380
- groupApplicationItem__avatar: gi,
1381
- groupApplicationItem__content: Wi,
1382
- groupApplicationItem__name: Ki,
1383
- groupApplicationItem__text: Ri,
1384
- groupApplicationItem__actions: ki
1385
- }, Ii = ({
1386
- application: n,
1387
- isActive: e,
1388
- onClick: t,
1389
- onAction: i,
1390
- className: r,
1391
- style: o
1392
- }) => {
1393
- const { t: c } = w(), s = () => t == null ? void 0 : t(n), l = (S, d) => {
1394
- d.stopPropagation(), i == null || i(S, n);
1395
- }, Y = n.applicantNick || n.applicant, u = n.groupName || n.groupID, Z = n.applicationType === 0 ? `${c("TUIContact.Apply to join group")}"${u}"` : `${c("TUIContact.Invite you to join group")}"${u}"`;
1396
- return /* @__PURE__ */ C(
1397
- "div",
1398
- {
1399
- className: P(ge.groupApplicationItem, r, e && ge["groupApplicationItem--active"]),
1400
- style: o,
1401
- onClick: s,
1402
- role: "button",
1403
- tabIndex: 0,
1404
- onKeyDown: (S) => (S.key === "Enter" || S.key === " ") && s(),
1405
- children: [
1406
- /* @__PURE__ */ a("div", { className: ge.groupApplicationItem__avatar, children: /* @__PURE__ */ a(z, { alt: Y }) }),
1407
- /* @__PURE__ */ C("div", { className: ge.groupApplicationItem__content, children: [
1408
- /* @__PURE__ */ a("div", { className: ge.groupApplicationItem__name, children: Y }),
1409
- /* @__PURE__ */ a("div", { className: ge.groupApplicationItem__text, children: Z })
1410
- ] }),
1411
- /* @__PURE__ */ a("div", { className: ge.groupApplicationItem__actions, children: /* @__PURE__ */ a(
1412
- ne,
1413
- {
1414
- type: "primary",
1415
- size: "small",
1416
- onClick: (S) => l("accept", S),
1417
- children: c("TUIContact.Agree")
1418
- }
1419
- ) })
1420
- ]
1421
- }
1422
- );
1423
- }, Ai = "uikit-groupItem", Ei = "uikit-groupItem__avatar", yi = "uikit-groupItem__content", Ui = "uikit-groupItem__name", xe = {
1424
- groupItem: Ai,
1425
- "groupItem--active": "uikit-groupItem--active",
1426
- groupItem__avatar: Ei,
1427
- groupItem__content: yi,
1428
- groupItem__name: Ui
1429
- }, bi = ({
1430
- group: n,
1431
- isActive: e,
1432
- onClick: t,
1433
- className: i,
1434
- style: r
1435
- }) => {
1436
- const o = () => t == null ? void 0 : t(n);
1437
- return /* @__PURE__ */ C(
1438
- "div",
1439
- {
1440
- className: P(xe.groupItem, i, e && xe["groupItem--active"]),
1441
- style: r,
1442
- onClick: o,
1443
- role: "button",
1444
- tabIndex: 0,
1445
- onKeyDown: (c) => (c.key === "Enter" || c.key === " ") && o(),
1446
- children: [
1447
- /* @__PURE__ */ a("div", { className: xe.groupItem__avatar, children: /* @__PURE__ */ a(
1448
- z,
1449
- {
1450
- ...n.avatar && { src: n.avatar },
1451
- alt: n.name || n.groupID
1452
- }
1453
- ) }),
1454
- /* @__PURE__ */ a("div", { className: xe.groupItem__content, children: /* @__PURE__ */ a("div", { className: xe.groupItem__name, children: n.name || n.groupID }) })
1455
- ]
1456
- }
1457
- );
1458
- }, wi = ({
1459
- contactItem: n,
1460
- activeContactItem: e,
1461
- onClick: t,
1462
- onFriendApplicationAction: i,
1463
- onGroupApplicationAction: r,
1464
- className: o,
1465
- style: c
1466
- }) => {
1467
- const { type: s, data: l } = n, { type: Y, data: u } = e || { type: null, data: null };
1468
- switch (s) {
1469
- case f.FRIEND:
1470
- return /* @__PURE__ */ a(
1471
- Bi,
1472
- {
1473
- friend: l,
1474
- isActive: Y === f.FRIEND && u === l,
1475
- ...t && { onClick: (Z) => t(f.FRIEND, Z) },
1476
- ...o && { className: o },
1477
- ...c && { style: c }
1478
- }
1479
- );
1480
- case f.GROUP:
1481
- return /* @__PURE__ */ a(
1482
- bi,
1483
- {
1484
- group: l,
1485
- isActive: Y === f.GROUP && u === l,
1486
- ...t && {
1487
- onClick: (Z) => t(f.GROUP, Z)
1488
- },
1489
- ...o && { className: o },
1490
- ...c && { style: c }
1491
- }
1492
- );
1493
- case f.BLACK:
1494
- return /* @__PURE__ */ a(
1495
- Di,
1496
- {
1497
- profile: l,
1498
- isActive: Y === f.BLACK && u === l,
1499
- ...t && {
1500
- onClick: (Z) => t(f.BLACK, Z)
1501
- },
1502
- ...o && { className: o },
1503
- ...c && { style: c }
1504
- }
1505
- );
1506
- case f.FRIEND_REQUEST:
1507
- return /* @__PURE__ */ a(
1508
- Mi,
1509
- {
1510
- application: l,
1511
- isActive: Y === f.FRIEND_REQUEST && u === l,
1512
- ...t && {
1513
- onClick: (Z) => t(f.FRIEND_REQUEST, Z)
1514
- },
1515
- ...i && { onAction: i },
1516
- ...o && { className: o },
1517
- ...c && { style: c }
1518
- }
1519
- );
1520
- case f.GROUP_REQUEST:
1521
- return /* @__PURE__ */ a(
1522
- Ii,
1523
- {
1524
- application: l,
1525
- isActive: Y === f.GROUP_REQUEST && u === l,
1526
- ...t && {
1527
- onClick: (Z) => t(f.GROUP_REQUEST, Z)
1528
- },
1529
- ...r && { onAction: r },
1530
- ...o && { className: o },
1531
- ...c && { style: c }
1532
- }
1533
- );
1534
- default:
1535
- return console.warn(`Unknown contact type: ${s}`), null;
1536
- }
1537
- }, xi = "uikit-contactSearch", Oi = "uikit-contactSearch__preSearch", Vi = "uikit-contactSearch__add", $i = "uikit-contactSearch__label", qi = "uikit-contactSearch__search", ji = "uikit-contactSearch__searchBarBox", zi = "uikit-contactSearch__searchBar", eo = "uikit-contactSearch__cancel", Pe = {
1538
- contactSearch: xi,
1539
- contactSearch__preSearch: Oi,
1540
- contactSearch__add: Vi,
1541
- contactSearch__label: $i,
1542
- contactSearch__search: qi,
1543
- contactSearch__searchBarBox: ji,
1544
- contactSearch__searchBar: zi,
1545
- contactSearch__cancel: eo
1546
- }, to = ({
1547
- className: n,
1548
- style: e,
1549
- onResultClick: t,
1550
- onKeywordChange: i
1551
- }) => {
1552
- const { t: r } = w(), [o, c] = R(!1), { setKeyword: s } = At(), l = O((d, L) => {
1553
- L === qe.USER && (t == null || t({
1554
- type: f.SEARCH_USER,
1555
- data: d.profile
1556
- })), L === qe.GROUP && (t == null || t({
1557
- type: f.SEARCH_GROUP,
1558
- data: d.groupInfo
1559
- }));
1560
- }, [t]), Y = () => {
1561
- s(""), c(!1);
1562
- }, u = O(() => {
1563
- c(!0);
1564
- }, []), Z = () => /* @__PURE__ */ a("div", {}), S = (d) => /* @__PURE__ */ C("div", { className: Pe.contactSearch__searchBarBox, children: [
1565
- /* @__PURE__ */ a(Et, { className: Pe.contactSearch__searchBar, ...d }),
1566
- /* @__PURE__ */ a("span", { className: Pe.contactSearch__cancel, onClick: Y, children: r("TUIContact.Cancel") })
1567
- ] });
1568
- return /* @__PURE__ */ a(
1569
- "div",
1570
- {
1571
- className: P(
1572
- Pe.contactSearch,
1573
- o && Pe.contactSearch__search,
1574
- n
1575
- ),
1576
- style: e,
1577
- children: o ? /* @__PURE__ */ a(
1578
- yt,
1579
- {
1580
- variant: ve.EXACT,
1581
- SearchBar: S,
1582
- onKeywordChange: (d) => {
1583
- i == null || i(d);
1584
- },
1585
- onResultItemClick: l,
1586
- SearchResultsPresearch: Z
1587
- }
1588
- ) : /* @__PURE__ */ C("div", { className: Pe.contactSearch__preSearch, onClick: u, children: [
1589
- /* @__PURE__ */ a("label", { htmlFor: "contactSearch__label", className: Pe.contactSearch__add, children: /* @__PURE__ */ a(Rt, {}) }),
1590
- /* @__PURE__ */ a("span", { className: Pe.contactSearch__label, children: r("TUIContact.Add friend/group") })
1591
- ] })
1592
- }
1593
- );
1594
- }, no = "uikit-contactList", ao = "uikit-contactList__container", io = "uikit-contactList__main", oo = "uikit-contactList__search", ro = "uikit-contactList__content", co = "uikit-contactList__groupHeader", so = "uikit-contactList__groupTitle", lo = "uikit-contactList__groupIcon", Yo = "uikit-contactList__groupName", Zo = "uikit-contactList__unreadBadge", uo = "uikit-contactList__groupContent", Co = "uikit-contactList__empty", Lo = "uikit-contactList__emptyText", se = {
1595
- contactList: no,
1596
- contactList__container: ao,
1597
- contactList__main: io,
1598
- contactList__search: oo,
1599
- contactList__content: ro,
1600
- contactList__groupHeader: co,
1601
- contactList__groupTitle: so,
1602
- contactList__groupIcon: lo,
1603
- contactList__groupName: Yo,
1604
- contactList__unreadBadge: Zo,
1605
- contactList__groupContent: uo,
1606
- contactList__empty: Co,
1607
- contactList__emptyText: Lo
1608
- }, ar = (n) => {
1609
- const { t: e, language: t } = w(), i = Yt.useMemo(() => ({
1610
- [f.FRIEND_REQUEST]: e("TUIContact.New contacts"),
1611
- [f.GROUP_REQUEST]: e("TUIContact.Group applications"),
1612
- [f.FRIEND]: e("TUIContact.My friends"),
1613
- [f.GROUP]: e("TUIContact.My groups"),
1614
- [f.BLACK]: e("TUIContact.Blacklist")
1615
- }), [e, t]), {
1616
- activeContactItem: r,
1617
- enableSearch: o = !0,
1618
- groupConfig: c = {},
1619
- className: s,
1620
- style: l,
1621
- searchPlaceholder: Y = e("TUIContact.Search contacts"),
1622
- emptyText: u = e("TUIContact.No contacts"),
1623
- ContactItem: Z,
1624
- ContactSearchComponent: S,
1625
- GroupHeader: d,
1626
- PlaceholderEmptyList: L,
1627
- onContactItemClick: p,
1628
- onFriendApplicationAction: D,
1629
- onGroupApplicationAction: J
1630
- } = n, {
1631
- friendList: T,
1632
- groupList: H,
1633
- blackList: X,
1634
- friendApplicationList: G,
1635
- groupApplicationList: Q,
1636
- friendApplicationUnreadCount: K,
1637
- acceptFriendApplication: h,
1638
- refuseFriendApplication: F,
1639
- acceptGroupApplication: W,
1640
- refuseGroupApplication: k
1641
- } = he(), { activeContact: v, setActiveContact: m } = Ut();
1642
- b(() => {
1643
- r && m(r);
1644
- }, [r]);
1645
- const [_, V] = Yt.useState(
1646
- /* @__PURE__ */ new Set()
1647
- ), E = (N) => {
1648
- const A = new Set(_);
1649
- A.has(N) ? A.delete(N) : A.add(N), V(A);
1650
- }, B = Yt.useMemo(() => {
1651
- const N = [
1652
- {
1653
- type: f.FRIEND_REQUEST,
1654
- title: i[f.FRIEND_REQUEST],
1655
- items: G,
1656
- unreadCount: K,
1657
- order: 1
1658
- },
1659
- {
1660
- type: f.GROUP_REQUEST,
1661
- title: i[f.GROUP_REQUEST],
1662
- items: Q,
1663
- order: 2
1664
- },
1665
- {
1666
- type: f.FRIEND,
1667
- title: i[f.FRIEND],
1668
- items: T,
1669
- order: 3
1670
- },
1671
- {
1672
- type: f.GROUP,
1673
- title: i[f.GROUP],
1674
- items: H,
1675
- order: 4
1676
- },
1677
- {
1678
- type: f.BLACK,
1679
- title: i[f.BLACK],
1680
- items: X,
1681
- order: 5
1682
- }
1683
- ], A = c;
1684
- return N.filter((y) => {
1685
- var le;
1686
- return !((le = A[y.type]) != null && le.hidden);
1687
- }).map((y) => {
1688
- var le, tt;
1689
- return {
1690
- key: y.type,
1691
- type: y.type,
1692
- title: ((le = A[y.type]) == null ? void 0 : le.title) ?? y.title ?? "",
1693
- items: y.items,
1694
- ...y.unreadCount !== void 0 && { unreadCount: y.unreadCount },
1695
- isExpanded: _.has(y.type),
1696
- order: ((tt = A[y.type]) == null ? void 0 : tt.order) ?? y.order
1697
- };
1698
- }).sort((y, le) => y.order - le.order);
1699
- }, [
1700
- i,
1701
- G,
1702
- K,
1703
- Q,
1704
- T,
1705
- H,
1706
- X,
1707
- c,
1708
- _
1709
- ]), M = (N) => "userID" in N ? N.userID : "groupID" in N ? N.groupID : "", I = (N, A) => {
1710
- const y = { type: N, data: A };
1711
- p == null || p(y), m(y);
1712
- }, g = async (N, A) => {
1713
- try {
1714
- N === "accept" ? await h({
1715
- userID: A.userID,
1716
- type: A.type
1717
- }) : await F(A.userID), D == null || D(N, A);
1718
- } catch (y) {
1719
- console.error(`Failed to ${N} friend application:`, y);
1720
- }
1721
- }, $ = async (N, A) => {
1722
- try {
1723
- const y = {
1724
- handleMessage: "",
1725
- application: A
1726
- };
1727
- N === "accept" ? await W(y) : await k(y), J == null || J(N, A);
1728
- } catch (y) {
1729
- console.error(`Failed to ${N} group application:`, y);
1730
- }
1731
- }, Ze = (N) => d ? /* @__PURE__ */ a(d, { data: N, onClick: () => E(N.key) }) : /* @__PURE__ */ a(
1732
- "div",
1733
- {
1734
- className: se.contactList__groupHeader,
1735
- onClick: () => E(N.key),
1736
- role: "button",
1737
- tabIndex: 0,
1738
- onKeyDown: (A) => {
1739
- (A.key === "Enter" || A.key === " ") && E(N.key);
1740
- },
1741
- children: /* @__PURE__ */ C("div", { className: se.contactList__groupTitle, children: [
1742
- /* @__PURE__ */ a("span", { className: se.contactList__groupIcon, children: N.isExpanded ? /* @__PURE__ */ a(cn, {}) : /* @__PURE__ */ a(Kt, {}) }),
1743
- /* @__PURE__ */ a("span", { className: se.contactList__groupName, children: N.title }),
1744
- N.unreadCount !== void 0 && N.unreadCount > 0 && /* @__PURE__ */ a("div", { className: se.contactList__unreadBadge, children: N.unreadCount > 99 ? "99+" : N.unreadCount })
1745
- ] })
1746
- }
1747
- ), Me = (N, A, y) => /* @__PURE__ */ a(
1748
- Z || wi,
1749
- {
1750
- contactItem: {
1751
- data: N,
1752
- type: A
1753
- },
1754
- activeContactItem: v,
1755
- onClick: I,
1756
- onFriendApplicationAction: g,
1757
- onGroupApplicationAction: $
1758
- },
1759
- `${A}_${M(N)}_${y}`
1760
- ), Ke = (N) => /* @__PURE__ */ C("div", { className: se.contactList__group, children: [
1761
- Ze(N),
1762
- N.isExpanded && /* @__PURE__ */ a("div", { className: se.contactList__groupContent, children: N.items.map((A, y) => Me(A, N.type, y)) })
1763
- ] }, N.key), Ie = () => L || /* @__PURE__ */ a("div", { className: se.contactList__empty, children: /* @__PURE__ */ a("div", { className: se.contactList__emptyText, children: u }) }), Ne = () => {
1764
- if (!o)
1765
- return null;
1766
- const N = S || to;
1767
- return /* @__PURE__ */ a("div", { className: se.contactList__search, children: /* @__PURE__ */ a(
1768
- N,
1769
- {
1770
- onResultClick: (A) => {
1771
- I == null || I(A.type, A.data);
1772
- },
1773
- placeholder: Y
1774
- }
1775
- ) });
1776
- };
1777
- return /* @__PURE__ */ a(
1778
- "div",
1779
- {
1780
- className: P(
1781
- se.contactList,
1782
- s
1783
- ),
1784
- style: l,
1785
- children: /* @__PURE__ */ a("div", { className: se.contactList__container, children: /* @__PURE__ */ C("div", { className: se.contactList__main, children: [
1786
- Ne(),
1787
- /* @__PURE__ */ a("div", { className: se.contactList__content, children: B.length > 0 ? B.map(Ke) : Ie() })
1788
- ] }) })
1789
- }
1790
- );
1791
- }, Ge = {
1792
- "contact-blacklist-info": "uikit-contact-blacklist-info",
1793
- "contact-blacklist-info__header": "uikit-contact-blacklist-info__header",
1794
- "contact-blacklist-info__main-info": "uikit-contact-blacklist-info__main-info",
1795
- "contact-blacklist-info__name": "uikit-contact-blacklist-info__name",
1796
- "contact-blacklist-info__id": "uikit-contact-blacklist-info__id",
1797
- "contact-blacklist-info__intro": "uikit-contact-blacklist-info__intro",
1798
- "contact-blacklist-info__avatar-wrap": "uikit-contact-blacklist-info__avatar-wrap",
1799
- "contact-blacklist-info__actions": "uikit-contact-blacklist-info__actions"
1800
- }, So = ({
1801
- profile: n,
1802
- showActions: e = !0,
1803
- onRemoveFromBlacklist: t,
1804
- onClose: i,
1805
- className: r,
1806
- style: o
1807
- }) => {
1808
- const { t: c } = w(), {
1809
- removeFromBlacklist: s
1810
- } = he(), l = () => {
1811
- s([n.userID]), t == null || t(n), i == null || i();
1812
- };
1813
- return /* @__PURE__ */ C("div", { className: P(Ge["contact-blacklist-info"], r), style: o, children: [
1814
- /* @__PURE__ */ C("div", { className: Ge["contact-blacklist-info__header"], children: [
1815
- /* @__PURE__ */ C("div", { className: Ge["contact-blacklist-info__main-info"], children: [
1816
- /* @__PURE__ */ a("div", { className: Ge["contact-blacklist-info__name"], children: n.nick || n.userID }),
1817
- /* @__PURE__ */ C("div", { className: Ge["contact-blacklist-info__id"], children: [
1818
- c("TUIContact.ID"),
1819
- ":",
1820
- n.userID
1821
- ] }),
1822
- /* @__PURE__ */ C("div", { className: Ge["contact-blacklist-info__intro"], children: [
1823
- c("TUIContact.Personal signature"),
1824
- ":",
1825
- n.selfSignature || ""
1826
- ] })
1827
- ] }),
1828
- /* @__PURE__ */ a("div", { className: Ge["contact-blacklist-info__avatar-wrap"], children: /* @__PURE__ */ a(
1829
- z,
1830
- {
1831
- ...n.avatar && { src: n.avatar },
1832
- alt: n.nick || n.userID,
1833
- size: "xl"
1834
- }
1835
- ) })
1836
- ] }),
1837
- e && /* @__PURE__ */ a("div", { className: Ge["contact-blacklist-info__actions"], children: /* @__PURE__ */ a(
1838
- ne,
1839
- {
1840
- type: "primary",
1841
- size: "big",
1842
- onClick: l,
1843
- children: c("TUIContact.Remove from blacklist")
1844
- }
1845
- ) })
1846
- ] });
1847
- }, Xe = {
1848
- "contact-friend-application-info": "uikit-contact-friend-application-info",
1849
- "contact-friend-application-info__header": "uikit-contact-friend-application-info__header",
1850
- "contact-friend-application-info__main-info": "uikit-contact-friend-application-info__main-info",
1851
- "contact-friend-application-info__name": "uikit-contact-friend-application-info__name",
1852
- "contact-friend-application-info__id": "uikit-contact-friend-application-info__id",
1853
- "contact-friend-application-info__avatar-wrap": "uikit-contact-friend-application-info__avatar-wrap",
1854
- "contact-friend-application-info__rows": "uikit-contact-friend-application-info__rows",
1855
- "contact-friend-application-info__row": "uikit-contact-friend-application-info__row",
1856
- "contact-friend-application-info__row-label": "uikit-contact-friend-application-info__row-label",
1857
- "contact-friend-application-info__row-value": "uikit-contact-friend-application-info__row-value",
1858
- "contact-friend-application-info__actions": "uikit-contact-friend-application-info__actions"
1859
- }, Xo = ({
1860
- application: n,
1861
- showActions: e = !0,
1862
- onClose: t,
1863
- onAccept: i,
1864
- onRefuse: r,
1865
- className: o,
1866
- style: c
1867
- }) => {
1868
- const { t: s } = w(), {
1869
- acceptFriendApplication: l,
1870
- refuseFriendApplication: Y
1871
- } = he(), u = () => {
1872
- i == null || i(n), l(n), t == null || t();
1873
- }, Z = () => {
1874
- r == null || r(n), Y(n.userID), t == null || t();
1875
- };
1876
- return /* @__PURE__ */ C("div", { className: P(Xe["contact-friend-application-info"], o), style: c, children: [
1877
- /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__header"], children: [
1878
- /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__main-info"], children: [
1879
- /* @__PURE__ */ a("div", { className: Xe["contact-friend-application-info__name"], children: (n == null ? void 0 : n.nick) || (n == null ? void 0 : n.userID) }),
1880
- /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__id"], children: [
1881
- s("TUIContact.ID"),
1882
- ":",
1883
- n == null ? void 0 : n.userID
1884
- ] })
1885
- ] }),
1886
- /* @__PURE__ */ a("div", { className: Xe["contact-friend-application-info__avatar-wrap"], children: /* @__PURE__ */ a(
1887
- z,
1888
- {
1889
- ...(n == null ? void 0 : n.avatar) && { src: n == null ? void 0 : n.avatar },
1890
- alt: (n == null ? void 0 : n.nick) || n.userID,
1891
- size: "xl"
1892
- }
1893
- ) })
1894
- ] }),
1895
- /* @__PURE__ */ a("div", { className: Xe["contact-friend-application-info__rows"], children: /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__row"], children: [
1896
- /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__row-label"], children: [
1897
- s("TUIContact.Verification info"),
1898
- ":"
1899
- ] }),
1900
- /* @__PURE__ */ a("div", { className: Xe["contact-friend-application-info__row-value"], children: n == null ? void 0 : n.wording })
1901
- ] }) }),
1902
- e && /* @__PURE__ */ C("div", { className: Xe["contact-friend-application-info__actions"], children: [
1903
- /* @__PURE__ */ a(
1904
- ne,
1905
- {
1906
- type: "default",
1907
- size: "big",
1908
- color: "red",
1909
- onClick: Z,
1910
- children: s("TUIContact.Refuse")
1911
- }
1912
- ),
1913
- /* @__PURE__ */ a(
1914
- ne,
1915
- {
1916
- type: "primary",
1917
- size: "big",
1918
- onClick: u,
1919
- children: s("TUIContact.Agree")
1920
- }
1921
- )
1922
- ] })
1923
- ] });
1924
- }, oe = {
1925
- "contact-friend-info": "uikit-contact-friend-info",
1926
- "contact-friend-info__header": "uikit-contact-friend-info__header",
1927
- "contact-friend-info__main-info": "uikit-contact-friend-info__main-info",
1928
- "contact-friend-info__name": "uikit-contact-friend-info__name",
1929
- "contact-friend-info__id": "uikit-contact-friend-info__id",
1930
- "contact-friend-info__intro": "uikit-contact-friend-info__intro",
1931
- "contact-friend-info__avatar-wrap": "uikit-contact-friend-info__avatar-wrap",
1932
- "contact-friend-info__rows": "uikit-contact-friend-info__rows",
1933
- "contact-friend-info__row": "uikit-contact-friend-info__row",
1934
- "contact-friend-info__row-label": "uikit-contact-friend-info__row-label",
1935
- "contact-friend-info__row-value": "uikit-contact-friend-info__row-value",
1936
- "contact-friend-info__actions": "uikit-contact-friend-info__actions"
1937
- }, po = ({
1938
- friend: n,
1939
- showActions: e = !0,
1940
- onClose: t,
1941
- onSendMessage: i,
1942
- onDeleteFriend: r,
1943
- onAddToBlacklist: o,
1944
- onUpdateFriendRemark: c,
1945
- className: s,
1946
- style: l
1947
- }) => {
1948
- const { t: Y } = w(), {
1949
- deleteFriend: u,
1950
- addToBlacklist: Z,
1951
- removeFromBlacklist: S,
1952
- setFriendRemark: d,
1953
- blackList: L
1954
- } = he(), {
1955
- setActiveConversation: p
1956
- } = De(), [D, J] = R(!1), [T, H] = R(n.remark || ""), [X, G] = R(n.remark || ""), [Q, K] = R(!1), [h, F] = R(!1);
1957
- b(() => {
1958
- H(n.remark || ""), G(n.remark || "");
1959
- }, [n.remark]);
1960
- const W = et(
1961
- () => L.some((E) => E.userID === n.userID),
1962
- [L, n.userID]
1963
- ), k = async () => {
1964
- if (X.trim() === T) {
1965
- J(!1);
1966
- return;
1967
- }
1968
- K(!0);
1969
- try {
1970
- d({ userID: n.userID, remark: X.trim() }), H(X.trim()), J(!1), c == null || c({
1971
- ...n,
1972
- remark: X.trim()
1973
- }, X.trim());
1974
- } catch (E) {
1975
- console.error(E);
1976
- } finally {
1977
- K(!1);
1978
- }
1979
- }, v = async (E) => {
1980
- F(!0);
1981
- try {
1982
- E ? (await Z([n.userID]), o == null || o(n)) : await S([n.userID]);
1983
- } catch (B) {
1984
- console.error(B);
1985
- } finally {
1986
- F(!1);
1987
- }
1988
- }, m = async () => {
1989
- try {
1990
- await u({ userIDList: [n.userID] }), r == null || r(n);
1991
- } catch (E) {
1992
- console.error(E);
1993
- }
1994
- t == null || t();
1995
- }, _ = (E) => {
1996
- i == null || i(E), p(`C2C${E.userID}`);
1997
- }, V = T || (n == null ? void 0 : n.nick) || n.userID;
1998
- return /* @__PURE__ */ C("div", { className: P(oe["contact-friend-info"], s), style: l, children: [
1999
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__header"], children: [
2000
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__main-info"], children: [
2001
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__name"], children: V }),
2002
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__id"], children: [
2003
- Y("TUIContact.ID"),
2004
- ":",
2005
- n.userID
2006
- ] }),
2007
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__intro"], children: [
2008
- Y("TUIContact.Personal signature"),
2009
- ":",
2010
- (n == null ? void 0 : n.selfSignature) || ""
2011
- ] })
2012
- ] }),
2013
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__avatar-wrap"], children: /* @__PURE__ */ a(
2014
- z,
2015
- {
2016
- ...(n == null ? void 0 : n.avatar) && { src: n.avatar },
2017
- alt: V,
2018
- size: "xl"
2019
- }
2020
- ) })
2021
- ] }),
2022
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__rows"], children: [
2023
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__row"], children: [
2024
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__row-label"], children: Y("TUIContact.Remark name") }),
2025
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__row-value"], children: D ? /* @__PURE__ */ C(Le, { children: [
2026
- /* @__PURE__ */ a(
2027
- sn,
2028
- {
2029
- value: X,
2030
- onChange: (E) => G(E.target.value),
2031
- onBlur: k,
2032
- onKeyDown: (E) => E.key === "Enter" && k(),
2033
- autoFocus: !0,
2034
- disabled: Q,
2035
- maxLength: 30
2036
- }
2037
- ),
2038
- /* @__PURE__ */ a(
2039
- ne,
2040
- {
2041
- size: "small",
2042
- type: "primary",
2043
- loading: Q,
2044
- onClick: k,
2045
- style: { marginLeft: 4 },
2046
- children: Y("TUIContact.Save")
2047
- }
2048
- )
2049
- ] }) : /* @__PURE__ */ C(Le, { children: [
2050
- /* @__PURE__ */ a("span", { children: T || /* @__PURE__ */ a("span", { style: { color: "#bbb" }, children: Y("TUIContact.None") }) }),
2051
- /* @__PURE__ */ a(
2052
- ln,
2053
- {
2054
- style: { marginLeft: 4, cursor: "pointer", fontSize: 16 },
2055
- onClick: () => {
2056
- G(T), J(!0);
2057
- }
2058
- }
2059
- )
2060
- ] }) })
2061
- ] }),
2062
- /* @__PURE__ */ C("div", { className: oe["contact-friend-info__row"], children: [
2063
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__row-label"], children: Y("TUIContact.Add to blacklist") }),
2064
- /* @__PURE__ */ a("div", { className: oe["contact-friend-info__row-value"], children: /* @__PURE__ */ a(
2065
- Yn,
2066
- {
2067
- value: W,
2068
- disabled: h,
2069
- onChange: v
2070
- }
2071
- ) })
2072
- ] })
2073
- ] }),
2074
- e && /* @__PURE__ */ C("div", { className: oe["contact-friend-info__actions"], children: [
2075
- /* @__PURE__ */ a(
2076
- ne,
2077
- {
2078
- type: "default",
2079
- size: "big",
2080
- color: "red",
2081
- onClick: m,
2082
- children: Y("TUIContact.Delete friend")
2083
- }
2084
- ),
2085
- /* @__PURE__ */ a(
2086
- ne,
2087
- {
2088
- type: "primary",
2089
- size: "big",
2090
- onClick: () => _ == null ? void 0 : _(n),
2091
- children: Y("TUIContact.Send message")
2092
- }
2093
- )
2094
- ] })
2095
- ] });
2096
- }, Ce = {
2097
- "contact-group-application-info": "uikit-contact-group-application-info",
2098
- "contact-group-application-info__header": "uikit-contact-group-application-info__header",
2099
- "contact-group-application-info__main-info": "uikit-contact-group-application-info__main-info",
2100
- "contact-group-application-info__name": "uikit-contact-group-application-info__name",
2101
- "contact-group-application-info__id": "uikit-contact-group-application-info__id",
2102
- "contact-group-application-info__intro": "uikit-contact-group-application-info__intro",
2103
- "contact-group-application-info__avatar-wrap": "uikit-contact-group-application-info__avatar-wrap",
2104
- "contact-group-application-info__rows": "uikit-contact-group-application-info__rows",
2105
- "contact-group-application-info__row": "uikit-contact-group-application-info__row",
2106
- "contact-group-application-info__row-label": "uikit-contact-group-application-info__row-label",
2107
- "contact-group-application-info__row-value": "uikit-contact-group-application-info__row-value",
2108
- "contact-group-application-info__actions": "uikit-contact-group-application-info__actions"
2109
- }, Jo = ({
2110
- application: n,
2111
- showActions: e = !0,
2112
- onClose: t,
2113
- onAccept: i,
2114
- onRefuse: r,
2115
- className: o,
2116
- style: c
2117
- }) => {
2118
- const { t: s } = w(), {
2119
- acceptGroupApplication: l,
2120
- refuseGroupApplication: Y
2121
- } = he(), u = () => {
2122
- i == null || i(n), l({ application: n }), t == null || t();
2123
- }, Z = () => {
2124
- r == null || r(n), Y({ application: n }), t == null || t();
2125
- }, S = n.applicantNick || n.applicant, d = n.groupName || n.groupID, L = n.applicationType === 0 ? `${s("TUIContact.Apply to join group")}"${d}"` : `${s("TUIContact.Invite you to join group")}"${d}"`;
2126
- return /* @__PURE__ */ C("div", { className: P(Ce["contact-group-application-info"], o), style: c, children: [
2127
- /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__header"], children: [
2128
- /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__main-info"], children: [
2129
- /* @__PURE__ */ a("div", { className: Ce["contact-group-application-info__name"], children: S }),
2130
- /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__id"], children: [
2131
- s("TUIContact.ID"),
2132
- ":",
2133
- n.applicant
2134
- ] }),
2135
- /* @__PURE__ */ a("div", { className: Ce["contact-group-application-info__intro"], children: L })
2136
- ] }),
2137
- /* @__PURE__ */ a("div", { className: Ce["contact-group-application-info__avatar-wrap"], children: /* @__PURE__ */ a(z, { alt: S, size: "xl" }) })
2138
- ] }),
2139
- /* @__PURE__ */ a("div", { className: Ce["contact-group-application-info__rows"], children: /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__row"], children: [
2140
- /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__row-label"], children: [
2141
- s("TUIContact.Application note"),
2142
- ":"
2143
- ] }),
2144
- /* @__PURE__ */ a("div", { className: Ce["contact-group-application-info__row-value"], children: n.note || s("TUIContact.None") })
2145
- ] }) }),
2146
- e && /* @__PURE__ */ C("div", { className: Ce["contact-group-application-info__actions"], children: [
2147
- /* @__PURE__ */ a(
2148
- ne,
2149
- {
2150
- type: "default",
2151
- size: "big",
2152
- color: "red",
2153
- onClick: Z,
2154
- children: s("TUIContact.Refuse")
2155
- }
2156
- ),
2157
- /* @__PURE__ */ a(
2158
- ne,
2159
- {
2160
- type: "primary",
2161
- size: "big",
2162
- onClick: u,
2163
- children: s("TUIContact.Agree")
2164
- }
2165
- )
2166
- ] })
2167
- ] });
2168
- }, _e = {
2169
- "contact-group-info": "uikit-contact-group-info",
2170
- "contact-group-info__header": "uikit-contact-group-info__header",
2171
- "contact-group-info__main-info": "uikit-contact-group-info__main-info",
2172
- "contact-group-info__name": "uikit-contact-group-info__name",
2173
- "contact-group-info__id": "uikit-contact-group-info__id",
2174
- "contact-group-info__intro": "uikit-contact-group-info__intro",
2175
- "contact-group-info__avatar-wrap": "uikit-contact-group-info__avatar-wrap",
2176
- "contact-group-info__actions": "uikit-contact-group-info__actions"
2177
- }, To = ({
2178
- group: n,
2179
- showActions: e = !0,
2180
- onClose: t,
2181
- onEnterGroup: i,
2182
- onLeaveGroup: r,
2183
- onDismissGroup: o,
2184
- className: c,
2185
- style: s
2186
- }) => {
2187
- const { t: l } = w(), {
2188
- quitGroup: Y,
2189
- dismissGroup: u,
2190
- hasPermission: Z
2191
- } = Jt(), {
2192
- setActiveConversation: S
2193
- } = De(), { type: d = "", selfInfo: L = {} } = n || {}, p = L.role || Qn.COMMON, D = Z(Gt.DISMISS_GROUP, p, d), J = Z(Gt.QUIT_GROUP, p, d), T = async () => {
2194
- try {
2195
- Y(n.groupID), r == null || r(n);
2196
- } catch (G) {
2197
- console.error(G);
2198
- }
2199
- t == null || t();
2200
- }, H = async () => {
2201
- try {
2202
- u(n.groupID), o == null || o(n);
2203
- } catch (G) {
2204
- console.error(G);
2205
- }
2206
- t == null || t();
2207
- }, X = () => {
2208
- S(`GROUP${n.groupID}`), i == null || i(n);
2209
- };
2210
- return /* @__PURE__ */ C("div", { className: P(_e["contact-group-info"], c), style: s, children: [
2211
- /* @__PURE__ */ C("div", { className: _e["contact-group-info__header"], children: [
2212
- /* @__PURE__ */ C("div", { className: _e["contact-group-info__main-info"], children: [
2213
- /* @__PURE__ */ a("div", { className: _e["contact-group-info__name"], children: n.name || n.groupID }),
2214
- /* @__PURE__ */ C("div", { className: _e["contact-group-info__id"], children: [
2215
- l("TUIContact.Group ID"),
2216
- ":",
2217
- n.groupID
2218
- ] }),
2219
- /* @__PURE__ */ C("div", { className: _e["contact-group-info__id"], children: [
2220
- l("TUIContact.Group type"),
2221
- ":",
2222
- n.type
2223
- ] }),
2224
- /* @__PURE__ */ C("div", { className: _e["contact-group-info__intro"], children: [
2225
- l("TUIContact.Group introduction"),
2226
- ":",
2227
- n.introduction || l("TUIContact.No introduction")
2228
- ] })
2229
- ] }),
2230
- /* @__PURE__ */ a("div", { className: _e["contact-group-info__avatar-wrap"], children: /* @__PURE__ */ a(
2231
- z,
2232
- {
2233
- ...n.avatar && { src: n.avatar },
2234
- alt: n.name || n.groupID,
2235
- size: "xl"
2236
- }
2237
- ) })
2238
- ] }),
2239
- e && /* @__PURE__ */ C("div", { className: _e["contact-group-info__actions"], children: [
2240
- D && /* @__PURE__ */ a(
2241
- ne,
2242
- {
2243
- type: "default",
2244
- size: "big",
2245
- color: "red",
2246
- onClick: H,
2247
- children: l("ChatSetting.dismiss_group")
2248
- }
2249
- ),
2250
- J && /* @__PURE__ */ a(
2251
- ne,
2252
- {
2253
- type: "default",
2254
- size: "big",
2255
- color: "red",
2256
- onClick: T,
2257
- children: l("ChatSetting.quit_group")
2258
- }
2259
- ),
2260
- /* @__PURE__ */ a(
2261
- ne,
2262
- {
2263
- type: "primary",
2264
- size: "big",
2265
- onClick: X,
2266
- children: l("TUIContact.Enter group chat")
2267
- }
2268
- )
2269
- ] })
2270
- ] });
2271
- }, ee = {
2272
- "contact-search-group-info": "uikit-contact-search-group-info",
2273
- "contact-search-group-info__header": "uikit-contact-search-group-info__header",
2274
- "contact-search-group-info__main-info": "uikit-contact-search-group-info__main-info",
2275
- "contact-search-group-info__name": "uikit-contact-search-group-info__name",
2276
- "contact-search-group-info__id": "uikit-contact-search-group-info__id",
2277
- "contact-search-group-info__intro": "uikit-contact-search-group-info__intro",
2278
- "contact-search-group-info__avatar-wrap": "uikit-contact-search-group-info__avatar-wrap",
2279
- "contact-search-group-info__form": "uikit-contact-search-group-info__form",
2280
- "contact-search-group-info__form-item": "uikit-contact-search-group-info__form-item",
2281
- "contact-search-group-info__form-label": "uikit-contact-search-group-info__form-label",
2282
- "contact-search-group-info__form-input-wrapper": "uikit-contact-search-group-info__form-input-wrapper",
2283
- "contact-search-group-info__form-input": "uikit-contact-search-group-info__form-input",
2284
- "contact-search-group-info__form-counter": "uikit-contact-search-group-info__form-counter",
2285
- "contact-search-group-info__actions": "uikit-contact-search-group-info__actions",
2286
- "contact-search-group-info__status": "uikit-contact-search-group-info__status",
2287
- "contact-search-group-info__status--success": "uikit-contact-search-group-info__status--success",
2288
- "contact-search-group-info__status--error": "uikit-contact-search-group-info__status--error"
2289
- }, Do = ({
2290
- group: n,
2291
- showActions: e = !0,
2292
- onJoinGroup: t,
2293
- className: i,
2294
- style: r
2295
- }) => {
2296
- const { t: o } = w(), { joinGroup: c } = he(), [s, l] = R(""), [Y, u] = R(!1), [Z, S] = R("idle"), [d, L] = R(""), p = async () => {
2297
- if (!Y) {
2298
- if (u(!0), S("idle"), L(""), t) {
2299
- S("success"), u(!1), t == null || t(n, s.trim() || o("TUIContact.Apply to join group"));
2300
- return;
2301
- }
2302
- try {
2303
- await c({
2304
- groupID: n.groupID,
2305
- applyMessage: s.trim() || o("TUIContact.Apply to join group")
2306
- }), S("success");
2307
- } catch (T) {
2308
- S("error"), L((T == null ? void 0 : T.message) || o("TUIContact.Apply to join group failed"));
2309
- } finally {
2310
- u(!1);
2311
- }
2312
- }
2313
- }, D = (T) => {
2314
- switch (T) {
2315
- case ye.TYPES.GRP_WORK:
2316
- return o("TUIContact.Work group");
2317
- case ye.TYPES.GRP_PUBLIC:
2318
- return o("TUIContact.Public group");
2319
- case ye.TYPES.GRP_MEETING:
2320
- return o("TUIContact.Meeting group");
2321
- case ye.TYPES.GRP_AVCHATROOM:
2322
- return o("TUIContact.Live group");
2323
- case ye.TYPES.GRP_COMMUNITY:
2324
- return o("TUIContact.Community");
2325
- default:
2326
- return o("TUIContact.Unknown");
2327
- }
2328
- }, J = n.name || n.groupID;
2329
- return /* @__PURE__ */ C("div", { className: P(ee["contact-search-group-info"], i), style: r, children: [
2330
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__header"], children: [
2331
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__main-info"], children: [
2332
- /* @__PURE__ */ a("div", { className: ee["contact-search-group-info__name"], children: J }),
2333
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__id"], children: [
2334
- o("TUIContact.Group ID"),
2335
- ":",
2336
- n.groupID
2337
- ] }),
2338
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__intro"], children: [
2339
- o("TUIContact.Group type"),
2340
- ":",
2341
- D(n.type)
2342
- ] }),
2343
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__intro"], children: [
2344
- " ",
2345
- o("TUIContact.Group introduction"),
2346
- ":",
2347
- n.introduction || o("TUIContact.No introduction")
2348
- ] })
2349
- ] }),
2350
- /* @__PURE__ */ a("div", { className: ee["contact-search-group-info__avatar-wrap"], children: /* @__PURE__ */ a(
2351
- z,
2352
- {
2353
- ...n.avatar && { src: n.avatar },
2354
- alt: J,
2355
- size: "xl"
2356
- }
2357
- ) })
2358
- ] }),
2359
- Z !== "idle" ? /* @__PURE__ */ a(
2360
- "div",
2361
- {
2362
- className: P(
2363
- ee["contact-search-group-info__status"],
2364
- ee[`contact-search-group-info__status--${Z}`]
2365
- ),
2366
- children: Z === "success" ? o("TUIContact.Group application sent, waiting for admin approval") : d
2367
- }
2368
- ) : /* @__PURE__ */ a("div", { className: ee["contact-search-group-info__form"], children: /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__form-item"], children: [
2369
- /* @__PURE__ */ a("label", { className: ee["contact-search-group-info__form-label"], children: o("TUIContact.Application info") }),
2370
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__form-input-wrapper"], children: [
2371
- /* @__PURE__ */ a(
2372
- "textarea",
2373
- {
2374
- className: ee["contact-search-group-info__form-input"],
2375
- name: "joinGroupNote",
2376
- value: s,
2377
- onChange: (T) => l(T.target.value),
2378
- placeholder: o("TUIContact.Please enter application info..."),
2379
- maxLength: 200
2380
- }
2381
- ),
2382
- /* @__PURE__ */ C("div", { className: ee["contact-search-group-info__form-counter"], children: [
2383
- s.length,
2384
- "/200"
2385
- ] })
2386
- ] })
2387
- ] }) }),
2388
- e && Z !== "success" && /* @__PURE__ */ a("div", { className: ee["contact-search-group-info__actions"], children: /* @__PURE__ */ a(
2389
- ne,
2390
- {
2391
- type: "primary",
2392
- size: "big",
2393
- loading: Y,
2394
- onClick: p,
2395
- children: o("TUIContact.Apply to join group")
2396
- }
2397
- ) })
2398
- ] });
2399
- }, ie = {
2400
- "contact-search-user-info": "uikit-contact-search-user-info",
2401
- "contact-search-user-info__header": "uikit-contact-search-user-info__header",
2402
- "contact-search-user-info__main-info": "uikit-contact-search-user-info__main-info",
2403
- "contact-search-user-info__name": "uikit-contact-search-user-info__name",
2404
- "contact-search-user-info__id": "uikit-contact-search-user-info__id",
2405
- "contact-search-user-info__intro": "uikit-contact-search-user-info__intro",
2406
- "contact-search-user-info__avatar-wrap": "uikit-contact-search-user-info__avatar-wrap",
2407
- "contact-search-user-info__form": "uikit-contact-search-user-info__form",
2408
- "contact-search-user-info__form-item": "uikit-contact-search-user-info__form-item",
2409
- "contact-search-user-info__form-label": "uikit-contact-search-user-info__form-label",
2410
- "contact-search-user-info__form-input-wrapper": "uikit-contact-search-user-info__form-input-wrapper",
2411
- "contact-search-user-info__form-input": "uikit-contact-search-user-info__form-input",
2412
- "contact-search-user-info__form-counter": "uikit-contact-search-user-info__form-counter",
2413
- "contact-search-user-info__actions": "uikit-contact-search-user-info__actions",
2414
- "contact-search-user-info__status": "uikit-contact-search-user-info__status",
2415
- "contact-search-user-info__status--success": "uikit-contact-search-user-info__status--success",
2416
- "contact-search-user-info__status--error": "uikit-contact-search-user-info__status--error"
2417
- }, mo = ({
2418
- user: n,
2419
- showActions: e = !0,
2420
- onAddFriend: t,
2421
- className: i,
2422
- style: r
2423
- }) => {
2424
- const { t: o } = w(), { addFriend: c } = he(), [s, l] = R(""), [Y, u] = R(!1), [Z, S] = R("idle"), [d, L] = R(""), p = async () => {
2425
- if (!Y) {
2426
- if (u(!0), S("idle"), L(""), t) {
2427
- S("success"), u(!1), t == null || t(n, s.trim() || o("TUIContact.Apply to add friend"));
2428
- return;
2429
- }
2430
- try {
2431
- await c({
2432
- userID: n.userID,
2433
- addSource: "AddSource_Type_Web",
2434
- wording: s.trim() || o("TUIContact.Apply to add friend")
2435
- }), S("success");
2436
- } catch (J) {
2437
- S("error"), L((J == null ? void 0 : J.message) || o("TUIContact.Add friend failed"));
2438
- } finally {
2439
- u(!1);
2440
- }
2441
- }
2442
- }, D = n.nick || n.userID;
2443
- return /* @__PURE__ */ C("div", { className: P(ie["contact-search-user-info"], i), style: r, children: [
2444
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__header"], children: [
2445
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__main-info"], children: [
2446
- /* @__PURE__ */ a("div", { className: ie["contact-search-user-info__name"], children: D }),
2447
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__id"], children: [
2448
- o("TUIContact.ID"),
2449
- ":",
2450
- n.userID
2451
- ] }),
2452
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__intro"], children: [
2453
- o("TUIContact.Personal signature"),
2454
- ":",
2455
- n.selfSignature || ""
2456
- ] })
2457
- ] }),
2458
- /* @__PURE__ */ a("div", { className: ie["contact-search-user-info__avatar-wrap"], children: /* @__PURE__ */ a(
2459
- z,
2460
- {
2461
- ...n.avatar && { src: n.avatar },
2462
- alt: D,
2463
- size: "xl"
2464
- }
2465
- ) })
2466
- ] }),
2467
- Z !== "idle" ? /* @__PURE__ */ a(
2468
- "div",
2469
- {
2470
- className: P(
2471
- ie["contact-search-user-info__status"],
2472
- ie[`contact-search-user-info__status--${Z}`]
2473
- ),
2474
- children: Z === "success" ? o("TUIContact.Friend request sent, waiting for confirmation") : d
2475
- }
2476
- ) : /* @__PURE__ */ a("div", { className: ie["contact-search-user-info__form"], children: /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__form-item"], children: [
2477
- /* @__PURE__ */ a("label", { className: ie["contact-search-user-info__form-label"], children: o("TUIContact.Application info") }),
2478
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__form-input-wrapper"], children: [
2479
- /* @__PURE__ */ a(
2480
- "textarea",
2481
- {
2482
- className: ie["contact-search-user-info__form-input"],
2483
- name: "addFriendWording",
2484
- value: s,
2485
- onChange: (J) => l(J.target.value),
2486
- placeholder: o("TUIContact.Please enter application info..."),
2487
- maxLength: 200
2488
- }
2489
- ),
2490
- /* @__PURE__ */ C("div", { className: ie["contact-search-user-info__form-counter"], children: [
2491
- s.length,
2492
- "/200"
2493
- ] })
2494
- ] })
2495
- ] }) }),
2496
- e && Z !== "success" && /* @__PURE__ */ a("div", { className: ie["contact-search-user-info__actions"], children: /* @__PURE__ */ a(
2497
- ne,
2498
- {
2499
- type: "primary",
2500
- size: "big",
2501
- loading: Y,
2502
- onClick: p,
2503
- children: o("TUIContact.Apply to add friend")
2504
- }
2505
- ) })
2506
- ] });
2507
- }, Qo = "uikit-contactInfo", _o = {
2508
- contactInfo: Qo
2509
- }, ir = ({
2510
- contactItem: n,
2511
- showActions: e = !0,
2512
- PlaceholderEmpty: t,
2513
- FriendInfoComponent: i = po,
2514
- GroupInfoComponent: r = To,
2515
- BlacklistInfoComponent: o = So,
2516
- FriendApplicationInfoComponent: c = Xo,
2517
- GroupApplicationInfoComponent: s = Jo,
2518
- SearchGroupInfoComponent: l = Do,
2519
- SearchUserInfoComponent: Y = mo,
2520
- onClose: u,
2521
- onSendMessage: Z,
2522
- onDeleteFriend: S,
2523
- onAddToBlacklist: d,
2524
- onUpdateFriendRemark: L,
2525
- onRemoveFromBlacklist: p,
2526
- onEnterGroup: D,
2527
- onLeaveGroup: J,
2528
- onDismissGroup: T,
2529
- onFriendApplicationAction: H,
2530
- onGroupApplicationAction: X,
2531
- onAddFriend: G,
2532
- onJoinGroup: Q,
2533
- className: K,
2534
- style: h
2535
- }) => {
2536
- const { friendList: F, groupList: W, blackList: k } = he(), { activeContact: v, setActiveContact: m } = Ut(), [_, V] = R(void 0), E = (M) => {
2537
- const I = M;
2538
- if ((M == null ? void 0 : M.type) === f.SEARCH_USER) {
2539
- const g = k.find((Ze) => Ze.userID === (M == null ? void 0 : M.data).userID), $ = F.find((Ze) => Ze.userID === (M == null ? void 0 : M.data).userID);
2540
- g && I ? (I.type = f.BLACK, I.data = g) : $ && I && (I.type = f.FRIEND, I.data = $);
2541
- } else if ((M == null ? void 0 : M.type) === f.SEARCH_GROUP) {
2542
- const g = W.find(($) => $.groupID === (M == null ? void 0 : M.data).groupID);
2543
- g && I && (I.type = f.GROUP, I.data = g);
2544
- }
2545
- if ((M == null ? void 0 : M.type) === f.FRIEND) {
2546
- const g = k.find(($) => $.userID === (M == null ? void 0 : M.data).userID);
2547
- g && I && (I.type = f.BLACK, I.data = g);
2548
- }
2549
- V(M);
2550
- };
2551
- if (b(() => {
2552
- E(n || v);
2553
- }, [v, n]), b(() => {
2554
- if (W.length > 0 && v && (v == null ? void 0 : v.type) === f.GROUP) {
2555
- const M = W.find((I) => {
2556
- var g;
2557
- return (I == null ? void 0 : I.groupID) === ((g = v == null ? void 0 : v.data) == null ? void 0 : g.groupID);
2558
- });
2559
- M ? (v == null ? void 0 : v.data) !== M && m({
2560
- type: f.GROUP,
2561
- data: M
2562
- }) : m(void 0);
2563
- }
2564
- }, [W, v]), b(() => {
2565
- if (v) {
2566
- const M = k == null ? void 0 : k.find((g) => {
2567
- var $;
2568
- return (g == null ? void 0 : g.userID) === (($ = v == null ? void 0 : v.data) == null ? void 0 : $.userID);
2569
- }), I = F == null ? void 0 : F.find((g) => {
2570
- var $;
2571
- return (g == null ? void 0 : g.userID) === (($ = v == null ? void 0 : v.data) == null ? void 0 : $.userID);
2572
- });
2573
- M && v.type !== f.BLACK ? m({
2574
- type: f.BLACK,
2575
- data: M
2576
- }) : I && v.type === f.FRIEND && v.data !== I && m({
2577
- type: f.FRIEND,
2578
- data: I
2579
- });
2580
- }
2581
- }, [k, F, v]), !_ && t)
2582
- return t;
2583
- const B = () => {
2584
- m(void 0), u == null || u();
2585
- };
2586
- return /* @__PURE__ */ C("div", { className: P(_o.contactInfo, K), style: h, children: [
2587
- f.FRIEND === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2588
- i,
2589
- {
2590
- friend: _.data,
2591
- showActions: e,
2592
- onClose: B,
2593
- ...Z && { onSendMessage: Z },
2594
- ...S && { onDeleteFriend: S },
2595
- ...d && { onAddToBlacklist: d },
2596
- ...L && { onUpdateFriendRemark: L }
2597
- }
2598
- ),
2599
- f.GROUP === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2600
- r,
2601
- {
2602
- group: _ == null ? void 0 : _.data,
2603
- showActions: e,
2604
- onClose: B,
2605
- ...D && { onEnterGroup: D },
2606
- ...J && { onLeaveGroup: J },
2607
- ...T && { onDismissGroup: T }
2608
- }
2609
- ),
2610
- f.BLACK === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2611
- o,
2612
- {
2613
- profile: _ == null ? void 0 : _.data,
2614
- showActions: e,
2615
- onClose: B,
2616
- ...p && { onRemoveFromBlacklist: p }
2617
- }
2618
- ),
2619
- f.FRIEND_REQUEST === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2620
- c,
2621
- {
2622
- application: _ == null ? void 0 : _.data,
2623
- showActions: e,
2624
- onClose: B,
2625
- ...H && {
2626
- onAccept: (M) => H("accept", M)
2627
- },
2628
- ...H && {
2629
- onRefuse: (M) => H("refuse", M)
2630
- }
2631
- }
2632
- ),
2633
- f.GROUP_REQUEST === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2634
- s,
2635
- {
2636
- application: _ == null ? void 0 : _.data,
2637
- showActions: e,
2638
- onClose: B,
2639
- ...X && {
2640
- onAccept: (M) => X("accept", M)
2641
- },
2642
- ...X && {
2643
- onRefuse: (M) => X("refuse", M)
2644
- }
2645
- }
2646
- ),
2647
- f.SEARCH_USER === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2648
- Y,
2649
- {
2650
- user: _ == null ? void 0 : _.data,
2651
- showActions: e,
2652
- onClose: B,
2653
- ...G && { onAddFriend: G }
2654
- }
2655
- ),
2656
- f.SEARCH_GROUP === (_ == null ? void 0 : _.type) && /* @__PURE__ */ a(
2657
- l,
2658
- {
2659
- group: _ == null ? void 0 : _.data,
2660
- showActions: e,
2661
- onClose: B,
2662
- ...Q && { onJoinGroup: Q }
2663
- }
2664
- )
2665
- ] });
2666
- }, Ye = {
2667
- "attachment-picker": "uikit-attachment-picker",
2668
- "attachment-picker__icon": "uikit-attachment-picker__icon",
2669
- "attachment-picker__popup": "uikit-attachment-picker__popup",
2670
- "attachment-picker__item": "uikit-attachment-picker__item",
2671
- "attachment-picker__item-icon": "uikit-attachment-picker__item-icon",
2672
- "attachment-picker--expanded": "uikit-attachment-picker--expanded"
2673
- }, vo = {
2674
- ACCEPT_TYPE: "*/*"
2675
- }, mt = ({
2676
- label: n,
2677
- onClose: e,
2678
- className: t,
2679
- style: i
2680
- }) => {
2681
- const { sendMessage: r } = ke(), o = U(null), c = (s) => {
2682
- var l;
2683
- const Y = (l = s.target.files) == null ? void 0 : l[0];
2684
- Y && (r([{ type: x.FILE, content: Y }]), s.target.value = "", e == null || e());
2685
- };
2686
- return /* @__PURE__ */ C(Le, { children: [
2687
- n ? /* @__PURE__ */ C(
2688
- Tt,
2689
- {
2690
- className: P(Ye["attachment-picker__item"], t),
2691
- style: i,
2692
- onClick: () => {
2693
- var s;
2694
- return (s = o.current) == null ? void 0 : s.click();
2695
- },
2696
- children: [
2697
- /* @__PURE__ */ a(
2698
- Mt,
2699
- {
2700
- className: Ye["attachment-picker__item-icon"],
2701
- size: "28px"
2702
- }
2703
- ),
2704
- /* @__PURE__ */ a(q, { children: n })
2705
- ]
2706
- }
2707
- ) : /* @__PURE__ */ a(q, { children: /* @__PURE__ */ a(
2708
- Mt,
2709
- {
2710
- className: P(Ye["attachment-picker__item-icon"], t),
2711
- style: i,
2712
- onClick: () => {
2713
- var s;
2714
- return (s = o.current) == null ? void 0 : s.click();
2715
- }
2716
- }
2717
- ) }),
2718
- /* @__PURE__ */ a(
2719
- "input",
2720
- {
2721
- type: "file",
2722
- accept: vo.ACCEPT_TYPE,
2723
- ref: o,
2724
- hidden: !0,
2725
- onChange: c
2726
- }
2727
- )
2728
- ] });
2729
- }, Ho = {
2730
- ACCEPT_TYPE: ".jpg,.jpeg,.gif,.png,.bmp,.webp"
2731
- }, Qt = ({
2732
- label: n,
2733
- onClose: e,
2734
- className: t,
2735
- style: i
2736
- }) => {
2737
- const { sendMessage: r } = ke(), o = U(null), c = (s) => {
2738
- var l;
2739
- const Y = (l = s.target.files) == null ? void 0 : l[0];
2740
- Y && (r([{ type: x.IMAGE, content: Y }]), s.target.value = "", e == null || e());
2741
- };
2742
- return /* @__PURE__ */ C(Le, { children: [
2743
- n ? /* @__PURE__ */ C(
2744
- Tt,
2745
- {
2746
- className: P(Ye["attachment-picker__item"], t),
2747
- style: i,
2748
- onClick: () => {
2749
- var s;
2750
- return (s = o.current) == null ? void 0 : s.click();
2751
- },
2752
- children: [
2753
- /* @__PURE__ */ a(
2754
- ft,
2755
- {
2756
- className: Ye["attachment-picker__item-icon"],
2757
- size: "28px"
2758
- }
2759
- ),
2760
- /* @__PURE__ */ a(q, { children: n })
2761
- ]
2762
- }
2763
- ) : /* @__PURE__ */ a(q, { children: /* @__PURE__ */ a(
2764
- ft,
2765
- {
2766
- className: P(Ye["attachment-picker__item-icon"], t),
2767
- style: i,
2768
- onClick: () => {
2769
- var s;
2770
- return (s = o.current) == null ? void 0 : s.click();
2771
- }
2772
- }
2773
- ) }),
2774
- /* @__PURE__ */ a(
2775
- "input",
2776
- {
2777
- type: "file",
2778
- accept: Ho.ACCEPT_TYPE,
2779
- ref: o,
2780
- hidden: !0,
2781
- onChange: c
2782
- }
2783
- )
2784
- ] });
2785
- }, ho = {
2786
- ACCEPT_TYPE: ".mp4,.mov,.qt"
2787
- }, _t = ({
2788
- label: n,
2789
- onClose: e,
2790
- className: t,
2791
- style: i
2792
- }) => {
2793
- const { sendMessage: r } = ke(), o = U(null), c = (s) => {
2794
- var l;
2795
- const Y = (l = s.target.files) == null ? void 0 : l[0];
2796
- Y && (r([{ type: x.VIDEO, content: Y }]), s.target.value = "", e == null || e());
2797
- };
2798
- return /* @__PURE__ */ C(Le, { children: [
2799
- n ? /* @__PURE__ */ C(
2800
- Tt,
2801
- {
2802
- className: P(Ye["attachment-picker__item"], t),
2803
- style: i,
2804
- onClick: () => {
2805
- var s;
2806
- return (s = o.current) == null ? void 0 : s.click();
2807
- },
2808
- children: [
2809
- /* @__PURE__ */ a(
2810
- Pt,
2811
- {
2812
- className: Ye["attachment-picker__item-icon"],
2813
- size: "28px"
2814
- }
2815
- ),
2816
- /* @__PURE__ */ a(q, { children: n })
2817
- ]
2818
- }
2819
- ) : /* @__PURE__ */ a(q, { children: /* @__PURE__ */ a(
2820
- Pt,
2821
- {
2822
- className: P(Ye["attachment-picker__item-icon"], t),
2823
- style: i,
2824
- onClick: () => {
2825
- var s;
2826
- return (s = o.current) == null ? void 0 : s.click();
2827
- }
2828
- }
2829
- ) }),
2830
- /* @__PURE__ */ a(
2831
- "input",
2832
- {
2833
- type: "file",
2834
- accept: ho.ACCEPT_TYPE,
2835
- ref: o,
2836
- hidden: !0,
2837
- onChange: c
2838
- }
2839
- )
2840
- ] });
2841
- }, Bt = {
2842
- COLLAPSED: 18,
2843
- EXPANDED: 24
2844
- };
2845
- function Xt({ className: n, style: e = {}, attachmentPickerMode: t = "collapsed" }) {
2846
- const [i, r] = R(null), o = t === "collapsed", { t: c } = w(), s = () => [
2847
- { type: "File", Component: mt },
2848
- { type: "Image", Component: Qt },
2849
- { type: "Video", Component: _t }
2850
- ].map(({ type: u, Component: Z }) => ({
2851
- Component: Z,
2852
- props: {
2853
- label: o ? c(`TUIChat.${u}`) : "",
2854
- iconSize: o ? Bt.COLLAPSED : Bt.EXPANDED
2855
- }
2856
- })), l = /* @__PURE__ */ a(
2857
- Wt,
2858
- {
2859
- className: Ye["attachment-picker__icon"],
2860
- size: "28px",
2861
- onClick: (u) => r(u.currentTarget)
2862
- }
2863
- ), Y = /* @__PURE__ */ a(q, { className: o ? Ye["attachment-picker__popup"] : Ye["attachment-picker--expanded"], children: s().map(({ Component: u, props: Z }, S) => /* @__PURE__ */ a(u, { ...Z, onClose: () => r(null) }, S)) });
2864
- return /* @__PURE__ */ a(q, { className: P(Ye["attachment-picker"], n), style: e, children: o ? /* @__PURE__ */ C(Le, { children: [
2865
- l,
2866
- /* @__PURE__ */ a(
2867
- pt,
2868
- {
2869
- open: !!i,
2870
- anchor: i,
2871
- placement: "top-start",
2872
- disablePortal: !0,
2873
- slotProps: { root: { style: { zIndex: 1 } } },
2874
- children: /* @__PURE__ */ a(bt, { onClickAway: () => r(null), children: Y })
2875
- }
2876
- )
2877
- ] }) : Y });
2878
- }
2879
- const Lt = {
2880
- "emoji-picker__icon": "uikit-emoji-picker__icon",
2881
- "emoji-picker__list": "uikit-emoji-picker__list",
2882
- "emoji-picker__list-item": "uikit-emoji-picker__list-item"
2883
- };
2884
- function Ot({
2885
- className: n = "",
2886
- style: e = {}
2887
- }) {
2888
- const { t } = w(), { insertContent: i } = ke(), [r, o] = R(null);
2889
- b(() => {
2890
- Object.values(at).forEach((l) => {
2891
- const Y = new Image();
2892
- Y.src = st + l;
2893
- });
2894
- }, []);
2895
- function c(l) {
2896
- l && i([{
2897
- type: x.EMOJI,
2898
- content: {
2899
- url: st + at[l],
2900
- key: l,
2901
- text: It(l)
2902
- }
2903
- }]);
2904
- }
2905
- function s() {
2906
- o(null);
2907
- }
2908
- return /* @__PURE__ */ C(q, { children: [
2909
- /* @__PURE__ */ a(
2910
- Zn,
2911
- {
2912
- className: P(Lt["emoji-picker__icon"], n),
2913
- style: e,
2914
- size: "28px",
2915
- onClick: (l) => {
2916
- o(l.currentTarget);
2917
- }
2918
- }
2919
- ),
2920
- /* @__PURE__ */ a(pt, { open: !0, anchor: r, placement: "top-start", children: /* @__PURE__ */ a(bt, { onClickAway: s, children: /* @__PURE__ */ a(q, { className: Lt["emoji-picker__list"], children: Object.keys(at).map((l) => /* @__PURE__ */ a(
2921
- q,
2922
- {
2923
- className: Lt["emoji-picker__list-item"],
2924
- onClick: () => {
2925
- c(l), o(null);
2926
- },
2927
- children: /* @__PURE__ */ a(
2928
- "img",
2929
- {
2930
- src: st + at[l],
2931
- alt: t(`Emoji.${l}`)
2932
- }
2933
- )
2934
- },
2935
- l
2936
- )) }) }) })
2937
- ] });
2938
- }
2939
- const Ft = {
2940
- "send-button": "uikit-send-button",
2941
- "send-button--disabled": "uikit-send-button--disabled"
2942
- };
2943
- function Mo({
2944
- className: n = "",
2945
- style: e = {},
2946
- onClick: t,
2947
- disabled: i = !1
2948
- }) {
2949
- function r(o) {
2950
- !i && t && t(o);
2951
- }
2952
- return /* @__PURE__ */ a(
2953
- un,
2954
- {
2955
- className: P(Ft["send-button"], {
2956
- [Ft["send-button--disabled"]]: i
2957
- }, n),
2958
- size: "28px",
2959
- style: e,
2960
- onClick: r
2961
- }
2962
- );
2963
- }
2964
- var fo = Object.defineProperty, Po = (n, e, t) => e in n ? fo(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, Go = (n, e, t) => Po(n, e + "", t);
2965
- let No = class {
2966
- constructor() {
2967
- Go(this, "handlers", {});
2968
- }
2969
- /**
2970
- * Get a specific content handler by type
2971
- */
2972
- getHandler(e) {
2973
- return this.handlers[e];
2974
- }
2975
- /**
2976
- * Get all registered content handlers
2977
- */
2978
- getAllHandlers() {
2979
- return { ...this.handlers };
2980
- }
2981
- /**
2982
- * Register a new content handler
2983
- */
2984
- registerHandler(e, t) {
2985
- this.handlers[e] = t;
2986
- }
2987
- /**
2988
- * Get an array of all extensions from handlers
2989
- */
2990
- getExtensions() {
2991
- return Object.values(this.handlers).filter((e) => !!e.createExtension).map((e) => e.createExtension && e.createExtension());
2992
- }
2993
- /**
2994
- * Convert editor content to application format
2995
- */
2996
- convertContent(e) {
2997
- return e != null && e.content ? e.content.flatMap((t) => {
2998
- const i = t.type || "", r = this.getHandler(i);
2999
- return r != null && r.convertContent ? r.convertContent(t) : t.content ? this.convertContent(t) : [];
3000
- }) : [];
3001
- }
3002
- /**
3003
- * Format content array as plain text
3004
- */
3005
- formatContentAsText(e) {
3006
- return e.map((t) => {
3007
- const i = this.getHandler(t.type);
3008
- return i != null && i.convertToText ? i.convertToText(t.content) : "";
3009
- }).join("");
3010
- }
3011
- };
3012
- var Bo = Object.defineProperty, Fo = (n, e, t) => e in n ? Bo(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t, Oe = (n, e, t) => Fo(n, typeof e != "symbol" ? e + "" : e, t);
3013
- class je {
3014
- /**
3015
- * Create a new EditorCore instance
3016
- */
3017
- constructor(e) {
3018
- Oe(this, "editor", null), Oe(this, "options"), Oe(this, "contentRegistry"), Oe(this, "fileMap", /* @__PURE__ */ new Map()), Oe(this, "fileIconDomMap", /* @__PURE__ */ new Map()), this.options = e, this.contentRegistry = new No(), this.registerDefaultContentHandlers();
3019
- }
3020
- /**
3021
- * Register default content type handlers
3022
- */
3023
- registerDefaultContentHandlers() {
3024
- this.registerContentHandler(x.TEXT, {
3025
- convertContent: (e) => e.text ? [{
3026
- type: x.TEXT,
3027
- content: e.text
3028
- }] : [],
3029
- convertToText: (e) => e
3030
- }), this.registerContentHandler(x.IMAGE, {
3031
- convertContent: (e) => {
3032
- var t, i, r, o, c;
3033
- const s = ((t = e.attrs) == null ? void 0 : t["data-type"]) || e.type;
3034
- return s === x.IMAGE ? [{
3035
- type: s,
3036
- content: (i = e.attrs) == null ? void 0 : i.src
3037
- }] : s === x.EMOJI ? [{
3038
- type: s,
3039
- content: {
3040
- url: (r = e.attrs) == null ? void 0 : r.src,
3041
- key: (o = e.attrs) == null ? void 0 : o.alt,
3042
- text: (c = e.attrs) == null ? void 0 : c.title
3043
- }
3044
- }] : [];
3045
- },
3046
- convertToText: () => "[Image]",
3047
- createExtension: () => je.createImageExtension()
3048
- }), this.registerContentHandler(x.EMOJI, {
3049
- convertContent: (e) => {
3050
- var t, i, r;
3051
- return [{
3052
- type: x.EMOJI,
3053
- content: {
3054
- url: (t = e.attrs) == null ? void 0 : t.src,
3055
- key: (i = e.attrs) == null ? void 0 : i.alt,
3056
- text: (r = e.attrs) == null ? void 0 : r.title
3057
- }
3058
- }];
3059
- },
3060
- convertToText: (e) => e.text || "",
3061
- createExtension: () => je.createEmojiExtension()
3062
- }), this.registerContentHandler("hardBreak", {
3063
- convertContent: () => [{
3064
- type: x.TEXT,
3065
- content: `
3066
- `
3067
- }],
3068
- convertToText: (e) => `
3069
- `
3070
- }), this.registerContentHandler(x.FILE, {
3071
- convertContent: (e) => {
3072
- var t;
3073
- return [{
3074
- type: x.FILE,
3075
- content: (t = e.attrs) == null ? void 0 : t["file-data"]
3076
- }];
3077
- },
3078
- convertToText: () => "[File]",
3079
- createExtension: je.createFileExtension
3080
- });
3081
- }
3082
- /**
3083
- * Register a new content type handler
3084
- */
3085
- registerContentHandler(e, t) {
3086
- this.contentRegistry.registerHandler(e, t);
3087
- }
3088
- /**
3089
- * Handle file drop or paste events
3090
- */
3091
- handleFileDropOrPaste(e, t) {
3092
- var i, r;
3093
- if (e.preventDefault(), e.stopPropagation(), t === "drop" && !this.options.enableDragUpload)
3094
- return;
3095
- const o = t === "paste" && "clipboardData" in e;
3096
- if (t === "drop" && "dataTransfer" in e || o) {
3097
- const c = o ? (i = e.clipboardData) == null ? void 0 : i.files : (r = e.dataTransfer) == null ? void 0 : r.files;
3098
- if (!c || c.length === 0)
3099
- return;
3100
- this.processFiles(c);
3101
- }
3102
- }
3103
- /**
3104
- * Process files from drop or paste event
3105
- */
3106
- processFiles(e) {
3107
- if (!e.length)
3108
- return;
3109
- const t = Array.from(e);
3110
- Promise.all(t.map(async (i) => {
3111
- const r = i.type.startsWith("image/"), o = r ? URL.createObjectURL(i) : await this.drawFileCanvasToImageUrl(i);
3112
- return { file: i, fileSrc: o, isImage: r };
3113
- })).then((i) => {
3114
- var r, o;
3115
- const c = i.map(({ file: s, fileSrc: l, isImage: Y }) => ({
3116
- type: Y ? x.IMAGE : x.FILE,
3117
- content: {
3118
- file: s,
3119
- src: l,
3120
- alt: s.name,
3121
- title: s.name
3122
- }
3123
- }));
3124
- (o = (r = this.options).onPaste) == null || o.call(r, c);
3125
- });
3126
- }
3127
- /**
3128
- * Draw file canvas to create a preview image URL
3129
- */
3130
- async drawFileCanvasToImageUrl(e) {
3131
- const { name: t, type: i } = e, r = document.createElement("canvas"), o = 160, c = 50;
3132
- r.style.width = `${o}px`, r.style.height = `${c}px`;
3133
- const s = window.devicePixelRatio;
3134
- r.width = Math.floor(o * s), r.height = Math.floor(c * s);
3135
- const l = r.getContext("2d");
3136
- if (!l)
3137
- return "";
3138
- l.scale(s, s);
3139
- const { iconSrc: Y, iconType: u } = this.getFileIconInfo(i), Z = await this.getImageForIcon(Y, u);
3140
- l.drawImage(Z, 10, 10, 30, 30);
3141
- const S = this.formatFileNameForDisplay(t);
3142
- return l.fillText(S, 45, 22), r.toDataURL();
3143
- }
3144
- /**
3145
- * Create and cache file icon images
3146
- */
3147
- getImageForIcon(e, t) {
3148
- return new Promise((i, r) => {
3149
- if (this.fileIconDomMap.has(t))
3150
- i(this.fileIconDomMap.get(t));
3151
- else {
3152
- const o = document.createElement("img");
3153
- o.crossOrigin = "anonymous", o.onload = () => {
3154
- this.fileIconDomMap.set(t, o), i(o);
3155
- }, o.onerror = r, o.src = e;
3156
- }
3157
- });
3158
- }
3159
- /**
3160
- * Generate file icon URL based on file type
3161
- */
3162
- getFileIconInfo(e) {
3163
- const t = "https://web.sdk.qcloud.com/component/TUIKit/assets/file-", i = [
3164
- "image",
3165
- "pdf",
3166
- "text",
3167
- "ppt",
3168
- "presentation",
3169
- "sheet",
3170
- "zip",
3171
- "word",
3172
- "video",
3173
- "unknown"
3174
- ];
3175
- let r = "", o = "";
3176
- return i.forEach((c) => {
3177
- e.includes(c) && (r = `${t + c}.svg`, o = c);
3178
- }), {
3179
- iconSrc: r || `${t}unknown.svg`,
3180
- iconType: o || "unknown"
3181
- };
3182
- }
3183
- /**
3184
- * Format filename for display (truncate if too long)
3185
- */
3186
- formatFileNameForDisplay(e) {
3187
- if (!e)
3188
- return e;
3189
- let t = "", i = 0;
3190
- for (let r = 0; r < e.length; r += 1) {
3191
- if (i > 16) {
3192
- t += "...";
3193
- break;
3194
- }
3195
- t += e[r], /[a-z]|[0-9]|[,;.!@#\-+/\\$%^*()<>?:"'{}~]/i.test(e[r]) ? i += 1 : i += 2;
3196
- }
3197
- return t;
3198
- }
3199
- /**
3200
- * Create editor instance
3201
- */
3202
- createEditor() {
3203
- const e = [
3204
- _n,
3205
- this.createKeyboardShortcutsExtension(),
3206
- vn.configure({
3207
- placeholder: this.options.placeholder || "",
3208
- showOnlyWhenEditable: !0
3209
- }),
3210
- ...this.contentRegistry.getExtensions()
3211
- ];
3212
- return this.editor = new Hn({
3213
- element: this.options.element,
3214
- autofocus: this.options.autoFocus || !1,
3215
- extensions: e,
3216
- onUpdate: ({ editor: t }) => {
3217
- var i, r;
3218
- const o = this.contentRegistry.convertContent(t.getJSON());
3219
- (r = (i = this.options).onUpdate) == null || r.call(i, o);
3220
- },
3221
- onPaste: (t, i) => {
3222
- t.preventDefault(), t.stopPropagation(), this.handleFileDropOrPaste(t, "paste");
3223
- },
3224
- onDrop: (t) => {
3225
- t.preventDefault(), t.stopPropagation(), this.handleFileDropOrPaste(t, "drop");
3226
- }
3227
- }), this.editor;
3228
- }
3229
- /**
3230
- * Create emoji extension
3231
- */
3232
- static createEmojiExtension() {
3233
- return lt.extend({
3234
- name: x.EMOJI,
3235
- inline: !0,
3236
- group: "inline",
3237
- draggable: !0,
3238
- addOptions() {
3239
- var e;
3240
- return {
3241
- ...(e = this.parent) == null ? void 0 : e.call(this),
3242
- HTMLAttributes: {
3243
- class: "message-emoji",
3244
- "data-type": x.EMOJI
3245
- }
3246
- };
3247
- },
3248
- addAttributes() {
3249
- var e;
3250
- return {
3251
- ...(e = this.parent) == null ? void 0 : e.call(this),
3252
- "data-type": {
3253
- default: null,
3254
- parseHTML: (t) => t.getAttribute("data-type"),
3255
- renderHTML: (t) => t["data-type"] ? { "data-type": t["data-type"] } : {}
3256
- }
3257
- };
3258
- }
3259
- });
3260
- }
3261
- /**
3262
- * Create file extension
3263
- */
3264
- static createFileExtension() {
3265
- return lt.extend({
3266
- name: x.FILE,
3267
- inline: !0,
3268
- group: "inline",
3269
- draggable: !0,
3270
- addOptions() {
3271
- var e;
3272
- return {
3273
- ...(e = this.parent) == null ? void 0 : e.call(this),
3274
- HTMLAttributes: {
3275
- class: "message-file",
3276
- "data-type": x.FILE
3277
- }
3278
- };
3279
- },
3280
- addAttributes() {
3281
- var e;
3282
- return {
3283
- ...(e = this.parent) == null ? void 0 : e.call(this),
3284
- "data-type": {
3285
- default: x.FILE,
3286
- parseHTML: (t) => t.getAttribute("data-type"),
3287
- renderHTML: (t) => t["data-type"] ? { "data-type": t["data-type"] } : {}
3288
- },
3289
- "file-data": {
3290
- default: null,
3291
- parseHTML: (t) => t.getAttribute("file-data"),
3292
- renderHTML: (t) => t.fileData ? { "file-data": t.fileData } : {}
3293
- }
3294
- };
3295
- }
3296
- });
3297
- }
3298
- /**
3299
- * Create image extension
3300
- */
3301
- static createImageExtension() {
3302
- return lt.extend({
3303
- addOptions() {
3304
- var e;
3305
- return {
3306
- ...(e = this.parent) == null ? void 0 : e.call(this),
3307
- HTMLAttributes: {
3308
- "data-type": x.IMAGE
3309
- }
3310
- };
3311
- },
3312
- addAttributes() {
3313
- var e;
3314
- return {
3315
- ...(e = this.parent) == null ? void 0 : e.call(this),
3316
- class: {
3317
- default: "message-image",
3318
- parseHTML: (t) => `message-${t.getAttribute("data-type") || x.IMAGE}`,
3319
- renderHTML: (t) => {
3320
- const i = t["data-type"] || x.IMAGE;
3321
- return i ? { class: `message-${i}` } : {};
3322
- }
3323
- },
3324
- fileData: {
3325
- default: null,
3326
- parseHTML: (t) => t.getAttribute("file-data"),
3327
- renderHTML: (t) => t.fileData ? { "file-data": t.fileData } : {}
3328
- },
3329
- "data-type": {
3330
- default: null,
3331
- parseHTML: (t) => t.getAttribute("data-type"),
3332
- renderHTML: (t) => t["data-type"] ? { "data-type": t["data-type"] } : {}
3333
- }
3334
- };
3335
- }
3336
- }).configure({
3337
- inline: !0
3338
- });
3339
- }
3340
- /**
3341
- * Create keyboard shortcuts extension for handling Enter, copy, cut, paste and other keyboard operations
3342
- */
3343
- createKeyboardShortcutsExtension() {
3344
- const { onEnter: e } = this.options;
3345
- return hn.create({
3346
- addKeyboardShortcuts() {
3347
- return {
3348
- Enter: () => (e == null || e(), !0),
3349
- "Mod-Enter": ({ editor: t }) => (t.commands.setHardBreak(), !0)
3350
- };
3351
- }
3352
- });
3353
- }
3354
- /**
3355
- * Clear resources and reset state
3356
- */
3357
- destroy() {
3358
- var e;
3359
- (e = this.editor) == null || e.destroy(), this.editor = null, this.fileMap.clear(), this.fileIconDomMap.clear();
3360
- }
3361
- }
3362
- function go(n) {
3363
- return new je(n).createEditor();
3364
- }
3365
- const Ve = {
3366
- "input-wrapper": "uikit-input-wrapper",
3367
- "input-wrapper--disabled": "uikit-input-wrapper--disabled",
3368
- "input-wrapper__tiptap-editor": "uikit-input-wrapper__tiptap-editor",
3369
- "input-wrapper__input-prefix": "uikit-input-wrapper__input-prefix",
3370
- "input-wrapper__input-subfix": "uikit-input-wrapper__input-subfix"
3371
- };
3372
- function Wo({
3373
- autoFocus: n = !0,
3374
- disabled: e = !1,
3375
- placeholder: t = "",
3376
- prefix: i,
3377
- suffix: r,
3378
- className: o = "",
3379
- style: c = {}
3380
- }) {
3381
- const { t: s, language: l } = w(), { activeConversation: Y } = De(), u = U(""), Z = U(null), S = e ? "" : t || s("TUIChat.Enter a message"), {
3382
- editor: d,
3383
- updateRawValue: L,
3384
- sendMessage: p,
3385
- setEditorInstance: D,
3386
- setContent: J,
3387
- insertContent: T
3388
- } = ke();
3389
- return b(() => {
3390
- const H = Z.current;
3391
- if (!H)
3392
- return;
3393
- let X = null;
3394
- return H.dataset.editorCreated || (X = go({
3395
- element: H,
3396
- placeholder: S,
3397
- autoFocus: n,
3398
- enableDragUpload: !0,
3399
- onUpdate: (G) => {
3400
- L(G);
3401
- },
3402
- onEnter: () => {
3403
- p(), J("");
3404
- },
3405
- onPaste: (G) => {
3406
- T(G);
3407
- }
3408
- }), H.dataset.editorCreated = "true", D(X)), () => {
3409
- X && (X.destroy(), H.removeAttribute("data-editor-created"), D(null));
3410
- };
3411
- }, [S]), b(() => {
3412
- (!Y || (Y == null ? void 0 : Y.conversationID) !== u.current) && (J(""), u.current = Y == null ? void 0 : Y.conversationID);
3413
- }, [Y, J]), b(() => {
3414
- d && d.setEditable(!e);
3415
- }, [e, d]), /* @__PURE__ */ C(
3416
- q,
3417
- {
3418
- className: P(Ve["input-wrapper"], {
3419
- [Ve["input-wrapper--disabled"]]: e
3420
- }, o),
3421
- style: c,
3422
- children: [
3423
- /* @__PURE__ */ a("div", { className: Ve["input-wrapper__input-prefix"], children: (i == null ? void 0 : i()) ?? null }),
3424
- /* @__PURE__ */ a(
3425
- "div",
3426
- {
3427
- ref: Z,
3428
- className: Ve["input-wrapper__tiptap-editor"]
3429
- }
3430
- ),
3431
- /* @__PURE__ */ a("div", { className: Ve["input-wrapper__input-subfix"], children: (r == null ? void 0 : r()) ?? null })
3432
- ]
3433
- }
3434
- );
3435
- }
3436
- const $e = {
3437
- "message-input": "uikit-message-input",
3438
- "message-input__wrapper": "uikit-message-input__wrapper",
3439
- "message-input__toolbar": "uikit-message-input__toolbar",
3440
- "message-input__leftInline": "uikit-message-input__leftInline",
3441
- "message-input__rightInline": "uikit-message-input__rightInline"
3442
- }, gt = [
3443
- { key: "EmojiPicker", component: Ot },
3444
- { key: "AttachmentPicker", component: Xt },
3445
- { key: "FilePicker", component: mt },
3446
- { key: "ImagePicker", component: Qt },
3447
- { key: "VideoPicker", component: _t }
3448
- ], Ko = (n, e) => Object.fromEntries(
3449
- e.map((t) => [t, n[t]]).filter(([t, i]) => i !== void 0)
3450
- ), Ro = (n = ["EmojiPicker", "AttachmentPicker"]) => {
3451
- const e = (i) => {
3452
- const { component: r = () => null } = gt.find(({ key: o }) => o === i) ?? {};
3453
- return { Component: r, props: {} };
3454
- }, t = (i) => {
3455
- var r;
3456
- const { key: o, component: c, ...s } = i, l = ((r = gt.find(({ key: Y }) => Y === o)) == null ? void 0 : r.component) ?? (() => null);
3457
- return {
3458
- Component: c ?? l,
3459
- props: Ko(s, ["label", "className", "style", "iconSize"])
3460
- };
3461
- };
3462
- return n.map((i) => typeof i == "string" ? e(i) : t(i)).filter(({ Component: i }) => i !== null);
3463
- };
3464
- function rr({
3465
- autoFocus: n,
3466
- disabled: e,
3467
- hideSendButton: t,
3468
- placeholder: i,
3469
- className: r = "",
3470
- style: o = {},
3471
- attachmentPickerMode: c,
3472
- actions: s,
3473
- slots: l,
3474
- TextEditor: Y,
3475
- EmojiPicker: u,
3476
- AttachmentPicker: Z,
3477
- FilePicker: S,
3478
- ImagePicker: d,
3479
- VideoPicker: L,
3480
- AttachmentDrag: p
3481
- }) {
3482
- var D, J, T, H;
3483
- const {
3484
- inputRawValue: X,
3485
- setContent: G,
3486
- sendMessage: Q
3487
- } = ke(), { groupID: K, isInGroup: h } = Jt(), { messageInputConfig: F } = w(), W = !!(K && !h), k = n ?? (F == null ? void 0 : F.autoFocus) ?? !0, v = e ?? W ?? (F == null ? void 0 : F.disabled) ?? !1, m = t ?? (F == null ? void 0 : F.hideSendButton) ?? !1, _ = i ?? (F == null ? void 0 : F.placeholder) ?? "", V = c ?? (F == null ? void 0 : F.attachmentPickerMode) ?? "collapsed", E = O(() => {
3488
- X && (Q(), G(""));
3489
- }, [X, Q, G]);
3490
- return /* @__PURE__ */ a(Le, { children: /* @__PURE__ */ C(q, { className: P($e["message-input"], r), style: o, children: [
3491
- ((D = l == null ? void 0 : l.headerToolbar) == null ? void 0 : D.call(l)) ?? null,
3492
- /* @__PURE__ */ C("div", { className: $e["message-input__wrapper"], children: [
3493
- /* @__PURE__ */ a(Mn, {}),
3494
- /* @__PURE__ */ a("div", { className: $e["message-input__leftInline"], children: ((J = l == null ? void 0 : l.leftInline) == null ? void 0 : J.call(l)) ?? /* @__PURE__ */ a(q, { className: $e["message-input__toolbar"], children: Ro(s).map(({ Component: B, props: M }, I) => B === Ot && u ? u : B === Xt && Z ? Z : B === mt && S ? S : B === Qt && d ? d : B === _t && L ? L : /* @__PURE__ */ a(B, { ...M, ...B === Xt ? { attachmentPickerMode: V } : {} }, I)) }) }),
3495
- Y || /* @__PURE__ */ a(
3496
- Wo,
3497
- {
3498
- autoFocus: k,
3499
- disabled: v,
3500
- placeholder: _,
3501
- prefix: l == null ? void 0 : l.inputPrefix,
3502
- suffix: l == null ? void 0 : l.inputSuffix
3503
- }
3504
- ),
3505
- /* @__PURE__ */ a("div", { className: $e["message-input__rightInline"], children: ((T = l == null ? void 0 : l.rightInline) == null ? void 0 : T.call(l)) ?? (!m && /* @__PURE__ */ a(Mo, { disabled: v, onClick: E })) })
3506
- ] }),
3507
- ((H = l == null ? void 0 : l.footerToolbar) == null ? void 0 : H.call(l)) ?? null
3508
- ] }) });
3509
- }
3510
- const ko = (n) => {
3511
- const {
3512
- behavior: e = "enter",
3513
- onIntersect: t,
3514
- root: i = null,
3515
- rootMargin: r = "0px",
3516
- threshold: o = 0,
3517
- enabled: c = !0
3518
- } = n, s = U(null);
3519
- return b(() => {
3520
- if (!c || !t)
3521
- return;
3522
- const l = new IntersectionObserver(
3523
- (u) => {
3524
- u.forEach((Z) => {
3525
- Z.isIntersecting ? e === "enter" && t() : e === "leave" && t();
3526
- });
3527
- },
3528
- {
3529
- root: i,
3530
- rootMargin: r,
3531
- threshold: o
3532
- }
3533
- ), Y = s.current;
3534
- return Y && l.observe(Y), () => {
3535
- Y && l.unobserve(Y);
3536
- };
3537
- }, [c, t, i, r, o, e]), s;
3538
- }, Io = (n) => {
3539
- const {
3540
- onClick: e,
3541
- onVisible: t,
3542
- children: i,
3543
- className: r,
3544
- style: o
3545
- } = n, c = () => {
3546
- e == null || e();
3547
- }, s = () => {
3548
- t == null || t();
3549
- }, l = ko({
3550
- root: document.getElementById("message-list-container"),
3551
- onIntersect: s,
3552
- enabled: !!t,
3553
- threshold: 1
3554
- });
3555
- return /* @__PURE__ */ a(
3556
- q,
3557
- {
3558
- ref: l,
3559
- className: P(
3560
- r
3561
- ),
3562
- style: o,
3563
- onClick: c,
3564
- children: i
3565
- }
3566
- );
3567
- };
3568
- function Ao(n) {
3569
- const {
3570
- open: e,
3571
- onClose: t,
3572
- className: i
3573
- } = n, { t: r } = w(), { conversationList: o = [] } = De(), [c, s] = R(!0), l = U(o).current.map((d) => {
3574
- const { type: L, remark: p, groupProfile: D, userProfile: J } = d, T = {
3575
- key: d.conversationID,
3576
- label: "",
3577
- avatarUrl: d.getAvatar() || ""
3578
- };
3579
- if (L === re.TYPES.CONV_C2C) {
3580
- const H = p || (J == null ? void 0 : J.nick) || (J == null ? void 0 : J.userID);
3581
- T.label = H || "";
3582
- }
3583
- if (L === re.TYPES.CONV_GROUP) {
3584
- const H = (D == null ? void 0 : D.name) || (D == null ? void 0 : D.groupID);
3585
- T.label = H || "";
3586
- }
3587
- return T;
3588
- }), {
3589
- forwardMessageIDList: Y,
3590
- forwardMessage: u
3591
- } = wt(), Z = U(null), S = O(() => {
3592
- var d;
3593
- const L = (d = Z.current) == null ? void 0 : d.getSelectedItems();
3594
- L && L.length > 0 && (u({
3595
- messageIDList: Y,
3596
- conversationIDList: L.map((p) => p.key),
3597
- isMergeForward: !1
3598
- }), t());
3599
- }, [Y]);
3600
- return /* @__PURE__ */ a(
3601
- kt,
3602
- {
3603
- visible: e,
3604
- title: r("TUIChat.Forward to"),
3605
- onClose: t,
3606
- className: i || "",
3607
- onCancel: t,
3608
- onConfirm: S,
3609
- confirmDisabled: c,
3610
- style: {
3611
- height: "80vh"
3612
- },
3613
- children: /* @__PURE__ */ a(
3614
- fn,
3615
- {
3616
- ref: Z,
3617
- displayMode: "list",
3618
- dataSource: l,
3619
- maxCount: 10,
3620
- onMaxCountExceed: () => {
3621
- ze.error({
3622
- message: r("TUIChat.Max Count Exceed")
3623
- });
3624
- },
3625
- onSelectedChange: (d) => {
3626
- s(d.length === 0);
3627
- }
3628
- }
3629
- )
3630
- }
3631
- );
3632
- }
3633
- function Eo(n) {
3634
- const { onScroll: e } = n, t = U(null), i = U(), r = U(!1), o = U(), c = U(0), s = U(), l = U(0), Y = U(0), u = U("down"), Z = U(0), S = O(() => {
3635
- t.current && (l.current = t.current.scrollHeight);
3636
- }, []), d = O(() => {
3637
- if (!t.current || !l.current)
3638
- return;
3639
- const Q = t.current.scrollHeight - l.current;
3640
- Q > 0 && (t.current.scrollTop = Q);
3641
- }, []), L = O(() => {
3642
- if (!t.current)
3643
- return 0;
3644
- const { scrollHeight: Q, scrollTop: K, clientHeight: h } = t.current;
3645
- return Math.max(0, Q - (K + h));
3646
- }, []), p = O(({ top: Q, behavior: K = "smooth" }) => {
3647
- if (!t.current)
3648
- return;
3649
- const h = K === "smooth" || K === "auto" || K === "instant" ? K : "smooth";
3650
- t.current.scrollTo({ top: Q, behavior: h });
3651
- }, []), D = O((Q = "smooth") => {
3652
- if (!t.current)
3653
- return;
3654
- const K = Q === "smooth" || Q === "auto" || Q === "instant" ? Q : "smooth";
3655
- p({
3656
- top: t.current.scrollHeight,
3657
- behavior: K
3658
- });
3659
- }, [p]), J = O((Q, K) => {
3660
- const h = document.querySelector(`[data-message-id="${Q}"]`);
3661
- if (!t.current || !h)
3662
- return;
3663
- const {
3664
- behavior: F = "smooth",
3665
- offset: W,
3666
- skipIfVisible: k = !1
3667
- } = K || {}, v = h.getBoundingClientRect(), m = t.current.getBoundingClientRect(), _ = v.top >= m.top && v.bottom <= m.bottom;
3668
- if (!(k && _))
3669
- if (!W && W !== 0)
3670
- h.scrollIntoView({
3671
- behavior: "smooth",
3672
- block: "center"
3673
- });
3674
- else {
3675
- const { scrollTop: V } = t.current, E = v.top - m.top, B = V + E - W;
3676
- p({
3677
- top: B,
3678
- behavior: F
3679
- });
3680
- }
3681
- }, [p]), T = O(() => {
3682
- r.current = !1, Z.current = 0, i.current && (cancelAnimationFrame(i.current), i.current = void 0), s.current && (cancelAnimationFrame(s.current), s.current = void 0);
3683
- }, []), H = O(() => {
3684
- if (!r.current || !o.current || !t.current)
3685
- return;
3686
- if (Date.now() - c.current > 100) {
3687
- T();
3688
- return;
3689
- }
3690
- const Q = L(), K = t.current.scrollTop, h = K - Y.current;
3691
- Z.current += h, Math.abs(Z.current) > 2 && (u.current = Z.current > 0 ? "down" : "up", Z.current = 0), Y.current = K, e == null || e({
3692
- event: o.current,
3693
- distance: Q,
3694
- direction: u.current
3695
- }), i.current = requestAnimationFrame(H);
3696
- }, [L, e, T]), X = O((Q) => {
3697
- o.current = Q, c.current = Date.now(), r.current || (r.current = !0, i.current = requestAnimationFrame(H));
3698
- }, [H]), G = O((Q) => {
3699
- Q.currentTarget === t.current && X(Q);
3700
- }, [X]);
3701
- return b(() => () => {
3702
- T();
3703
- }, [T]), {
3704
- messageListRef: t,
3705
- scrollTo: p,
3706
- scrollToBottom: D,
3707
- scrollToMessage: J,
3708
- getScrollDistanceFromBottom: L,
3709
- onScroll: G,
3710
- saveScrollPosition: S,
3711
- restoreScrollPosition: d
3712
- };
3713
- }
3714
- function yo({
3715
- enabled: n,
3716
- containerSelector: e,
3717
- messageSelector: t = "[data-message-id]",
3718
- getMessageIDFromDom: i,
3719
- shouldSendReadReceipt: r = (s) => s.flow === "in",
3720
- intersectionThreshold: o = 0.5,
3721
- delay: c = 1e3
3722
- }) {
3723
- const s = U(null), l = U(/* @__PURE__ */ new Map()), Y = U(/* @__PURE__ */ new Set()), u = O(
3724
- Pn(() => {
3725
- if (l.current.size === 0)
3726
- return;
3727
- const L = Array.from(l.current.values());
3728
- yn.sendMessageReadReceipt(L).then(() => {
3729
- }).catch(() => {
3730
- }), l.current.clear();
3731
- }, c, { leading: !1, trailing: !0 }),
3732
- [c]
3733
- ), Z = O((L) => {
3734
- if (Y.current.has(L))
3735
- return !1;
3736
- const p = dt.getMessageModel(L);
3737
- return p && r(p) ? (l.current.set(L, p), Y.current.add(L), u(), !0) : !1;
3738
- }, [r, u]);
3739
- b(() => {
3740
- if (n)
3741
- return s.current = new IntersectionObserver(
3742
- (L) => {
3743
- L.forEach((p) => {
3744
- var D;
3745
- if (p.isIntersecting && p.intersectionRatio >= o) {
3746
- const J = i(p.target);
3747
- J && Z(J), (D = s.current) == null || D.unobserve(p.target);
3748
- }
3749
- });
3750
- },
3751
- {
3752
- threshold: o,
3753
- root: document.querySelector(e)
3754
- }
3755
- ), () => {
3756
- var L;
3757
- (L = s.current) == null || L.disconnect(), u.flush();
3758
- };
3759
- }, [n, e, i, o, Z, u]);
3760
- const S = O(() => {
3761
- if (!s.current || !n)
3762
- return;
3763
- const L = document.querySelector(e);
3764
- L && L.querySelectorAll(t).forEach((p) => {
3765
- var D;
3766
- const J = i(p);
3767
- if (!J || Y.current.has(J))
3768
- return;
3769
- const T = dt.getMessageModel(J);
3770
- T && r(T) && ((D = s.current) == null || D.observe(p));
3771
- });
3772
- }, [n, e, t, i, r]), d = O(() => {
3773
- if (!n)
3774
- return;
3775
- const L = document.querySelector(e);
3776
- if (!L)
3777
- return;
3778
- const p = L.getBoundingClientRect();
3779
- L.querySelectorAll(t).forEach((D) => {
3780
- const J = i(D);
3781
- if (!J || Y.current.has(J))
3782
- return;
3783
- const T = D.getBoundingClientRect();
3784
- T.top < p.bottom && T.bottom > p.top && T.height > 0 && Z(J);
3785
- });
3786
- }, [n, e, t, i, r, Z]);
3787
- return {
3788
- /**
3789
- * Observe new messages, should be called when message list updates
3790
- */
3791
- observeMessageList: S,
3792
- /**
3793
- * Manually mark visible messages as read, e.g. after initial load
3794
- */
3795
- manuallyMarkVisibleMessagesAsRead: d,
3796
- /**
3797
- * Reset processed message records, e.g. when switching conversation
3798
- */
3799
- resetProcessedMessages: () => {
3800
- Y.current.clear(), l.current.clear();
3801
- }
3802
- };
3803
- }
3804
- const Uo = {
3805
- "message-time-divider": "uikit-message-time-divider"
3806
- }, bo = (n) => {
3807
- const { prevMessage: e, currentMessage: t } = n, i = e == null ? void 0 : e.time, r = t == null ? void 0 : t.time, { getTimeStampAuto: o } = Gn();
3808
- return et(() => i ? r ? !Nn(i * 1e3, r * 1e3) : !1 : !0, [i, r]) ? /* @__PURE__ */ a(q, { className: P(Uo["message-time-divider"]), children: o(r) }) : null;
3809
- }, Re = {
3810
- "message-list": "uikit-message-list",
3811
- "message-list__container": "uikit-message-list__container",
3812
- "message-list__container--chunk": "uikit-message-list__container--chunk",
3813
- "message-list__load-more": "uikit-message-list__load-more",
3814
- "unread-notification": "uikit-unread-notification"
3815
- }, cr = (n) => {
3816
- const {
3817
- messageAggregationTime: e,
3818
- messageActionList: t,
3819
- filter: i,
3820
- className: r,
3821
- style: o,
3822
- Message: c = Bn,
3823
- MessageTimeDivider: s = bo,
3824
- LocalNoticeMessage: l = null,
3825
- alignment: Y,
3826
- enableReadReceipt: u
3827
- } = n, { t: Z, messageListConfig: S } = w(), d = Y ?? (S == null ? void 0 : S.alignment) ?? "two-sided", L = u ?? (S == null ? void 0 : S.enableReadReceipt) ?? !1, p = e ?? (S == null ? void 0 : S.messageAggregationTime) ?? 5 * 60, D = Fn(S == null ? void 0 : S.messageActionList), J = t ?? D, T = p > 0, { groupType: H } = Jt(), { activeConversation: X } = De(), G = O((j) => !X || j.needReadReceipt === !1 ? !1 : (X == null ? void 0 : X.type) === "GROUP" ? j.flow === "in" : (X == null ? void 0 : X.type) === "C2C" ? j.flow === "in" && j.readReceiptInfo.isPeerRead === !1 : !1, [X]), Q = O((j) => j.getAttribute("data-message-id") || "", []), {
3828
- activeConversationID: K,
3829
- messageList: h,
3830
- loadMoreMessage: F,
3831
- hasMoreOlderMessage: W,
3832
- enableReadReceipt: k,
3833
- setEnableReadReceipt: v,
3834
- isDisableScroll: m
3835
- } = gn(), {
3836
- resetProcessedMessages: _,
3837
- observeMessageList: V
3838
- } = yo({
3839
- enabled: k ?? !1,
3840
- containerSelector: "#message-list-container",
3841
- messageSelector: "[data-message-id]",
3842
- getMessageIDFromDom: Q,
3843
- shouldSendReadReceipt: G
3844
- }), { setScrollableDomRef: E, setScrollMethods: B } = Wn(), { isForwardMessageSelectionDone: M, resetMessageActionState: I } = wt(), [g, $] = R(0), [Ze, Me] = R(!1), Ke = U(""), Ie = U(0), Ne = U(!1), N = U(!1), A = U(!1);
3845
- b(() => {
3846
- L && H !== We.COMMUNITY && H !== We.AVCHATROOM ? v(!0) : v(!1);
3847
- }, [L, v, H]), b(() => {
3848
- N.current = m;
3849
- }, [m]);
3850
- const y = () => {
3851
- $(0), Me(!1), Ke.current = "", Ie.current = 0, Ne.current = !1, N.current = !1, A.current = !1, _();
3852
- }, {
3853
- messageListRef: le,
3854
- onScroll: tt,
3855
- scrollTo: vt,
3856
- scrollToBottom: Ae,
3857
- scrollToMessage: Ht,
3858
- getScrollDistanceFromBottom: ct,
3859
- saveScrollPosition: Vt,
3860
- restoreScrollPosition: $t
3861
- } = Eo({
3862
- onScroll: O((j) => {
3863
- const {
3864
- distance: Se,
3865
- direction: fe
3866
- } = j;
3867
- fe === "up" && Se > 20 ? (N.current = !0, Me(!0)) : fe === "down" && Se <= 20 && (N.current = !1, Me(!1), $(0));
3868
- }, [])
3869
- });
3870
- b(() => {
3871
- E(le), B({
3872
- scrollTo: vt,
3873
- scrollToBottom: Ae,
3874
- scrollToMessage: Ht,
3875
- getScrollDistanceFromBottom: ct
3876
- });
3877
- }, [vt, Ae, Ht, ct]), Rn(() => {
3878
- K !== Ke.current && y(), h !== void 0 && (!Ne.current && K && h.length > 0 && (Ie.current = h.length, Ke.current = K || ""), !Ne.current && le.current && h.length > 0 && (Ae("instant"), V(), Ne.current = !0));
3879
- }, [K, h == null ? void 0 : h.length]);
3880
- const ht = O(() => {
3881
- !A.current && W && le.current && (A.current = !0, Vt(), F().then(() => {
3882
- $t();
3883
- }).finally(() => {
3884
- A.current = !1;
3885
- }));
3886
- }, [W, F, le, ct]), qt = et(() => {
3887
- if (h === void 0)
3888
- return [];
3889
- const j = i ? h.filter(i) : h;
3890
- if (!T) {
3891
- const ue = [];
3892
- return j.forEach((de) => {
3893
- ue.push({
3894
- timestamp: de.time,
3895
- messages: [de],
3896
- key: `chunk-${de.ID}`
3897
- });
3898
- }), ue;
3899
- }
3900
- const Se = [], fe = p;
3901
- return j.forEach((ue, de, nt) => {
3902
- const Ee = ue.time, Je = Se[Se.length - 1];
3903
- !Je || Ee - Je.timestamp > fe || Je.messages[0].from !== ue.from || ue.isRevoked || de > 0 && nt[de - 1].isRevoked ? Se.push({
3904
- timestamp: Ee,
3905
- messages: [ue],
3906
- key: `chunk-${ue.ID}`
3907
- }) : Je.messages.push(ue);
3908
- }), Se;
3909
- }, [h, T, p]);
3910
- return b(() => {
3911
- if (h !== void 0 && (X == null ? void 0 : X.conversationID) === Ke.current) {
3912
- const j = h.length - Ie.current;
3913
- j > 0 && !A.current && Ne.current && (V(), h.slice(h.length - j, h.length).forEach((Se) => {
3914
- const fe = h[h.length - 1];
3915
- (!N.current || fe.flow === "out") && Ae("smooth"), N.current && Se.flow;
3916
- }));
3917
- }
3918
- }, [h == null ? void 0 : h.length]), h === void 0 ? /* @__PURE__ */ a(q, { className: P(Re["message-list"], r), style: o }) : /* @__PURE__ */ C(q, { className: P(Re["message-list"], r), style: o, children: [
3919
- /* @__PURE__ */ C(
3920
- q,
3921
- {
3922
- id: "message-list-container",
3923
- className: Re["message-list__container"],
3924
- ref: le,
3925
- onScroll: tt,
3926
- children: [
3927
- /* @__PURE__ */ a(Io, { onVisible: ht, children: /* @__PURE__ */ a(
3928
- "button",
3929
- {
3930
- className: Re["message-list__load-more"],
3931
- disabled: !W,
3932
- onClick: ht,
3933
- children: Z(W ? "TUIChat.Load More" : "TUIChat.No More")
3934
- }
3935
- ) }),
3936
- qt.map((j, Se, fe) => {
3937
- var ue;
3938
- return /* @__PURE__ */ C(kn, { children: [
3939
- /* @__PURE__ */ a(
3940
- s,
3941
- {
3942
- prevMessage: (ue = fe[Se - 1]) == null ? void 0 : ue.messages[0],
3943
- currentMessage: j.messages[0]
3944
- }
3945
- ),
3946
- /* @__PURE__ */ a(q, { className: Re["message-list__container--chunk"], children: j.messages.map((de, nt, Ee) => {
3947
- const Je = T && nt !== Ee.length - 1;
3948
- return /* @__PURE__ */ a(
3949
- c,
3950
- {
3951
- isLastInChunk: nt === Ee.length - 1,
3952
- message: de,
3953
- messageActionList: J,
3954
- alignment: d,
3955
- isHiddenMessageAvatar: d === "two-sided" ? Je || de.flow === "out" : Je,
3956
- isHiddenMessageMeta: Je,
3957
- isAggregated: d === "two-sided" ? Je && de.flow === "in" : Je
3958
- },
3959
- de.ID
3960
- );
3961
- }) }, j.key)
3962
- ] }, j.key);
3963
- })
3964
- ]
3965
- }
3966
- ),
3967
- !!l && /* @__PURE__ */ a(l, {}),
3968
- Ze && /* @__PURE__ */ a(
3969
- Kn,
3970
- {
3971
- className: Re["unread-notification"],
3972
- unreadCount: g,
3973
- onClick: Ae
3974
- }
3975
- ),
3976
- /* @__PURE__ */ a(
3977
- Ao,
3978
- {
3979
- open: M,
3980
- onClose: () => I()
3981
- }
3982
- )
3983
- ] });
3984
- };
3985
- function sr(n) {
3986
- const { onSuccess: e } = n, [t, i] = R(null);
3987
- return b(() => {
3988
- t || Un.login(n).then(() => {
3989
- i(re), e == null || e();
3990
- }).catch(() => {
3991
- });
3992
- }, []), t;
3993
- }
3994
- new Cn();
3
+ import { ChatHeader as c } from "./components/ChatHeader/ChatHeader.js";
4
+ import { AudioCallPicker as m } from "./components/ChatHeader/AudioCallPicker/AudioCallPicker.js";
5
+ import { VideoCallPicker as x } from "./components/ChatHeader/VideoCallPicker/VideoCallPicker.js";
6
+ import { Chat as S } from "./components/Chat/Chat.js";
7
+ import { Checkbox as v } from "./components/Checkbox/index.js";
8
+ import { DivWithEdit as h } from "./components/DivWithEdit/DivWithEdit.js";
9
+ import { EmptyStateIndicator as P } from "./components/EmptyStateIndicator/EmptyStateIndicator.js";
10
+ import { Icon as L, changeTypeToIconClassName as A } from "./components/Icon/Icon.js";
11
+ import { IconTypes as O } from "./components/Icon/type.js";
12
+ import { Model as l } from "./components/Model/index.js";
13
+ import { Plugins as D } from "./components/Plugins/index.js";
14
+ import { Popup as M } from "./components/Popup/index.js";
15
+ import { Profile as k } from "./components/Profile/Profile.js";
16
+ import { TUIProfileDefault as F } from "./components/Profile/ProfileDefault.js";
17
+ import { Switch as H } from "./components/Switch/Switch.js";
18
+ import { TUIContactContext as G, TUIContactContextProvider as W, useTUIContactContext as j } from "./context/ContactContext.js";
19
+ import { ChatProvider as R, useChatContext as q } from "./context/ChatContext.js";
20
+ import { useChatHeader as J } from "./hooks/useChatHeader.js";
21
+ import { useUIManagerState as X } from "./states/UIManagerState.js";
22
+ import { A as Z, c as _, d as $, G as ee, e as te, f as ae, g as se, h as oe, i as re, j as ne, k as ie, l as pe, m as ce, C as Ce, E as me, H as ue, L as xe, M as fe, n as Se, o as Ie, p as ve, I as ge, P as he, S as de, q as Pe, r as Ue, t as Le, v as Ae, J as Ne, U as Oe, K as Te, V as le, N as ye, s as De, w as Ee, x as Me, a as Ve, y as ke, b as we, z as Fe, B as Ke, u as He, D as be, F as Ge } from "./index-UBuvRM8r-DTXQB6zV.js";
23
+ import './styles/index.css';var t = /* @__PURE__ */ ((e) => (e[e.UNKNOWN = 0] = "UNKNOWN", e[e.AUDIO = 1] = "AUDIO", e[e.VIDEO = 2] = "VIDEO", e))(t || {}), a = /* @__PURE__ */ ((e) => (e.ON = "ON", e.OFF = "OFF", e))(a || {});
3995
24
  export {
3996
- Xt as AttachmentPicker,
3997
- z as Avatar,
3998
- nc as C2CChatSetting,
3999
- pr as Chat,
4000
- Lr as ChatHeader,
4001
- dr as ChatHeaderActions,
4002
- xr as ChatProvider,
4003
- ac as ChatSetting,
4004
- Tr as Checkbox,
4005
- ir as ContactInfo,
4006
- f as ContactItemType,
4007
- ar as ContactList,
4008
- wi as ContactListItem,
4009
- to as ContactSearch,
4010
- Dt as ConversationActions,
4011
- Fa as ConversationCreate,
4012
- zn as ConversationCreateButton,
4013
- Ya as ConversationCreateGroupDetail,
4014
- Sa as ConversationCreateSelectView,
4015
- Ma as ConversationCreateUserSelectList,
4016
- Sn as ConversationGroupTypeInfo,
4017
- nr as ConversationList,
4018
- Aa as ConversationListContent,
4019
- ba as ConversationListHeader,
4020
- li as ConversationPreview,
4021
- xt as ConversationPreviewUI,
4022
- Ci as ConversationSearch,
4023
- ic as DateRangePicker,
4024
- mr as DivWithEdit,
4025
- Ot as EmojiPicker,
4026
- oc as EmptyResult,
4027
- _r as EmptyStateIndicator,
4028
- mt as FilePicker,
4029
- di as GroupApplicationType,
4030
- rc as GroupChatSetting,
4031
- cc as GroupInviteType,
4032
- Qn as GroupMemberRole,
4033
- Gt as GroupPermission,
4034
- We as GroupType,
4035
- Hr as Icon,
4036
- fr as IconTypes,
4037
- Qt as ImagePicker,
4038
- St as JSONStringToParse,
4039
- Io as LoadMore,
4040
- sc as Loading,
4041
- lc as LoginStatus,
4042
- Bn as Message,
4043
- Yc as MessageAdvanced,
4044
- x as MessageContentType,
4045
- Ao as MessageForward,
4046
- rr as MessageInput,
4047
- cr as MessageList,
4048
- bo as MessageTimeDivider,
4049
- Gr as Model,
4050
- pe as PageStateTypes,
4051
- Zt as PlaceHolder,
4052
- Te as PlaceHolderTypes,
4053
- Br as Plugins,
4054
- gr as Popup,
4055
- Kr as Profile,
4056
- yt as Search,
4057
- Zc as SearchAdvanced,
4058
- Et as SearchBar,
4059
- uc as SearchConversation,
4060
- Cc as SearchGroup,
4061
- Lc as SearchMessage,
4062
- Sc as SearchResultItem,
4063
- dc as SearchResults,
4064
- Xc as SearchTab,
4065
- bc as SearchType,
4066
- pc as SearchUser,
4067
- Jc as SettingItem,
4068
- Tc as Slider,
4069
- Ar as Switch,
4070
- yr as TUIContactContext,
4071
- Ur as TUIContactContextProvider,
4072
- kr as TUIProfileDefault,
4073
- Wo as TextEditor,
4074
- Zr as UIKitProvider,
4075
- Kn as UnreadNotification,
4076
- Dc as UserAdvanced,
4077
- fn as UserPicker,
4078
- ve as VariantType,
4079
- _t as VideoPicker,
4080
- q as View,
4081
- mc as ageToBirthday,
4082
- Qc as birthdayToAge,
4083
- _c as blobUrlToFile,
4084
- hr as changeTypeToIconClassName,
4085
- vc as convertInputContentToEditorNode,
4086
- Hc as copyTextToClipboard,
4087
- hc as debounce,
4088
- Mc as defaultTypeLabels,
4089
- fc as enableSampleTaskStatus,
4090
- Pc as forwardMessage,
4091
- Gc as getImageDimensionsFromBlobImage,
4092
- mn as getTimeStamp,
4093
- Nc as highlightText,
4094
- Bc as isCallMessage,
4095
- He as isH5,
4096
- Fc as isJSON,
4097
- gc as isMobile,
4098
- Be as isPC,
4099
- Wc as loginState,
4100
- Kc as parseTextWithEmoji,
4101
- Rc as safeJSONParse,
4102
- kc as setPlatform,
4103
- Ic as startCall,
4104
- $r as tagDoNotDelete,
4105
- tr as throttle,
4106
- It as transformTextWithEmojiKeyToName,
4107
- Ac as transformTextWithEmojiNameToKey,
4108
- dn as typeInfoList,
4109
- Ec as useC2CSettingState,
4110
- Or as useChatContext,
4111
- ec as useChatHeaderState,
4112
- he as useContactListState,
4113
- Xa as useConversationCreate,
4114
- De as useConversationListState,
4115
- sr as useCreateClient,
4116
- Jt as useGroupSettingState,
4117
- ko as useIntersectionObserver,
4118
- yc as useLoginState,
4119
- Dn as useLongPress,
4120
- wt as useMessageActionState,
4121
- Fn as useMessageActions,
4122
- ke as useMessageInputState,
4123
- gn as useMessageListState,
4124
- wa as useMouseHover,
4125
- Wn as useScrollActionState,
4126
- At as useSearchState,
4127
- br as useTUIContactContext,
4128
- Gn as useTime,
4129
- ur as useUIKit,
4130
- jr as useUIManagerState,
4131
- Ut as useUIOpenControlState
25
+ m as AudioCallPicker,
26
+ Z as Avatar,
27
+ t as CallMediaType,
28
+ S as Chat,
29
+ c as ChatHeader,
30
+ R as ChatProvider,
31
+ _ as ChatSetting,
32
+ v as Checkbox,
33
+ $ as ContactInfo,
34
+ ee as ContactItemType,
35
+ te as ContactList,
36
+ ae as ContactListItem,
37
+ se as ConversationActions,
38
+ oe as ConversationList,
39
+ re as ConversationListContent,
40
+ ne as ConversationListHeader,
41
+ ie as ConversationPreview,
42
+ pe as ConversationPreviewUI,
43
+ ce as ConversationSearch,
44
+ Ce as ConversationType,
45
+ h as DivWithEdit,
46
+ me as EmojiPicker,
47
+ P as EmptyStateIndicator,
48
+ ue as GroupApplicationType,
49
+ L as Icon,
50
+ O as IconTypes,
51
+ xe as LoginStatus,
52
+ fe as Message,
53
+ Se as MessageAdvanced,
54
+ Ie as MessageInput,
55
+ ve as MessageList,
56
+ ge as MessageType,
57
+ l as Model,
58
+ a as MonitorDeviceStatus,
59
+ he as PageStateTypes,
60
+ D as Plugins,
61
+ M as Popup,
62
+ k as Profile,
63
+ de as Search,
64
+ Pe as SearchAdvanced,
65
+ Ue as SearchBar,
66
+ Le as SearchResultItem,
67
+ Ae as SearchResults,
68
+ Ne as SearchType,
69
+ H as Switch,
70
+ G as TUIContactContext,
71
+ W as TUIContactContextProvider,
72
+ F as TUIProfileDefault,
73
+ n as UIKitProvider,
74
+ Oe as UserAdvanced,
75
+ Te as VariantType,
76
+ x as VideoCallPicker,
77
+ le as View,
78
+ A as changeTypeToIconClassName,
79
+ ye as defaultTypeLabels,
80
+ De as startCall,
81
+ Ee as useC2CSettingState,
82
+ q as useChatContext,
83
+ J as useChatHeader,
84
+ Me as useContactListState,
85
+ Ve as useConversationListState,
86
+ ke as useGroupSettingState,
87
+ we as useLoginState,
88
+ Fe as useMessageActionState,
89
+ Ke as useMessageActions,
90
+ He as useMessageInputState,
91
+ be as useMessageListState,
92
+ Ge as useSearchState,
93
+ j as useTUIContactContext,
94
+ i as useUIKit,
95
+ X as useUIManagerState
4132
96
  };