@sendbird/uikit-react 3.4.7 → 3.4.8-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (802) hide show
  1. package/App.js +46 -46
  2. package/App.js.map +1 -1
  3. package/CHANGELOG.md +26 -0
  4. package/Channel/components/ChannelHeader.js +18 -22
  5. package/Channel/components/ChannelHeader.js.map +1 -1
  6. package/Channel/components/ChannelUI.js +43 -43
  7. package/Channel/components/ChannelUI.js.map +1 -1
  8. package/Channel/components/FileViewer.js +14 -17
  9. package/Channel/components/FileViewer.js.map +1 -1
  10. package/Channel/components/FrozenNotification.js +4 -4
  11. package/Channel/components/FrozenNotification.js.map +1 -1
  12. package/Channel/components/Message.js +38 -38
  13. package/Channel/components/Message.js.map +1 -1
  14. package/Channel/components/MessageInput.js +30 -33
  15. package/Channel/components/MessageInput.js.map +1 -1
  16. package/Channel/components/MessageList.js +51 -44
  17. package/Channel/components/MessageList.js.map +1 -1
  18. package/Channel/components/RemoveMessageModal.js +16 -20
  19. package/Channel/components/RemoveMessageModal.js.map +1 -1
  20. package/Channel/components/SuggestedMentionList.js +18 -24
  21. package/Channel/components/SuggestedMentionList.js.map +1 -1
  22. package/Channel/components/TypingIndicator.js +14 -20
  23. package/Channel/components/TypingIndicator.js.map +1 -1
  24. package/Channel/components/UnreadCount.js +4 -4
  25. package/Channel/components/UnreadCount.js.map +1 -1
  26. package/Channel/context.js +11 -19
  27. package/Channel/context.js.map +1 -1
  28. package/Channel.js +43 -43
  29. package/Channel.js.map +1 -1
  30. package/ChannelList/components/AddChannel.js +14 -14
  31. package/ChannelList/components/AddChannel.js.map +1 -1
  32. package/ChannelList/components/ChannelListHeader.js +8 -8
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  34. package/ChannelList/components/ChannelListUI.js +29 -30
  35. package/ChannelList/components/ChannelListUI.js.map +1 -1
  36. package/ChannelList/components/ChannelPreview.js +25 -28
  37. package/ChannelList/components/ChannelPreview.js.map +1 -1
  38. package/ChannelList/components/ChannelPreviewAction.js +17 -15
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  40. package/ChannelList/context.js +7 -7
  41. package/ChannelList.js +29 -30
  42. package/ChannelList.js.map +1 -1
  43. package/{ChannelListProvider-8be91a05.js → ChannelListProvider-e8ad86b6.js} +15 -19
  44. package/ChannelListProvider-e8ad86b6.js.map +1 -0
  45. package/{ChannelProvider-d643e6d9.js → ChannelProvider-6de56b36.js} +13 -97
  46. package/ChannelProvider-6de56b36.js.map +1 -0
  47. package/ChannelSettings/components/ChannelProfile.js +11 -11
  48. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  49. package/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  50. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  51. package/ChannelSettings/components/EditDetailsModal.js +11 -11
  52. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  53. package/ChannelSettings/components/LeaveChannel.js +11 -11
  54. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  55. package/ChannelSettings/components/ModerationPanel.js +14 -14
  56. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  57. package/ChannelSettings/components/UserListItem.js +10 -10
  58. package/ChannelSettings/components/UserListItem.js.map +1 -1
  59. package/ChannelSettings/components/UserPanel.js +13 -13
  60. package/ChannelSettings/components/UserPanel.js.map +1 -1
  61. package/ChannelSettings/context.js +3 -3
  62. package/ChannelSettings/context.js.map +1 -1
  63. package/ChannelSettings.js +18 -18
  64. package/ChannelSettings.js.map +1 -1
  65. package/CreateChannel/components/CreateChannelUI.js +13 -13
  66. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  67. package/CreateChannel/components/InviteUsers.js +14 -14
  68. package/CreateChannel/components/InviteUsers.js.map +1 -1
  69. package/CreateChannel/components/SelectChannelType.js +10 -10
  70. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  71. package/CreateChannel/context.js +4 -4
  72. package/CreateChannel.js +13 -13
  73. package/CreateChannel.js.map +1 -1
  74. package/{CreateChannelProvider-5674e81b.js → CreateChannelProvider-64578d2a.js} +1 -1
  75. package/{CreateChannelProvider-5674e81b.js.map → CreateChannelProvider-64578d2a.js.map} +1 -1
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  78. package/CreateOpenChannel/context.js +1 -1
  79. package/CreateOpenChannel/context.js.map +1 -1
  80. package/CreateOpenChannel.js +9 -9
  81. package/CreateOpenChannel.js.map +1 -1
  82. package/EditUserProfile/components/EditUserProfileUI.js +12 -12
  83. package/EditUserProfile/context.js.map +1 -1
  84. package/EditUserProfile.js +12 -12
  85. package/EditUserProfile.js.map +1 -1
  86. package/{LocalizationContext-ad70364c.js → LocalizationContext-7ae12588.js} +3 -3
  87. package/{LocalizationContext-ad70364c.js.map → LocalizationContext-7ae12588.js.map} +1 -1
  88. package/{MediaQueryContext-4e555ef5.js → MediaQueryContext-05d4db73.js} +1 -1
  89. package/MediaQueryContext-05d4db73.js.map +1 -0
  90. package/{MemberList-24b818f8.js → MemberList-9634fee8.js} +5 -5
  91. package/MemberList-9634fee8.js.map +1 -0
  92. package/Message/context.js.map +1 -1
  93. package/MessageSearch/components/MessageSearchUI.js +11 -11
  94. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  95. package/MessageSearch/context.js +1 -1
  96. package/MessageSearch/context.js.map +1 -1
  97. package/MessageSearch.js +11 -11
  98. package/MessageSearch.js.map +1 -1
  99. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  100. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  101. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  102. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  103. package/OpenChannel/components/OpenChannelInput.js +18 -18
  104. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  105. package/OpenChannel/components/OpenChannelMessage.js +27 -32
  106. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  107. package/OpenChannel/components/OpenChannelMessageList.js +31 -31
  108. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  109. package/OpenChannel/components/OpenChannelUI.js +31 -31
  110. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  111. package/OpenChannel/context.js +8 -8
  112. package/OpenChannel.js +31 -31
  113. package/OpenChannel.js.map +1 -1
  114. package/OpenChannelList/components/OpenChannelListUI.js +13 -13
  115. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  116. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  117. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  118. package/OpenChannelList/context.js +3 -3
  119. package/OpenChannelList.js +13 -13
  120. package/OpenChannelList.js.map +1 -1
  121. package/{OpenChannelListProvider-27822936.js → OpenChannelListProvider-f6a88782.js} +3 -3
  122. package/{OpenChannelListProvider-27822936.js.map → OpenChannelListProvider-f6a88782.js.map} +1 -1
  123. package/{OpenChannelProvider-5148963b.js → OpenChannelProvider-f1a4b4fa.js} +9 -7
  124. package/OpenChannelProvider-f1a4b4fa.js.map +1 -0
  125. package/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  126. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  127. package/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  128. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  129. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  130. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  131. package/OpenChannelSettings/components/OperatorUI.js +16 -16
  132. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  133. package/OpenChannelSettings/components/ParticipantUI.js +14 -14
  134. package/OpenChannelSettings/context.js +3 -3
  135. package/OpenChannelSettings/context.js.map +1 -1
  136. package/OpenChannelSettings.js +17 -17
  137. package/OpenChannelSettings.js.map +1 -1
  138. package/README.md +28 -8
  139. package/{RemoveMessageModal-54d1b0a4.js → RemoveMessageModal-2b9bdeed.js} +3 -3
  140. package/{RemoveMessageModal-54d1b0a4.js.map → RemoveMessageModal-2b9bdeed.js.map} +1 -1
  141. package/SendbirdProvider.js +13 -13
  142. package/SendbirdProvider.js.map +1 -1
  143. package/Thread/components/ParentMessageInfo.js +32 -32
  144. package/Thread/components/ParentMessageInfo.js.map +1 -1
  145. package/Thread/components/ParentMessageInfoItem.js +18 -18
  146. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  147. package/Thread/components/ThreadHeader.js +6 -6
  148. package/Thread/components/ThreadHeader.js.map +1 -1
  149. package/Thread/components/ThreadList.js +35 -35
  150. package/Thread/components/ThreadList.js.map +1 -1
  151. package/Thread/components/ThreadListItem.js +34 -34
  152. package/Thread/components/ThreadListItem.js.map +1 -1
  153. package/Thread/components/ThreadMessageInput.js +28 -31
  154. package/Thread/components/ThreadMessageInput.js.map +1 -1
  155. package/Thread/components/ThreadUI.js +36 -36
  156. package/Thread/components/ThreadUI.js.map +1 -1
  157. package/Thread/context.js +8 -8
  158. package/Thread.js +36 -36
  159. package/Thread.js.map +1 -1
  160. package/{ThreadProvider-96a5e77e.js → ThreadProvider-5a216f9d.js} +7 -7
  161. package/ThreadProvider-5a216f9d.js.map +1 -0
  162. package/{UserProfileContext-b68f33fc.js → UserProfileContext-e8124c47.js} +1 -1
  163. package/{UserProfileContext-b68f33fc.js.map → UserProfileContext-e8124c47.js.map} +1 -1
  164. package/{VoiceMessageInputWrapper-07631f8d.js → VoiceMessageInputWrapper-ce56172a.js} +8 -8
  165. package/VoiceMessageInputWrapper-ce56172a.js.map +1 -0
  166. package/VoicePlayer/context.js +3 -3
  167. package/VoicePlayer/useVoicePlayer.js +6 -6
  168. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  169. package/VoiceRecorder/context.js +6 -6
  170. package/VoiceRecorder/context.js.map +1 -1
  171. package/VoiceRecorder/useVoiceRecorder.js +3 -2
  172. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  173. package/{WebAudioUtils-3fb13b51.js → WebAudioUtils-6229e96a.js} +1 -1
  174. package/{WebAudioUtils-3fb13b51.js.map → WebAudioUtils-6229e96a.js.map} +1 -1
  175. package/{_rollupPluginBabelHelpers-5d0c716a.js → _rollupPluginBabelHelpers-96062e23.js} +1 -1
  176. package/_rollupPluginBabelHelpers-96062e23.js.map +1 -0
  177. package/{actionTypes-b270327e.js → actionTypes-423a1fac.js} +1 -1
  178. package/{actionTypes-b270327e.js.map → actionTypes-423a1fac.js.map} +1 -1
  179. package/cjs/App.js +46 -46
  180. package/cjs/App.js.map +1 -1
  181. package/cjs/Channel/components/ChannelHeader.js +18 -22
  182. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  183. package/cjs/Channel/components/ChannelUI.js +43 -43
  184. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  185. package/cjs/Channel/components/FileViewer.js +14 -17
  186. package/cjs/Channel/components/FileViewer.js.map +1 -1
  187. package/cjs/Channel/components/FrozenNotification.js +4 -4
  188. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  189. package/cjs/Channel/components/Message.js +38 -38
  190. package/cjs/Channel/components/Message.js.map +1 -1
  191. package/cjs/Channel/components/MessageInput.js +30 -33
  192. package/cjs/Channel/components/MessageInput.js.map +1 -1
  193. package/cjs/Channel/components/MessageList.js +51 -44
  194. package/cjs/Channel/components/MessageList.js.map +1 -1
  195. package/cjs/Channel/components/RemoveMessageModal.js +16 -20
  196. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  197. package/cjs/Channel/components/SuggestedMentionList.js +18 -24
  198. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  199. package/cjs/Channel/components/TypingIndicator.js +14 -20
  200. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  201. package/cjs/Channel/components/UnreadCount.js +4 -4
  202. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  203. package/cjs/Channel/context.js +11 -19
  204. package/cjs/Channel/context.js.map +1 -1
  205. package/cjs/Channel.js +43 -43
  206. package/cjs/Channel.js.map +1 -1
  207. package/cjs/ChannelList/components/AddChannel.js +14 -14
  208. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  209. package/cjs/ChannelList/components/ChannelListHeader.js +8 -8
  210. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  211. package/cjs/ChannelList/components/ChannelListUI.js +29 -30
  212. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  213. package/cjs/ChannelList/components/ChannelPreview.js +25 -28
  214. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  215. package/cjs/ChannelList/components/ChannelPreviewAction.js +17 -15
  216. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  217. package/cjs/ChannelList/context.js +7 -7
  218. package/cjs/ChannelList.js +29 -30
  219. package/cjs/ChannelList.js.map +1 -1
  220. package/cjs/{ChannelListProvider-6b61a484.js → ChannelListProvider-2bcdc671.js} +15 -19
  221. package/cjs/ChannelListProvider-2bcdc671.js.map +1 -0
  222. package/cjs/{ChannelProvider-12a12f31.js → ChannelProvider-2a01302b.js} +12 -96
  223. package/cjs/ChannelProvider-2a01302b.js.map +1 -0
  224. package/cjs/ChannelSettings/components/ChannelProfile.js +11 -11
  225. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  226. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +17 -17
  227. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  228. package/cjs/ChannelSettings/components/EditDetailsModal.js +11 -11
  229. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  230. package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
  231. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  232. package/cjs/ChannelSettings/components/ModerationPanel.js +14 -14
  233. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  234. package/cjs/ChannelSettings/components/UserListItem.js +10 -10
  235. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  236. package/cjs/ChannelSettings/components/UserPanel.js +13 -13
  237. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  238. package/cjs/ChannelSettings/context.js +3 -3
  239. package/cjs/ChannelSettings/context.js.map +1 -1
  240. package/cjs/ChannelSettings.js +18 -18
  241. package/cjs/ChannelSettings.js.map +1 -1
  242. package/cjs/CreateChannel/components/CreateChannelUI.js +13 -13
  243. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  244. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  245. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  246. package/cjs/CreateChannel/components/SelectChannelType.js +10 -10
  247. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  248. package/cjs/CreateChannel/context.js +4 -4
  249. package/cjs/CreateChannel.js +13 -13
  250. package/cjs/CreateChannel.js.map +1 -1
  251. package/cjs/{CreateChannelProvider-2beb2415.js → CreateChannelProvider-8f7d9505.js} +1 -1
  252. package/cjs/{CreateChannelProvider-2beb2415.js.map → CreateChannelProvider-8f7d9505.js.map} +1 -1
  253. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +9 -9
  254. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  255. package/cjs/CreateOpenChannel/context.js +1 -1
  256. package/cjs/CreateOpenChannel/context.js.map +1 -1
  257. package/cjs/CreateOpenChannel.js +9 -9
  258. package/cjs/CreateOpenChannel.js.map +1 -1
  259. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  260. package/cjs/EditUserProfile/context.js.map +1 -1
  261. package/cjs/EditUserProfile.js +12 -12
  262. package/cjs/EditUserProfile.js.map +1 -1
  263. package/cjs/{LocalizationContext-30772f4a.js → LocalizationContext-975ffc10.js} +3 -3
  264. package/cjs/{LocalizationContext-30772f4a.js.map → LocalizationContext-975ffc10.js.map} +1 -1
  265. package/cjs/{MediaQueryContext-3b09499c.js → MediaQueryContext-302f1c4f.js} +1 -1
  266. package/cjs/MediaQueryContext-302f1c4f.js.map +1 -0
  267. package/cjs/{MemberList-f0c4e234.js → MemberList-0c0c303c.js} +5 -5
  268. package/cjs/MemberList-0c0c303c.js.map +1 -0
  269. package/cjs/Message/context.js.map +1 -1
  270. package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
  271. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  272. package/cjs/MessageSearch/context.js +1 -1
  273. package/cjs/MessageSearch/context.js.map +1 -1
  274. package/cjs/MessageSearch.js +11 -11
  275. package/cjs/MessageSearch.js.map +1 -1
  276. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  277. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  278. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  279. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  280. package/cjs/OpenChannel/components/OpenChannelInput.js +18 -18
  281. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  282. package/cjs/OpenChannel/components/OpenChannelMessage.js +27 -32
  283. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  284. package/cjs/OpenChannel/components/OpenChannelMessageList.js +31 -31
  285. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  286. package/cjs/OpenChannel/components/OpenChannelUI.js +31 -31
  287. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  288. package/cjs/OpenChannel/context.js +8 -8
  289. package/cjs/OpenChannel.js +31 -31
  290. package/cjs/OpenChannel.js.map +1 -1
  291. package/cjs/OpenChannelList/components/OpenChannelListUI.js +13 -13
  292. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  293. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  294. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  295. package/cjs/OpenChannelList/context.js +3 -3
  296. package/cjs/OpenChannelList.js +13 -13
  297. package/cjs/OpenChannelList.js.map +1 -1
  298. package/cjs/{OpenChannelListProvider-d48bd733.js → OpenChannelListProvider-ef3655ce.js} +3 -3
  299. package/cjs/{OpenChannelListProvider-d48bd733.js.map → OpenChannelListProvider-ef3655ce.js.map} +1 -1
  300. package/cjs/{OpenChannelProvider-56846c0c.js → OpenChannelProvider-c500275a.js} +9 -7
  301. package/cjs/OpenChannelProvider-c500275a.js.map +1 -0
  302. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +13 -13
  303. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  304. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +12 -12
  305. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  306. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +17 -17
  307. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  308. package/cjs/OpenChannelSettings/components/OperatorUI.js +16 -16
  309. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  310. package/cjs/OpenChannelSettings/components/ParticipantUI.js +14 -14
  311. package/cjs/OpenChannelSettings/context.js +3 -3
  312. package/cjs/OpenChannelSettings/context.js.map +1 -1
  313. package/cjs/OpenChannelSettings.js +17 -17
  314. package/cjs/OpenChannelSettings.js.map +1 -1
  315. package/cjs/{RemoveMessageModal-e0480b7c.js → RemoveMessageModal-f8277edf.js} +3 -3
  316. package/cjs/{RemoveMessageModal-e0480b7c.js.map → RemoveMessageModal-f8277edf.js.map} +1 -1
  317. package/cjs/SendbirdProvider.js +13 -13
  318. package/cjs/SendbirdProvider.js.map +1 -1
  319. package/cjs/Thread/components/ParentMessageInfo.js +32 -32
  320. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  321. package/cjs/Thread/components/ParentMessageInfoItem.js +18 -18
  322. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  323. package/cjs/Thread/components/ThreadHeader.js +6 -6
  324. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  325. package/cjs/Thread/components/ThreadList.js +35 -35
  326. package/cjs/Thread/components/ThreadList.js.map +1 -1
  327. package/cjs/Thread/components/ThreadListItem.js +34 -34
  328. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  329. package/cjs/Thread/components/ThreadMessageInput.js +28 -31
  330. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  331. package/cjs/Thread/components/ThreadUI.js +36 -36
  332. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  333. package/cjs/Thread/context.js +8 -8
  334. package/cjs/Thread.js +36 -36
  335. package/cjs/Thread.js.map +1 -1
  336. package/cjs/{ThreadProvider-1ebd5bc0.js → ThreadProvider-e8f49239.js} +7 -7
  337. package/cjs/ThreadProvider-e8f49239.js.map +1 -0
  338. package/cjs/{UserProfileContext-eb5a10d6.js → UserProfileContext-8b19c6c3.js} +1 -1
  339. package/cjs/{UserProfileContext-eb5a10d6.js.map → UserProfileContext-8b19c6c3.js.map} +1 -1
  340. package/cjs/{VoiceMessageInputWrapper-044427b2.js → VoiceMessageInputWrapper-5dfaba8f.js} +8 -8
  341. package/cjs/VoiceMessageInputWrapper-5dfaba8f.js.map +1 -0
  342. package/cjs/VoicePlayer/context.js +3 -3
  343. package/cjs/VoicePlayer/useVoicePlayer.js +6 -6
  344. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  345. package/cjs/VoiceRecorder/context.js +6 -6
  346. package/cjs/VoiceRecorder/context.js.map +1 -1
  347. package/cjs/VoiceRecorder/useVoiceRecorder.js +3 -2
  348. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  349. package/cjs/{WebAudioUtils-57d7e366.js → WebAudioUtils-2bd92ed1.js} +1 -1
  350. package/cjs/{WebAudioUtils-57d7e366.js.map → WebAudioUtils-2bd92ed1.js.map} +1 -1
  351. package/cjs/{_rollupPluginBabelHelpers-4b6406c2.js → _rollupPluginBabelHelpers-596e2aef.js} +1 -1
  352. package/cjs/_rollupPluginBabelHelpers-596e2aef.js.map +1 -0
  353. package/cjs/{actionTypes-f66e00c2.js → actionTypes-29997777.js} +1 -1
  354. package/cjs/{actionTypes-f66e00c2.js.map → actionTypes-29997777.js.map} +1 -1
  355. package/cjs/{color-4904d01e.js → color-ac868fc0.js} +1 -1
  356. package/cjs/{color-4904d01e.js.map → color-ac868fc0.js.map} +1 -1
  357. package/cjs/{compareIds-de8d3b96.js → compareIds-3c9472b4.js} +2 -2
  358. package/cjs/compareIds-3c9472b4.js.map +1 -0
  359. package/cjs/{const-97ad0ae2.js → const-7b049118.js} +1 -1
  360. package/cjs/{const-97ad0ae2.js.map → const-7b049118.js.map} +1 -1
  361. package/cjs/{const-bba9510b.js → const-7d011d30.js} +1 -1
  362. package/cjs/{const-bba9510b.js.map → const-7d011d30.js.map} +1 -1
  363. package/cjs/{consts-6acebb51.js → consts-6cf0ec85.js} +1 -1
  364. package/cjs/{consts-6acebb51.js.map → consts-6cf0ec85.js.map} +1 -1
  365. package/cjs/{consts-cafff484.js → consts-9cbf147c.js} +1 -1
  366. package/cjs/{consts-cafff484.js.map → consts-9cbf147c.js.map} +1 -1
  367. package/cjs/{consts-a235ce0a.js → consts-d9ff7fec.js} +1 -1
  368. package/cjs/{consts-a235ce0a.js.map → consts-d9ff7fec.js.map} +1 -1
  369. package/cjs/{consts-cb169c09.js → consts-df222988.js} +1 -1
  370. package/cjs/{consts-cb169c09.js.map → consts-df222988.js.map} +1 -1
  371. package/cjs/{context-e6181d31.js → context-1d31dbec.js} +2 -2
  372. package/cjs/{context-e6181d31.js.map → context-1d31dbec.js.map} +1 -1
  373. package/cjs/dist/index.css +164 -163
  374. package/cjs/dist/index.css.map +1 -1
  375. package/cjs/{index-df637378.js → index-0b24e87b.js} +5 -5
  376. package/cjs/index-0b24e87b.js.map +1 -0
  377. package/cjs/{index-0514e373.js → index-0d2fba98.js} +7 -6
  378. package/cjs/index-0d2fba98.js.map +1 -0
  379. package/cjs/{index-43612435.js → index-1a324d07.js} +4 -4
  380. package/cjs/{index-43612435.js.map → index-1a324d07.js.map} +1 -1
  381. package/cjs/{index-34cc612a.js → index-263d9317.js} +5 -4
  382. package/cjs/index-263d9317.js.map +1 -0
  383. package/cjs/{index-d2bd7dc5.js → index-334b239a.js} +2 -2
  384. package/cjs/index-334b239a.js.map +1 -0
  385. package/cjs/{index-2a770f35.js → index-46b412dc.js} +37 -7
  386. package/cjs/index-46b412dc.js.map +1 -0
  387. package/cjs/{index-9f6f371b.js → index-50655872.js} +6 -6
  388. package/cjs/index-50655872.js.map +1 -0
  389. package/cjs/{index-4de6caed.js → index-551be60f.js} +16 -8
  390. package/cjs/index-551be60f.js.map +1 -0
  391. package/cjs/{index-986b886d.js → index-7ffe6f27.js} +12 -3
  392. package/cjs/index-7ffe6f27.js.map +1 -0
  393. package/cjs/{index-223d453c.js → index-8d2c0bda.js} +4 -2
  394. package/cjs/index-8d2c0bda.js.map +1 -0
  395. package/cjs/{index-b2886b93.js → index-8fc4c8ed.js} +12 -12
  396. package/cjs/index-8fc4c8ed.js.map +1 -0
  397. package/cjs/{index-ca85a10a.js → index-9dd778ed.js} +193 -56
  398. package/cjs/index-9dd778ed.js.map +1 -0
  399. package/cjs/{index-80b17a7f.js → index-bb91f996.js} +2 -2
  400. package/cjs/{index-80b17a7f.js.map → index-bb91f996.js.map} +1 -1
  401. package/cjs/{index-5fd03280.js → index-e36db682.js} +1 -1
  402. package/cjs/index-e36db682.js.map +1 -0
  403. package/cjs/{index-6d3fe482.js → index-f0938824.js} +30 -10
  404. package/cjs/index-f0938824.js.map +1 -0
  405. package/cjs/{index-2c8ca1d6.js → index-f4cf9eb5.js} +3 -3
  406. package/cjs/{index-2c8ca1d6.js.map → index-f4cf9eb5.js.map} +1 -1
  407. package/cjs/index.js +49 -49
  408. package/cjs/{index.module-f4ff21b1.js → index.module-2d344ee2.js} +1 -1
  409. package/cjs/{index.module-f4ff21b1.js.map → index.module-2d344ee2.js.map} +1 -1
  410. package/cjs/lame.all.js.map +1 -1
  411. package/cjs/sendbirdSelectors.js +3 -3
  412. package/cjs/sendbirdSelectors.js.map +1 -1
  413. package/cjs/{stringSet-2b481a03.js → stringSet-ac04b7c1.js} +1 -1
  414. package/cjs/{stringSet-2b481a03.js.map → stringSet-ac04b7c1.js.map} +1 -1
  415. package/cjs/{tokenize-07747f4c.js → tokenize-10b9c2ca.js} +27 -7
  416. package/cjs/tokenize-10b9c2ca.js.map +1 -0
  417. package/cjs/{topics-f9cf559a.js → topics-89c25bd7.js} +1 -1
  418. package/cjs/{topics-f9cf559a.js.map → topics-89c25bd7.js.map} +1 -1
  419. package/cjs/{types-3dcd9651.js → types-53455550.js} +1 -1
  420. package/cjs/types-53455550.js.map +1 -0
  421. package/cjs/ui/Accordion.js +2 -2
  422. package/cjs/ui/Accordion.js.map +1 -1
  423. package/cjs/ui/AccordionGroup.js +2 -2
  424. package/cjs/ui/AccordionGroup.js.map +1 -1
  425. package/cjs/ui/AdminMessage.js +2 -2
  426. package/cjs/ui/AdminMessage.js.map +1 -1
  427. package/cjs/ui/Avatar.js +1 -1
  428. package/cjs/ui/Avatar.js.map +1 -1
  429. package/cjs/ui/Badge.js +4 -4
  430. package/cjs/ui/Badge.js.map +1 -1
  431. package/cjs/ui/BottomSheet.js +1 -1
  432. package/cjs/ui/BottomSheet.js.map +1 -1
  433. package/cjs/ui/Button.js +2 -2
  434. package/cjs/ui/Button.js.map +1 -1
  435. package/cjs/ui/ChannelAvatar.js +2 -2
  436. package/cjs/ui/ChannelAvatar.js.map +1 -1
  437. package/cjs/ui/Checkbox.js.map +1 -1
  438. package/cjs/ui/ConnectionStatus.js +4 -4
  439. package/cjs/ui/ConnectionStatus.js.map +1 -1
  440. package/cjs/ui/ContextMenu.js +5 -5
  441. package/cjs/ui/ContextMenu.js.map +1 -1
  442. package/cjs/ui/DateSeparator.js +3 -3
  443. package/cjs/ui/DateSeparator.js.map +1 -1
  444. package/cjs/ui/EmojiReactions.js +7 -7
  445. package/cjs/ui/EmojiReactions.js.map +1 -1
  446. package/cjs/ui/FileMessageItemBody.js +6 -6
  447. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  448. package/cjs/ui/FileViewer.js +8 -8
  449. package/cjs/ui/FileViewer.js.map +1 -1
  450. package/cjs/ui/Icon.js +2 -0
  451. package/cjs/ui/Icon.js.map +1 -1
  452. package/cjs/ui/IconButton.js +1 -1
  453. package/cjs/ui/IconButton.js.map +1 -1
  454. package/cjs/ui/ImageRenderer.js.map +1 -1
  455. package/cjs/ui/Input.js +2 -2
  456. package/cjs/ui/Input.js.map +1 -1
  457. package/cjs/ui/Label.js +2 -2
  458. package/cjs/ui/LinkLabel.js +2 -2
  459. package/cjs/ui/LinkLabel.js.map +1 -1
  460. package/cjs/ui/Loader.js.map +1 -1
  461. package/cjs/ui/MentionLabel.js +10 -10
  462. package/cjs/ui/MentionLabel.js.map +1 -1
  463. package/cjs/ui/MentionUserLabel.js +1 -1
  464. package/cjs/ui/MentionUserLabel.js.map +1 -1
  465. package/cjs/ui/MessageContent.js +34 -34
  466. package/cjs/ui/MessageContent.js.map +1 -1
  467. package/cjs/ui/MessageInput.js +63 -37
  468. package/cjs/ui/MessageInput.js.map +1 -1
  469. package/cjs/ui/MessageItemMenu.js +8 -8
  470. package/cjs/ui/MessageItemMenu.js.map +1 -1
  471. package/cjs/ui/MessageItemReactionMenu.js +5 -5
  472. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  473. package/cjs/ui/MessageSearchFileItem.js +10 -10
  474. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  475. package/cjs/ui/MessageSearchItem.js +8 -8
  476. package/cjs/ui/MessageSearchItem.js.map +1 -1
  477. package/cjs/ui/MessageStatus.js +10 -10
  478. package/cjs/ui/Modal.js +7 -7
  479. package/cjs/ui/Modal.js.map +1 -1
  480. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  481. package/cjs/ui/OGMessageItemBody.js +14 -14
  482. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  483. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  484. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  485. package/cjs/ui/OpenChannelAvatar.js +5 -5
  486. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  487. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  488. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  489. package/cjs/ui/OpenchannelFileMessage.js +15 -15
  490. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  491. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  492. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  493. package/cjs/ui/OpenchannelThumbnailMessage.js +16 -16
  494. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  495. package/cjs/ui/OpenchannelUserMessage.js +15 -15
  496. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  497. package/cjs/ui/PlaceHolder.js +5 -5
  498. package/cjs/ui/PlaybackTime.js +2 -2
  499. package/cjs/ui/PlaybackTime.js.map +1 -1
  500. package/cjs/ui/ProgressBar.js +1 -0
  501. package/cjs/ui/ProgressBar.js.map +1 -1
  502. package/cjs/ui/QuoteMessage.js +6 -6
  503. package/cjs/ui/QuoteMessage.js.map +1 -1
  504. package/cjs/ui/QuoteMessageInput.js +6 -6
  505. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  506. package/cjs/ui/ReactionBadge.js +2 -2
  507. package/cjs/ui/ReactionBadge.js.map +1 -1
  508. package/cjs/ui/ReactionButton.js.map +1 -1
  509. package/cjs/ui/SortByRow.js +1 -1
  510. package/cjs/ui/SortByRow.js.map +1 -1
  511. package/cjs/ui/TextButton.js +1 -1
  512. package/cjs/ui/TextButton.js.map +1 -1
  513. package/cjs/ui/TextMessageItemBody.js +15 -15
  514. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  515. package/cjs/ui/ThreadReplies.js +5 -5
  516. package/cjs/ui/ThreadReplies.js.map +1 -1
  517. package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
  518. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  519. package/cjs/ui/Toggle.js +1 -1
  520. package/cjs/ui/Toggle.js.map +1 -1
  521. package/cjs/ui/Tooltip.js +2 -2
  522. package/cjs/ui/Tooltip.js.map +1 -1
  523. package/cjs/ui/TooltipWrapper.js.map +1 -1
  524. package/cjs/ui/UnknownMessageItemBody.js +6 -6
  525. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  526. package/cjs/ui/UserListItem.js +10 -10
  527. package/cjs/ui/UserListItem.js.map +1 -1
  528. package/cjs/ui/UserProfile.js +9 -9
  529. package/cjs/ui/UserProfile.js.map +1 -1
  530. package/cjs/ui/VoiceMessageItemBody.js +9 -9
  531. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  532. package/cjs/ui/VoiceMessgeInput.js +7 -7
  533. package/cjs/ui/Word.js +13 -13
  534. package/cjs/ui/Word.js.map +1 -1
  535. package/cjs/{useLongPress-ab63a990.js → useLongPress-472493f7.js} +3 -3
  536. package/cjs/useLongPress-472493f7.js.map +1 -0
  537. package/cjs/useSendbirdStateContext.js +1 -1
  538. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  539. package/cjs/utils/message/isVoiceMessage.js +2 -2
  540. package/cjs/{utils-1fd1fe8c.js → utils-40b8c201.js} +1 -1
  541. package/cjs/utils-40b8c201.js.map +1 -0
  542. package/cjs/{utils-7e52a10a.js → utils-76562fb5.js} +2 -2
  543. package/cjs/{utils-7e52a10a.js.map → utils-76562fb5.js.map} +1 -1
  544. package/cjs/{utils-f6f55335.js → utils-eadc245c.js} +1 -1
  545. package/cjs/{utils-f6f55335.js.map → utils-eadc245c.js.map} +1 -1
  546. package/cjs/{utils-f6c4e216.js → utils-fdce7855.js} +1 -1
  547. package/cjs/{utils-f6c4e216.js.map → utils-fdce7855.js.map} +1 -1
  548. package/cjs/{uuid-d0dd45eb.js → uuid-d5eb7040.js} +1 -1
  549. package/cjs/{uuid-d0dd45eb.js.map → uuid-d5eb7040.js.map} +1 -1
  550. package/cjs/withSendbird.js +1 -1
  551. package/cjs/withSendbird.js.map +1 -1
  552. package/{color-c30f00bf.js → color-d6b38e25.js} +1 -1
  553. package/{color-c30f00bf.js.map → color-d6b38e25.js.map} +1 -1
  554. package/{compareIds-90440dc5.js → compareIds-f38c2ef0.js} +2 -2
  555. package/compareIds-f38c2ef0.js.map +1 -0
  556. package/{const-5e916a50.js → const-051188d1.js} +1 -1
  557. package/{const-5e916a50.js.map → const-051188d1.js.map} +1 -1
  558. package/{const-582ca435.js → const-f6d56818.js} +1 -1
  559. package/{const-582ca435.js.map → const-f6d56818.js.map} +1 -1
  560. package/{consts-ee90b622.js → consts-04eece0c.js} +1 -1
  561. package/{consts-ee90b622.js.map → consts-04eece0c.js.map} +1 -1
  562. package/{consts-6e63357c.js → consts-a6286ca6.js} +1 -1
  563. package/{consts-6e63357c.js.map → consts-a6286ca6.js.map} +1 -1
  564. package/{consts-35dda142.js → consts-da8a20c9.js} +1 -1
  565. package/{consts-35dda142.js.map → consts-da8a20c9.js.map} +1 -1
  566. package/{consts-a7fe5f4a.js → consts-dd1513d3.js} +1 -1
  567. package/{consts-a7fe5f4a.js.map → consts-dd1513d3.js.map} +1 -1
  568. package/{context-8a77d287.js → context-0e43d2e6.js} +2 -2
  569. package/{context-8a77d287.js.map → context-0e43d2e6.js.map} +1 -1
  570. package/dist/index.css +164 -163
  571. package/dist/index.css.map +1 -1
  572. package/{index-2bcc4298.js → index-01ac0ba4.js} +7 -6
  573. package/index-01ac0ba4.js.map +1 -0
  574. package/{index-8f5c7f74.js → index-0533e5e9.js} +2 -2
  575. package/index-0533e5e9.js.map +1 -0
  576. package/{index-1e1cb669.js → index-06784b87.js} +1 -1
  577. package/index-06784b87.js.map +1 -0
  578. package/{index-8e3a9e8c.js → index-2857db82.js} +12 -12
  579. package/index-2857db82.js.map +1 -0
  580. package/{index-062a4eeb.js → index-3f4521c1.js} +2 -2
  581. package/{index-062a4eeb.js.map → index-3f4521c1.js.map} +1 -1
  582. package/{index-4d66cb77.js → index-46f6d854.js} +38 -8
  583. package/index-46f6d854.js.map +1 -0
  584. package/{index-303eca35.js → index-5807e969.js} +16 -8
  585. package/index-5807e969.js.map +1 -0
  586. package/{index-c50c6fa2.js → index-63631dc4.js} +5 -4
  587. package/index-63631dc4.js.map +1 -0
  588. package/{index-052724d9.js → index-64473ea3.js} +12 -3
  589. package/index-64473ea3.js.map +1 -0
  590. package/{index-4668028f.js → index-74a99dc5.js} +4 -2
  591. package/index-74a99dc5.js.map +1 -0
  592. package/{index-eebbce1c.js → index-7f172012.js} +5 -5
  593. package/index-7f172012.js.map +1 -0
  594. package/{index-794e37e5.js → index-82009149.js} +30 -10
  595. package/index-82009149.js.map +1 -0
  596. package/{index-8fea9d09.js → index-8abe5fb2.js} +3 -3
  597. package/{index-8fea9d09.js.map → index-8abe5fb2.js.map} +1 -1
  598. package/{index-365a1d88.js → index-f23e2550.js} +4 -4
  599. package/{index-365a1d88.js.map → index-f23e2550.js.map} +1 -1
  600. package/{index-0cc2c241.js → index-f78cd01e.js} +6 -6
  601. package/index-f78cd01e.js.map +1 -0
  602. package/{index-6908bdd4.js → index-feffd01d.js} +193 -56
  603. package/index-feffd01d.js.map +1 -0
  604. package/index.d.ts +15 -5
  605. package/index.js +49 -49
  606. package/{index.module-3d14ef05.js → index.module-6a96cbff.js} +1 -1
  607. package/{index.module-3d14ef05.js.map → index.module-6a96cbff.js.map} +1 -1
  608. package/lame.all.js.map +1 -1
  609. package/package.json +15 -13
  610. package/sendbirdSelectors.js +3 -3
  611. package/sendbirdSelectors.js.map +1 -1
  612. package/{stringSet-da68ecef.js → stringSet-6c589018.js} +1 -1
  613. package/{stringSet-da68ecef.js.map → stringSet-6c589018.js.map} +1 -1
  614. package/{tokenize-eeb42e72.js → tokenize-b7be6252.js} +27 -7
  615. package/tokenize-b7be6252.js.map +1 -0
  616. package/{topics-0354b385.js → topics-969deff5.js} +1 -1
  617. package/{topics-0354b385.js.map → topics-969deff5.js.map} +1 -1
  618. package/{types-12d853e9.js → types-230dc5c2.js} +1 -1
  619. package/types-230dc5c2.js.map +1 -0
  620. package/ui/Accordion.js +2 -2
  621. package/ui/Accordion.js.map +1 -1
  622. package/ui/AccordionGroup.js +2 -2
  623. package/ui/AccordionGroup.js.map +1 -1
  624. package/ui/AdminMessage.js +2 -2
  625. package/ui/AdminMessage.js.map +1 -1
  626. package/ui/Avatar.js +1 -1
  627. package/ui/Avatar.js.map +1 -1
  628. package/ui/Badge.js +4 -4
  629. package/ui/Badge.js.map +1 -1
  630. package/ui/BottomSheet.js +1 -1
  631. package/ui/BottomSheet.js.map +1 -1
  632. package/ui/Button.js +2 -2
  633. package/ui/Button.js.map +1 -1
  634. package/ui/ChannelAvatar.js +2 -2
  635. package/ui/ChannelAvatar.js.map +1 -1
  636. package/ui/Checkbox.js.map +1 -1
  637. package/ui/ConnectionStatus.js +4 -4
  638. package/ui/ConnectionStatus.js.map +1 -1
  639. package/ui/ContextMenu.js +5 -5
  640. package/ui/ContextMenu.js.map +1 -1
  641. package/ui/DateSeparator.js +3 -3
  642. package/ui/DateSeparator.js.map +1 -1
  643. package/ui/EmojiReactions.js +7 -7
  644. package/ui/EmojiReactions.js.map +1 -1
  645. package/ui/FileMessageItemBody.js +6 -6
  646. package/ui/FileMessageItemBody.js.map +1 -1
  647. package/ui/FileViewer.js +8 -8
  648. package/ui/FileViewer.js.map +1 -1
  649. package/ui/Icon.js +2 -0
  650. package/ui/Icon.js.map +1 -1
  651. package/ui/IconButton.js +1 -1
  652. package/ui/IconButton.js.map +1 -1
  653. package/ui/ImageRenderer.js.map +1 -1
  654. package/ui/Input.js +2 -2
  655. package/ui/Input.js.map +1 -1
  656. package/ui/Label.js +2 -2
  657. package/ui/LinkLabel.js +2 -2
  658. package/ui/LinkLabel.js.map +1 -1
  659. package/ui/Loader.js.map +1 -1
  660. package/ui/MentionLabel.js +10 -10
  661. package/ui/MentionLabel.js.map +1 -1
  662. package/ui/MentionUserLabel.js +1 -1
  663. package/ui/MentionUserLabel.js.map +1 -1
  664. package/ui/MessageContent.js +34 -34
  665. package/ui/MessageContent.js.map +1 -1
  666. package/ui/MessageInput.js +63 -37
  667. package/ui/MessageInput.js.map +1 -1
  668. package/ui/MessageItemMenu.js +8 -8
  669. package/ui/MessageItemMenu.js.map +1 -1
  670. package/ui/MessageItemReactionMenu.js +5 -5
  671. package/ui/MessageItemReactionMenu.js.map +1 -1
  672. package/ui/MessageSearchFileItem.js +10 -10
  673. package/ui/MessageSearchFileItem.js.map +1 -1
  674. package/ui/MessageSearchItem.js +8 -8
  675. package/ui/MessageSearchItem.js.map +1 -1
  676. package/ui/MessageStatus.js +10 -10
  677. package/ui/Modal.js +7 -7
  678. package/ui/Modal.js.map +1 -1
  679. package/ui/MutedAvatarOverlay.js.map +1 -1
  680. package/ui/OGMessageItemBody.js +14 -14
  681. package/ui/OGMessageItemBody.js.map +1 -1
  682. package/ui/OpenChannelAdminMessage.js +2 -2
  683. package/ui/OpenChannelAdminMessage.js.map +1 -1
  684. package/ui/OpenChannelAvatar.js +5 -5
  685. package/ui/OpenChannelAvatar.js.map +1 -1
  686. package/ui/OpenchannelConversationHeader.js +6 -6
  687. package/ui/OpenchannelConversationHeader.js.map +1 -1
  688. package/ui/OpenchannelFileMessage.js +15 -15
  689. package/ui/OpenchannelFileMessage.js.map +1 -1
  690. package/ui/OpenchannelOGMessage.js +18 -18
  691. package/ui/OpenchannelOGMessage.js.map +1 -1
  692. package/ui/OpenchannelThumbnailMessage.js +16 -16
  693. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  694. package/ui/OpenchannelUserMessage.js +15 -15
  695. package/ui/OpenchannelUserMessage.js.map +1 -1
  696. package/ui/PlaceHolder.js +5 -5
  697. package/ui/PlaybackTime.js +2 -2
  698. package/ui/PlaybackTime.js.map +1 -1
  699. package/ui/ProgressBar.js +1 -0
  700. package/ui/ProgressBar.js.map +1 -1
  701. package/ui/QuoteMessage.js +6 -6
  702. package/ui/QuoteMessage.js.map +1 -1
  703. package/ui/QuoteMessageInput.js +6 -6
  704. package/ui/QuoteMessageInput.js.map +1 -1
  705. package/ui/ReactionBadge.js +2 -2
  706. package/ui/ReactionBadge.js.map +1 -1
  707. package/ui/ReactionButton.js.map +1 -1
  708. package/ui/SortByRow.js +1 -1
  709. package/ui/SortByRow.js.map +1 -1
  710. package/ui/TextButton.js +1 -1
  711. package/ui/TextButton.js.map +1 -1
  712. package/ui/TextMessageItemBody.js +15 -15
  713. package/ui/TextMessageItemBody.js.map +1 -1
  714. package/ui/ThreadReplies.js +5 -5
  715. package/ui/ThreadReplies.js.map +1 -1
  716. package/ui/ThumbnailMessageItemBody.js +2 -2
  717. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  718. package/ui/Toggle.js +1 -1
  719. package/ui/Toggle.js.map +1 -1
  720. package/ui/Tooltip.js +2 -2
  721. package/ui/Tooltip.js.map +1 -1
  722. package/ui/TooltipWrapper.js.map +1 -1
  723. package/ui/UnknownMessageItemBody.js +6 -6
  724. package/ui/UnknownMessageItemBody.js.map +1 -1
  725. package/ui/UserListItem.js +10 -10
  726. package/ui/UserListItem.js.map +1 -1
  727. package/ui/UserProfile.js +9 -9
  728. package/ui/UserProfile.js.map +1 -1
  729. package/ui/VoiceMessageItemBody.js +9 -9
  730. package/ui/VoiceMessageItemBody.js.map +1 -1
  731. package/ui/VoiceMessgeInput.js +7 -7
  732. package/ui/Word.js +13 -13
  733. package/ui/Word.js.map +1 -1
  734. package/{useLongPress-a8d92cab.js → useLongPress-b678c2b7.js} +3 -3
  735. package/useLongPress-b678c2b7.js.map +1 -0
  736. package/useSendbirdStateContext.js +1 -1
  737. package/utils/message/getOutgoingMessageState.js.map +1 -1
  738. package/utils/message/isVoiceMessage.js +2 -2
  739. package/{utils-670974e1.js → utils-3245985d.js} +1 -1
  740. package/utils-3245985d.js.map +1 -0
  741. package/{utils-63790b1a.js → utils-c29e587a.js} +2 -2
  742. package/{utils-63790b1a.js.map → utils-c29e587a.js.map} +1 -1
  743. package/{utils-c9c2364c.js → utils-d8dfc953.js} +1 -1
  744. package/{utils-c9c2364c.js.map → utils-d8dfc953.js.map} +1 -1
  745. package/{utils-2b05a56b.js → utils-f57a5756.js} +1 -1
  746. package/{utils-2b05a56b.js.map → utils-f57a5756.js.map} +1 -1
  747. package/{uuid-5c7f30bd.js → uuid-abddae2d.js} +1 -1
  748. package/{uuid-5c7f30bd.js.map → uuid-abddae2d.js.map} +1 -1
  749. package/withSendbird.js +1 -1
  750. package/withSendbird.js.map +1 -1
  751. package/ChannelListProvider-8be91a05.js.map +0 -1
  752. package/ChannelProvider-d643e6d9.js.map +0 -1
  753. package/MediaQueryContext-4e555ef5.js.map +0 -1
  754. package/MemberList-24b818f8.js.map +0 -1
  755. package/OpenChannelProvider-5148963b.js.map +0 -1
  756. package/ThreadProvider-96a5e77e.js.map +0 -1
  757. package/VoiceMessageInputWrapper-07631f8d.js.map +0 -1
  758. package/_rollupPluginBabelHelpers-5d0c716a.js.map +0 -1
  759. package/cjs/ChannelListProvider-6b61a484.js.map +0 -1
  760. package/cjs/ChannelProvider-12a12f31.js.map +0 -1
  761. package/cjs/MediaQueryContext-3b09499c.js.map +0 -1
  762. package/cjs/MemberList-f0c4e234.js.map +0 -1
  763. package/cjs/OpenChannelProvider-56846c0c.js.map +0 -1
  764. package/cjs/ThreadProvider-1ebd5bc0.js.map +0 -1
  765. package/cjs/VoiceMessageInputWrapper-044427b2.js.map +0 -1
  766. package/cjs/_rollupPluginBabelHelpers-4b6406c2.js.map +0 -1
  767. package/cjs/compareIds-de8d3b96.js.map +0 -1
  768. package/cjs/index-0514e373.js.map +0 -1
  769. package/cjs/index-223d453c.js.map +0 -1
  770. package/cjs/index-2a770f35.js.map +0 -1
  771. package/cjs/index-34cc612a.js.map +0 -1
  772. package/cjs/index-4de6caed.js.map +0 -1
  773. package/cjs/index-5fd03280.js.map +0 -1
  774. package/cjs/index-6d3fe482.js.map +0 -1
  775. package/cjs/index-986b886d.js.map +0 -1
  776. package/cjs/index-9f6f371b.js.map +0 -1
  777. package/cjs/index-b2886b93.js.map +0 -1
  778. package/cjs/index-ca85a10a.js.map +0 -1
  779. package/cjs/index-d2bd7dc5.js.map +0 -1
  780. package/cjs/index-df637378.js.map +0 -1
  781. package/cjs/tokenize-07747f4c.js.map +0 -1
  782. package/cjs/types-3dcd9651.js.map +0 -1
  783. package/cjs/useLongPress-ab63a990.js.map +0 -1
  784. package/cjs/utils-1fd1fe8c.js.map +0 -1
  785. package/compareIds-90440dc5.js.map +0 -1
  786. package/index-052724d9.js.map +0 -1
  787. package/index-0cc2c241.js.map +0 -1
  788. package/index-1e1cb669.js.map +0 -1
  789. package/index-2bcc4298.js.map +0 -1
  790. package/index-303eca35.js.map +0 -1
  791. package/index-4668028f.js.map +0 -1
  792. package/index-4d66cb77.js.map +0 -1
  793. package/index-6908bdd4.js.map +0 -1
  794. package/index-794e37e5.js.map +0 -1
  795. package/index-8e3a9e8c.js.map +0 -1
  796. package/index-8f5c7f74.js.map +0 -1
  797. package/index-c50c6fa2.js.map +0 -1
  798. package/index-eebbce1c.js.map +0 -1
  799. package/tokenize-eeb42e72.js.map +0 -1
  800. package/types-12d853e9.js.map +0 -1
  801. package/useLongPress-a8d92cab.js.map +0 -1
  802. package/utils-670974e1.js.map +0 -1
