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