@sendbird/uikit-react 3.10.0 → 3.10.2-alpha.0

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 (1042) hide show
  1. package/App.js +366 -190
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +17 -1
  4. package/Channel/components/ChannelHeader.js +35 -61
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +78 -111
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +35 -81
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +8 -12
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +63 -317
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageFeedbackModal.js +15 -14
  15. package/Channel/components/MessageFeedbackModal.js.map +1 -1
  16. package/Channel/components/MessageInput.js +65 -191
  17. package/Channel/components/MessageInput.js.map +1 -1
  18. package/Channel/components/MessageList.js +61 -58
  19. package/Channel/components/MessageList.js.map +1 -1
  20. package/Channel/components/RemoveMessageModal.js +31 -44
  21. package/Channel/components/RemoveMessageModal.js.map +1 -1
  22. package/Channel/components/SuggestedMentionList.js +37 -191
  23. package/Channel/components/SuggestedMentionList.js.map +1 -1
  24. package/Channel/components/TypingIndicator.js +12 -80
  25. package/Channel/components/TypingIndicator.js.map +1 -1
  26. package/Channel/components/UnreadCount.js +11 -29
  27. package/Channel/components/UnreadCount.js.map +1 -1
  28. package/Channel/context.js +1502 -21
  29. package/Channel/context.js.map +1 -1
  30. package/Channel/hooks/useHandleUploadFiles.js +14 -13
  31. package/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  32. package/Channel/hooks/useInitialMessagesFetch.js +7 -8
  33. package/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  34. package/Channel/utils/compareMessagesForGrouping.js +40 -8
  35. package/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  36. package/Channel/utils/getMessagePartsInfo.js +10 -9
  37. package/Channel/utils/getMessagePartsInfo.js.map +1 -1
  38. package/Channel.js +78 -74
  39. package/Channel.js.map +1 -1
  40. package/ChannelList/components/AddChannel.js +28 -47
  41. package/ChannelList/components/AddChannel.js.map +1 -1
  42. package/ChannelList/components/ChannelListHeader.js +13 -35
  43. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  44. package/ChannelList/components/ChannelListUI.js +61 -135
  45. package/ChannelList/components/ChannelListUI.js.map +1 -1
  46. package/ChannelList/components/ChannelPreview.js +42 -126
  47. package/ChannelList/components/ChannelPreview.js.map +1 -1
  48. package/ChannelList/components/ChannelPreviewAction.js +19 -66
  49. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  50. package/ChannelList/context.js +10 -9
  51. package/ChannelList/context.js.map +1 -1
  52. package/ChannelList.js +58 -59
  53. package/ChannelList.js.map +1 -1
  54. package/ChannelSettings/components/ChannelProfile.js +14 -14
  55. package/ChannelSettings/components/ChannelSettingsUI.js +26 -20
  56. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  57. package/ChannelSettings/components/EditDetailsModal.js +14 -14
  58. package/ChannelSettings/components/LeaveChannel.js +11 -11
  59. package/ChannelSettings/components/ModerationPanel.js +41 -23
  60. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  61. package/ChannelSettings/components/UserListItem.js +14 -13
  62. package/ChannelSettings/components/UserListItem.js.map +1 -1
  63. package/ChannelSettings/components/UserPanel.js +23 -16
  64. package/ChannelSettings/components/UserPanel.js.map +1 -1
  65. package/ChannelSettings/context.js +3 -3
  66. package/ChannelSettings.js +26 -20
  67. package/ChannelSettings.js.map +1 -1
  68. package/CreateChannel/components/CreateChannelUI.js +17 -16
  69. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  70. package/CreateChannel/components/InviteUsers.js +24 -25
  71. package/CreateChannel/components/InviteUsers.js.map +1 -1
  72. package/CreateChannel/components/SelectChannelType.js +10 -10
  73. package/CreateChannel/context.js +4 -4
  74. package/CreateChannel.js +19 -19
  75. package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  77. package/CreateOpenChannel/context.js +1 -1
  78. package/CreateOpenChannel.js +11 -12
  79. package/CreateOpenChannel.js.map +1 -1
  80. package/EditUserProfile/components/EditUserProfileUI.js +12 -13
  81. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  82. package/EditUserProfile.js +12 -13
  83. package/EditUserProfile.js.map +1 -1
  84. package/Message/hooks/useDirtyGetMentions.js +2 -2
  85. package/MessageSearch/components/MessageSearchUI.js +15 -15
  86. package/MessageSearch/context.js +14 -3
  87. package/MessageSearch/context.js.map +1 -1
  88. package/MessageSearch.js +15 -15
  89. package/OpenChannel/components/FrozenChannelNotification.js +5 -5
  90. package/OpenChannel/components/OpenChannelHeader.js +18 -19
  91. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  92. package/OpenChannel/components/OpenChannelInput.js +26 -26
  93. package/OpenChannel/components/OpenChannelMessage.js +36 -35
  94. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  95. package/OpenChannel/components/OpenChannelMessageList.js +41 -38
  96. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  97. package/OpenChannel/components/OpenChannelUI.js +41 -38
  98. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  99. package/OpenChannel/context.js +17 -18
  100. package/OpenChannel/context.js.map +1 -1
  101. package/OpenChannel.js +41 -38
  102. package/OpenChannel.js.map +1 -1
  103. package/OpenChannelList/components/OpenChannelListUI.js +14 -15
  104. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  105. package/OpenChannelList/components/OpenChannelPreview.js +6 -7
  106. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  107. package/OpenChannelList/context.js +3 -3
  108. package/OpenChannelList.js +14 -15
  109. package/OpenChannelList.js.map +1 -1
  110. package/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  111. package/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  112. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  113. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  114. package/OpenChannelSettings/components/OperatorUI.js +20 -19
  115. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  116. package/OpenChannelSettings/components/ParticipantUI.js +18 -17
  117. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  118. package/OpenChannelSettings/context.js +3 -3
  119. package/OpenChannelSettings.js +20 -19
  120. package/OpenChannelSettings.js.map +1 -1
  121. package/SendbirdProvider.js +82 -223
  122. package/SendbirdProvider.js.map +1 -1
  123. package/Thread/components/ParentMessageInfo.js +44 -45
  124. package/Thread/components/ParentMessageInfo.js.map +1 -1
  125. package/Thread/components/ParentMessageInfoItem.js +36 -34
  126. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  127. package/Thread/components/ThreadHeader.js +7 -7
  128. package/Thread/components/ThreadList.js +49 -49
  129. package/Thread/components/ThreadListItem.js +49 -50
  130. package/Thread/components/ThreadListItem.js.map +1 -1
  131. package/Thread/components/ThreadMessageInput.js +50 -43
  132. package/Thread/components/ThreadMessageInput.js.map +1 -1
  133. package/Thread/components/ThreadUI.js +60 -52
  134. package/Thread/components/ThreadUI.js.map +1 -1
  135. package/Thread/context.js +151 -160
  136. package/Thread/context.js.map +1 -1
  137. package/Thread.js +60 -52
  138. package/Thread.js.map +1 -1
  139. package/VoicePlayer/context.js +3 -3
  140. package/VoicePlayer/useVoicePlayer.js +10 -10
  141. package/VoiceRecorder/context.js +12 -11
  142. package/VoiceRecorder/context.js.map +1 -1
  143. package/VoiceRecorder/useVoiceRecorder.js +9 -9
  144. package/chunks/{bundle-Kt1S-50v.js → bundle-0J_EdUWI.js} +2 -2
  145. package/chunks/bundle-0J_EdUWI.js.map +1 -0
  146. package/chunks/{bundle-tLQ87Jwz.js → bundle-0jbuC1o3.js} +3 -3
  147. package/chunks/bundle-0jbuC1o3.js.map +1 -0
  148. package/chunks/{bundle-oW5LS1AU.js → bundle-1zn-WT_r.js} +12 -30
  149. package/{cjs/chunks/bundle-YTD5gh4h.js.map → chunks/bundle-1zn-WT_r.js.map} +1 -1
  150. package/chunks/bundle-3GWXgoxj.js +44 -0
  151. package/chunks/bundle-3GWXgoxj.js.map +1 -0
  152. package/chunks/{bundle-iifpyLxR.js → bundle-3i31KNu7.js} +10 -10
  153. package/{cjs/chunks/bundle-FJe6Dl-f.js.map → chunks/bundle-3i31KNu7.js.map} +1 -1
  154. package/chunks/{bundle-X2Sm7pn5.js → bundle-4GPpeoNf.js} +1 -1
  155. package/chunks/bundle-4GPpeoNf.js.map +1 -0
  156. package/chunks/{bundle-M-Qfv2tU.js → bundle-4Ib7FkR6.js} +1 -1
  157. package/chunks/bundle-4Ib7FkR6.js.map +1 -0
  158. package/chunks/{bundle-tZrqMc_G.js → bundle-62ej9afV.js} +5 -5
  159. package/chunks/{bundle-tZrqMc_G.js.map → bundle-62ej9afV.js.map} +1 -1
  160. package/chunks/{bundle-GGqhdR8L.js → bundle-79-Y-lX2.js} +3 -3
  161. package/chunks/{bundle-GGqhdR8L.js.map → bundle-79-Y-lX2.js.map} +1 -1
  162. package/chunks/{bundle-EeL8s1uR.js → bundle-8JX3bIpj.js} +3 -3
  163. package/chunks/{bundle-EeL8s1uR.js.map → bundle-8JX3bIpj.js.map} +1 -1
  164. package/chunks/{bundle-KnWMPlLu.js → bundle-AXNVQw91.js} +9 -8
  165. package/chunks/bundle-AXNVQw91.js.map +1 -0
  166. package/chunks/{bundle-Dv_OpODB.js → bundle-BA7tv0JB.js} +14 -2
  167. package/chunks/{bundle-Dv_OpODB.js.map → bundle-BA7tv0JB.js.map} +1 -1
  168. package/chunks/{bundle-AilPIINY.js → bundle-BBjosDA0.js} +3 -3
  169. package/chunks/bundle-BBjosDA0.js.map +1 -0
  170. package/chunks/bundle-BVtLlpwZ.js +88 -0
  171. package/chunks/bundle-BVtLlpwZ.js.map +1 -0
  172. package/chunks/bundle-D1V3P366.js +23 -0
  173. package/chunks/bundle-D1V3P366.js.map +1 -0
  174. package/chunks/bundle-DSoowPBh.js +388 -0
  175. package/chunks/bundle-DSoowPBh.js.map +1 -0
  176. package/chunks/{bundle-8tjyQiRi.js → bundle-F6-2aFsp.js} +1 -1
  177. package/chunks/bundle-F6-2aFsp.js.map +1 -0
  178. package/chunks/bundle-G7HnuZsw.js +13 -0
  179. package/chunks/bundle-G7HnuZsw.js.map +1 -0
  180. package/chunks/{bundle-84jQZIDS.js → bundle-GGE6HRof.js} +1 -1
  181. package/chunks/bundle-GGE6HRof.js.map +1 -0
  182. package/chunks/bundle-GJ-4hPvC.js +57 -0
  183. package/chunks/bundle-GJ-4hPvC.js.map +1 -0
  184. package/chunks/bundle-GnFOVDL2.js +230 -0
  185. package/chunks/{bundle-P_LfQm7L.js.map → bundle-GnFOVDL2.js.map} +1 -1
  186. package/chunks/{bundle-cYhstyoi.js → bundle-I8JFwttJ.js} +3 -3
  187. package/chunks/bundle-I8JFwttJ.js.map +1 -0
  188. package/chunks/{bundle-ZExhHi47.js → bundle-IRlSmJVg.js} +29 -13
  189. package/chunks/bundle-IRlSmJVg.js.map +1 -0
  190. package/chunks/{bundle-fDGhJhA3.js → bundle-J3DrW9X2.js} +8 -8
  191. package/chunks/bundle-J3DrW9X2.js.map +1 -0
  192. package/chunks/{bundle-y_DSrC-A.js → bundle-LWD0OLz8.js} +1 -1
  193. package/chunks/bundle-LWD0OLz8.js.map +1 -0
  194. package/chunks/{bundle-QjcHKpDK.js → bundle-MBrlu_LK.js} +2 -2
  195. package/chunks/bundle-MBrlu_LK.js.map +1 -0
  196. package/chunks/{bundle-aD4V4aI8.js → bundle-N9hMnIRl.js} +26 -24
  197. package/chunks/{bundle-aD4V4aI8.js.map → bundle-N9hMnIRl.js.map} +1 -1
  198. package/chunks/bundle-NjNqsDXb.js +11 -0
  199. package/chunks/bundle-NjNqsDXb.js.map +1 -0
  200. package/chunks/{bundle-1pnUZsGs.js → bundle-NwZvowyL.js} +1 -1
  201. package/chunks/bundle-NwZvowyL.js.map +1 -0
  202. package/chunks/bundle-OAJaPWYb.js +27 -0
  203. package/chunks/bundle-OAJaPWYb.js.map +1 -0
  204. package/chunks/{bundle-Lxhlm_wG.js → bundle-OFH4qWaN.js} +4 -4
  205. package/chunks/{bundle-Lxhlm_wG.js.map → bundle-OFH4qWaN.js.map} +1 -1
  206. package/chunks/{bundle-XkweI7LG.js → bundle-OJ-0ytxX.js} +1 -1
  207. package/chunks/bundle-OJ-0ytxX.js.map +1 -0
  208. package/chunks/bundle-Q8kUKu5l.js +34 -0
  209. package/chunks/bundle-Q8kUKu5l.js.map +1 -0
  210. package/chunks/{bundle-HVtbYmj3.js → bundle-Qufz6_i_.js} +4 -5
  211. package/chunks/bundle-Qufz6_i_.js.map +1 -0
  212. package/chunks/{bundle-OwmPKW49.js → bundle-RZWoLRNe.js} +96 -59
  213. package/chunks/bundle-RZWoLRNe.js.map +1 -0
  214. package/chunks/bundle-Rz5QaIhK.js +12 -0
  215. package/chunks/bundle-Rz5QaIhK.js.map +1 -0
  216. package/chunks/{bundle-2Rw-coMg.js → bundle-SlaQb7y0.js} +2 -2
  217. package/chunks/{bundle-2Rw-coMg.js.map → bundle-SlaQb7y0.js.map} +1 -1
  218. package/chunks/{bundle-26VX7FQg.js → bundle-ULVw0l0r.js} +1 -1
  219. package/chunks/{bundle-26VX7FQg.js.map → bundle-ULVw0l0r.js.map} +1 -1
  220. package/chunks/bundle-VbkO6hwH.js +29 -0
  221. package/chunks/{bundle-QGpFq71p.js.map → bundle-VbkO6hwH.js.map} +1 -1
  222. package/chunks/bundle-Wzk9dnsn.js +199 -0
  223. package/chunks/bundle-Wzk9dnsn.js.map +1 -0
  224. package/chunks/bundle-Xytq6xaz.js +179 -0
  225. package/{cjs/chunks/bundle-tJKWfbHM.js.map → chunks/bundle-Xytq6xaz.js.map} +1 -1
  226. package/chunks/{bundle-oW9dQm2o.js → bundle-YHAMs1sP.js} +1 -1
  227. package/chunks/bundle-YHAMs1sP.js.map +1 -0
  228. package/chunks/{bundle-GXGH9ESl.js → bundle-YVEtWFVy.js} +2 -2
  229. package/chunks/bundle-YVEtWFVy.js.map +1 -0
  230. package/chunks/{bundle-mccz6DbW.js → bundle-YoWLsJ0C.js} +1 -1
  231. package/chunks/bundle-YoWLsJ0C.js.map +1 -0
  232. package/chunks/{bundle-QGpFq71p.js → bundle-ZOCAUrJO.js} +2 -2
  233. package/chunks/bundle-ZOCAUrJO.js.map +1 -0
  234. package/chunks/{bundle-ej1sc1yZ.js → bundle-_cXVZn5n.js} +1 -1
  235. package/chunks/bundle-_cXVZn5n.js.map +1 -0
  236. package/chunks/{bundle-rQ1k1Cpu.js → bundle-aKXnhi3A.js} +1 -1
  237. package/chunks/{bundle-rQ1k1Cpu.js.map → bundle-aKXnhi3A.js.map} +1 -1
  238. package/chunks/{bundle-YD2b0cnK.js → bundle-agW9Hw66.js} +4 -4
  239. package/chunks/bundle-agW9Hw66.js.map +1 -0
  240. package/chunks/bundle-bAY1j7eP.js +34 -0
  241. package/chunks/bundle-bAY1j7eP.js.map +1 -0
  242. package/chunks/bundle-beMggMMW.js +289 -0
  243. package/chunks/bundle-beMggMMW.js.map +1 -0
  244. package/chunks/bundle-bjEEGmYA.js +197 -0
  245. package/chunks/bundle-bjEEGmYA.js.map +1 -0
  246. package/chunks/{bundle-OHK1QMwn.js → bundle-c1LUbaVa.js} +12 -41
  247. package/chunks/{bundle-OHK1QMwn.js.map → bundle-c1LUbaVa.js.map} +1 -1
  248. package/chunks/{bundle-kHH52OEM.js → bundle-cA_r9HRx.js} +2 -3
  249. package/chunks/bundle-cA_r9HRx.js.map +1 -0
  250. package/chunks/bundle-cBbT3DlY.js +148 -0
  251. package/chunks/bundle-cBbT3DlY.js.map +1 -0
  252. package/chunks/{bundle-wNtXTu0c.js → bundle-ctAjRHDW.js} +14 -8
  253. package/{cjs/chunks/bundle-IVfrW5UV.js.map → chunks/bundle-ctAjRHDW.js.map} +1 -1
  254. package/chunks/{bundle-4vHal8Yn.js → bundle-cvTUkQV_.js} +6 -6
  255. package/chunks/bundle-cvTUkQV_.js.map +1 -0
  256. package/chunks/{bundle-KpJtSqe-.js → bundle-d5KevIXI.js} +4 -28
  257. package/chunks/bundle-d5KevIXI.js.map +1 -0
  258. package/chunks/bundle-dOD0mfTw.js +120 -0
  259. package/chunks/bundle-dOD0mfTw.js.map +1 -0
  260. package/chunks/{bundle-8XsN_e3a.js → bundle-drww6xht.js} +42 -30
  261. package/{cjs/chunks/bundle-1GRgJFEb.js.map → chunks/bundle-drww6xht.js.map} +1 -1
  262. package/chunks/{bundle-YWlIaifS.js → bundle-fQ1V_U8F.js} +1 -1
  263. package/chunks/bundle-fQ1V_U8F.js.map +1 -0
  264. package/chunks/{bundle-gzQGUVJt.js → bundle-hDx2-CRe.js} +39 -39
  265. package/chunks/{bundle-gzQGUVJt.js.map → bundle-hDx2-CRe.js.map} +1 -1
  266. package/chunks/{bundle-hpM7HwDV.js → bundle-iwZaUd9o.js} +1 -1
  267. package/chunks/bundle-iwZaUd9o.js.map +1 -0
  268. package/chunks/{bundle-s5uFV3hh.js → bundle-jDjj3eHU.js} +1 -1
  269. package/chunks/bundle-jDjj3eHU.js.map +1 -0
  270. package/chunks/{bundle-P_LfQm7L.js → bundle-jy6_UG14.js} +1 -1
  271. package/chunks/{bundle-8XsN_e3a.js.map → bundle-jy6_UG14.js.map} +1 -1
  272. package/chunks/bundle-khgxDrnA.js +61 -0
  273. package/chunks/bundle-khgxDrnA.js.map +1 -0
  274. package/chunks/{bundle-cN2gAFB_.js → bundle-lUrIOx9p.js} +3 -3
  275. package/chunks/{bundle-cN2gAFB_.js.map → bundle-lUrIOx9p.js.map} +1 -1
  276. package/chunks/{bundle-B_aR2jdp.js → bundle-lVxQMV9H.js} +6 -6
  277. package/chunks/bundle-lVxQMV9H.js.map +1 -0
  278. package/chunks/{bundle-Abz9zH51.js → bundle-laVKAiJ-.js} +5 -40
  279. package/{cjs/chunks/bundle-Pa-zxMUU.js.map → chunks/bundle-laVKAiJ-.js.map} +1 -1
  280. package/chunks/{bundle-1_Rwzd0f.js → bundle-mn6nwwm3.js} +2 -2
  281. package/chunks/{bundle-1_Rwzd0f.js.map → bundle-mn6nwwm3.js.map} +1 -1
  282. package/chunks/{bundle-6LRbbWyh.js → bundle-nD2ZWBq4.js} +2 -2
  283. package/chunks/{bundle-6LRbbWyh.js.map → bundle-nD2ZWBq4.js.map} +1 -1
  284. package/chunks/{bundle-tD8xAWw2.js → bundle-nlOgiAcu.js} +1 -1
  285. package/chunks/bundle-nlOgiAcu.js.map +1 -0
  286. package/chunks/{bundle-edTAi5zj.js → bundle-o1Ev7FSN.js} +5 -47
  287. package/chunks/bundle-o1Ev7FSN.js.map +1 -0
  288. package/chunks/{bundle-pnJu3fWb.js → bundle-otzUyFE_.js} +165 -59
  289. package/{cjs/chunks/bundle-2_VQBtF9.js.map → chunks/bundle-otzUyFE_.js.map} +1 -1
  290. package/chunks/{bundle-zx8iuoIh.js → bundle-poK2Vr1v.js} +2 -4
  291. package/chunks/bundle-poK2Vr1v.js.map +1 -0
  292. package/chunks/bundle-qAc60kip.js +48 -0
  293. package/chunks/bundle-qAc60kip.js.map +1 -0
  294. package/chunks/{bundle-Uw736N77.js → bundle-r9j_eCHc.js} +1 -1
  295. package/chunks/bundle-r9j_eCHc.js.map +1 -0
  296. package/chunks/bundle-tPCzzoc1.js +34 -0
  297. package/chunks/bundle-tPCzzoc1.js.map +1 -0
  298. package/chunks/bundle-uIetzCLw.js +64 -0
  299. package/chunks/bundle-uIetzCLw.js.map +1 -0
  300. package/chunks/bundle-v3WxYU8s.js +30 -0
  301. package/chunks/bundle-v3WxYU8s.js.map +1 -0
  302. package/chunks/{bundle-8XAFqDsw.js → bundle-vOT5acXc.js} +1 -1
  303. package/chunks/bundle-vOT5acXc.js.map +1 -0
  304. package/chunks/{bundle-TztVqjoB.js → bundle-vz3GEsoi.js} +3 -3
  305. package/chunks/bundle-vz3GEsoi.js.map +1 -0
  306. package/chunks/{bundle-5iL1VCKs.js → bundle-w1C-Xmf3.js} +3 -3
  307. package/chunks/bundle-w1C-Xmf3.js.map +1 -0
  308. package/chunks/{bundle-hNJ4PtSG.js → bundle-wMP1pqZM.js} +10 -10
  309. package/chunks/bundle-wMP1pqZM.js.map +1 -0
  310. package/chunks/bundle-x_yt1Yd5.js +30 -0
  311. package/chunks/bundle-x_yt1Yd5.js.map +1 -0
  312. package/chunks/bundle-zKBdD-J6.js +550 -0
  313. package/chunks/bundle-zKBdD-J6.js.map +1 -0
  314. package/chunks/{bundle-imm3o8vY.js → bundle-zV8TJWvL.js} +1 -1
  315. package/chunks/bundle-zV8TJWvL.js.map +1 -0
  316. package/cjs/App.js +365 -189
  317. package/cjs/App.js.map +1 -1
  318. package/cjs/Channel/components/ChannelHeader.js +40 -59
  319. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  320. package/cjs/Channel/components/ChannelUI.js +80 -109
  321. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  322. package/cjs/Channel/components/FileViewer.js +38 -80
  323. package/cjs/Channel/components/FileViewer.js.map +1 -1
  324. package/cjs/Channel/components/FrozenNotification.js +9 -13
  325. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  326. package/cjs/Channel/components/Message.js +64 -314
  327. package/cjs/Channel/components/Message.js.map +1 -1
  328. package/cjs/Channel/components/MessageFeedbackModal.js +15 -14
  329. package/cjs/Channel/components/MessageFeedbackModal.js.map +1 -1
  330. package/cjs/Channel/components/MessageInput.js +65 -191
  331. package/cjs/Channel/components/MessageInput.js.map +1 -1
  332. package/cjs/Channel/components/MessageList.js +65 -59
  333. package/cjs/Channel/components/MessageList.js.map +1 -1
  334. package/cjs/Channel/components/RemoveMessageModal.js +33 -42
  335. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  336. package/cjs/Channel/components/SuggestedMentionList.js +39 -190
  337. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  338. package/cjs/Channel/components/TypingIndicator.js +12 -83
  339. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  340. package/cjs/Channel/components/UnreadCount.js +12 -30
  341. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  342. package/cjs/Channel/context.js +1500 -23
  343. package/cjs/Channel/context.js.map +1 -1
  344. package/cjs/Channel/hooks/useHandleUploadFiles.js +14 -13
  345. package/cjs/Channel/hooks/useHandleUploadFiles.js.map +1 -1
  346. package/cjs/Channel/hooks/useInitialMessagesFetch.js +7 -8
  347. package/cjs/Channel/hooks/useInitialMessagesFetch.js.map +1 -1
  348. package/cjs/Channel/utils/compareMessagesForGrouping.js +46 -9
  349. package/cjs/Channel/utils/compareMessagesForGrouping.js.map +1 -1
  350. package/cjs/Channel/utils/getMessagePartsInfo.js +10 -9
  351. package/cjs/Channel/utils/getMessagePartsInfo.js.map +1 -1
  352. package/cjs/Channel.js +78 -74
  353. package/cjs/Channel.js.map +1 -1
  354. package/cjs/ChannelList/components/AddChannel.js +31 -46
  355. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  356. package/cjs/ChannelList/components/ChannelListHeader.js +13 -35
  357. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  358. package/cjs/ChannelList/components/ChannelListUI.js +63 -133
  359. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  360. package/cjs/ChannelList/components/ChannelPreview.js +44 -124
  361. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  362. package/cjs/ChannelList/components/ChannelPreviewAction.js +20 -63
  363. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  364. package/cjs/ChannelList/context.js +10 -9
  365. package/cjs/ChannelList/context.js.map +1 -1
  366. package/cjs/ChannelList.js +58 -59
  367. package/cjs/ChannelList.js.map +1 -1
  368. package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
  369. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +26 -20
  370. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  371. package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
  372. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  373. package/cjs/ChannelSettings/components/ModerationPanel.js +41 -23
  374. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  375. package/cjs/ChannelSettings/components/UserListItem.js +14 -13
  376. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  377. package/cjs/ChannelSettings/components/UserPanel.js +23 -16
  378. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  379. package/cjs/ChannelSettings/context.js +3 -3
  380. package/cjs/ChannelSettings.js +26 -20
  381. package/cjs/ChannelSettings.js.map +1 -1
  382. package/cjs/CreateChannel/components/CreateChannelUI.js +17 -16
  383. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  384. package/cjs/CreateChannel/components/InviteUsers.js +24 -25
  385. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  386. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  387. package/cjs/CreateChannel/context.js +4 -4
  388. package/cjs/CreateChannel.js +19 -19
  389. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -12
  390. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  391. package/cjs/CreateOpenChannel/context.js +1 -1
  392. package/cjs/CreateOpenChannel.js +11 -12
  393. package/cjs/CreateOpenChannel.js.map +1 -1
  394. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
  395. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
  396. package/cjs/EditUserProfile.js +12 -13
  397. package/cjs/EditUserProfile.js.map +1 -1
  398. package/cjs/Message/hooks/useDirtyGetMentions.js +2 -2
  399. package/cjs/MessageSearch/components/MessageSearchUI.js +15 -15
  400. package/cjs/MessageSearch/context.js +14 -3
  401. package/cjs/MessageSearch/context.js.map +1 -1
  402. package/cjs/MessageSearch.js +15 -15
  403. package/cjs/OpenChannel/components/FrozenChannelNotification.js +5 -5
  404. package/cjs/OpenChannel/components/OpenChannelHeader.js +18 -19
  405. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  406. package/cjs/OpenChannel/components/OpenChannelInput.js +26 -26
  407. package/cjs/OpenChannel/components/OpenChannelMessage.js +36 -35
  408. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  409. package/cjs/OpenChannel/components/OpenChannelMessageList.js +42 -39
  410. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  411. package/cjs/OpenChannel/components/OpenChannelUI.js +41 -38
  412. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  413. package/cjs/OpenChannel/context.js +17 -18
  414. package/cjs/OpenChannel/context.js.map +1 -1
  415. package/cjs/OpenChannel.js +41 -38
  416. package/cjs/OpenChannel.js.map +1 -1
  417. package/cjs/OpenChannelList/components/OpenChannelListUI.js +14 -15
  418. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  419. package/cjs/OpenChannelList/components/OpenChannelPreview.js +6 -7
  420. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  421. package/cjs/OpenChannelList/context.js +3 -3
  422. package/cjs/OpenChannelList.js +14 -15
  423. package/cjs/OpenChannelList.js.map +1 -1
  424. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +15 -15
  425. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +15 -15
  426. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +20 -19
  427. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  428. package/cjs/OpenChannelSettings/components/OperatorUI.js +20 -19
  429. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  430. package/cjs/OpenChannelSettings/components/ParticipantUI.js +18 -17
  431. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
  432. package/cjs/OpenChannelSettings/context.js +3 -3
  433. package/cjs/OpenChannelSettings.js +20 -19
  434. package/cjs/OpenChannelSettings.js.map +1 -1
  435. package/cjs/SendbirdProvider.js +86 -227
  436. package/cjs/SendbirdProvider.js.map +1 -1
  437. package/cjs/Thread/components/ParentMessageInfo.js +46 -47
  438. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  439. package/cjs/Thread/components/ParentMessageInfoItem.js +39 -37
  440. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  441. package/cjs/Thread/components/ThreadHeader.js +7 -7
  442. package/cjs/Thread/components/ThreadList.js +51 -51
  443. package/cjs/Thread/components/ThreadListItem.js +54 -55
  444. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  445. package/cjs/Thread/components/ThreadMessageInput.js +52 -45
  446. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  447. package/cjs/Thread/components/ThreadUI.js +60 -52
  448. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  449. package/cjs/Thread/context.js +151 -160
  450. package/cjs/Thread/context.js.map +1 -1
  451. package/cjs/Thread.js +60 -52
  452. package/cjs/Thread.js.map +1 -1
  453. package/cjs/VoicePlayer/context.js +3 -3
  454. package/cjs/VoicePlayer/useVoicePlayer.js +10 -10
  455. package/cjs/VoiceRecorder/context.js +12 -11
  456. package/cjs/VoiceRecorder/context.js.map +1 -1
  457. package/cjs/VoiceRecorder/useVoiceRecorder.js +9 -9
  458. package/cjs/chunks/bundle--1R8Yp9p.js +553 -0
  459. package/cjs/chunks/bundle--1R8Yp9p.js.map +1 -0
  460. package/cjs/chunks/{bundle-wOZ3z_BG.js → bundle--A9iQL7y.js} +3 -3
  461. package/cjs/chunks/{bundle-wOZ3z_BG.js.map → bundle--A9iQL7y.js.map} +1 -1
  462. package/cjs/chunks/bundle--QPuGnli.js +183 -0
  463. package/{chunks/bundle-4uNbb5ZI.js.map → cjs/chunks/bundle--QPuGnli.js.map} +1 -1
  464. package/cjs/chunks/bundle--t85OO-4.js +37 -0
  465. package/cjs/chunks/bundle--t85OO-4.js.map +1 -0
  466. package/cjs/chunks/{bundle-EKK1TWOg.js → bundle--tki3Ejh.js} +1 -1
  467. package/cjs/chunks/bundle--tki3Ejh.js.map +1 -0
  468. package/cjs/chunks/{bundle-jayPpL4B.js → bundle-0zagc7hR.js} +1 -1
  469. package/cjs/chunks/bundle-0zagc7hR.js.map +1 -0
  470. package/cjs/chunks/{bundle-j5FA7ApI.js → bundle-1dcvUZjP.js} +1 -1
  471. package/cjs/chunks/bundle-1dcvUZjP.js.map +1 -0
  472. package/cjs/chunks/bundle-1tu4OFP8.js +51 -0
  473. package/cjs/chunks/bundle-1tu4OFP8.js.map +1 -0
  474. package/cjs/chunks/{bundle-RWm1ToHA.js → bundle-2hJhRu5W.js} +3 -3
  475. package/cjs/chunks/bundle-2hJhRu5W.js.map +1 -0
  476. package/cjs/chunks/{bundle-jr9hFzH_.js → bundle-3_XFLnnt.js} +4 -4
  477. package/cjs/chunks/bundle-3_XFLnnt.js.map +1 -0
  478. package/cjs/chunks/bundle-3eaFVTUX.js +36 -0
  479. package/cjs/chunks/bundle-3eaFVTUX.js.map +1 -0
  480. package/cjs/chunks/bundle-5UyAossc.js +67 -0
  481. package/cjs/chunks/bundle-5UyAossc.js.map +1 -0
  482. package/cjs/chunks/{bundle-3ZyqiHAN.js → bundle-66GvrL2V.js} +2 -2
  483. package/cjs/chunks/bundle-66GvrL2V.js.map +1 -0
  484. package/cjs/chunks/{bundle-7iyslQY5.js → bundle-6L4HCLmb.js} +6 -6
  485. package/cjs/chunks/bundle-6L4HCLmb.js.map +1 -0
  486. package/cjs/chunks/{bundle-M_JdGFB9.js → bundle-6SzyBwQ5.js} +3 -3
  487. package/cjs/chunks/bundle-6SzyBwQ5.js.map +1 -0
  488. package/cjs/chunks/{bundle-R55qwYIC.js → bundle-6zBNmPOP.js} +1 -1
  489. package/cjs/chunks/bundle-6zBNmPOP.js.map +1 -0
  490. package/cjs/chunks/{bundle-Q7Qb_8Qy.js → bundle-77qvrXp8.js} +1 -1
  491. package/cjs/chunks/bundle-77qvrXp8.js.map +1 -0
  492. package/cjs/chunks/{bundle-lk7syGfV.js → bundle-AN4eZ2xs.js} +1 -1
  493. package/cjs/chunks/{bundle-lk7syGfV.js.map → bundle-AN4eZ2xs.js.map} +1 -1
  494. package/cjs/chunks/bundle-CDUgp575.js +14 -0
  495. package/cjs/chunks/bundle-CDUgp575.js.map +1 -0
  496. package/cjs/chunks/bundle-CZTvTAu-.js +32 -0
  497. package/cjs/chunks/bundle-CZTvTAu-.js.map +1 -0
  498. package/cjs/chunks/bundle-Cbklvbls.js +233 -0
  499. package/cjs/chunks/bundle-Cbklvbls.js.map +1 -0
  500. package/cjs/chunks/{bundle-tJKWfbHM.js → bundle-CrbMqpah.js} +3 -29
  501. package/cjs/chunks/bundle-CrbMqpah.js.map +1 -0
  502. package/cjs/chunks/bundle-DfMlIvtm.js +31 -0
  503. package/cjs/chunks/bundle-DfMlIvtm.js.map +1 -0
  504. package/cjs/chunks/{bundle-UHsDbhGB.js → bundle-DhtZdKsr.js} +14 -1
  505. package/cjs/chunks/bundle-DhtZdKsr.js.map +1 -0
  506. package/cjs/chunks/bundle-Eqd9bAds.js +292 -0
  507. package/cjs/chunks/bundle-Eqd9bAds.js.map +1 -0
  508. package/cjs/chunks/{bundle-FJe6Dl-f.js → bundle-H9rcn1PJ.js} +1 -1
  509. package/{chunks/bundle-iifpyLxR.js.map → cjs/chunks/bundle-H9rcn1PJ.js.map} +1 -1
  510. package/cjs/chunks/{bundle-EdNscsik.js → bundle-HQAiUNev.js} +1 -1
  511. package/cjs/chunks/bundle-HQAiUNev.js.map +1 -0
  512. package/cjs/chunks/bundle-JBbKwE7L.js +25 -0
  513. package/cjs/chunks/bundle-JBbKwE7L.js.map +1 -0
  514. package/cjs/chunks/{bundle-IVfrW5UV.js → bundle-KBZdi1sN.js} +14 -8
  515. package/cjs/chunks/bundle-KBZdi1sN.js.map +1 -0
  516. package/cjs/chunks/{bundle-4F7u20x2.js → bundle-KWR-0b7P.js} +3 -3
  517. package/cjs/chunks/bundle-KWR-0b7P.js.map +1 -0
  518. package/cjs/chunks/bundle-LsJ9u7uN.js +64 -0
  519. package/cjs/chunks/bundle-LsJ9u7uN.js.map +1 -0
  520. package/cjs/chunks/{bundle-waeY4XbU.js → bundle-MNUU2JEo.js} +1 -5
  521. package/cjs/chunks/bundle-MNUU2JEo.js.map +1 -0
  522. package/cjs/chunks/bundle-Msh8rb3L.js +13 -0
  523. package/cjs/chunks/bundle-Msh8rb3L.js.map +1 -0
  524. package/cjs/chunks/{bundle-TGcw51ZD.js → bundle-NALzAgLv.js} +10 -10
  525. package/cjs/chunks/bundle-NALzAgLv.js.map +1 -0
  526. package/cjs/chunks/{bundle-sGVgQ4l8.js → bundle-NPzNlnHJ.js} +10 -10
  527. package/cjs/chunks/bundle-NPzNlnHJ.js.map +1 -0
  528. package/cjs/chunks/{bundle-fKDcA4eI.js → bundle-NZvAE9FS.js} +1 -1
  529. package/cjs/chunks/bundle-NZvAE9FS.js.map +1 -0
  530. package/cjs/chunks/bundle-Njt4gDEW.js +91 -0
  531. package/cjs/chunks/bundle-Njt4gDEW.js.map +1 -0
  532. package/cjs/chunks/{bundle-OmshX9RP.js → bundle-O6Mos2Xn.js} +1 -1
  533. package/cjs/chunks/bundle-O6Mos2Xn.js.map +1 -0
  534. package/cjs/chunks/{bundle-_8JkuEc5.js → bundle-OdZXNc-g.js} +5 -48
  535. package/cjs/chunks/bundle-OdZXNc-g.js.map +1 -0
  536. package/cjs/chunks/{bundle-wwqhN6T8.js → bundle-Oq2rnNn_.js} +1 -1
  537. package/cjs/chunks/bundle-Oq2rnNn_.js.map +1 -0
  538. package/cjs/chunks/{bundle-7tLE_fm_.js → bundle-PSEoX-EH.js} +3 -3
  539. package/cjs/chunks/bundle-PSEoX-EH.js.map +1 -0
  540. package/cjs/chunks/{bundle-dD_wqelx.js → bundle-PhGdgkei.js} +3 -3
  541. package/cjs/chunks/{bundle-dD_wqelx.js.map → bundle-PhGdgkei.js.map} +1 -1
  542. package/cjs/chunks/{bundle-idn81XsS.js → bundle-Pzvqu5yR.js} +7 -7
  543. package/cjs/chunks/bundle-Pzvqu5yR.js.map +1 -0
  544. package/cjs/chunks/{bundle-s5Lt0vKF.js → bundle-RUqSDidW.js} +1 -1
  545. package/cjs/chunks/bundle-RUqSDidW.js.map +1 -0
  546. package/cjs/chunks/{bundle-XwSBmqOP.js → bundle-RquYsY0d.js} +2 -2
  547. package/cjs/chunks/{bundle-XwSBmqOP.js.map → bundle-RquYsY0d.js.map} +1 -1
  548. package/cjs/chunks/{bundle-Ox6f1Pr4.js → bundle-TB_UEIPg.js} +1 -1
  549. package/cjs/chunks/bundle-TB_UEIPg.js.map +1 -0
  550. package/cjs/chunks/{bundle-e6jRRPqy.js → bundle-TPy0gj60.js} +1 -1
  551. package/cjs/chunks/bundle-TPy0gj60.js.map +1 -0
  552. package/cjs/chunks/{bundle-trkwub16.js → bundle-UAspU0bH.js} +1 -1
  553. package/cjs/chunks/bundle-UAspU0bH.js.map +1 -0
  554. package/cjs/chunks/{bundle-OU36L4lP.js → bundle-UuftRMuc.js} +1 -1
  555. package/cjs/chunks/bundle-UuftRMuc.js.map +1 -0
  556. package/cjs/chunks/{bundle-99TH6XOD.js → bundle-VP5r38Gj.js} +6 -6
  557. package/cjs/chunks/bundle-VP5r38Gj.js.map +1 -0
  558. package/cjs/chunks/{bundle-wDJ0vmp7.js → bundle-VxcYXhwp.js} +3 -3
  559. package/cjs/chunks/bundle-VxcYXhwp.js.map +1 -0
  560. package/cjs/chunks/{bundle-wTtkySLW.js → bundle-Y-_KhZFq.js} +1 -3
  561. package/cjs/chunks/bundle-Y-_KhZFq.js.map +1 -0
  562. package/cjs/chunks/bundle-Y86Tvf8p.js +204 -0
  563. package/cjs/chunks/bundle-Y86Tvf8p.js.map +1 -0
  564. package/cjs/chunks/{bundle-F9aI-PNs.js → bundle-YjNFrYVt.js} +1 -1
  565. package/cjs/chunks/bundle-YjNFrYVt.js.map +1 -0
  566. package/cjs/chunks/bundle-ZvLEz_GA.js +391 -0
  567. package/cjs/chunks/bundle-ZvLEz_GA.js.map +1 -0
  568. package/cjs/chunks/{bundle-BtjxYBby.js → bundle-bDQKUQ5r.js} +95 -58
  569. package/cjs/chunks/bundle-bDQKUQ5r.js.map +1 -0
  570. package/cjs/chunks/{bundle-YTD5gh4h.js → bundle-eCBAJmJN.js} +4 -40
  571. package/cjs/chunks/bundle-eCBAJmJN.js.map +1 -0
  572. package/cjs/chunks/{bundle-oLDSV_xg.js → bundle-ekyeVpZG.js} +2 -2
  573. package/cjs/chunks/bundle-ekyeVpZG.js.map +1 -0
  574. package/cjs/chunks/{bundle-hVnmDMOX.js → bundle-fTMJH5JE.js} +18 -36
  575. package/cjs/chunks/bundle-fTMJH5JE.js.map +1 -0
  576. package/cjs/chunks/bundle-fUWIw3RI.js +32 -0
  577. package/cjs/chunks/bundle-fUWIw3RI.js.map +1 -0
  578. package/cjs/chunks/bundle-fzSiKesI.js +202 -0
  579. package/cjs/chunks/bundle-fzSiKesI.js.map +1 -0
  580. package/cjs/chunks/{bundle-wCSyCEPr.js → bundle-gW6qz9z9.js} +9 -8
  581. package/cjs/chunks/bundle-gW6qz9z9.js.map +1 -0
  582. package/cjs/chunks/{bundle-DwxvWTiX.js → bundle-haAptps1.js} +29 -13
  583. package/cjs/chunks/bundle-haAptps1.js.map +1 -0
  584. package/cjs/chunks/{bundle-PLz0cFBi.js → bundle-iY19D_aw.js} +1 -1
  585. package/cjs/chunks/bundle-iY19D_aw.js.map +1 -0
  586. package/cjs/chunks/bundle-jYLCAuUn.js +123 -0
  587. package/cjs/chunks/bundle-jYLCAuUn.js.map +1 -0
  588. package/cjs/chunks/bundle-jcgWT1ad.js +40 -0
  589. package/cjs/chunks/bundle-jcgWT1ad.js.map +1 -0
  590. package/cjs/chunks/{bundle-85IKKe_e.js → bundle-nYBtJl9e.js} +1 -1
  591. package/cjs/chunks/bundle-nYBtJl9e.js.map +1 -0
  592. package/cjs/chunks/{bundle-bPLEZuwe.js → bundle-nox41MG6.js} +25 -24
  593. package/cjs/chunks/{bundle-bPLEZuwe.js.map → bundle-nox41MG6.js.map} +1 -1
  594. package/cjs/chunks/{bundle-h6fKs5yW.js → bundle-pp7tp7GG.js} +11 -41
  595. package/cjs/chunks/{bundle-h6fKs5yW.js.map → bundle-pp7tp7GG.js.map} +1 -1
  596. package/cjs/chunks/bundle-qRiLsSwC.js +153 -0
  597. package/cjs/chunks/bundle-qRiLsSwC.js.map +1 -0
  598. package/cjs/chunks/bundle-rcw3KtAu.js +30 -0
  599. package/cjs/chunks/bundle-rcw3KtAu.js.map +1 -0
  600. package/cjs/chunks/{bundle-NZXUf6_L.js → bundle-s--ExKtj.js} +2 -2
  601. package/cjs/chunks/bundle-s--ExKtj.js.map +1 -0
  602. package/cjs/chunks/{bundle-XIMyjFuW.js → bundle-t2GWOYzL.js} +5 -5
  603. package/{chunks/bundle-Abz9zH51.js.map → cjs/chunks/bundle-t2GWOYzL.js.map} +1 -1
  604. package/cjs/chunks/{bundle-LWd8plnK.js → bundle-tntEm-Mv.js} +39 -39
  605. package/cjs/chunks/{bundle-LWd8plnK.js.map → bundle-tntEm-Mv.js.map} +1 -1
  606. package/cjs/chunks/bundle-u7wWilEW.js +15 -0
  607. package/cjs/chunks/bundle-u7wWilEW.js.map +1 -0
  608. package/cjs/chunks/{bundle-XqtnTNnc.js → bundle-v5-SR4v4.js} +2 -2
  609. package/cjs/chunks/bundle-v5-SR4v4.js.map +1 -0
  610. package/cjs/chunks/{bundle-gBGbUm4f.js → bundle-vMF9NM5u.js} +1 -1
  611. package/cjs/chunks/bundle-vMF9NM5u.js.map +1 -0
  612. package/cjs/chunks/{bundle-OOMB_O1L.js → bundle-w0ATt2gt.js} +4 -5
  613. package/cjs/chunks/bundle-w0ATt2gt.js.map +1 -0
  614. package/cjs/chunks/{bundle-qbpoRdJa.js → bundle-wZDX1pVR.js} +3 -3
  615. package/cjs/chunks/bundle-wZDX1pVR.js.map +1 -0
  616. package/cjs/chunks/{bundle-X1vsWmGi.js → bundle-xM2DAzE6.js} +1 -1
  617. package/cjs/chunks/{bundle-X1vsWmGi.js.map → bundle-xM2DAzE6.js.map} +1 -1
  618. package/cjs/chunks/{bundle-1GRgJFEb.js → bundle-zAQuo6rI.js} +42 -30
  619. package/{chunks/bundle-oW5LS1AU.js.map → cjs/chunks/bundle-zAQuo6rI.js.map} +1 -1
  620. package/cjs/chunks/{bundle-WuVcsZSE.js → bundle-zDh-X-Q4.js} +1 -1
  621. package/cjs/chunks/bundle-zDh-X-Q4.js.map +1 -0
  622. package/cjs/chunks/{bundle-2_VQBtF9.js → bundle-zGSEOOdl.js} +164 -58
  623. package/{chunks/bundle-pnJu3fWb.js.map → cjs/chunks/bundle-zGSEOOdl.js.map} +1 -1
  624. package/cjs/chunks/bundle-zHDXCFIb.js +60 -0
  625. package/cjs/chunks/bundle-zHDXCFIb.js.map +1 -0
  626. package/cjs/chunks/{bundle-ImsJYvdy.js → bundle-zLoe4MOM.js} +4 -4
  627. package/{chunks/bundle-edTAi5zj.js.map → cjs/chunks/bundle-zLoe4MOM.js.map} +1 -1
  628. package/cjs/chunks/bundle-zRJE2NjU.js +47 -0
  629. package/cjs/chunks/bundle-zRJE2NjU.js.map +1 -0
  630. package/cjs/hooks/useModal.js +9 -9
  631. package/cjs/index.js +136 -126
  632. package/cjs/index.js.map +1 -1
  633. package/cjs/pubSub/topics.js +1 -1
  634. package/cjs/sendbirdSelectors.js +2 -2
  635. package/cjs/ui/Accordion.js +3 -3
  636. package/cjs/ui/AccordionGroup.js +2 -2
  637. package/cjs/ui/AdminMessage.js +3 -3
  638. package/cjs/ui/Avatar.js +4 -5
  639. package/cjs/ui/Avatar.js.map +1 -1
  640. package/cjs/ui/Badge.js +5 -5
  641. package/cjs/ui/BottomSheet.js +9 -9
  642. package/cjs/ui/Button.js +3 -3
  643. package/cjs/ui/ChannelAvatar.js +6 -7
  644. package/cjs/ui/ChannelAvatar.js.map +1 -1
  645. package/cjs/ui/ConnectionStatus.js +6 -6
  646. package/cjs/ui/ContextMenu.js +7 -6
  647. package/cjs/ui/ContextMenu.js.map +1 -1
  648. package/cjs/ui/DateSeparator.js +4 -4
  649. package/cjs/ui/EmojiReactions.js +32 -22
  650. package/cjs/ui/EmojiReactions.js.map +1 -1
  651. package/cjs/ui/FileMessageItemBody.js +9 -8
  652. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  653. package/cjs/ui/FileViewer.js +16 -16
  654. package/cjs/ui/Icon.js +2 -2
  655. package/cjs/ui/IconButton.js +1 -1
  656. package/cjs/ui/ImageRenderer.js +96 -69
  657. package/cjs/ui/ImageRenderer.js.map +1 -1
  658. package/cjs/ui/Input.js +3 -3
  659. package/cjs/ui/Label.js +3 -3
  660. package/cjs/ui/LinkLabel.js +3 -3
  661. package/cjs/ui/Loader.js +2 -2
  662. package/cjs/ui/MentionLabel.js +14 -13
  663. package/cjs/ui/MentionLabel.js.map +1 -1
  664. package/cjs/ui/MentionUserLabel.js +1 -1
  665. package/cjs/ui/MessageContent.js +135 -108
  666. package/cjs/ui/MessageContent.js.map +1 -1
  667. package/cjs/ui/MessageInput/hooks/usePaste.js +5 -5
  668. package/cjs/ui/MessageInput.js +20 -19
  669. package/cjs/ui/MessageInput.js.map +1 -1
  670. package/cjs/ui/MessageItemMenu.js +13 -30
  671. package/cjs/ui/MessageItemMenu.js.map +1 -1
  672. package/cjs/ui/MessageItemReactionMenu.js +16 -12
  673. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  674. package/cjs/ui/MessageSearchFileItem.js +15 -15
  675. package/cjs/ui/MessageSearchItem.js +11 -12
  676. package/cjs/ui/MessageSearchItem.js.map +1 -1
  677. package/cjs/ui/MessageStatus.js +13 -12
  678. package/cjs/ui/MessageStatus.js.map +1 -1
  679. package/cjs/ui/MobileFeedbackMenu.js +9 -9
  680. package/cjs/ui/Modal.js +8 -8
  681. package/cjs/ui/MutedAvatarOverlay.js +2 -2
  682. package/cjs/ui/OGMessageItemBody.js +17 -16
  683. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  684. package/cjs/ui/OpenChannelAdminMessage.js +3 -3
  685. package/cjs/ui/OpenChannelAvatar.js +8 -9
  686. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  687. package/cjs/ui/OpenchannelConversationHeader.js +8 -9
  688. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  689. package/cjs/ui/OpenchannelFileMessage.js +19 -18
  690. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  691. package/cjs/ui/OpenchannelOGMessage.js +21 -20
  692. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  693. package/cjs/ui/OpenchannelThumbnailMessage.js +18 -17
  694. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  695. package/cjs/ui/OpenchannelUserMessage.js +19 -18
  696. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  697. package/cjs/ui/PlaceHolder.js +6 -6
  698. package/cjs/ui/PlaybackTime.js +3 -3
  699. package/cjs/ui/QuoteMessage.js +10 -9
  700. package/cjs/ui/QuoteMessage.js.map +1 -1
  701. package/cjs/ui/QuoteMessageInput.js +10 -9
  702. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  703. package/cjs/ui/ReactionBadge.js +3 -3
  704. package/cjs/ui/ReactionButton.js +4 -4
  705. package/cjs/ui/SortByRow.js +2 -2
  706. package/cjs/ui/TextButton.js +2 -2
  707. package/cjs/ui/TextMessageItemBody.js +17 -16
  708. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  709. package/cjs/ui/ThreadReplies.js +9 -10
  710. package/cjs/ui/ThreadReplies.js.map +1 -1
  711. package/cjs/ui/ThumbnailMessageItemBody.js +12 -8
  712. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  713. package/cjs/ui/Toggle.js +1 -1
  714. package/cjs/ui/Tooltip.js +3 -3
  715. package/cjs/ui/TooltipWrapper.js +1 -1
  716. package/cjs/ui/TypingIndicatorBubble.js +4 -5
  717. package/cjs/ui/TypingIndicatorBubble.js.map +1 -1
  718. package/cjs/ui/UnknownMessageItemBody.js +8 -7
  719. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  720. package/cjs/ui/UserListItem.js +14 -13
  721. package/cjs/ui/UserListItem.js.map +1 -1
  722. package/cjs/ui/UserProfile.js +10 -11
  723. package/cjs/ui/UserProfile.js.map +1 -1
  724. package/cjs/ui/VoiceMessageInput.js +9 -9
  725. package/cjs/ui/VoiceMessageItemBody.js +10 -10
  726. package/cjs/ui/Word.js +14 -13
  727. package/cjs/ui/Word.js.map +1 -1
  728. package/cjs/useSendbirdStateContext.js +1 -1
  729. package/cjs/utils/message/isVoiceMessage.js +4 -3
  730. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  731. package/cjs/withSendbird.js +1 -1
  732. package/dist/index.css +2973 -2899
  733. package/dist/index.css.map +1 -1
  734. package/hooks/useModal.js +10 -10
  735. package/index.js +136 -126
  736. package/index.js.map +1 -1
  737. package/package.json +11 -11
  738. package/pubSub/topics.js +1 -1
  739. package/sendbirdSelectors.js +2 -2
  740. package/types/hooks/VoicePlayer/dux/actionTypes.d.ts +2 -0
  741. package/types/hooks/VoicePlayer/dux/reducer.d.ts +2 -0
  742. package/types/hooks/useOnScrollReachedEndDetector/index.d.ts +10 -5
  743. package/types/hooks/useThrottleCallback.d.ts +11 -1
  744. package/types/lib/UserProfileContext.d.ts +1 -1
  745. package/types/lib/emojiManager.d.ts +29 -0
  746. package/types/lib/pubSub/topics.d.ts +5 -5
  747. package/types/lib/selectors.d.ts +2 -2
  748. package/types/lib/types.d.ts +6 -1
  749. package/types/modules/App/index.d.ts +5 -0
  750. package/types/modules/App/types.d.ts +1 -0
  751. package/types/modules/Channel/components/ChannelHeader/index.d.ts +2 -3
  752. package/types/modules/Channel/components/ChannelUI/index.d.ts +5 -4
  753. package/types/modules/Channel/components/FileViewer/index.d.ts +3 -16
  754. package/types/modules/Channel/components/FrozenNotification/index.d.ts +1 -6
  755. package/types/modules/Channel/components/Message/index.d.ts +2 -14
  756. package/types/modules/Channel/components/MessageFeedbackModal/index.d.ts +3 -3
  757. package/types/modules/Channel/components/MessageInputWrapper/index.d.ts +11 -0
  758. package/types/modules/Channel/components/MessageList/index.d.ts +2 -2
  759. package/types/modules/Channel/components/RemoveMessageModal/index.d.ts +4 -0
  760. package/types/modules/Channel/components/SuggestedMentionList/index.d.ts +3 -18
  761. package/types/modules/Channel/components/TypingIndicator.d.ts +1 -7
  762. package/types/modules/Channel/components/UnreadCount/index.d.ts +1 -11
  763. package/types/modules/Channel/context/ChannelProvider.d.ts +9 -9
  764. package/types/modules/Channel/context/hooks/useDeleteMessageCallback.d.ts +2 -2
  765. package/types/modules/Channel/context/hooks/useFileInfoListWithUploaded.d.ts +3 -0
  766. package/types/modules/Channel/context/hooks/useHandleReconnectForChannelList.d.ts +23 -0
  767. package/types/modules/Channel/context/hooks/useSendVoiceMessageCallback.d.ts +3 -3
  768. package/types/modules/Channel/context/utils.d.ts +0 -1
  769. package/types/modules/Channel/index.d.ts +1 -1
  770. package/types/modules/ChannelList/components/AddChannel/index.d.ts +1 -1
  771. package/types/modules/ChannelList/components/ChannelListHeader/index.d.ts +1 -10
  772. package/types/modules/ChannelList/components/ChannelListUI/index.d.ts +1 -3
  773. package/types/modules/ChannelList/components/ChannelPreview/utils.d.ts +1 -10
  774. package/types/modules/ChannelList/components/LeaveChannel/index.d.ts +1 -8
  775. package/types/modules/ChannelList/context/ChannelListProvider.d.ts +9 -8
  776. package/types/modules/ChannelList/dux/actionTypes.d.ts +5 -2
  777. package/types/modules/ChannelList/utils.d.ts +6 -1
  778. package/types/modules/ChannelSettings/components/ModerationPanel/InviteUsersModal.d.ts +4 -3
  779. package/types/modules/CreateChannel/context/CreateChannelProvider.d.ts +45 -7
  780. package/types/modules/GroupChannel/components/FileViewer/FileViewerView.d.ts +22 -0
  781. package/types/modules/GroupChannel/components/FileViewer/index.d.ts +8 -0
  782. package/types/modules/GroupChannel/components/FrozenNotification/index.d.ts +7 -0
  783. package/types/modules/GroupChannel/components/GroupChannelHeader/GroupChannelHeaderView.d.ts +13 -0
  784. package/types/modules/GroupChannel/components/GroupChannelHeader/index.d.ts +6 -0
  785. package/types/modules/GroupChannel/components/GroupChannelUI/GroupChannelUIView.d.ts +10 -0
  786. package/types/modules/GroupChannel/components/GroupChannelUI/index.d.ts +24 -0
  787. package/types/modules/GroupChannel/components/Message/MessageView.d.ts +64 -0
  788. package/types/modules/GroupChannel/components/Message/index.d.ts +4 -0
  789. package/types/modules/GroupChannel/components/MessageInputWrapper/MessageInputWrapperView.d.ts +30 -0
  790. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/index.d.ts +4 -5
  791. package/types/modules/GroupChannel/components/MessageInputWrapper/useHandleUploadFiles.d.ts +18 -0
  792. package/types/modules/GroupChannel/components/MessageList/hooks/useScrollBehavior.d.ts +1 -0
  793. package/types/modules/GroupChannel/components/MessageList/index.d.ts +15 -0
  794. package/types/modules/GroupChannel/components/RemoveMessageModal/RemoveMessageModalView.d.ts +13 -0
  795. package/types/modules/GroupChannel/components/RemoveMessageModal/index.d.ts +4 -0
  796. package/types/modules/GroupChannel/components/SuggestedMentionList/SuggestedMentionListView.d.ts +22 -0
  797. package/types/modules/GroupChannel/components/SuggestedMentionList/index.d.ts +5 -0
  798. package/types/modules/GroupChannel/components/TypingIndicator.d.ts +11 -0
  799. package/types/modules/GroupChannel/components/UnreadCount/index.d.ts +12 -0
  800. package/types/modules/GroupChannel/context/GroupChannelProvider.d.ts +74 -0
  801. package/types/modules/GroupChannel/context/const.d.ts +7 -0
  802. package/types/modules/GroupChannel/context/hooks/useMessageActions.d.ts +23 -0
  803. package/types/modules/GroupChannel/context/hooks/useMessageListScroll.d.ts +26 -0
  804. package/types/modules/GroupChannel/context/hooks/usePreventDuplicateRequest.d.ts +9 -0
  805. package/types/modules/GroupChannel/context/hooks/useToggleReactionCallback.d.ts +4 -0
  806. package/types/modules/GroupChannel/context/utils.d.ts +8 -0
  807. package/types/modules/GroupChannel/index.d.ts +7 -0
  808. package/types/modules/GroupChannelList/components/AddGroupChannel/AddGroupChannelView.d.ts +11 -0
  809. package/types/modules/GroupChannelList/components/AddGroupChannel/index.d.ts +3 -0
  810. package/types/modules/GroupChannelList/components/GroupChannelListHeader/index.d.ts +10 -0
  811. package/types/modules/GroupChannelList/components/GroupChannelListItem/GroupChannelListItemView.d.ts +16 -0
  812. package/types/modules/GroupChannelList/components/GroupChannelListItem/index.d.ts +16 -0
  813. package/types/modules/GroupChannelList/components/GroupChannelListItem/utils.d.ts +10 -0
  814. package/types/modules/GroupChannelList/components/GroupChannelListUI/GroupChannelListUIView.d.ts +21 -0
  815. package/types/modules/GroupChannelList/components/GroupChannelListUI/index.d.ts +16 -0
  816. package/types/modules/GroupChannelList/components/GroupChannelPreviewAction.d.ts +9 -0
  817. package/types/modules/GroupChannelList/components/LeaveGroupChannel/index.d.ts +9 -0
  818. package/types/modules/GroupChannelList/context/GroupChannelListProvider.d.ts +40 -0
  819. package/types/modules/GroupChannelList/index.d.ts +7 -0
  820. package/types/modules/OpenChannel/context/utils.d.ts +1 -3
  821. package/types/modules/Thread/components/SuggestedMentionList.d.ts +5 -0
  822. package/types/modules/Thread/components/ThreadList/index.d.ts +1 -1
  823. package/types/modules/Thread/components/ThreadMessageInput/index.d.ts +1 -0
  824. package/types/modules/Thread/context/ThreadProvider.d.ts +2 -2
  825. package/types/modules/Thread/context/hooks/useDeleteMessageCallback.d.ts +1 -1
  826. package/types/modules/Thread/context/hooks/useThreadFetchers.d.ts +21 -0
  827. package/types/modules/Thread/context/utils.d.ts +0 -2
  828. package/types/modules/Thread/index.d.ts +1 -1
  829. package/types/types.d.ts +11 -3
  830. package/types/ui/FileViewer/index.d.ts +2 -2
  831. package/types/ui/ImageRenderer/index.d.ts +1 -3
  832. package/types/ui/MessageContent/index.d.ts +1 -1
  833. package/types/ui/MessageItemMenu/index.d.ts +2 -1
  834. package/types/ui/MobileMenu/types.d.ts +1 -1
  835. package/types/ui/MultipleFilesMessageItemBody/index.d.ts +2 -2
  836. package/types/utils/index.d.ts +9 -3
  837. package/types/utils/messages.d.ts +17 -0
  838. package/types/utils/typeHelpers/partialRequired.d.ts +1 -0
  839. package/ui/Accordion.js +3 -3
  840. package/ui/AccordionGroup.js +2 -2
  841. package/ui/AdminMessage.js +3 -3
  842. package/ui/Avatar.js +4 -5
  843. package/ui/Avatar.js.map +1 -1
  844. package/ui/Badge.js +5 -5
  845. package/ui/BottomSheet.js +9 -9
  846. package/ui/Button.js +3 -3
  847. package/ui/ChannelAvatar.js +6 -7
  848. package/ui/ChannelAvatar.js.map +1 -1
  849. package/ui/ConnectionStatus.js +6 -6
  850. package/ui/ContextMenu.js +7 -6
  851. package/ui/ContextMenu.js.map +1 -1
  852. package/ui/DateSeparator.js +4 -4
  853. package/ui/EmojiReactions.js +32 -22
  854. package/ui/EmojiReactions.js.map +1 -1
  855. package/ui/FileMessageItemBody.js +9 -8
  856. package/ui/FileMessageItemBody.js.map +1 -1
  857. package/ui/FileViewer.js +16 -16
  858. package/ui/Icon.js +2 -2
  859. package/ui/IconButton.js +1 -1
  860. package/ui/ImageRenderer.js +97 -70
  861. package/ui/ImageRenderer.js.map +1 -1
  862. package/ui/Input.js +3 -3
  863. package/ui/Label.js +3 -3
  864. package/ui/LinkLabel.js +3 -3
  865. package/ui/Loader.js +2 -2
  866. package/ui/MentionLabel.js +14 -13
  867. package/ui/MentionLabel.js.map +1 -1
  868. package/ui/MentionUserLabel.js +1 -1
  869. package/ui/MessageContent.js +133 -106
  870. package/ui/MessageContent.js.map +1 -1
  871. package/ui/MessageInput/hooks/usePaste.js +5 -5
  872. package/ui/MessageInput.js +20 -19
  873. package/ui/MessageInput.js.map +1 -1
  874. package/ui/MessageItemMenu.js +13 -30
  875. package/ui/MessageItemMenu.js.map +1 -1
  876. package/ui/MessageItemReactionMenu.js +16 -12
  877. package/ui/MessageItemReactionMenu.js.map +1 -1
  878. package/ui/MessageSearchFileItem.js +15 -15
  879. package/ui/MessageSearchItem.js +11 -12
  880. package/ui/MessageSearchItem.js.map +1 -1
  881. package/ui/MessageStatus.js +13 -12
  882. package/ui/MessageStatus.js.map +1 -1
  883. package/ui/MobileFeedbackMenu.js +9 -9
  884. package/ui/Modal.js +8 -8
  885. package/ui/MutedAvatarOverlay.js +2 -2
  886. package/ui/OGMessageItemBody.js +17 -16
  887. package/ui/OGMessageItemBody.js.map +1 -1
  888. package/ui/OpenChannelAdminMessage.js +3 -3
  889. package/ui/OpenChannelAvatar.js +8 -9
  890. package/ui/OpenChannelAvatar.js.map +1 -1
  891. package/ui/OpenchannelConversationHeader.js +8 -9
  892. package/ui/OpenchannelConversationHeader.js.map +1 -1
  893. package/ui/OpenchannelFileMessage.js +19 -18
  894. package/ui/OpenchannelFileMessage.js.map +1 -1
  895. package/ui/OpenchannelOGMessage.js +21 -20
  896. package/ui/OpenchannelOGMessage.js.map +1 -1
  897. package/ui/OpenchannelThumbnailMessage.js +18 -17
  898. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  899. package/ui/OpenchannelUserMessage.js +19 -18
  900. package/ui/OpenchannelUserMessage.js.map +1 -1
  901. package/ui/PlaceHolder.js +6 -6
  902. package/ui/PlaybackTime.js +3 -3
  903. package/ui/QuoteMessage.js +10 -9
  904. package/ui/QuoteMessage.js.map +1 -1
  905. package/ui/QuoteMessageInput.js +10 -9
  906. package/ui/QuoteMessageInput.js.map +1 -1
  907. package/ui/ReactionBadge.js +3 -3
  908. package/ui/ReactionButton.js +4 -4
  909. package/ui/SortByRow.js +2 -2
  910. package/ui/TextButton.js +2 -2
  911. package/ui/TextMessageItemBody.js +17 -16
  912. package/ui/TextMessageItemBody.js.map +1 -1
  913. package/ui/ThreadReplies.js +9 -10
  914. package/ui/ThreadReplies.js.map +1 -1
  915. package/ui/ThumbnailMessageItemBody.js +12 -8
  916. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  917. package/ui/Toggle.js +1 -1
  918. package/ui/Tooltip.js +3 -3
  919. package/ui/TooltipWrapper.js +1 -1
  920. package/ui/TypingIndicatorBubble.js +4 -5
  921. package/ui/TypingIndicatorBubble.js.map +1 -1
  922. package/ui/UnknownMessageItemBody.js +8 -7
  923. package/ui/UnknownMessageItemBody.js.map +1 -1
  924. package/ui/UserListItem.js +14 -13
  925. package/ui/UserListItem.js.map +1 -1
  926. package/ui/UserProfile.js +10 -11
  927. package/ui/UserProfile.js.map +1 -1
  928. package/ui/VoiceMessageInput.js +9 -9
  929. package/ui/VoiceMessageItemBody.js +10 -10
  930. package/ui/Word.js +14 -13
  931. package/ui/Word.js.map +1 -1
  932. package/useSendbirdStateContext.js +1 -1
  933. package/utils/message/isVoiceMessage.js +4 -3
  934. package/utils/message/isVoiceMessage.js.map +1 -1
  935. package/withSendbird.js +1 -1
  936. package/chunks/bundle-1pnUZsGs.js.map +0 -1
  937. package/chunks/bundle-4uNbb5ZI.js +0 -174
  938. package/chunks/bundle-4vHal8Yn.js.map +0 -1
  939. package/chunks/bundle-5iL1VCKs.js.map +0 -1
  940. package/chunks/bundle-84jQZIDS.js.map +0 -1
  941. package/chunks/bundle-8XAFqDsw.js.map +0 -1
  942. package/chunks/bundle-8tjyQiRi.js.map +0 -1
  943. package/chunks/bundle-AilPIINY.js.map +0 -1
  944. package/chunks/bundle-B_aR2jdp.js.map +0 -1
  945. package/chunks/bundle-GXGH9ESl.js.map +0 -1
  946. package/chunks/bundle-HVtbYmj3.js.map +0 -1
  947. package/chunks/bundle-KnWMPlLu.js.map +0 -1
  948. package/chunks/bundle-KpJtSqe-.js.map +0 -1
  949. package/chunks/bundle-Kt1S-50v.js.map +0 -1
  950. package/chunks/bundle-M-Qfv2tU.js.map +0 -1
  951. package/chunks/bundle-OwmPKW49.js.map +0 -1
  952. package/chunks/bundle-QSb_mwts.js +0 -1551
  953. package/chunks/bundle-QSb_mwts.js.map +0 -1
  954. package/chunks/bundle-QjcHKpDK.js.map +0 -1
  955. package/chunks/bundle-TztVqjoB.js.map +0 -1
  956. package/chunks/bundle-Uw736N77.js.map +0 -1
  957. package/chunks/bundle-X2Sm7pn5.js.map +0 -1
  958. package/chunks/bundle-XkweI7LG.js.map +0 -1
  959. package/chunks/bundle-YD2b0cnK.js.map +0 -1
  960. package/chunks/bundle-YWlIaifS.js.map +0 -1
  961. package/chunks/bundle-ZExhHi47.js.map +0 -1
  962. package/chunks/bundle-cYhstyoi.js.map +0 -1
  963. package/chunks/bundle-ej1sc1yZ.js.map +0 -1
  964. package/chunks/bundle-fDGhJhA3.js.map +0 -1
  965. package/chunks/bundle-hNJ4PtSG.js.map +0 -1
  966. package/chunks/bundle-hpM7HwDV.js.map +0 -1
  967. package/chunks/bundle-imm3o8vY.js.map +0 -1
  968. package/chunks/bundle-kHH52OEM.js.map +0 -1
  969. package/chunks/bundle-mccz6DbW.js.map +0 -1
  970. package/chunks/bundle-ms16euCo.js +0 -134
  971. package/chunks/bundle-ms16euCo.js.map +0 -1
  972. package/chunks/bundle-oW9dQm2o.js.map +0 -1
  973. package/chunks/bundle-s5uFV3hh.js.map +0 -1
  974. package/chunks/bundle-tD8xAWw2.js.map +0 -1
  975. package/chunks/bundle-tLQ87Jwz.js.map +0 -1
  976. package/chunks/bundle-wNtXTu0c.js.map +0 -1
  977. package/chunks/bundle-y_DSrC-A.js.map +0 -1
  978. package/chunks/bundle-zx8iuoIh.js.map +0 -1
  979. package/cjs/chunks/bundle-3ZyqiHAN.js.map +0 -1
  980. package/cjs/chunks/bundle-4F7u20x2.js.map +0 -1
  981. package/cjs/chunks/bundle-7iyslQY5.js.map +0 -1
  982. package/cjs/chunks/bundle-7tLE_fm_.js.map +0 -1
  983. package/cjs/chunks/bundle-85IKKe_e.js.map +0 -1
  984. package/cjs/chunks/bundle-99TH6XOD.js.map +0 -1
  985. package/cjs/chunks/bundle-BtjxYBby.js.map +0 -1
  986. package/cjs/chunks/bundle-DwxvWTiX.js.map +0 -1
  987. package/cjs/chunks/bundle-EKK1TWOg.js.map +0 -1
  988. package/cjs/chunks/bundle-EdNscsik.js.map +0 -1
  989. package/cjs/chunks/bundle-F9aI-PNs.js.map +0 -1
  990. package/cjs/chunks/bundle-ImsJYvdy.js.map +0 -1
  991. package/cjs/chunks/bundle-M_JdGFB9.js.map +0 -1
  992. package/cjs/chunks/bundle-NZXUf6_L.js.map +0 -1
  993. package/cjs/chunks/bundle-OOMB_O1L.js.map +0 -1
  994. package/cjs/chunks/bundle-OU36L4lP.js.map +0 -1
  995. package/cjs/chunks/bundle-OmshX9RP.js.map +0 -1
  996. package/cjs/chunks/bundle-Ox6f1Pr4.js.map +0 -1
  997. package/cjs/chunks/bundle-PLz0cFBi.js.map +0 -1
  998. package/cjs/chunks/bundle-Pa-zxMUU.js +0 -179
  999. package/cjs/chunks/bundle-Q7Qb_8Qy.js.map +0 -1
  1000. package/cjs/chunks/bundle-R55qwYIC.js.map +0 -1
  1001. package/cjs/chunks/bundle-RWm1ToHA.js.map +0 -1
  1002. package/cjs/chunks/bundle-TGcw51ZD.js.map +0 -1
  1003. package/cjs/chunks/bundle-UHsDbhGB.js.map +0 -1
  1004. package/cjs/chunks/bundle-WuVcsZSE.js.map +0 -1
  1005. package/cjs/chunks/bundle-XIMyjFuW.js.map +0 -1
  1006. package/cjs/chunks/bundle-XqtnTNnc.js.map +0 -1
  1007. package/cjs/chunks/bundle-_8JkuEc5.js.map +0 -1
  1008. package/cjs/chunks/bundle-ccJm_pud.js +0 -136
  1009. package/cjs/chunks/bundle-ccJm_pud.js.map +0 -1
  1010. package/cjs/chunks/bundle-e6jRRPqy.js.map +0 -1
  1011. package/cjs/chunks/bundle-fKDcA4eI.js.map +0 -1
  1012. package/cjs/chunks/bundle-gBGbUm4f.js.map +0 -1
  1013. package/cjs/chunks/bundle-hVnmDMOX.js.map +0 -1
  1014. package/cjs/chunks/bundle-idn81XsS.js.map +0 -1
  1015. package/cjs/chunks/bundle-j5FA7ApI.js.map +0 -1
  1016. package/cjs/chunks/bundle-jayPpL4B.js.map +0 -1
  1017. package/cjs/chunks/bundle-jr9hFzH_.js.map +0 -1
  1018. package/cjs/chunks/bundle-oLDSV_xg.js.map +0 -1
  1019. package/cjs/chunks/bundle-qbpoRdJa.js.map +0 -1
  1020. package/cjs/chunks/bundle-rD_EqTu8.js +0 -1555
  1021. package/cjs/chunks/bundle-rD_EqTu8.js.map +0 -1
  1022. package/cjs/chunks/bundle-s5Lt0vKF.js.map +0 -1
  1023. package/cjs/chunks/bundle-sGVgQ4l8.js.map +0 -1
  1024. package/cjs/chunks/bundle-trkwub16.js.map +0 -1
  1025. package/cjs/chunks/bundle-wCSyCEPr.js.map +0 -1
  1026. package/cjs/chunks/bundle-wDJ0vmp7.js.map +0 -1
  1027. package/cjs/chunks/bundle-wTtkySLW.js.map +0 -1
  1028. package/cjs/chunks/bundle-waeY4XbU.js.map +0 -1
  1029. package/cjs/chunks/bundle-wwqhN6T8.js.map +0 -1
  1030. package/types/modules/Channel/components/RemoveMessageModal.d.ts +0 -9
  1031. package/types/modules/Channel/context/compareMessagesForGrouping.d.ts +0 -10
  1032. package/types/modules/Channel/context/hooks/useStatefulFileInfoList.d.ts +0 -3
  1033. package/types/modules/Thread/context/hooks/useGetNextThreadsCallback.d.ts +0 -17
  1034. package/types/modules/Thread/context/hooks/useGetPrevThreadsCallback.d.ts +0 -17
  1035. package/types/modules/Thread/context/hooks/useGetThreadList.d.ts +0 -14
  1036. package/types/utils/createStatefulFileInfoList.d.ts +0 -11
  1037. package/types/modules/{Channel/components/ChannelHeader → GroupChannel/components/GroupChannelHeader}/utils.d.ts +0 -0
  1038. package/types/modules/{Channel/components/MessageInput → GroupChannel/components/MessageInputWrapper}/VoiceMessageInputWrapper.d.ts +1 -1
  1039. /package/types/modules/{Channel → GroupChannel}/components/MessageList/getMessagePartsInfo.d.ts +0 -0
  1040. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/SuggestedUserMentionItem.d.ts +0 -0
  1041. /package/types/modules/{Channel → GroupChannel}/components/SuggestedMentionList/utils.d.ts +0 -0
  1042. /package/types/modules/{Channel → GroupChannel}/components/SuggestedReplies/index.d.ts +0 -0