@@ -1,21 +1,21 @@
1
- import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-5d0c716a.js';
1
+ import { _ as _objectSpread2 } from '../_rollupPluginBabelHelpers-96062e23.js';
2
2
  import React__default, { useCallback, useContext, useRef, useState, useMemo, useEffect } from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-5e916a50.js';
5
- import { U as USER_MENTION_TEMP_CHAR } from '../const-582ca435.js';
4
+ import { N as NodeTypes, M as MessageInputKeys, a as NodeNames } from '../const-051188d1.js';
5
+ import { U as USER_MENTION_TEMP_CHAR } from '../const-f6d56818.js';
6
6
  import IconButton from './IconButton.js';
7
7
  import Button, { ButtonTypes, ButtonSizes } from './Button.js';
8
8
  import DOMPurify from 'dompurify';
9
- import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-a7fe5f4a.js';
9
+ import { M as MENTION_USER_LABEL_CLASSNAME } from '../consts-dd1513d3.js';
10
10
  import Icon, { IconTypes, IconColors } from './Icon.js';
11
- import { L as Label, a as LabelTypography, b as LabelColors } from '../index-062a4eeb.js';
12
- import { a as LocalizationContext } from '../LocalizationContext-ad70364c.js';
13
- import { k as arrayEqual, j as getClassName } from '../index-303eca35.js';
14
- import { T as TEXT_MESSAGE_BODY_CLASSNAME } from '../consts-ee90b622.js';
15
- import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-6e63357c.js';
16
- import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-eeb42e72.js';
17
- import '../stringSet-da68ecef.js';
18
- import '../index-794e37e5.js';
11
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../index-3f4521c1.js';
12
+ import { a as LocalizationContext } from '../LocalizationContext-7ae12588.js';
13
+ import { k as arrayEqual, j as getClassName } from '../index-5807e969.js';
14
+ import { T as TEXT_MESSAGE_BODY_CLASSNAME } from '../consts-04eece0c.js';
15
+ import { O as OG_MESSAGE_BODY_CLASSNAME } from '../consts-a6286ca6.js';
16
+ import { t as tokenizeMessage, T as TOKEN_TYPES, U as USER_MENTION_PREFIX } from '../tokenize-b7be6252.js';
17
+ import '../stringSet-6c589018.js';
18
+ import '../index-82009149.js';
19
19
  import '../utils/message/getOutgoingMessageState.js';
