@tencentcloud/chat-uikit-react 2.3.1 → 3.0.1

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