@@ -3,19 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var LocalizationContext = require('../chunks/bundle-M_JdGFB9.js');
7
- var ui_Modal = require('../chunks/bundle-7iyslQY5.js');
8
- var consts = require('../chunks/bundle-trkwub16.js');
6
+ var LocalizationContext = require('../chunks/bundle-6SzyBwQ5.js');
7
+ var ui_Modal = require('../chunks/bundle-6L4HCLmb.js');
8
+ var consts = require('../chunks/bundle-UAspU0bH.js');
9
9
  var useSendbirdStateContext = require('../useSendbirdStateContext.js');
10
- require('../chunks/bundle-FJe6Dl-f.js');
11
- require('../chunks/bundle-lk7syGfV.js');
12
- require('../chunks/bundle-UHsDbhGB.js');
10
+ require('../chunks/bundle-H9rcn1PJ.js');
11
+ require('../chunks/bundle-AN4eZ2xs.js');
12
+ require('../chunks/bundle-DhtZdKsr.js');
13
13
  require('react-dom');
14
- require('../chunks/bundle-wTtkySLW.js');
15
- require('../chunks/bundle-R55qwYIC.js');
14
+ require('../chunks/bundle-Y-_KhZFq.js');
15
+ require('../chunks/bundle-6zBNmPOP.js');
16
16
  require('../ui/IconButton.js');