20
20
 
21
21
  // cretes a sanitized string from a mention user label
@@ -40,6 +40,19 @@ function renderToString(_ref) {
40
40
  // Sanitize that special characters of HTML tags cause XSS issue
41
41
  const sanitizeString = str => str === null || str === void 0 ? void 0 : str.replace(/[\u00A0-\u9999<>]/gim, i => ''.concat('&#', i.charCodeAt(0), ';'));
42
42
 
43
+ /**
44
+ * NodeList cannot be used with Array methods
45
+ * @param {childNodes} NodeList
46
+ * @returns Array of child nodes
47
+ */
48
+ const nodeListToArray = childNodes => {
49
+ try {
50
+ return Array.from(childNodes);
51
+ } catch (error) {
52
+ return [];
53
+ }
54
+ };
55
+
43
56
  function inserTemplateToDOM(templateList) {
44
57
  const nodes = templateList.map(template => {
45
58
  const {
@@ -77,13 +90,13 @@ function getLeafNodes(master) {
77
90
  // og message
78
91
  const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);
79
92
  if (ogMessage) {
80
- return Array.from(ogMessage.childNodes);
93
+ return nodeListToArray(ogMessage.childNodes);
81
94
  }
82
95
  const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);
83
96
  if (textMessageBody) {
84
- return Array.from(textMessageBody.childNodes);
97
+ return nodeListToArray(textMessageBody.childNodes);
85
98
  }
86
- return Array.from(master.childNodes);
99
+ return nodeListToArray(master.childNodes);
87
100
  }
88
101
  function createPasteNode() {
89
102
  const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);
@@ -214,7 +227,6 @@ function usePaste(_ref) {
214
227
  pasteNode.remove();
215
228
  setIsInput(true);
216
229
  setHeight();
217
- return;
218
230
  }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
219
231
  }
220
232
 
@@ -239,6 +251,7 @@ const displayCaret = (element, position) => {
239
251
  };
240
252
  const resetInput = ref => {
241
253
  try {
254
+ /* eslint-disable no-param-reassign */
242
255
  ref.current.innerHTML = '';
243
256
  } catch (_unused) {
244
257
  //
@@ -252,7 +265,7 @@ const initialTargetStringInfo = {
252
265
  endOffsetIndex: null
253
266
  };
254
267
  const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
255
- var _textField$innerText3, _textField$innerText5;
268
+ var _ref$current, _ref$current$textCont, _textField$innerText;
256
269
  const {
257
270
  className,
258
271
  messageFieldId,
@@ -282,7 +295,6 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
282
295
  renderSendMessageIcon,
283
296
  setMentionedUsers
284
297
  } = props;
285
- const textField = ref === null || ref === void 0 ? void 0 : ref.current;
286
298
  const textFieldId = messageFieldId || TEXT_FIELD_ID;
287
299
  const {
288
300
  stringSet
@@ -316,14 +328,16 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
316
328
  // useEffect(_, [channelUrl]) erase it
317
329
  const initialValue = props === null || props === void 0 ? void 0 : props.value;
318
330
  useEffect(() => {
319
- var _textField$innerText;
331
+ var _textField$textConten;
320
332
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
321
333
  try {
322
334
  textField.innerHTML = initialValue;
323
335
  displayCaret(textField, initialValue === null || initialValue === void 0 ? void 0 : initialValue.length);
324
- } catch (_unused2) {}
336
+ } catch (_unused2) {
337
+ //
338
+ }
325
339
  setMentionedUserIds([]);
326
- setIsInput((textField === null || textField === void 0 ? void 0 : (_textField$innerText = textField.innerText) === null || _textField$innerText === void 0 ? void 0 : _textField$innerText.trim().length) > 0);
340
+ setIsInput((textField === null || textField === void 0 ? void 0 : (_textField$textConten = textField.textContent) === null || _textField$textConten === void 0 ? void 0 : _textField$textConten.trim().length) > 0);
327
341
  setHeight();
328
342
  }, [initialValue]);
329
343
 
@@ -338,7 +352,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
338
352
  // #Mention & #Edit | Fill message input values
339
353
  useEffect(() => {
340
354
  if (isEdit && message !== null && message !== void 0 && message.messageId) {
341
- var _message$mentionedUse, _message$mentionedMes, _textField$innerText2;
355
+ var _message$mentionedUse, _message$mentionedMes, _textField$textConten2;
342
356
  // const textField = document.getElementById(textFieldId);
343
357
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
344
358
  if (isMentionEnabled && (message === null || message === void 0 ? void 0 : (_message$mentionedUse = message.mentionedUsers) === null || _message$mentionedUse === void 0 ? void 0 : _message$mentionedUse.length) > 0 && (message === null || message === void 0 ? void 0 : (_message$mentionedMes = message.mentionedMessageTemplate) === null || _message$mentionedMes === void 0 ? void 0 : _message$mentionedMes.length) > 0) {
@@ -365,16 +379,19 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
365
379
  /* mention disabled */
366
380
  try {
367
381
  textField.innerHTML = sanitizeString(message === null || message === void 0 ? void 0 : message.message);
368
- } catch (_unused3) {}
382
+ } catch (_unused3) {
383
+ //
384
+ }
369
385
  setMentionedUserIds([]);
370
386
  }
371
- setIsInput((textField === null || textField === void 0 ? void 0 : (_textField$innerText2 = textField.innerText) === null || _textField$innerText2 === void 0 ? void 0 : _textField$innerText2.trim().length) > 0);
387
+ setIsInput((textField === null || textField === void 0 ? void 0 : (_textField$textConten2 = textField.textContent) === null || _textField$textConten2 === void 0 ? void 0 : _textField$textConten2.trim().length) > 0);
372
388
  setHeight();
373
389
  }
374
390
  }, [isEdit, message]);
375
391
 
376
392
  // #Mention | Detect MentionedLabel modified
377
393
  const useMentionedLabelDetection = useCallback(() => {
394
+ var _textField$textConten3;
378
395
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
379
396
  if (isMentionEnabled) {
380
397
  const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map(node => {
@@ -386,7 +403,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
386
403
  setMentionedUserIds(newMentionedUserIds);
387
404
  }
388
405
  }
389
- setIsInput(textField.innerText.trim().length > 0);
406
+ setIsInput(((_textField$textConten3 = textField.textContent) === null || _textField$textConten3 === void 0 ? void 0 : _textField$textConten3.trim().length) > 0);
390
407
  }, [targetStringInfo, isMentionEnabled]);
391
408
 
392
409
  // #Mention | Replace selected user nickname to the MentionedUserLabel
@@ -403,7 +420,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
403
420
  var _document, _childNodes$startNode, _document2, _childNodes$endNodeIn;
404
421
  // const textField = document.getElementById(textFieldId);
405
422
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
406
- const childNodes = [...(textField === null || textField === void 0 ? void 0 : textField.childNodes)];
423
+ const childNodes = nodeListToArray(textField === null || textField === void 0 ? void 0 : textField.childNodes);
407
424
  const frontTextNode = (_document = document) === null || _document === void 0 ? void 0 : _document.createTextNode((_childNodes$startNode = childNodes[startNodeIndex]) === null || _childNodes$startNode === void 0 ? void 0 : _childNodes$startNode.textContent.slice(0, startOffsetIndex));
408
425
  const backTextNode = (_document2 = document) === null || _document2 === void 0 ? void 0 : _document2.createTextNode(`\u00A0${(_childNodes$endNodeIn = childNodes[endNodeIndex]) === null || _childNodes$endNodeIn === void 0 ? void 0 : _childNodes$endNodeIn.textContent.slice(endOffsetIndex)}`);
409
426
  const mentionLabel = renderToString({
@@ -498,7 +515,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
498
515
  }, [isMentionEnabled]);
499
516
  const sendMessage = () => {
500
517
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
501
- if (!isEdit && textField !== null && textField !== void 0 && textField.innerText) {
518
+ if (!isEdit && textField !== null && textField !== void 0 && textField.textContent) {
502
519
  let messageText = '';
503
520
  let mentionTemplate = '';
504
521
  textField.childNodes.forEach(node => {
@@ -541,7 +558,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
541
558
  setHeight();
542
559
  }
543
560
  };
544
- const isEditDisabled = !(textField !== null && textField !== void 0 && (_textField$innerText3 = textField.innerText) !== null && _textField$innerText3 !== void 0 && _textField$innerText3.trim());
561
+ const isEditDisabled = !(ref !== null && ref !== void 0 && (_ref$current = ref.current) !== null && _ref$current !== void 0 && (_ref$current$textCont = _ref$current.textContent) !== null && _ref$current$textCont !== void 0 && _ref$current$textCont.trim());
545
562
  const editMessage = () => {
546
563
  const textField = ref === null || ref === void 0 ? void 0 : ref.current;
547
564
  const messageId = message === null || message === void 0 ? void 0 : message.messageId;
@@ -559,7 +576,6 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
559
576
  } = dataset;
560
577
  messageText += innerText;
561
578
  mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;
562
- } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {
563
579
  messageText += '\n';
564
580
  mentionTemplate += '\n';
565
581
  } else {
@@ -588,6 +604,7 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
588
604
  setIsInput,
589
605
  setHeight
590
606
  });
607
+ const textField = ref === null || ref === void 0 ? void 0 : ref.current;
591
608
  return /*#__PURE__*/React__default.createElement("form", {
592
609
  className: getClassName([className, isEdit ? 'sendbird-message-input__edit' : '', disabled ? 'sendbird-message-input-form__disabled' : ''])
593
610
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -606,12 +623,12 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
606
623
  if (preventEvent) {
607
624
  e.preventDefault();
608
625
  } else {
609
- var _e$nativeEvent, _ref$current, _ref$current$childNod, _ref$current2, _ref$current2$childNo, _ref$current2$childNo2, _ref$current$childNod2, _ref$current$childNod3;
610
- if (!e.shiftKey && e.key === MessageInputKeys.Enter && (e === null || e === void 0 ? void 0 : (_e$nativeEvent = e.nativeEvent) === null || _e$nativeEvent === void 0 ? void 0 : _e$nativeEvent.isComposing) !== true) {
626
+ var _textField$textConten4, _e$nativeEvent, _ref$current2, _ref$current2$childNo, _ref$current3, _ref$current3$childNo, _ref$current3$childNo2, _ref$current$childNod, _ref$current$childNod2;
627
+ if (!e.shiftKey && e.key === MessageInputKeys.Enter && (textField === null || textField === void 0 ? void 0 : (_textField$textConten4 = textField.textContent) === null || _textField$textConten4 === void 0 ? void 0 : _textField$textConten4.trim().length) > 0 && (e === null || e === void 0 ? void 0 : (_e$nativeEvent = e.nativeEvent) === null || _e$nativeEvent === void 0 ? void 0 : _e$nativeEvent.isComposing) !== true) {
611
628
  e.preventDefault();
612
629
  sendMessage();
613
630
  }
614
- if (e.key === MessageInputKeys.Backspace && (ref === null || ref === void 0 ? void 0 : (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$childNod = _ref$current.childNodes) === null || _ref$current$childNod === void 0 ? void 0 : _ref$current$childNod.length) === 2 && !(ref !== null && ref !== void 0 && (_ref$current2 = ref.current) !== null && _ref$current2 !== void 0 && (_ref$current2$childNo = _ref$current2.childNodes) !== null && _ref$current2$childNo !== void 0 && (_ref$current2$childNo2 = _ref$current2$childNo[0]) !== null && _ref$current2$childNo2 !== void 0 && _ref$current2$childNo2.textContent) && (ref === null || ref === void 0 ? void 0 : (_ref$current$childNod2 = ref.current.childNodes) === null || _ref$current$childNod2 === void 0 ? void 0 : (_ref$current$childNod3 = _ref$current$childNod2[1]) === null || _ref$current$childNod3 === void 0 ? void 0 : _ref$current$childNod3.nodeType) === NodeTypes.ElementNode) {
631
+ if (e.key === MessageInputKeys.Backspace && (ref === null || ref === void 0 ? void 0 : (_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : (_ref$current2$childNo = _ref$current2.childNodes) === null || _ref$current2$childNo === void 0 ? void 0 : _ref$current2$childNo.length) === 2 && !(ref !== null && ref !== void 0 && (_ref$current3 = ref.current) !== null && _ref$current3 !== void 0 && (_ref$current3$childNo = _ref$current3.childNodes) !== null && _ref$current3$childNo !== void 0 && (_ref$current3$childNo2 = _ref$current3$childNo[0]) !== null && _ref$current3$childNo2 !== void 0 && _ref$current3$childNo2.textContent) && (ref === null || ref === void 0 ? void 0 : (_ref$current$childNod = ref.current.childNodes) === null || _ref$current$childNod === void 0 ? void 0 : (_ref$current$childNod2 = _ref$current$childNod[1]) === null || _ref$current$childNod2 === void 0 ? void 0 : _ref$current$childNod2.nodeType) === NodeTypes.ElementNode) {
615
632
  ref === null || ref === void 0 ? void 0 : ref.current.removeChild(ref === null || ref === void 0 ? void 0 : ref.current.childNodes[1]);
616
633
  }
617
634
  }
@@ -628,14 +645,14 @@ const MessageInput = /*#__PURE__*/React__default.forwardRef((props, ref) => {
628
645
  useMentionInputDetection();
629
646
  },
630
647
  onInput: () => {
631
- var _textField$innerText4;
648
+ var _textField$textConten5;
632
649
  setHeight();
633
650
  onStartTyping();
634
- setIsInput(((_textField$innerText4 = textField.innerText) === null || _textField$innerText4 === void 0 ? void 0 : _textField$innerText4.trim().length) > 0);
651
+ setIsInput((textField === null || textField === void 0 ? void 0 : (_textField$textConten5 = textField.textContent) === null || _textField$textConten5 === void 0 ? void 0 : _textField$textConten5.trim().length) > 0);
635
652
  useMentionedLabelDetection();
636
653
  },
637
654
  onPaste: onPaste
638
- }), (textField === null || textField === void 0 ? void 0 : (_textField$innerText5 = textField.innerText) === null || _textField$innerText5 === void 0 ? void 0 : _textField$innerText5.length) === 0 && /*#__PURE__*/React__default.createElement(Label, {
655
+ }), (textField === null || textField === void 0 ? void 0 : (_textField$innerText = textField.innerText) === null || _textField$innerText === void 0 ? void 0 : _textField$innerText.length) === 0 && /*#__PURE__*/React__default.createElement(Label, {
639
656
  className: "sendbird-message-input--placeholder",
640
657
  type: LabelTypography.BODY_1,
641
658
  color: disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3
@@ -725,7 +742,11 @@ MessageInput.propTypes = {
725
742
  onMentionStringChange: PropTypes.func,
726
743
  onMentionedUserIdsUpdated: PropTypes.func,
727
744
  onKeyUp: PropTypes.func,
728
- onKeyDown: PropTypes.func
745
+ onKeyDown: PropTypes.func,
746
+ renderVoiceMessageIcon: PropTypes.func,
747
+ renderSendMessageIcon: PropTypes.func,
748
+ renderFileUploadIcon: PropTypes.func,
749
+ channel: PropTypes.shape({})
729
750
  };
730
751
  MessageInput.defaultProps = {
731
752
  className: '',
@@ -750,7 +771,12 @@ MessageInput.defaultProps = {
750
771
  onMentionStringChange: noop,
751
772
  onMentionedUserIdsUpdated: noop,
752
773
  onKeyUp: noop,
753
- onKeyDown: noop
774
+ onKeyDown: noop,
775
+ setMentionedUsers: noop,
776
+ renderVoiceMessageIcon: noop,
777
+ renderFileUploadIcon: noop,
778
+ renderSendMessageIcon: noop,
779
+ channel: {}
754
780
  };
755
781
 
756
782
  export { MessageInput as default };
@@ -1 +1 @@
1
- {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return Array.from(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return Array.from(textMessageBody.childNodes);\n }\n\n return Array.from(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n}\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n StringObjType,\n convertWordToStringObj,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n}\n\nconst resetInput = (ref) => {\n try {\n ref.current.innerHTML = '';\n } catch {\n //\n }\n}\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textField = ref?.current;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch { }\n setMentionedUserIds([]);\n setIsInput(textField?.innerText?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch { }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.innerText?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.innerText.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = [...textField?.childNodes];\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.innerText) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(textField?.innerText?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter && e?.nativeEvent?.isComposing !== true) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField.innerText?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","Array","from","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","childNodes","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","_mentionNode$dataset","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_textField$innerText3","_textField$innerText5","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textField","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","error","initialValue","useEffect","_textField$innerText","_unused2","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$innerText2","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","_unused3","useMentionedLabelDetection","newMentionedUserIds","getElementsByClassName","_node$dataset","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","Div","params","isEditDisabled","editMessage","onPaste","getClassName","contentEditable","role","preventEvent","_e$nativeEvent","_ref$current","_ref$current$childNod","_ref$current2","_ref$current2$childNo","_ref$current2$childNo2","_ref$current$childNod2","_ref$current$childNod3","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$innerText4","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"MessageInput.js","sources":["../../src/ui/MentionUserLabel/renderToString.ts","../../src/ui/MessageInput/utils.js","../../src/ui/MessageInput/hooks/usePaste/insertTemplate.ts","../../src/ui/MessageInput/hooks/usePaste/consts.ts","../../src/ui/MessageInput/hooks/usePaste/utils.ts","../../src/ui/MessageInput/hooks/usePaste/index.ts","../../src/ui/MessageInput/index.jsx"],"sourcesContent":["// cretes a sanitized string from a mention user label\nimport DOMPurify from 'dompurify';\nimport { MENTION_USER_LABEL_CLASSNAME } from './consts';\n\ntype renderToStringParams = {\n userId: string;\n nickname: string;\n};\n\nexport default function renderToString({ userId, nickname }: renderToStringParams): string {\n // donot change this template, it wont work\n const el = `<span data-userid=\"${userId}\" data-sb-mention=\"true\" class=\"${MENTION_USER_LABEL_CLASSNAME}\">${nickname}</span>`;\n const purifier = DOMPurify(window);\n const sanitized_ = purifier.sanitize(el);\n const token = sanitized_.split(' ');\n const [spanTag, ...rest] = token;\n // we do this because DOMPurify removes the contenteditable attribute\n const sanitized = [spanTag, 'contenteditable=\"false\"', ...rest].join(' ');\n return sanitized;\n}\n","// https://davidwalsh.name/javascript-debounce-function\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function _debounce() {\n const context = this;\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n const later = () => {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\n// Sanitize that special characters of HTML tags cause XSS issue\nexport const sanitizeString = (str) => (\n str?.replace(/[\\u00A0-\\u9999<>]/gim, (i) => ''.concat('&#', i.charCodeAt(0), ';'))\n);\n\n/**\n * NodeList cannot be used with Array methods\n * @param {childNodes} NodeList\n * @returns Array of child nodes\n */\nexport const nodeListToArray = (childNodes) => {\n try {\n return Array.from(childNodes);\n } catch (error) {\n return [];\n }\n};\n\nexport default debounce;\n","import { Word } from './types';\nimport { sanitizeString } from '../../utils';\nimport renderMentionLabelToString from '../../../MentionUserLabel/renderToString';\n\nexport function inserTemplateToDOM(templateList: Word[]): void {\n const nodes = templateList.map((template) => {\n const { text, userId } = template;\n if (userId) {\n return renderMentionLabelToString({ userId, nickname: text });\n }\n return sanitizeString(text);\n })\n .join(' ')\n // add a space at the end of the mention, else cursor/caret wont work\n .concat(' ');\n document.execCommand('insertHTML', false, nodes);\n}\n","export const PASTE_NODE = 'sendbird-uikit__paste-node';\nexport const TEXT_MESSAGE_CLASS = 'sendbird-word';\nexport const MENTION_CLASS = 'sendbird-word__mention';\nexport const MENTION_CLASS_IN_INPUT = 'sendbird-mention-user-label';\nexport const MENTION_CLASS_COMBINED_QUERY = `.${MENTION_CLASS}, .${MENTION_CLASS_IN_INPUT}`;\n","import { GroupChannel } from '@sendbird/chat/groupChannel';\nimport { User } from '@sendbird/chat';\n\nimport {\n PASTE_NODE,\n MENTION_CLASS,\n TEXT_MESSAGE_CLASS,\n MENTION_CLASS_COMBINED_QUERY,\n MENTION_CLASS_IN_INPUT,\n} from './consts';\nimport { Word } from './types';\nimport { TEXT_MESSAGE_BODY_CLASSNAME } from '../../../TextMessageItemBody/consts';\nimport { OG_MESSAGE_BODY_CLASSNAME } from '../../../OGMessageItemBody/consts';\nimport { nodeListToArray } from '../../utils';\n\nexport function querySelectorIncludingSelf(\n master: HTMLElement,\n selector: string,\n): HTMLElement | null {\n const result = [\n master,\n ...Array.from(master.querySelectorAll(selector)),\n ].find((el) => el.matches(selector)) as HTMLElement | null;\n return result;\n}\n\n// Pasted dom node can be OG_MESSAGE or partial message or full message\n// full messsage would have TEXT_MESSAGE_BODY_CLASSNAME and have childNodes\n// partial message would not have TEXT_MESSAGE_BODY_CLASSNAME\nexport function getLeafNodes(master: HTMLElement): ChildNode[] {\n // og message\n const ogMessage = querySelectorIncludingSelf(master, `.${OG_MESSAGE_BODY_CLASSNAME}`);\n if (ogMessage) {\n return nodeListToArray(ogMessage.childNodes);\n }\n\n const textMessageBody = querySelectorIncludingSelf(master, `.${TEXT_MESSAGE_BODY_CLASSNAME}`);\n if (textMessageBody) {\n return nodeListToArray(textMessageBody.childNodes);\n }\n\n return nodeListToArray(master.childNodes);\n}\n\nexport function createPasteNode(): HTMLDivElement | null {\n const pasteNode = document.body.querySelector(`#${PASTE_NODE}`);\n // remove existing paste node\n if (pasteNode) {\n pasteNode?.remove();\n }\n\n // create new paste node and return\n const node = document.createElement('div');\n node.id = PASTE_NODE;\n node.style.display = 'none';\n return node;\n}\n\nexport function hasMention(parent: HTMLDivElement): boolean {\n return parent?.querySelector(MENTION_CLASS_COMBINED_QUERY) ? true : false;\n}\n\nexport const extractTextFromNodes = (nodes: HTMLSpanElement[]): string => {\n let text = '';\n nodes.forEach((node) => {\n // to preserve space between words\n const textNodes = node.querySelectorAll(`.${TEXT_MESSAGE_CLASS}`);\n if (textNodes.length > 0) {\n text += ((extractTextFromNodes(Array.from(textNodes) as HTMLSpanElement[])) + ' ');\n }\n text += (node.innerText + ' ');\n });\n return text;\n};\n\nexport function domToMessageTemplate(nodeArray: ChildNode[]): Word[] {\n const templates: Word[] = nodeArray?.reduce((accumulator, currentValue) => {\n // currentValue can be node(from messageBody or messageInput) or text\n let mentionNode;\n // this looks awkward, but it is a fallback to set default text\n let text = (currentValue as HTMLSpanElement)?.innerText;\n\n // if text node, set text\n if (currentValue instanceof Text) {\n mentionNode = false;\n text = currentValue.textContent;\n }\n\n if (currentValue instanceof HTMLElement) {\n mentionNode = (currentValue.classList.contains(MENTION_CLASS) || currentValue.classList.contains(MENTION_CLASS_IN_INPUT))\n ? currentValue\n : currentValue.querySelector(MENTION_CLASS_COMBINED_QUERY);\n }\n\n // if mentionNode is not null, it is a mention\n if (mentionNode) {\n const text = (currentValue as HTMLSpanElement)?.innerText;\n const userId = mentionNode.dataset?.userid;\n return [\n ...accumulator,\n {\n text,\n userId,\n },\n ];\n }\n\n return [\n ...accumulator,\n {\n text,\n },\n ];\n }, [] as Word[]);\n return templates;\n}\n\nexport function getUsersFromWords(templates: Word[], channel: GroupChannel): User[] {\n const userMap = {};\n const users = channel.members;\n templates.forEach((template) => {\n if (template.userId) {\n const mentionedMember = users.find((user) => user.userId === template.userId);\n // Object.values would return array-> [undefined] if the user is not in the channel\n if (mentionedMember) {\n userMap[template.userId] = mentionedMember;\n }\n }\n });\n return Object.values(userMap);\n}\n","import { useCallback } from 'react';\nimport DOMPurify from 'dompurify';\n\nimport { inserTemplateToDOM } from './insertTemplate';\nimport { sanitizeString } from '../../utils';\nimport { DynamicProps } from './types';\nimport {\n createPasteNode,\n hasMention,\n domToMessageTemplate,\n getUsersFromWords,\n extractTextFromNodes,\n getLeafNodes,\n} from './utils';\n\n// conditions to test:\n// 1. paste simple text\n// 2. paste text with mention\n// 3. paste text with mention and text\n// 4. paste text with mention and text and paste again before and after\n// 5. copy message with mention(only one mention, no other text) and paste\n// 6. copy message with mention from input and paste(before and after)\nexport default function usePaste({\n ref,\n setIsInput,\n setHeight,\n channel,\n setMentionedUsers,\n}: DynamicProps): (e: React.ClipboardEvent<HTMLDivElement>) => void {\n return useCallback((e) => {\n e.preventDefault();\n const html = e?.clipboardData.getData('text/html');\n // simple text, continue as normal\n if (!html) {\n const text = e?.clipboardData.getData('text');\n document.execCommand('insertHTML', false, sanitizeString(text));\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has html, check if there are mentions, sanitize and insert\n const purifier = DOMPurify(window);\n const clean = purifier.sanitize(html);\n const pasteNode = createPasteNode();\n pasteNode.innerHTML = clean;\n // does not have mention, continue as normal\n if (!hasMention(pasteNode)) {\n // to preserve space between words\n const text = extractTextFromNodes(Array.from(pasteNode.children) as HTMLSpanElement[]);\n document.execCommand('insertHTML', false, sanitizeString(text));\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n return;\n }\n\n // has mention, collect leaf nodes and parse words\n const leafNodes = getLeafNodes(pasteNode);\n const words = domToMessageTemplate(leafNodes);\n const mentionedUsers = getUsersFromWords(words, channel);\n\n // side effects\n setMentionedUsers(mentionedUsers);\n inserTemplateToDOM(words);\n pasteNode.remove();\n setIsInput(true);\n setHeight();\n }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);\n}\n","import React, {\n useRef,\n useMemo,\n useState,\n useEffect,\n useCallback,\n useContext,\n} from 'react';\nimport PropTypes from 'prop-types';\n\nimport './index.scss';\nimport { MessageInputKeys, NodeNames, NodeTypes } from './const';\n\nimport { USER_MENTION_TEMP_CHAR } from '../../modules/Channel/context/const';\nimport IconButton from '../IconButton';\nimport Button, { ButtonTypes, ButtonSizes } from '../Button';\nimport renderMentionLabelToString from '../MentionUserLabel/renderToString';\nimport Icon, { IconTypes, IconColors } from '../Icon';\nimport Label, { LabelTypography, LabelColors } from '../Label';\nimport { LocalizationContext } from '../../lib/LocalizationContext';\nimport { nodeListToArray, sanitizeString } from './utils';\nimport {\n arrayEqual,\n getClassName,\n} from '../../utils';\nimport usePaste from './hooks/usePaste';\nimport { tokenizeMessage } from '../../modules/Message/utils/tokens/tokenize';\nimport { USER_MENTION_PREFIX } from '../../modules/Message/consts';\nimport { TOKEN_TYPES } from '../../modules/Message/utils/tokens/types';\n\nconst TEXT_FIELD_ID = 'sendbird-message-input-text-field';\nconst LINE_HEIGHT = 76;\nconst noop = () => { };\nconst handleUploadFile = (callback) => (event) => {\n if (event.target.files && event.target.files[0]) {\n callback(event.target.files[0]);\n }\n // eslint-disable-next-line no-param-reassign\n event.target.value = '';\n};\n\nconst displayCaret = (element, position) => {\n const range = document.createRange();\n const sel = window.getSelection();\n range.setStart(element.childNodes[0], position);\n range.collapse(true);\n sel.removeAllRanges();\n sel.addRange(range);\n element.focus();\n};\n\nconst resetInput = (ref) => {\n try {\n /* eslint-disable no-param-reassign */\n ref.current.innerHTML = '';\n } catch {\n //\n }\n};\n\nconst initialTargetStringInfo = {\n targetString: '',\n startNodeIndex: null,\n startOffsetIndex: null,\n endNodeIndex: null,\n endOffsetIndex: null,\n};\n\nconst MessageInput = React.forwardRef((props, ref) => {\n const {\n className,\n messageFieldId,\n isEdit,\n isMentionEnabled,\n isVoiceMessageEnabled,\n disabled,\n message,\n placeholder,\n maxLength,\n onFileUpload,\n onSendMessage,\n onUpdateMessage,\n onCancelEdit,\n onStartTyping,\n channelUrl,\n channel,\n mentionSelectedUser,\n onUserMentioned,\n onMentionStringChange,\n onMentionedUserIdsUpdated,\n onVoiceMessageIconClick,\n onKeyUp,\n onKeyDown,\n renderFileUploadIcon,\n renderVoiceMessageIcon,\n renderSendMessageIcon,\n setMentionedUsers,\n } = props;\n const textFieldId = messageFieldId || TEXT_FIELD_ID;\n const { stringSet } = useContext(LocalizationContext);\n const fileInputRef = useRef(null);\n const [isInput, setIsInput] = useState(false);\n const [mentionedUserIds, setMentionedUserIds] = useState([]);\n const [targetStringInfo, setTargetStringInfo] = useState({ ...initialTargetStringInfo });\n const setHeight = useMemo(() => (\n () => {\n try {\n const elem = ref?.current;\n const MAX_HEIGHT = window.document.body.offsetHeight * 0.6;\n if (elem && elem.scrollHeight >= LINE_HEIGHT) {\n if (MAX_HEIGHT < elem.scrollHeight) {\n elem.style.height = 'auto';\n elem.style.height = `${MAX_HEIGHT}px`;\n } else {\n elem.style.height = 'auto';\n elem.style.height = `${elem.scrollHeight}px`;\n }\n } else {\n elem.style.height = '';\n }\n } catch (error) {\n // error\n }\n }\n ), []);\n\n // #Edit mode\n // for easilly initialize input value from outside, but\n // useEffect(_, [channelUrl]) erase it\n const initialValue = props?.value;\n useEffect(() => {\n const textField = ref?.current;\n try {\n textField.innerHTML = initialValue;\n displayCaret(textField, initialValue?.length);\n } catch {\n //\n }\n setMentionedUserIds([]);\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }, [initialValue]);\n\n // #Mention | Clear input value when channel changes\n useEffect(() => {\n if (!isEdit) {\n setIsInput(false);\n resetInput(ref);\n }\n }, [channelUrl]);\n\n // #Mention & #Edit | Fill message input values\n useEffect(() => {\n if (isEdit && message?.messageId) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n if (isMentionEnabled\n && message?.mentionedUsers?.length > 0\n && message?.mentionedMessageTemplate?.length > 0\n ) {\n /* mention enabled */\n const { mentionedUsers = [] } = message;\n const tokens = tokenizeMessage({\n messageText: message?.mentionedMessageTemplate,\n mentionedUsers,\n });\n textField.innerHTML = tokens.map((token) => {\n if (token.type === TOKEN_TYPES.mention) {\n const mentionedUser = mentionedUsers.find((user) => user.userId === token.userId);\n const nickname = `${USER_MENTION_PREFIX}${mentionedUser?.nickname || token.value || stringSet.MENTION_NAME__NO_NAME}`;\n return renderMentionLabelToString({\n userId: token.userId,\n nickname,\n });\n }\n return sanitizeString(token.value);\n }).join(' ');\n } else {\n /* mention disabled */\n try {\n textField.innerHTML = sanitizeString(message?.message);\n } catch {\n //\n }\n setMentionedUserIds([]);\n }\n setIsInput(textField?.textContent?.trim().length > 0);\n setHeight();\n }\n }, [isEdit, message]);\n\n // #Mention | Detect MentionedLabel modified\n const useMentionedLabelDetection = useCallback(() => {\n const textField = ref?.current;\n if (isMentionEnabled) {\n const newMentionedUserIds = [...textField.getElementsByClassName('sendbird-mention-user-label')].map((node) => node?.dataset?.userid);\n if (!arrayEqual(mentionedUserIds, newMentionedUserIds) || newMentionedUserIds.length === 0) {\n onMentionedUserIdsUpdated(newMentionedUserIds);\n setMentionedUserIds(newMentionedUserIds);\n }\n }\n setIsInput(textField.textContent?.trim().length > 0);\n }, [targetStringInfo, isMentionEnabled]);\n\n // #Mention | Replace selected user nickname to the MentionedUserLabel\n useEffect(() => {\n if (isMentionEnabled && mentionSelectedUser) {\n const {\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex,\n endOffsetIndex,\n } = targetStringInfo;\n if (targetString && startNodeIndex !== null && startOffsetIndex !== null) {\n // const textField = document.getElementById(textFieldId);\n const textField = ref?.current;\n const childNodes = nodeListToArray(textField?.childNodes);\n const frontTextNode = document?.createTextNode(\n childNodes[startNodeIndex]?.textContent.slice(0, startOffsetIndex),\n );\n const backTextNode = document?.createTextNode(\n `\\u00A0${childNodes[endNodeIndex]?.textContent.slice(endOffsetIndex)}`,\n );\n const mentionLabel = renderMentionLabelToString({\n userId: mentionSelectedUser?.userId,\n nickname: `${USER_MENTION_TEMP_CHAR}${mentionSelectedUser?.nickname || stringSet.MENTION_NAME__NO_NAME}`,\n });\n const div = document.createElement('div');\n div.innerHTML = mentionLabel;\n const newNodes = [\n ...childNodes.slice(0, startNodeIndex),\n frontTextNode,\n div.childNodes[0],\n backTextNode,\n ...childNodes.slice(endNodeIndex + 1),\n ];\n textField.innerHTML = '';\n newNodes.forEach((newNode) => {\n textField.appendChild(newNode);\n });\n onUserMentioned(mentionSelectedUser);\n if (window.getSelection || document.getSelection) {\n // set caret postion\n const selection = window.getSelection() || document.getSelection();\n selection.removeAllRanges();\n const range = new Range();\n range.selectNodeContents(textField);\n range.setStart(textField.childNodes[startNodeIndex + 2], 1);\n range.setEnd(textField.childNodes[startNodeIndex + 2], 1);\n range.collapse(false);\n selection.addRange(range);\n textField.focus();\n }\n setTargetStringInfo({ ...initialTargetStringInfo });\n setHeight();\n useMentionedLabelDetection();\n }\n }\n }, [mentionSelectedUser, isMentionEnabled]);\n\n // #Mention | Detect mentioning user nickname\n const useMentionInputDetection = useCallback(() => {\n const selection = window?.getSelection?.() || document?.getSelection?.();\n const textField = ref?.current;\n if (selection.anchorNode === textField) {\n onMentionStringChange('');\n }\n if (isMentionEnabled && selection\n && selection.anchorNode === selection.focusNode\n && selection.anchorOffset === selection.focusOffset\n ) {\n let textStack = '';\n let startNodeIndex = null;\n let startOffsetIndex = null;\n for (let index = 0; index < textField.childNodes.length; index += 1) {\n const currentNode = textField.childNodes[index];\n if (currentNode.nodeType === NodeTypes.TextNode) {\n /* text node */\n const textContent = (currentNode === selection.anchorNode)\n ? currentNode?.textContent.slice(0, selection.anchorOffset) || ''\n : currentNode?.textContent || '';\n if (textStack.length > 0) {\n textStack += textContent;\n } else {\n let charLastIndex = textContent.lastIndexOf(USER_MENTION_TEMP_CHAR);\n for (let i = charLastIndex - 1; i > -1; i -= 1) {\n if (textContent[i] === USER_MENTION_TEMP_CHAR) {\n charLastIndex = i;\n } else {\n break;\n }\n }\n if (charLastIndex > -1) {\n textStack = textContent;\n startNodeIndex = index;\n startOffsetIndex = charLastIndex;\n }\n }\n } else {\n /* other nodes */\n textStack = '';\n startNodeIndex = null;\n startOffsetIndex = null;\n }\n if (currentNode === selection.anchorNode) {\n /**\n * targetString could be ''\n * startNodeIndex and startOffsetIndex could be null\n */\n const targetString = textStack ? textStack.slice(startOffsetIndex) : '';// include template character\n setTargetStringInfo({\n targetString,\n startNodeIndex,\n startOffsetIndex,\n endNodeIndex: index,\n endOffsetIndex: selection.anchorOffset,\n });\n onMentionStringChange(targetString);\n return;\n }\n }\n }\n }, [isMentionEnabled]);\n\n const sendMessage = () => {\n const textField = ref?.current;\n if (!isEdit && textField?.textContent) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n } else if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Br) {\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else if (node?.nodeType === NodeTypes.ElementNode && node?.nodeName === NodeNames.Div) {\n // handles newline in safari\n const { textContent = '' } = node;\n messageText += `\\n${textContent}`;\n mentionTemplate += `\\n${textContent}`;\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { message: messageText, mentionTemplate };\n onSendMessage(params);\n resetInput(ref);\n setIsInput(false);\n setHeight();\n }\n };\n const isEditDisabled = !(ref?.current?.textContent?.trim());\n const editMessage = () => {\n const textField = ref?.current;\n const messageId = message?.messageId;\n if (isEdit && messageId) {\n let messageText = '';\n let mentionTemplate = '';\n textField.childNodes.forEach((node) => {\n if (node.nodeType === NodeTypes.ElementNode && node.nodeName === NodeNames.Span) {\n const { innerText, dataset = {} } = node;\n const { userid = '' } = dataset;\n messageText += innerText;\n mentionTemplate += `${USER_MENTION_TEMP_CHAR}{${userid}}`;\n messageText += '\\n';\n mentionTemplate += '\\n';\n } else { // other nodes including text node\n const { textContent = '' } = node;\n messageText += textContent;\n mentionTemplate += textContent;\n }\n });\n const params = { messageId, message: messageText, mentionTemplate };\n onUpdateMessage(params);\n resetInput(ref);\n }\n };\n const onPaste = usePaste({\n ref,\n setMentionedUserIds,\n setMentionedUsers,\n channel,\n setIsInput,\n setHeight,\n });\n\n const textField = ref?.current;\n return (\n <form\n className={getClassName([\n className,\n isEdit ? 'sendbird-message-input__edit' : '',\n disabled ? 'sendbird-message-input-form__disabled' : '',\n ])}\n >\n <div\n className={getClassName([\n 'sendbird-message-input',\n disabled ? 'sendbird-message-input__disabled' : '',\n ])}\n >\n <div\n id={`${textFieldId}${isEdit ? message?.messageId : ''}`}\n className={`sendbird-message-input--textarea ${textFieldId}`}\n contentEditable={!disabled}\n role=\"textbox\"\n aria-label=\"Text Input\"\n disabled={disabled}\n ref={ref}\n maxLength={maxLength}\n onKeyDown={(e) => {\n const preventEvent = onKeyDown(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n if (!e.shiftKey && e.key === MessageInputKeys.Enter\n && textField?.textContent?.trim().length > 0\n && e?.nativeEvent?.isComposing !== true\n ) {\n e.preventDefault();\n sendMessage();\n }\n if (e.key === MessageInputKeys.Backspace\n && ref?.current?.childNodes?.length === 2\n && !ref?.current?.childNodes?.[0]?.textContent\n && ref?.current.childNodes?.[1]?.nodeType === NodeTypes.ElementNode\n ) {\n ref?.current.removeChild(ref?.current.childNodes[1]);\n }\n }\n }}\n onKeyUp={(e) => {\n const preventEvent = onKeyUp(e);\n if (preventEvent) {\n e.preventDefault();\n } else {\n useMentionInputDetection();\n }\n }}\n onClick={() => {\n useMentionInputDetection();\n }}\n onInput={() => {\n setHeight();\n onStartTyping();\n setIsInput(textField?.textContent?.trim().length > 0);\n useMentionedLabelDetection();\n }}\n onPaste={onPaste}\n />\n {/* placeholder */}\n {textField?.innerText?.length === 0 && (\n <Label\n className=\"sendbird-message-input--placeholder\"\n type={LabelTypography.BODY_1}\n color={disabled ? LabelColors.ONBACKGROUND_4 : LabelColors.ONBACKGROUND_3}\n >\n {placeholder || stringSet.MESSAGE_INPUT__PLACE_HOLDER}\n </Label>\n )}\n {/* send icon */}\n {\n (!isEdit && isInput) && (\n <IconButton\n className=\"sendbird-message-input--send\"\n height=\"32px\"\n width=\"32px\"\n onClick={() => sendMessage()}\n >\n {\n renderSendMessageIcon?.() || (\n <Icon\n type={IconTypes.SEND}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.PRIMARY}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )\n }\n {/* file upload icon */}\n {\n (!isEdit && !isInput) && (\n (renderFileUploadIcon?.() || (\n <IconButton\n className={`sendbird-message-input--attach ${isVoiceMessageEnabled ? 'is-voice-message-enabled' : ''}`}\n height=\"32px\"\n width=\"32px\"\n onClick={() => {\n // todo: clear previous input\n fileInputRef?.current?.click?.();\n }}\n >\n <Icon\n type={IconTypes.ATTACH}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n <input\n className=\"sendbird-message-input--attach-input\"\n type=\"file\"\n ref={fileInputRef}\n onChange={handleUploadFile(onFileUpload)}\n />\n </IconButton>\n ))\n )\n }\n {/* voice message input trigger */}\n {(isVoiceMessageEnabled && !isEdit && !isInput) && (\n <IconButton\n className=\"sendbird-message-input--voice-message\"\n width=\"32px\"\n height=\"32px\"\n onClick={onVoiceMessageIconClick}\n >\n {\n renderVoiceMessageIcon?.() || (\n <Icon\n type={IconTypes.AUDIO_ON_LINED}\n fillColor={disabled ? IconColors.ON_BACKGROUND_4 : IconColors.CONTENT_INVERSE}\n width=\"20px\"\n height=\"20px\"\n />\n )\n }\n </IconButton>\n )}\n </div>\n {/* Edit */}\n {\n isEdit && (\n <div className=\"sendbird-message-input--edit-action\">\n <Button\n className=\"sendbird-message-input--edit-action__cancel\"\n type={ButtonTypes.SECONDARY}\n size={ButtonSizes.SMALL}\n onClick={onCancelEdit}\n >\n {stringSet.BUTTON__CANCEL}\n </Button>\n <Button\n className=\"sendbird-message-input--edit-action__save\"\n type={ButtonTypes.PRIMARY}\n size={ButtonSizes.SMALL}\n disabled={isEditDisabled}\n onClick={() => editMessage()}\n >\n {stringSet.BUTTON__SAVE}\n </Button>\n </div>\n )\n }\n </form>\n );\n});\n\nMessageInput.propTypes = {\n className: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n ]),\n messageFieldId: PropTypes.string,\n placeholder: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n value: PropTypes.string,\n isEdit: PropTypes.bool,\n isMentionEnabled: PropTypes.bool,\n isVoiceMessageEnabled: PropTypes.bool,\n onVoiceMessageIconClick: PropTypes.func,\n message: PropTypes.shape({\n messageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n message: PropTypes.string,\n mentionedMessageTemplate: PropTypes.string,\n mentionedUsers: PropTypes.arrayOf(PropTypes.shape({})),\n }),\n disabled: PropTypes.bool,\n maxLength: PropTypes.number,\n onFileUpload: PropTypes.func,\n onSendMessage: PropTypes.func,\n onUpdateMessage: PropTypes.func,\n onStartTyping: PropTypes.func,\n onCancelEdit: PropTypes.func,\n channelUrl: PropTypes.string,\n mentionSelectedUser: PropTypes.shape({\n userId: PropTypes.string,\n nickname: PropTypes.string,\n }),\n setMentionedUsers: PropTypes.func,\n onUserMentioned: PropTypes.func,\n onMentionStringChange: PropTypes.func,\n onMentionedUserIdsUpdated: PropTypes.func,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n renderVoiceMessageIcon: PropTypes.func,\n renderSendMessageIcon: PropTypes.func,\n renderFileUploadIcon: PropTypes.func,\n channel: PropTypes.shape({}),\n};\n\nMessageInput.defaultProps = {\n className: '',\n messageFieldId: '',\n channelUrl: '',\n onSendMessage: noop,\n onUpdateMessage: noop,\n value: null,\n message: null,\n isEdit: false,\n isMentionEnabled: false,\n isVoiceMessageEnabled: true,\n onVoiceMessageIconClick: noop,\n disabled: false,\n placeholder: '',\n maxLength: 5000,\n onFileUpload: noop,\n onCancelEdit: noop,\n onStartTyping: noop,\n mentionSelectedUser: null,\n onUserMentioned: noop,\n onMentionStringChange: noop,\n onMentionedUserIdsUpdated: noop,\n onKeyUp: noop,\n onKeyDown: noop,\n setMentionedUsers: noop,\n renderVoiceMessageIcon: noop,\n renderFileUploadIcon: noop,\n renderSendMessageIcon: noop,\n channel: {},\n};\n\nexport default MessageInput;\n"],"names":["renderToString","_ref","userId","nickname","el","MENTION_USER_LABEL_CLASSNAME","purifier","DOMPurify","window","sanitized_","sanitize","token","split","spanTag","rest","sanitized","join","sanitizeString","str","replace","i","concat","charCodeAt","nodeListToArray","childNodes","Array","from","error","inserTemplateToDOM","templateList","nodes","map","template","text","renderMentionLabelToString","document","execCommand","PASTE_NODE","TEXT_MESSAGE_CLASS","MENTION_CLASS","MENTION_CLASS_IN_INPUT","MENTION_CLASS_COMBINED_QUERY","querySelectorIncludingSelf","master","selector","result","querySelectorAll","find","matches","getLeafNodes","ogMessage","OG_MESSAGE_BODY_CLASSNAME","textMessageBody","TEXT_MESSAGE_BODY_CLASSNAME","createPasteNode","pasteNode","body","querySelector","remove","node","createElement","id","style","display","hasMention","parent","extractTextFromNodes","forEach","textNodes","length","innerText","domToMessageTemplate","nodeArray","templates","reduce","accumulator","currentValue","mentionNode","Text","textContent","HTMLElement","classList","contains","_mentionNode$dataset","dataset","userid","getUsersFromWords","channel","userMap","users","members","mentionedMember","user","Object","values","usePaste","ref","setIsInput","setHeight","setMentionedUsers","useCallback","e","preventDefault","html","clipboardData","getData","clean","innerHTML","children","leafNodes","words","mentionedUsers","TEXT_FIELD_ID","LINE_HEIGHT","noop","handleUploadFile","callback","event","target","files","value","displayCaret","element","position","range","createRange","sel","getSelection","setStart","collapse","removeAllRanges","addRange","focus","resetInput","current","_unused","initialTargetStringInfo","targetString","startNodeIndex","startOffsetIndex","endNodeIndex","endOffsetIndex","MessageInput","React","forwardRef","props","_ref$current","_ref$current$textCont","_textField$innerText","className","messageFieldId","isEdit","isMentionEnabled","isVoiceMessageEnabled","disabled","message","placeholder","maxLength","onFileUpload","onSendMessage","onUpdateMessage","onCancelEdit","onStartTyping","channelUrl","mentionSelectedUser","onUserMentioned","onMentionStringChange","onMentionedUserIdsUpdated","onVoiceMessageIconClick","onKeyUp","onKeyDown","renderFileUploadIcon","renderVoiceMessageIcon","renderSendMessageIcon","textFieldId","stringSet","useContext","LocalizationContext","fileInputRef","useRef","isInput","useState","mentionedUserIds","setMentionedUserIds","targetStringInfo","setTargetStringInfo","_objectSpread","useMemo","elem","MAX_HEIGHT","offsetHeight","scrollHeight","height","initialValue","useEffect","_textField$textConten","textField","_unused2","trim","messageId","_message$mentionedUse","_message$mentionedMes","_textField$textConten2","mentionedMessageTemplate","tokens","tokenizeMessage","messageText","type","TOKEN_TYPES","mention","mentionedUser","USER_MENTION_PREFIX","MENTION_NAME__NO_NAME","_unused3","useMentionedLabelDetection","_textField$textConten3","newMentionedUserIds","getElementsByClassName","_node$dataset","arrayEqual","_document","_childNodes$startNode","_document2","_childNodes$endNodeIn","frontTextNode","createTextNode","slice","backTextNode","mentionLabel","USER_MENTION_TEMP_CHAR","div","newNodes","newNode","appendChild","selection","Range","selectNodeContents","setEnd","useMentionInputDetection","_window","_window$getSelection","_document3","_document3$getSelecti","call","anchorNode","focusNode","anchorOffset","focusOffset","textStack","index","currentNode","nodeType","NodeTypes","TextNode","charLastIndex","lastIndexOf","sendMessage","mentionTemplate","ElementNode","nodeName","NodeNames","Span","Br","Div","params","isEditDisabled","editMessage","onPaste","getClassName","contentEditable","role","preventEvent","_textField$textConten4","_e$nativeEvent","_ref$current2","_ref$current2$childNo","_ref$current3","_ref$current3$childNo","_ref$current3$childNo2","_ref$current$childNod","_ref$current$childNod2","shiftKey","key","MessageInputKeys","Enter","nativeEvent","isComposing","Backspace","removeChild","onClick","onInput","_textField$textConten5","Label","LabelTypography","BODY_1","color","LabelColors","ONBACKGROUND_4","ONBACKGROUND_3","MESSAGE_INPUT__PLACE_HOLDER","IconButton","width","Icon","IconTypes","SEND","fillColor","IconColors","ON_BACKGROUND_4","PRIMARY","_fileInputRef$current","_fileInputRef$current2","click","ATTACH","CONTENT_INVERSE","onChange","AUDIO_ON_LINED","Button","ButtonTypes","SECONDARY","size","ButtonSizes","SMALL","BUTTON__CANCEL","BUTTON__SAVE","propTypes","PropTypes","oneOfType","string","arrayOf","bool","func","shape","number","defaultProps"],"mappings":"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"}