17
17
  require('../ui/Button.js');
18
- require('../chunks/bundle-wDJ0vmp7.js');
18
+ require('../chunks/bundle-VxcYXhwp.js');
19
19
  require('../ui/Icon.js');
20
20
  require('../withSendbird.js');
21
21
 
@@ -58,7 +58,7 @@ var VoiceRecorderProvider = function (props) {
58
58
  var _e = React.useState(null), webAudioUtils = _e[0], setWebAudioUtils = _e[1];
59
59
  React.useEffect(function () {
60
60
  if (isVoiceMessageEnabled && !webAudioUtils) {
61
- Promise.resolve().then(function () { return require('../chunks/bundle-3ZyqiHAN.js'); }).then(function (data) {
61
+ Promise.resolve().then(function () { return require('../chunks/bundle-66GvrL2V.js'); }).then(function (data) {
62
62
  setWebAudioUtils(data);
63
63
  });
64
64
  }
@@ -76,6 +76,7 @@ var VoiceRecorderProvider = function (props) {
76
76
  }
77
77
  checkPermission();
78
78
  (_b = (_a = navigator === null || navigator === void 0 ? void 0 : navigator.mediaDevices) === null || _a === void 0 ? void 0 : _a.getUserMedia) === null || _b === void 0 ? void 0 : _b.call(_a, { audio: true }).then(function (stream) {
79
+ var _a;
79
80
  logger.info('VoiceRecorder: Succeeded getting media stream.', stream);
80
81
  setIsRecordable(true);
81
82
  var mediaRecorder = new MediaRecorder(stream, {
@@ -102,9 +103,9 @@ var VoiceRecorderProvider = function (props) {
102
103
  (_c = (_a = stream === null || stream === void 0 ? void 0 : stream.getAudioTracks) === null || _a === void 0 ? void 0 : (_b = _a.call(stream)).forEach) === null || _c === void 0 ? void 0 : _c.call(_b, function (track) { return track === null || track === void 0 ? void 0 : track.stop(); });
103
104
  setIsRecordable(false);
104
105
  };
106
+ mediaRecorder.onstart = (_a = eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingStarted) !== null && _a !== void 0 ? _a : noop;
105
107
  mediaRecorder === null || mediaRecorder === void 0 ? void 0 : mediaRecorder.start();
106
108
  setMediaRecorder(mediaRecorder);
107
- eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler.onRecordingStarted();
108
109
  }).catch(function (err) {
109
110
  logger.error('VoiceRecorder: Failed getting media stream.', err);
110
111
  setMediaRecorder(null);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"context.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,19 +3,19 @@
3
3
  var React = require('react');
4
4
  var VoiceRecorder_context = require('./context.js');
5
5
  var useSendbirdStateContext = require('../useSendbirdStateContext.js');
6
- require('../chunks/bundle-M_JdGFB9.js');
7
- require('../chunks/bundle-FJe6Dl-f.js');
8
- require('../chunks/bundle-lk7syGfV.js');
9
- require('../chunks/bundle-7iyslQY5.js');
10
- require('../chunks/bundle-UHsDbhGB.js');
6
+ require('../chunks/bundle-6SzyBwQ5.js');
7
+ require('../chunks/bundle-H9rcn1PJ.js');
8
+ require('../chunks/bundle-AN4eZ2xs.js');
9
+ require('../chunks/bundle-6L4HCLmb.js');
10
+ require('../chunks/bundle-DhtZdKsr.js');
11
11
  require('react-dom');
12
- require('../chunks/bundle-wTtkySLW.js');
13
- require('../chunks/bundle-R55qwYIC.js');
12
+ require('../chunks/bundle-Y-_KhZFq.js');
13
+ require('../chunks/bundle-6zBNmPOP.js');
14
14
  require('../ui/IconButton.js');
15
15
  require('../ui/Button.js');
16
- require('../chunks/bundle-wDJ0vmp7.js');
16
+ require('../chunks/bundle-VxcYXhwp.js');
17
17
  require('../ui/Icon.js');
18
- require('../chunks/bundle-trkwub16.js');
18
+ require('../chunks/bundle-UAspU0bH.js');
19
19
  require('../withSendbird.js');
20
20
 
21
21
  // export interface UseVoiceRecorderProps extends VoiceRecorderEventHandler {
@@ -0,0 +1,553 @@
1
+ 'use strict';
2
+
3
+ var _tslib = require('./bundle-DhtZdKsr.js');
4
+ var React = require('react');
5
+ var message = require('@sendbird/chat/message');
6
+ var groupChannel = require('@sendbird/chat/groupChannel');
7
+ var uikitTools = require('@sendbird/uikit-tools');
8
+ var UserProfileContext = require('./bundle-TPy0gj60.js');
9
+ var useSendbirdStateContext = require('../useSendbirdStateContext.js');
10
+ var useToggleReactionCallback = require('./bundle-3eaFVTUX.js');
11
+ var resolvedReplyType = require('./bundle-YjNFrYVt.js');
12
+ var utils = require('./bundle-jcgWT1ad.js');
13
+ var index$1 = require('./bundle-zHDXCFIb.js');
14
+ var index = require('./bundle-CZTvTAu-.js');
15
+ var pubSub_topics = require('./bundle-77qvrXp8.js');
16
+ var consts = require('./bundle-UAspU0bH.js');
17
+
18
+ function runCallback(callback, lazy) {
19
+ if (lazy === void 0) { lazy = true; }
20
+ if (lazy) {
21
+ setTimeout(function () {
22
+ callback();
23
+ });
24
+ }
25
+ else {
26
+ callback();
27
+ }
28
+ }
29
+ function useMessageListScroll() {
30
+ var scrollRef = React.useRef(null);
31
+ var scrollDistanceFromBottomRef = React.useRef(0);
32
+ var scrollPubSub = React.useState(function () { return index.pubSubFactory(); })[0];
33
+ var _a = React.useState(false), isScrollBottomReached = _a[0], setIsScrollBottomReached = _a[1];
34
+ React.useLayoutEffect(function () {
35
+ var unsubscribes = [];
36
+ unsubscribes.push(scrollPubSub.subscribe('scrollToBottom', function (resolve) {
37
+ runCallback(function () {
38
+ if (!scrollRef.current)
39
+ return;
40
+ scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
41
+ // Update data by manual update
42
+ scrollDistanceFromBottomRef.current = 0;
43
+ setIsScrollBottomReached(true);
44
+ if (resolve)
45
+ resolve();
46
+ });
47
+ }));
48
+ unsubscribes.push(scrollPubSub.subscribe('scroll', function (_a) {
49
+ var top = _a.top, _b = _a.animated, animated = _b === void 0 ? false : _b, lazy = _a.lazy, resolve = _a.resolve;
50
+ runCallback(function () {
51
+ if (!scrollRef.current)
52
+ return;
53
+ var _a = scrollRef.current, scrollTop = _a.scrollTop, scrollHeight = _a.scrollHeight, clientHeight = _a.clientHeight;
54
+ scrollRef.current.scroll({ top: top, behavior: animated ? 'smooth' : 'auto' });
55
+ // Update data by manual update
56
+ scrollDistanceFromBottomRef.current = Math.max(0, scrollHeight - scrollTop - clientHeight);
57
+ setIsScrollBottomReached(scrollDistanceFromBottomRef.current === 0);
58
+ if (resolve)
59
+ resolve();
60
+ }, lazy);
61
+ }));
62
+ return function () {
63
+ unsubscribes.forEach(function (_a) {
64
+ var remove = _a.remove;
65
+ return remove();
66
+ });
67
+ };
68
+ }, []);
69
+ // Update data by scroll events
70
+ index$1.useOnScrollPositionChangeDetectorWithRef(scrollRef, {
71
+ onReachedTop: function (_a) {
72
+ var distanceFromBottom = _a.distanceFromBottom;
73
+ setIsScrollBottomReached(false);
74
+ scrollDistanceFromBottomRef.current = distanceFromBottom;
75
+ },
76
+ onInBetween: function (_a) {
77
+ var distanceFromBottom = _a.distanceFromBottom;
78
+ setIsScrollBottomReached(false);
79
+ scrollDistanceFromBottomRef.current = distanceFromBottom;
80
+ },
81
+ onReachedBottom: function (_a) {
82
+ var distanceFromBottom = _a.distanceFromBottom;
83
+ setIsScrollBottomReached(true);
84
+ scrollDistanceFromBottomRef.current = distanceFromBottom;
85
+ },
86
+ });
87
+ return {
88
+ scrollRef: scrollRef,
89
+ scrollPubSub: scrollPubSub,
90
+ isScrollBottomReached: isScrollBottomReached,
91
+ setIsScrollBottomReached: setIsScrollBottomReached,
92
+ scrollDistanceFromBottomRef: scrollDistanceFromBottomRef,
93
+ };
94
+ }
95
+
96
+ var pass = function (value) { return value; };
97
+ /**
98
+ * @description This hook controls common processes related to message sending, updating.
99
+ * */
100
+ function useMessageActions(params) {
101
+ var _this = this;
102
+ var _a = params.onBeforeSendUserMessage, onBeforeSendUserMessage = _a === void 0 ? pass : _a, _b = params.onBeforeSendFileMessage, onBeforeSendFileMessage = _b === void 0 ? pass : _b, _c = params.onBeforeUpdateUserMessage, onBeforeUpdateUserMessage = _c === void 0 ? pass : _c, _d = params.onBeforeSendVoiceMessage, onBeforeSendVoiceMessage = _d === void 0 ? pass : _d, _e = params.onBeforeSendMultipleFilesMessage, onBeforeSendMultipleFilesMessage = _e === void 0 ? pass : _e, sendFileMessage = params.sendFileMessage, sendMultipleFilesMessage = params.sendMultipleFilesMessage, sendUserMessage = params.sendUserMessage, updateUserMessage = params.updateUserMessage, scrollToBottom = params.scrollToBottom, quoteMessage = params.quoteMessage, replyType = params.replyType;
103
+ var buildInternalMessageParams = React.useCallback(function (basicParams) {
104
+ var messageParams = _tslib.__assign({}, basicParams);
105
+ if (params.quoteMessage && replyType !== 'NONE') {
106
+ messageParams.isReplyToChannel = true;
107
+ messageParams.parentMessageId = quoteMessage.messageId;
108
+ }
109
+ return messageParams;
110
+ }, [replyType, quoteMessage]);
111
+ return {
112
+ sendUserMessage: React.useCallback(function (params) { return _tslib.__awaiter(_this, void 0, void 0, function () {
113
+ var internalParams, processedParams;
114
+ return _tslib.__generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0:
117
+ internalParams = buildInternalMessageParams(params);
118
+ return [4 /*yield*/, onBeforeSendUserMessage(internalParams)];
119
+ case 1:
120
+ processedParams = _a.sent();
121
+ return [2 /*return*/, sendUserMessage(processedParams, function () { return scrollToBottom(); })];
122
+ }
123
+ });
124
+ }); }, [buildInternalMessageParams, sendUserMessage, scrollToBottom]),
125
+ sendFileMessage: React.useCallback(function (params) { return _tslib.__awaiter(_this, void 0, void 0, function () {
126
+ var internalParams, processedParams;
127
+ return _tslib.__generator(this, function (_a) {
128
+ switch (_a.label) {
129
+ case 0:
130
+ internalParams = buildInternalMessageParams(params);
131
+ return [4 /*yield*/, onBeforeSendFileMessage(internalParams)];
132
+ case 1:
133
+ processedParams = _a.sent();
134
+ return [2 /*return*/, sendFileMessage(processedParams, function () { return scrollToBottom(); })];
135
+ }
136
+ });
137
+ }); }, [buildInternalMessageParams, sendFileMessage, scrollToBottom]),
138
+ sendMultipleFilesMessage: React.useCallback(function (params) { return _tslib.__awaiter(_this, void 0, void 0, function () {
139
+ var internalParams, processedParams;
140
+ return _tslib.__generator(this, function (_a) {
141
+ switch (_a.label) {
142
+ case 0:
143
+ internalParams = buildInternalMessageParams(params);
144
+ return [4 /*yield*/, onBeforeSendMultipleFilesMessage(internalParams)];
145
+ case 1:
146
+ processedParams = _a.sent();
147
+ return [2 /*return*/, sendMultipleFilesMessage(processedParams, function () { return scrollToBottom(); })];
148
+ }
149
+ });
150
+ }); }, [buildInternalMessageParams, sendMultipleFilesMessage, scrollToBottom]),
151
+ sendVoiceMessage: React.useCallback(function (params, duration) { return _tslib.__awaiter(_this, void 0, void 0, function () {
152
+ var internalParams, processedParams;
153
+ return _tslib.__generator(this, function (_a) {
154
+ switch (_a.label) {
155
+ case 0:
156
+ internalParams = buildInternalMessageParams(_tslib.__assign(_tslib.__assign({}, params), { fileName: consts.VOICE_MESSAGE_FILE_NAME, mimeType: consts.VOICE_MESSAGE_MIME_TYPE, metaArrays: [
157
+ new message.MessageMetaArray({
158
+ key: consts.META_ARRAY_VOICE_DURATION_KEY,
159
+ value: ["".concat(duration)],
160
+ }),
161
+ new message.MessageMetaArray({
162
+ key: consts.META_ARRAY_MESSAGE_TYPE_KEY,
163
+ value: [consts.META_ARRAY_MESSAGE_TYPE_VALUE__VOICE],
164
+ }),
165
+ ] }));
166
+ return [4 /*yield*/, onBeforeSendVoiceMessage(internalParams)];
167
+ case 1:
168
+ processedParams = _a.sent();
169
+ return [2 /*return*/, sendFileMessage(processedParams, function () { return scrollToBottom(); })];
170
+ }
171
+ });
172
+ }); }, [buildInternalMessageParams, sendFileMessage, scrollToBottom]),
173
+ updateUserMessage: React.useCallback(function (messageId, params) { return _tslib.__awaiter(_this, void 0, void 0, function () {
174
+ var internalParams, processedParams;
175
+ return _tslib.__generator(this, function (_a) {
176
+ switch (_a.label) {
177
+ case 0:
178
+ internalParams = buildInternalMessageParams(params);
179
+ return [4 /*yield*/, onBeforeUpdateUserMessage(internalParams)];
180
+ case 1:
181
+ processedParams = _a.sent();
182
+ return [2 /*return*/, updateUserMessage(messageId, processedParams)];
183
+ }
184
+ });
185
+ }); }, [buildInternalMessageParams, updateUserMessage]),
186
+ };
187
+ }
188
+
189
+ /**
190
+ * @description This hook is designed to prevent scroll flickering caused by duplicate calls of onEndReached and onTopReached.
191
+ * It controls the loading of messages to ensure a single request for message retrieval.
192
+ * */
193
+ var usePreventDuplicateRequest = function () {
194
+ var context = React.useRef({ locked: false, count: 0 }).current;
195
+ return {
196
+ lock: function () {
197
+ context.locked = true;
198
+ },
199
+ run: function (callback) {
200
+ return _tslib.__awaiter(this, void 0, void 0, function () {
201
+ return _tslib.__generator(this, function (_b) {
202
+ switch (_b.label) {
203
+ case 0:
204
+ if (context.locked && context.count > 0)
205
+ return [2 /*return*/];
206
+ _b.label = 1;
207
+ case 1:
208
+ _b.trys.push([1, 3, , 4]);
209
+ context.count++;
210
+ return [4 /*yield*/, callback()];
211
+ case 2:
212
+ _b.sent();
213
+ return [3 /*break*/, 4];
214
+ case 3:
215
+ _b.sent();
216
+ return [3 /*break*/, 4];
217
+ case 4: return [2 /*return*/];
218
+ }
219
+ });
220
+ });
221
+ },
222
+ release: function () {
223
+ context.locked = false;
224
+ context.count = 0;
225
+ },
226
+ };
227
+ };
228
+
229
+ var GroupChannelContext = React.createContext(null);
230
+ var GroupChannelProvider = function (props) {
231
+ var _a, _b, _c;
232
+ var channelUrl = props.channelUrl, children = props.children, moduleReactionEnabled = props.isReactionEnabled, moduleReplyType = props.replyType, moduleThreadReplySelectType = props.threadReplySelectType, _d = props.isMessageGroupingEnabled, isMessageGroupingEnabled = _d === void 0 ? true : _d, isMultipleFilesMessageEnabled = props.isMultipleFilesMessageEnabled, showSearchIcon = props.showSearchIcon, _e = props.disableMarkAsRead, disableMarkAsRead = _e === void 0 ? false : _e, _f = props.scrollBehavior, scrollBehavior = _f === void 0 ? 'auto' : _f, startingPoint = props.startingPoint, _animatedMessageId = props.animatedMessageId, messageListQueryParams = props.messageListQueryParams, onBeforeSendUserMessage = props.onBeforeSendUserMessage, onBeforeSendFileMessage = props.onBeforeSendFileMessage, onBeforeSendVoiceMessage = props.onBeforeSendVoiceMessage, onBeforeSendMultipleFilesMessage = props.onBeforeSendMultipleFilesMessage, onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage, onMessageAnimated = props.onMessageAnimated, onBackClick = props.onBackClick, onChatHeaderActionClick = props.onChatHeaderActionClick, onReplyInThreadClick = props.onReplyInThreadClick, onSearchClick = props.onSearchClick, onQuoteMessageClick = props.onQuoteMessageClick, renderUserMentionItem = props.renderUserMentionItem;
233
+ // Global context
234
+ var _g = useSendbirdStateContext.useSendbirdStateContext(), config = _g.config, stores = _g.stores;
235
+ var sdkStore = stores.sdkStore;
236
+ var markAsReadScheduler = config.markAsReadScheduler;
237
+ // State
238
+ var _h = React.useState(null), quoteMessage = _h[0], setQuoteMessage = _h[1];
239
+ var _j = React.useState(0), animatedMessageId = _j[0], setAnimatedMessageId = _j[1];
240
+ var _k = React.useState(null), currentChannel = _k[0], setCurrentChannel = _k[1];
241
+ // Ref
242
+ var _l = useMessageListScroll(), scrollRef = _l.scrollRef, scrollPubSub = _l.scrollPubSub, scrollDistanceFromBottomRef = _l.scrollDistanceFromBottomRef, isScrollBottomReached = _l.isScrollBottomReached, setIsScrollBottomReached = _l.setIsScrollBottomReached;
243
+ var messageInputRef = React.useRef(null);
244
+ var toggleReaction = useToggleReactionCallback.useToggleReactionCallback(currentChannel, config.logger);
245
+ var replyType = resolvedReplyType.getCaseResolvedReplyType(moduleReplyType !== null && moduleReplyType !== void 0 ? moduleReplyType : config.groupChannel.replyType).upperCase;
246
+ var threadReplySelectType = resolvedReplyType.getCaseResolvedThreadReplySelectType(moduleThreadReplySelectType !== null && moduleThreadReplySelectType !== void 0 ? moduleThreadReplySelectType : config.groupChannel.threadReplySelectType).upperCase;
247
+ var chatReplyType = uikitTools.useIIFE(function () {
248
+ if (replyType === 'NONE')
249
+ return message.ReplyType.NONE;
250
+ return message.ReplyType.ONLY_REPLY_TO_CHANNEL;
251
+ });
252
+ var isReactionEnabled = uikitTools.useIIFE(function () {
253
+ if (!currentChannel || currentChannel.isSuper || currentChannel.isBroadcast || currentChannel.isEphemeral)
254
+ return false;
255
+ return moduleReactionEnabled !== null && moduleReactionEnabled !== void 0 ? moduleReactionEnabled : config.groupChannel.enableReactions;
256
+ });
257
+ var nicknamesMap = React.useMemo(function () { var _a; return new Map(((_a = currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.members) !== null && _a !== void 0 ? _a : []).map(function (_a) {
258
+ var userId = _a.userId, nickname = _a.nickname;
259
+ return [userId, nickname];
260
+ })); }, [currentChannel === null || currentChannel === void 0 ? void 0 : currentChannel.members]);
261
+ var preventDuplicateRequest = usePreventDuplicateRequest();
262
+ var messageDataSource = uikitTools.useGroupChannelMessages(sdkStore.sdk, currentChannel, {
263
+ startingPoint: startingPoint,
264
+ replyType: chatReplyType,
265
+ collectionCreator: getCollectionCreator(currentChannel, messageListQueryParams),
266
+ shouldCountNewMessages: function () { return !isScrollBottomReached; },
267
+ markAsRead: function (channels) {
268
+ if (!disableMarkAsRead && isScrollBottomReached) {
269
+ channels.forEach(function (it) { return markAsReadScheduler.push(it); });
270
+ }
271
+ },
272
+ onMessagesReceived: function () {
273
+ if (isScrollBottomReached && utils.isContextMenuClosed()) {
274
+ scrollPubSub.publish('scrollToBottom', null);
275
+ }
276
+ },
277
+ onChannelDeleted: function () { return setCurrentChannel(null); },
278
+ onCurrentUserBanned: function () { return setCurrentChannel(null); },
279
+ onChannelUpdated: function (channel) { return setCurrentChannel(channel); },
280
+ logger: config.logger,
281
+ });
282
+ index$1.useOnScrollPositionChangeDetectorWithRef(scrollRef, {
283
+ onReachedTop: function () {
284
+ return _tslib.__awaiter(this, void 0, void 0, function () {
285
+ var _this = this;
286
+ return _tslib.__generator(this, function (_a) {
287
+ switch (_a.label) {
288
+ case 0:
289
+ preventDuplicateRequest.lock();
290
+ return [4 /*yield*/, preventDuplicateRequest.run(function () { return _tslib.__awaiter(_this, void 0, void 0, function () {
291
+ var prevViewInfo;
292
+ return _tslib.__generator(this, function (_a) {
293
+ switch (_a.label) {
294
+ case 0:
295
+ if (!messageDataSource.hasPrevious())
296
+ return [2 /*return*/];
297
+ prevViewInfo = { scrollTop: scrollRef.current.scrollTop, scrollHeight: scrollRef.current.scrollHeight };
298
+ return [4 /*yield*/, messageDataSource.loadPrevious()];
299
+ case 1:
300
+ _a.sent();
301
+ // FIXME: We need a good way to detect right after the rendering of the screen instead of using setTimeout.
302
+ setTimeout(function () {
303
+ var nextViewInfo = { scrollHeight: scrollRef.current.scrollHeight };
304
+ var viewUpdated = prevViewInfo.scrollHeight < nextViewInfo.scrollHeight;
305
+ if (viewUpdated) {
306
+ var bottomOffset = prevViewInfo.scrollHeight - prevViewInfo.scrollTop;
307
+ scrollPubSub.publish('scroll', { top: nextViewInfo.scrollHeight - bottomOffset, lazy: false });
308
+ }
309
+ });
310
+ return [2 /*return*/];
311
+ }
312
+ });
313
+ }); })];
314
+ case 1:
315
+ _a.sent();
316
+ preventDuplicateRequest.release();
317
+ return [2 /*return*/];
318
+ }
319
+ });
320
+ });
321
+ },
322
+ onReachedBottom: function () {
323
+ return _tslib.__awaiter(this, void 0, void 0, function () {
324
+ var _this = this;
325
+ return _tslib.__generator(this, function (_a) {
326
+ switch (_a.label) {
327
+ case 0:
328
+ preventDuplicateRequest.lock();
329
+ return [4 /*yield*/, preventDuplicateRequest.run(function () { return _tslib.__awaiter(_this, void 0, void 0, function () {
330
+ var prevViewInfo;
331
+ return _tslib.__generator(this, function (_a) {
332
+ switch (_a.label) {
333
+ case 0:
334
+ if (!messageDataSource.hasNext())
335
+ return [2 /*return*/];
336
+ prevViewInfo = { scrollTop: scrollRef.current.scrollTop, scrollHeight: scrollRef.current.scrollHeight };
337
+ return [4 /*yield*/, messageDataSource.loadNext()];
338
+ case 1:
339
+ _a.sent();
340
+ setTimeout(function () {
341
+ var nextViewInfo = { scrollHeight: scrollRef.current.scrollHeight };
342
+ var viewUpdated = prevViewInfo.scrollHeight < nextViewInfo.scrollHeight;
343
+ if (viewUpdated) {
344
+ scrollPubSub.publish('scroll', { top: prevViewInfo.scrollTop, lazy: false });
345
+ }
346
+ });
347
+ return [2 /*return*/];
348
+ }
349
+ });
350
+ }); })];
351
+ case 1:
352
+ _a.sent();
353
+ preventDuplicateRequest.release();
354
+ if (currentChannel && !messageDataSource.hasNext()) {
355
+ messageDataSource.resetNewMessages();
356
+ if (!disableMarkAsRead)
357
+ markAsReadScheduler.push(currentChannel);
358
+ }
359
+ return [2 /*return*/];
360
+ }
361
+ });
362
+ });
363
+ },
364
+ });
365
+ // SideEffect: Fetch and set to current channel by channelUrl prop.
366
+ uikitTools.useAsyncEffect(function () { return _tslib.__awaiter(void 0, void 0, void 0, function () {
367
+ var channel;
368
+ return _tslib.__generator(this, function (_b) {
369
+ switch (_b.label) {
370
+ case 0:
371
+ if (!(sdkStore.initialized && channelUrl)) return [3 /*break*/, 5];
372
+ _b.label = 1;
373
+ case 1:
374
+ _b.trys.push([1, 3, 4, 5]);
375
+ return [4 /*yield*/, sdkStore.sdk.groupChannel.getChannel(channelUrl)];
376
+ case 2:
377
+ channel = _b.sent();
378
+ setCurrentChannel(channel);
379
+ return [3 /*break*/, 5];
380
+ case 3:
381
+ _b.sent();
382
+ setCurrentChannel(null);
383
+ return [3 /*break*/, 5];
384
+ case 4:
385
+ // Reset states when channel changes
386
+ setQuoteMessage(null);
387
+ setAnimatedMessageId(0);
388
+ return [7 /*endfinally*/];
389
+ case 5: return [2 /*return*/];
390
+ }
391
+ });
392
+ }); }, [sdkStore.initialized, sdkStore.sdk, channelUrl]);
393
+ // SideEffect: Scroll to the bottom
394
+ // - On the initialized message list
395
+ // - On messages sent from the thread
396
+ uikitTools.useAsyncLayoutEffect(function () { return _tslib.__awaiter(void 0, void 0, void 0, function () {
397
+ var onSentMessageFromOtherModule, subscribes;
398
+ return _tslib.__generator(this, function (_a) {
399
+ switch (_a.label) {
400
+ case 0:
401
+ if (!messageDataSource.initialized) return [3 /*break*/, 2];
402
+ // it prevents message load from previous/next before scroll to bottom finished.
403
+ preventDuplicateRequest.lock();
404
+ return [4 /*yield*/, preventDuplicateRequest.run(function () {
405
+ return new Promise(function (resolve) {
406
+ scrollPubSub.publish('scrollToBottom', resolve);
407
+ });
408
+ })];
409
+ case 1:
410
+ _a.sent();
411
+ preventDuplicateRequest.release();
412
+ _a.label = 2;
413
+ case 2:
414
+ onSentMessageFromOtherModule = function (data) {
415
+ if (data.channel.url === channelUrl)
416
+ scrollPubSub.publish('scrollToBottom', null);
417
+ };
418
+ subscribes = [
419
+ config.pubSub.subscribe(pubSub_topics.pubSubTopics.SEND_USER_MESSAGE, onSentMessageFromOtherModule),
420
+ config.pubSub.subscribe(pubSub_topics.pubSubTopics.SEND_FILE_MESSAGE, onSentMessageFromOtherModule),
421
+ ];
422
+ return [2 /*return*/, function () {
423
+ subscribes.forEach(function (subscribe) { return subscribe.remove(); });
424
+ scrollPubSub.publish('scrollToBottom', null);
425
+ }];
426
+ }
427
+ });
428
+ }); }, [messageDataSource.initialized, channelUrl]);
429
+ // SideEffect: Reset MessageCollection with startingPoint prop.
430
+ React.useEffect(function () {
431
+ if (typeof startingPoint === 'number') {
432
+ // We do not handle animation for message search here.
433
+ // Please update the animatedMessageId prop to trigger the animation.
434
+ scrollToMessage(startingPoint, 0, false);
435
+ }
436
+ }, [startingPoint]);
437
+ // SideEffect: Update animatedMessageId prop to state.
438
+ React.useEffect(function () {
439
+ if (_animatedMessageId)
440
+ setAnimatedMessageId(_animatedMessageId);
441
+ }, [_animatedMessageId]);
442
+ var scrollToBottom = uikitTools.usePreservedCallback(function () { return _tslib.__awaiter(void 0, void 0, void 0, function () {
443
+ return _tslib.__generator(this, function (_a) {
444
+ switch (_a.label) {
445
+ case 0:
446
+ if (!scrollRef.current)
447
+ return [2 /*return*/];
448
+ setAnimatedMessageId(0);
449
+ setIsScrollBottomReached(true);
450
+ if (!(config.isOnline && messageDataSource.hasNext())) return [3 /*break*/, 2];
451
+ return [4 /*yield*/, messageDataSource.resetWithStartingPoint(Number.MAX_SAFE_INTEGER)];
452
+ case 1:
453
+ _a.sent();
454
+ scrollPubSub.publish('scrollToBottom', null);
455
+ return [3 /*break*/, 3];
456
+ case 2:
457
+ scrollPubSub.publish('scrollToBottom', null);
458
+ _a.label = 3;
459
+ case 3:
460
+ if (currentChannel && !messageDataSource.hasNext()) {
461
+ messageDataSource.resetNewMessages();
462
+ if (!disableMarkAsRead)
463
+ markAsReadScheduler.push(currentChannel);
464
+ }
465
+ return [2 /*return*/];
466
+ }
467
+ });
468
+ }); });
469
+ var scrollToMessage = uikitTools.usePreservedCallback(function (createdAt, messageId, animated) {
470
+ if (animated === void 0) { animated = true; }
471
+ return _tslib.__awaiter(void 0, void 0, void 0, function () {
472
+ var element, parentNode, clickHandler, message, topOffset;
473
+ return _tslib.__generator(this, function (_a) {
474
+ switch (_a.label) {
475
+ case 0:
476
+ element = scrollRef.current;
477
+ parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
478
+ clickHandler = {
479
+ activate: function () {
480
+ if (!element || !parentNode)
481
+ return;
482
+ element.style.pointerEvents = 'auto';
483
+ parentNode.style.cursor = 'auto';
484
+ },
485
+ deactivate: function () {
486
+ if (!element || !parentNode)
487
+ return;
488
+ element.style.pointerEvents = 'none';
489
+ parentNode.style.cursor = 'wait';
490
+ },
491
+ };
492
+ clickHandler.deactivate();
493
+ setAnimatedMessageId(0);
494
+ message = messageDataSource.messages.find(function (it) { return it.messageId === messageId || it.createdAt === createdAt; });
495
+ if (!message) return [3 /*break*/, 1];
496
+ topOffset = utils.getMessageTopOffset(message.createdAt);
497
+ if (topOffset)
498
+ scrollPubSub.publish('scroll', { top: topOffset });
499
+ if (animated)
500
+ setAnimatedMessageId(messageId);
501
+ return [3 /*break*/, 3];
502
+ case 1: return [4 /*yield*/, messageDataSource.resetWithStartingPoint(createdAt)];
503
+ case 2:
504
+ _a.sent();
505
+ setTimeout(function () {
506
+ var topOffset = utils.getMessageTopOffset(createdAt);
507
+ if (topOffset)
508
+ scrollPubSub.publish('scroll', { top: topOffset, lazy: false });
509
+ if (animated)
510
+ setAnimatedMessageId(messageId);
511
+ });
512
+ _a.label = 3;
513
+ case 3:
514
+ clickHandler.activate();
515
+ return [2 /*return*/];
516
+ }
517
+ });
518
+ });
519
+ });
520
+ var messageActions = useMessageActions(_tslib.__assign(_tslib.__assign(_tslib.__assign({}, props), messageDataSource), { scrollToBottom: scrollToBottom, quoteMessage: quoteMessage, replyType: replyType }));
521
+ return (React.createElement(GroupChannelContext.Provider, { value: _tslib.__assign(_tslib.__assign({
522
+ // # Props
523
+ channelUrl: channelUrl, isReactionEnabled: isReactionEnabled, isMessageGroupingEnabled: isMessageGroupingEnabled, isMultipleFilesMessageEnabled: isMultipleFilesMessageEnabled, showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : config.showSearchIcon, replyType: replyType, threadReplySelectType: threadReplySelectType, disableMarkAsRead: disableMarkAsRead, scrollBehavior: scrollBehavior,
524
+ // # Custom Props
525
+ messageListQueryParams: messageListQueryParams,
526
+ // ## Message
527
+ onBeforeSendUserMessage: onBeforeSendUserMessage, onBeforeSendFileMessage: onBeforeSendFileMessage, onBeforeSendVoiceMessage: onBeforeSendVoiceMessage, onBeforeSendMultipleFilesMessage: onBeforeSendMultipleFilesMessage, onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
528
+ // ## Focusing
529
+ onMessageAnimated: onMessageAnimated,
530
+ // ## Click
531
+ onBackClick: onBackClick, onChatHeaderActionClick: onChatHeaderActionClick, onReplyInThreadClick: onReplyInThreadClick, onSearchClick: onSearchClick, onQuoteMessageClick: onQuoteMessageClick,
532
+ // ## Custom render
533
+ renderUserMentionItem: renderUserMentionItem,
534
+ // Internal Interface
535
+ currentChannel: currentChannel, nicknamesMap: nicknamesMap, scrollRef: scrollRef, scrollDistanceFromBottomRef: scrollDistanceFromBottomRef, scrollPubSub: scrollPubSub, messageInputRef: messageInputRef, quoteMessage: quoteMessage, setQuoteMessage: setQuoteMessage, animatedMessageId: animatedMessageId, setAnimatedMessageId: setAnimatedMessageId, isScrollBottomReached: isScrollBottomReached, setIsScrollBottomReached: setIsScrollBottomReached, scrollToBottom: scrollToBottom, scrollToMessage: scrollToMessage, toggleReaction: toggleReaction }, messageDataSource), messageActions) },
536
+ React.createElement(UserProfileContext.UserProfileProvider, { disableUserProfile: (_a = props === null || props === void 0 ? void 0 : props.disableUserProfile) !== null && _a !== void 0 ? _a : config === null || config === void 0 ? void 0 : config.disableUserProfile, renderUserProfile: (_b = props === null || props === void 0 ? void 0 : props.renderUserProfile) !== null && _b !== void 0 ? _b : config === null || config === void 0 ? void 0 : config.renderUserProfile, onUserProfileMessage: (_c = props === null || props === void 0 ? void 0 : props.onUserProfileMessage) !== null && _c !== void 0 ? _c : config === null || config === void 0 ? void 0 : config.onUserProfileMessage }, children)));
537
+ };
538
+ var useGroupChannelContext = function () {
539
+ var context = React.useContext(GroupChannelContext);
540
+ if (!context)
541
+ throw new Error('GroupChannelContext not found. Use within the GroupChannel module.');
542
+ return context;
543
+ };
544
+ function getCollectionCreator(groupChannel$1, messageListQueryParams) {
545
+ return function (defaultParams) {
546
+ var params = _tslib.__assign(_tslib.__assign(_tslib.__assign({}, defaultParams), { prevResultLimit: 30, nextResultLimit: 30 }), messageListQueryParams);
547
+ return groupChannel$1.createMessageCollection(_tslib.__assign(_tslib.__assign({}, params), { filter: new groupChannel.MessageFilter(params) }));
548
+ };
549
+ }
550
+
551
+ exports.GroupChannelProvider = GroupChannelProvider;
552
+ exports.useGroupChannelContext = useGroupChannelContext;
553
+ //# sourceMappingURL=bundle--1R8Yp9p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle--1R8Yp9p.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}