@sendbird/uikit-react 3.4.6 → 3.4.7-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (888) hide show
  1. package/App.js +177 -172
  2. package/App.js.map +1 -1
  3. package/Channel/components/ChannelHeader.js +44 -39
  4. package/Channel/components/ChannelHeader.js.map +1 -1
  5. package/Channel/components/ChannelUI.js +63 -61
  6. package/Channel/components/ChannelUI.js.map +1 -1
  7. package/Channel/components/FileViewer.js +52 -46
  8. package/Channel/components/FileViewer.js.map +1 -1
  9. package/Channel/components/FrozenNotification.js +12 -9
  10. package/Channel/components/FrozenNotification.js.map +1 -1
  11. package/Channel/components/Message.js +165 -183
  12. package/Channel/components/Message.js.map +1 -1
  13. package/Channel/components/MessageInput.js +106 -113
  14. package/Channel/components/MessageInput.js.map +1 -1
  15. package/Channel/components/MessageList.js +128 -130
  16. package/Channel/components/MessageList.js.map +1 -1
  17. package/Channel/components/RemoveMessageModal.js +32 -28
  18. package/Channel/components/RemoveMessageModal.js.map +1 -1
  19. package/Channel/components/SuggestedMentionList.js +134 -153
  20. package/Channel/components/SuggestedMentionList.js.map +1 -1
  21. package/Channel/components/TypingIndicator.js +43 -42
  22. package/Channel/components/TypingIndicator.js.map +1 -1
  23. package/Channel/components/UnreadCount.js +18 -16
  24. package/Channel/components/UnreadCount.js.map +1 -1
  25. package/Channel/context.js +13 -14
  26. package/Channel/context.js.map +1 -1
  27. package/Channel.js +39 -40
  28. package/Channel.js.map +1 -1
  29. package/ChannelList/components/AddChannel.js +27 -29
  30. package/ChannelList/components/AddChannel.js.map +1 -1
  31. package/ChannelList/components/ChannelListHeader.js +30 -21
  32. package/ChannelList/components/ChannelListHeader.js.map +1 -1
  33. package/ChannelList/components/ChannelListUI.js +91 -98
  34. package/ChannelList/components/ChannelListUI.js.map +1 -1
  35. package/ChannelList/components/ChannelPreview.js +70 -73
  36. package/ChannelList/components/ChannelPreview.js.map +1 -1
  37. package/ChannelList/components/ChannelPreviewAction.js +30 -30
  38. package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  39. package/ChannelList/context.js +7 -8
  40. package/ChannelList/context.js.map +1 -1
  41. package/ChannelList.js +30 -31
  42. package/ChannelList.js.map +1 -1
  43. package/{ChannelListProvider-a2f2ee4a.js → ChannelListProvider-0aff7f22.js} +160 -156
  44. package/ChannelListProvider-0aff7f22.js.map +1 -0
  45. package/{ChannelProvider-bb459e82.js → ChannelProvider-be9f80f1.js} +429 -412
  46. package/ChannelProvider-be9f80f1.js.map +1 -0
  47. package/ChannelSettings/components/ChannelProfile.js +33 -37
  48. package/ChannelSettings/components/ChannelProfile.js.map +1 -1
  49. package/ChannelSettings/components/ChannelSettingsUI.js +45 -40
  50. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  51. package/ChannelSettings/components/EditDetailsModal.js +47 -48
  52. package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  53. package/ChannelSettings/components/LeaveChannel.js +38 -35
  54. package/ChannelSettings/components/LeaveChannel.js.map +1 -1
  55. package/ChannelSettings/components/ModerationPanel.js +511 -556
  56. package/ChannelSettings/components/ModerationPanel.js.map +1 -1
  57. package/ChannelSettings/components/UserListItem.js +69 -69
  58. package/ChannelSettings/components/UserListItem.js.map +1 -1
  59. package/ChannelSettings/components/UserPanel.js +25 -27
  60. package/ChannelSettings/components/UserPanel.js.map +1 -1
  61. package/ChannelSettings/context.js +53 -49
  62. package/ChannelSettings/context.js.map +1 -1
  63. package/ChannelSettings.js +19 -18
  64. package/ChannelSettings.js.map +1 -1
  65. package/CreateChannel/components/CreateChannelUI.js +24 -21
  66. package/CreateChannel/components/CreateChannelUI.js.map +1 -1
  67. package/CreateChannel/components/InviteUsers.js +92 -93
  68. package/CreateChannel/components/InviteUsers.js.map +1 -1
  69. package/CreateChannel/components/SelectChannelType.js +41 -35
  70. package/CreateChannel/components/SelectChannelType.js.map +1 -1
  71. package/CreateChannel/context.js +4 -4
  72. package/CreateChannel.js +22 -20
  73. package/CreateChannel.js.map +1 -1
  74. package/CreateChannelProvider-fc4f109b.js +44 -0
  75. package/CreateChannelProvider-fc4f109b.js.map +1 -0
  76. package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
  77. package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  78. package/CreateOpenChannel/context.js +33 -28
  79. package/CreateOpenChannel/context.js.map +1 -1
  80. package/CreateOpenChannel.js +18 -16
  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 +18 -16
  85. package/EditUserProfile.js.map +1 -1
  86. package/LocalizationContext-2b2fd3bc.js +20 -0
  87. package/{LocalizationContext-3d8c0b24.js.map → LocalizationContext-2b2fd3bc.js.map} +1 -1
  88. package/MediaQueryContext-c423a854.js +82 -0
  89. package/MediaQueryContext-c423a854.js.map +1 -0
  90. package/MemberList-6524c45a.js +395 -0
  91. package/MemberList-6524c45a.js.map +1 -0
  92. package/Message/context.js +11 -10
  93. package/Message/context.js.map +1 -1
  94. package/MessageSearch/components/MessageSearchUI.js +59 -54
  95. package/MessageSearch/components/MessageSearchUI.js.map +1 -1
  96. package/MessageSearch/context.js +176 -165
  97. package/MessageSearch/context.js.map +1 -1
  98. package/MessageSearch.js +45 -47
  99. package/MessageSearch.js.map +1 -1
  100. package/OpenChannel/components/FrozenChannelNotification.js +8 -6
  101. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  102. package/OpenChannel/components/OpenChannelHeader.js +27 -22
  103. package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  104. package/OpenChannel/components/OpenChannelInput.js +32 -28
  105. package/OpenChannel/components/OpenChannelInput.js.map +1 -1
  106. package/OpenChannel/components/OpenChannelMessage.js +171 -172
  107. package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  108. package/OpenChannel/components/OpenChannelMessageList.js +60 -65
  109. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  110. package/OpenChannel/components/OpenChannelUI.js +50 -48
  111. package/OpenChannel/components/OpenChannelUI.js.map +1 -1
  112. package/OpenChannel/context.js +8 -8
  113. package/OpenChannel.js +32 -33
  114. package/OpenChannel.js.map +1 -1
  115. package/OpenChannelList/components/OpenChannelListUI.js +58 -59
  116. package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  117. package/OpenChannelList/components/OpenChannelPreview.js +21 -22
  118. package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  119. package/OpenChannelList/context.js +3 -3
  120. package/OpenChannelList.js +24 -23
  121. package/OpenChannelList.js.map +1 -1
  122. package/{OpenChannelListProvider-f9ec8658.js → OpenChannelListProvider-bf1dc8a8.js} +177 -155
  123. package/OpenChannelListProvider-bf1dc8a8.js.map +1 -0
  124. package/OpenChannelProvider-7bcdec3e.js +1883 -0
  125. package/{cjs/OpenChannelProvider-850b9cd0.js.map → OpenChannelProvider-7bcdec3e.js.map} +1 -1
  126. package/OpenChannelSettings/components/EditDetailsModal.js +46 -46
  127. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  128. package/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
  129. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  130. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
  131. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  132. package/OpenChannelSettings/components/OperatorUI.js +508 -533
  133. package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  134. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  135. package/OpenChannelSettings/context.js +54 -56
  136. package/OpenChannelSettings/context.js.map +1 -1
  137. package/OpenChannelSettings.js +19 -19
  138. package/OpenChannelSettings.js.map +1 -1
  139. package/RemoveMessageModal-21a59002.js +36 -0
  140. package/RemoveMessageModal-21a59002.js.map +1 -0
  141. package/SendbirdProvider.js +546 -405
  142. package/SendbirdProvider.js.map +1 -1
  143. package/Thread/components/ParentMessageInfo.js +157 -170
  144. package/Thread/components/ParentMessageInfo.js.map +1 -1
  145. package/Thread/components/ParentMessageInfoItem.js +68 -62
  146. package/Thread/components/ParentMessageInfoItem.js.map +1 -1
  147. package/Thread/components/ThreadHeader.js +22 -22
  148. package/Thread/components/ThreadHeader.js.map +1 -1
  149. package/Thread/components/ThreadList.js +82 -77
  150. package/Thread/components/ThreadList.js.map +1 -1
  151. package/Thread/components/ThreadListItem.js +208 -219
  152. package/Thread/components/ThreadListItem.js.map +1 -1
  153. package/Thread/components/ThreadMessageInput.js +103 -105
  154. package/Thread/components/ThreadMessageInput.js.map +1 -1
  155. package/Thread/components/ThreadUI.js +130 -116
  156. package/Thread/components/ThreadUI.js.map +1 -1
  157. package/Thread/context/types.js +9 -9
  158. package/Thread/context/types.js.map +1 -1
  159. package/Thread/context.js +8 -8
  160. package/Thread.js +55 -55
  161. package/Thread.js.map +1 -1
  162. package/ThreadProvider-8625c19c.js +1692 -0
  163. package/ThreadProvider-8625c19c.js.map +1 -0
  164. package/{UserProfileContext-41938ddc.js → UserProfileContext-7ed35692.js} +1 -1
  165. package/{UserProfileContext-41938ddc.js.map → UserProfileContext-7ed35692.js.map} +1 -1
  166. package/{VoiceMessageInputWrapper-0cd90994.js → VoiceMessageInputWrapper-6d3a3790.js} +60 -59
  167. package/VoiceMessageInputWrapper-6d3a3790.js.map +1 -0
  168. package/VoicePlayer/context.js +3 -3
  169. package/VoicePlayer/useVoicePlayer.js +38 -43
  170. package/VoicePlayer/useVoicePlayer.js.map +1 -1
  171. package/VoiceRecorder/context.js +46 -45
  172. package/VoiceRecorder/context.js.map +1 -1
  173. package/VoiceRecorder/useVoiceRecorder.js +43 -40
  174. package/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  175. package/{WebAudioUtils-682aa6c0.js → WebAudioUtils-8a211e92.js} +37 -37
  176. package/{WebAudioUtils-682aa6c0.js.map → WebAudioUtils-8a211e92.js.map} +1 -1
  177. package/{_rollupPluginBabelHelpers-79f64283.js → _rollupPluginBabelHelpers-e78a810d.js} +2 -2
  178. package/_rollupPluginBabelHelpers-e78a810d.js.map +1 -0
  179. package/{actionTypes-52102db0.js → actionTypes-8f622e32.js} +2 -2
  180. package/{actionTypes-52102db0.js.map → actionTypes-8f622e32.js.map} +1 -1
  181. package/cjs/App.js +177 -172
  182. package/cjs/App.js.map +1 -1
  183. package/cjs/Channel/components/ChannelHeader.js +44 -39
  184. package/cjs/Channel/components/ChannelHeader.js.map +1 -1
  185. package/cjs/Channel/components/ChannelUI.js +63 -61
  186. package/cjs/Channel/components/ChannelUI.js.map +1 -1
  187. package/cjs/Channel/components/FileViewer.js +52 -46
  188. package/cjs/Channel/components/FileViewer.js.map +1 -1
  189. package/cjs/Channel/components/FrozenNotification.js +12 -9
  190. package/cjs/Channel/components/FrozenNotification.js.map +1 -1
  191. package/cjs/Channel/components/Message.js +165 -183
  192. package/cjs/Channel/components/Message.js.map +1 -1
  193. package/cjs/Channel/components/MessageInput.js +106 -113
  194. package/cjs/Channel/components/MessageInput.js.map +1 -1
  195. package/cjs/Channel/components/MessageList.js +128 -130
  196. package/cjs/Channel/components/MessageList.js.map +1 -1
  197. package/cjs/Channel/components/RemoveMessageModal.js +32 -28
  198. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
  199. package/cjs/Channel/components/SuggestedMentionList.js +134 -153
  200. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
  201. package/cjs/Channel/components/TypingIndicator.js +43 -42
  202. package/cjs/Channel/components/TypingIndicator.js.map +1 -1
  203. package/cjs/Channel/components/UnreadCount.js +18 -16
  204. package/cjs/Channel/components/UnreadCount.js.map +1 -1
  205. package/cjs/Channel/context.js +14 -18
  206. package/cjs/Channel/context.js.map +1 -1
  207. package/cjs/Channel.js +39 -40
  208. package/cjs/Channel.js.map +1 -1
  209. package/cjs/ChannelList/components/AddChannel.js +27 -29
  210. package/cjs/ChannelList/components/AddChannel.js.map +1 -1
  211. package/cjs/ChannelList/components/ChannelListHeader.js +30 -21
  212. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
  213. package/cjs/ChannelList/components/ChannelListUI.js +91 -98
  214. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
  215. package/cjs/ChannelList/components/ChannelPreview.js +70 -73
  216. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
  217. package/cjs/ChannelList/components/ChannelPreviewAction.js +30 -30
  218. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
  219. package/cjs/ChannelList/context.js +7 -8
  220. package/cjs/ChannelList/context.js.map +1 -1
  221. package/cjs/ChannelList.js +30 -31
  222. package/cjs/ChannelList.js.map +1 -1
  223. package/cjs/{ChannelListProvider-b0a363e0.js → ChannelListProvider-2ff89970.js} +160 -156
  224. package/cjs/ChannelListProvider-2ff89970.js.map +1 -0
  225. package/cjs/{ChannelProvider-cf5867c2.js → ChannelProvider-ecfe2f2a.js} +430 -412
  226. package/cjs/ChannelProvider-ecfe2f2a.js.map +1 -0
  227. package/cjs/ChannelSettings/components/ChannelProfile.js +33 -37
  228. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
  229. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -40
  230. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
  231. package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -48
  232. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
  233. package/cjs/ChannelSettings/components/LeaveChannel.js +38 -35
  234. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
  235. package/cjs/ChannelSettings/components/ModerationPanel.js +511 -556
  236. package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
  237. package/cjs/ChannelSettings/components/UserListItem.js +69 -69
  238. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
  239. package/cjs/ChannelSettings/components/UserPanel.js +25 -27
  240. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
  241. package/cjs/ChannelSettings/context.js +53 -49
  242. package/cjs/ChannelSettings/context.js.map +1 -1
  243. package/cjs/ChannelSettings.js +19 -18
  244. package/cjs/ChannelSettings.js.map +1 -1
  245. package/cjs/CreateChannel/components/CreateChannelUI.js +24 -21
  246. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
  247. package/cjs/CreateChannel/components/InviteUsers.js +92 -93
  248. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  249. package/cjs/CreateChannel/components/SelectChannelType.js +41 -35
  250. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
  251. package/cjs/CreateChannel/context.js +4 -4
  252. package/cjs/CreateChannel.js +22 -20
  253. package/cjs/CreateChannel.js.map +1 -1
  254. package/cjs/CreateChannelProvider-21dc2e99.js +52 -0
  255. package/cjs/CreateChannelProvider-21dc2e99.js.map +1 -0
  256. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -34
  257. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
  258. package/cjs/CreateOpenChannel/context.js +33 -28
  259. package/cjs/CreateOpenChannel/context.js.map +1 -1
  260. package/cjs/CreateOpenChannel.js +18 -16
  261. package/cjs/CreateOpenChannel.js.map +1 -1
  262. package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -12
  263. package/cjs/EditUserProfile/context.js.map +1 -1
  264. package/cjs/EditUserProfile.js +18 -16
  265. package/cjs/EditUserProfile.js.map +1 -1
  266. package/cjs/{LocalizationContext-498cb747.js → LocalizationContext-08499fd8.js} +9 -9
  267. package/cjs/{LocalizationContext-498cb747.js.map → LocalizationContext-08499fd8.js.map} +1 -1
  268. package/cjs/MediaQueryContext-8a0d2426.js +89 -0
  269. package/cjs/MediaQueryContext-8a0d2426.js.map +1 -0
  270. package/cjs/MemberList-4b19299f.js +401 -0
  271. package/cjs/MemberList-4b19299f.js.map +1 -0
  272. package/cjs/Message/context.js +11 -10
  273. package/cjs/Message/context.js.map +1 -1
  274. package/cjs/MessageSearch/components/MessageSearchUI.js +59 -54
  275. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
  276. package/cjs/MessageSearch/context.js +176 -165
  277. package/cjs/MessageSearch/context.js.map +1 -1
  278. package/cjs/MessageSearch.js +45 -47
  279. package/cjs/MessageSearch.js.map +1 -1
  280. package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
  281. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
  282. package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -22
  283. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
  284. package/cjs/OpenChannel/components/OpenChannelInput.js +32 -28
  285. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
  286. package/cjs/OpenChannel/components/OpenChannelMessage.js +171 -172
  287. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
  288. package/cjs/OpenChannel/components/OpenChannelMessageList.js +60 -65
  289. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
  290. package/cjs/OpenChannel/components/OpenChannelUI.js +50 -48
  291. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
  292. package/cjs/OpenChannel/context.js +8 -8
  293. package/cjs/OpenChannel.js +32 -33
  294. package/cjs/OpenChannel.js.map +1 -1
  295. package/cjs/OpenChannelList/components/OpenChannelListUI.js +58 -59
  296. package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
  297. package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
  298. package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
  299. package/cjs/OpenChannelList/context.js +3 -3
  300. package/cjs/OpenChannelList.js +24 -23
  301. package/cjs/OpenChannelList.js.map +1 -1
  302. package/cjs/OpenChannelListProvider-522d97e6.js +439 -0
  303. package/cjs/OpenChannelListProvider-522d97e6.js.map +1 -0
  304. package/cjs/OpenChannelProvider-76871cb6.js +1892 -0
  305. package/cjs/OpenChannelProvider-76871cb6.js.map +1 -0
  306. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +46 -46
  307. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
  308. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -26
  309. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
  310. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -36
  311. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
  312. package/cjs/OpenChannelSettings/components/OperatorUI.js +508 -533
  313. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
  314. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  315. package/cjs/OpenChannelSettings/context.js +54 -56
  316. package/cjs/OpenChannelSettings/context.js.map +1 -1
  317. package/cjs/OpenChannelSettings.js +19 -19
  318. package/cjs/OpenChannelSettings.js.map +1 -1
  319. package/cjs/{RemoveMessageModal-457b1535.js → RemoveMessageModal-347cd72d.js} +19 -13
  320. package/cjs/RemoveMessageModal-347cd72d.js.map +1 -0
  321. package/cjs/SendbirdProvider.js +546 -405
  322. package/cjs/SendbirdProvider.js.map +1 -1
  323. package/cjs/Thread/components/ParentMessageInfo.js +157 -170
  324. package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
  325. package/cjs/Thread/components/ParentMessageInfoItem.js +68 -62
  326. package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
  327. package/cjs/Thread/components/ThreadHeader.js +22 -22
  328. package/cjs/Thread/components/ThreadHeader.js.map +1 -1
  329. package/cjs/Thread/components/ThreadList.js +82 -77
  330. package/cjs/Thread/components/ThreadList.js.map +1 -1
  331. package/cjs/Thread/components/ThreadListItem.js +208 -219
  332. package/cjs/Thread/components/ThreadListItem.js.map +1 -1
  333. package/cjs/Thread/components/ThreadMessageInput.js +103 -105
  334. package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
  335. package/cjs/Thread/components/ThreadUI.js +130 -116
  336. package/cjs/Thread/components/ThreadUI.js.map +1 -1
  337. package/cjs/Thread/context/types.js +13 -9
  338. package/cjs/Thread/context/types.js.map +1 -1
  339. package/cjs/Thread/context.js +8 -8
  340. package/cjs/Thread.js +55 -55
  341. package/cjs/Thread.js.map +1 -1
  342. package/cjs/ThreadProvider-0c1a5256.js +1701 -0
  343. package/cjs/ThreadProvider-0c1a5256.js.map +1 -0
  344. package/cjs/{UserProfileContext-617420c9.js → UserProfileContext-0c0de7c0.js} +1 -1
  345. package/cjs/{UserProfileContext-617420c9.js.map → UserProfileContext-0c0de7c0.js.map} +1 -1
  346. package/cjs/{VoiceMessageInputWrapper-43c29f38.js → VoiceMessageInputWrapper-082e20ef.js} +60 -59
  347. package/cjs/VoiceMessageInputWrapper-082e20ef.js.map +1 -0
  348. package/cjs/VoicePlayer/context.js +3 -3
  349. package/cjs/VoicePlayer/useVoicePlayer.js +38 -43
  350. package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -1
  351. package/cjs/VoiceRecorder/context.js +46 -45
  352. package/cjs/VoiceRecorder/context.js.map +1 -1
  353. package/cjs/VoiceRecorder/useVoiceRecorder.js +43 -40
  354. package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -1
  355. package/cjs/{WebAudioUtils-2b845cd2.js → WebAudioUtils-07a1cb3f.js} +37 -37
  356. package/cjs/{WebAudioUtils-2b845cd2.js.map → WebAudioUtils-07a1cb3f.js.map} +1 -1
  357. package/cjs/{_rollupPluginBabelHelpers-c2313dcd.js → _rollupPluginBabelHelpers-c04a5857.js} +2 -1
  358. package/cjs/_rollupPluginBabelHelpers-c04a5857.js.map +1 -0
  359. package/cjs/{actionTypes-0e0d2d59.js → actionTypes-1fec1d92.js} +2 -2
  360. package/cjs/{actionTypes-0e0d2d59.js.map → actionTypes-1fec1d92.js.map} +1 -1
  361. package/cjs/{color-7f7508e6.js → color-73cf0755.js} +13 -12
  362. package/cjs/color-73cf0755.js.map +1 -0
  363. package/cjs/{compareIds-27f7912f.js → compareIds-9741d79f.js} +1 -1
  364. package/cjs/{compareIds-27f7912f.js.map → compareIds-9741d79f.js.map} +1 -1
  365. package/cjs/const-04d1e702.js +20 -0
  366. package/cjs/const-04d1e702.js.map +1 -0
  367. package/cjs/{const-61fc7be6.js → const-df48e9ae.js} +4 -4
  368. package/cjs/{const-61fc7be6.js.map → const-df48e9ae.js.map} +1 -1
  369. package/cjs/consts-37ac8b76.js +6 -0
  370. package/cjs/{consts-46fa3a3a.js.map → consts-37ac8b76.js.map} +1 -1
  371. package/cjs/consts-b1c40dd7.js +6 -0
  372. package/cjs/{consts-ad849467.js.map → consts-b1c40dd7.js.map} +1 -1
  373. package/cjs/{consts-8605e767.js → consts-d8eecba2.js} +18 -14
  374. package/cjs/{consts-8605e767.js.map → consts-d8eecba2.js.map} +1 -1
  375. package/cjs/consts-e3066f66.js +6 -0
  376. package/cjs/consts-e3066f66.js.map +1 -0
  377. package/cjs/{context-a4af6955.js → context-df6e529e.js} +6 -5
  378. package/cjs/{context-a4af6955.js.map → context-df6e529e.js.map} +1 -1
  379. package/cjs/dist/index.css +160 -56
  380. package/cjs/dist/index.css.map +1 -1
  381. package/cjs/handlers/OpenChannelHandler.js.map +1 -1
  382. package/cjs/handlers/SessionHandler.js.map +1 -1
  383. package/cjs/{index-ac1b0ab9.js → index-0adf371c.js} +2 -4
  384. package/cjs/index-0adf371c.js.map +1 -0
  385. package/cjs/index-2519fb5c.js +361 -0
  386. package/cjs/index-2519fb5c.js.map +1 -0
  387. package/cjs/{index-67f813a3.js → index-3522ce47.js} +1 -1
  388. package/cjs/{index-67f813a3.js.map → index-3522ce47.js.map} +1 -1
  389. package/cjs/{index-ead97d9a.js → index-557a458d.js} +37 -39
  390. package/cjs/{index-ead97d9a.js.map → index-557a458d.js.map} +1 -1
  391. package/cjs/{index-71173fef.js → index-5fe8ddbd.js} +56 -193
  392. package/cjs/index-5fe8ddbd.js.map +1 -0
  393. package/cjs/index-6c62c727.js +292 -0
  394. package/cjs/{index-cd680348.js.map → index-6c62c727.js.map} +1 -1
  395. package/cjs/{index-3626dfeb.js → index-6d27f25a.js} +22 -15
  396. package/cjs/index-6d27f25a.js.map +1 -0
  397. package/cjs/index-71e1cad7.js +197 -0
  398. package/cjs/index-71e1cad7.js.map +1 -0
  399. package/cjs/index-8a8e9dec.js +57 -0
  400. package/cjs/index-8a8e9dec.js.map +1 -0
  401. package/cjs/index-99e85757.js +563 -0
  402. package/cjs/index-99e85757.js.map +1 -0
  403. package/cjs/{index-a4887600.js → index-9b05d200.js} +3 -12
  404. package/cjs/index-9b05d200.js.map +1 -0
  405. package/cjs/{index-b8a20afd.js → index-9c5f3445.js} +2 -2
  406. package/cjs/{index-b8a20afd.js.map → index-9c5f3445.js.map} +1 -1
  407. package/cjs/{index-0dff9958.js → index-b0a95ca6.js} +37 -27
  408. package/cjs/index-b0a95ca6.js.map +1 -0
  409. package/cjs/{index-8b5a13fe.js → index-b5fedf01.js} +50 -50
  410. package/cjs/index-b5fedf01.js.map +1 -0
  411. package/cjs/{index-8b6bb1ee.js → index-d817af55.js} +10 -30
  412. package/cjs/index-d817af55.js.map +1 -0
  413. package/cjs/{index-983f9d7a.js → index-e18a9a18.js} +17 -17
  414. package/cjs/{index-983f9d7a.js.map → index-e18a9a18.js.map} +1 -1
  415. package/cjs/index.js +51 -51
  416. package/cjs/{index.module-cf39e3b9.js → index.module-984504c9.js} +1 -1
  417. package/cjs/{index.module-cf39e3b9.js.map → index.module-984504c9.js.map} +1 -1
  418. package/cjs/lame.all.js.map +1 -1
  419. package/cjs/sendbirdSelectors.js +319 -371
  420. package/cjs/sendbirdSelectors.js.map +1 -1
  421. package/cjs/{stringSet-061fe0c1.js → stringSet-43ba803e.js} +2 -2
  422. package/cjs/stringSet-43ba803e.js.map +1 -0
  423. package/cjs/tokenize-c466a4e9.js +140 -0
  424. package/cjs/tokenize-c466a4e9.js.map +1 -0
  425. package/cjs/{topics-c8adbede.js → topics-ab421aa9.js} +2 -2
  426. package/cjs/{topics-c8adbede.js.map → topics-ab421aa9.js.map} +1 -1
  427. package/cjs/types-e0752815.js +17 -0
  428. package/cjs/{types-beecfca4.js.map → types-e0752815.js.map} +1 -1
  429. package/cjs/ui/Accordion.js +19 -18
  430. package/cjs/ui/Accordion.js.map +1 -1
  431. package/cjs/ui/AccordionGroup.js +10 -11
  432. package/cjs/ui/AccordionGroup.js.map +1 -1
  433. package/cjs/ui/AdminMessage.js +10 -10
  434. package/cjs/ui/AdminMessage.js.map +1 -1
  435. package/cjs/ui/Avatar.js +55 -59
  436. package/cjs/ui/Avatar.js.map +1 -1
  437. package/cjs/ui/Badge.js +16 -15
  438. package/cjs/ui/Badge.js.map +1 -1
  439. package/cjs/ui/BottomSheet.js +14 -10
  440. package/cjs/ui/BottomSheet.js.map +1 -1
  441. package/cjs/ui/Button.js +20 -24
  442. package/cjs/ui/Button.js.map +1 -1
  443. package/cjs/ui/ChannelAvatar.js +38 -41
  444. package/cjs/ui/ChannelAvatar.js.map +1 -1
  445. package/cjs/ui/Checkbox.js +9 -10
  446. package/cjs/ui/Checkbox.js.map +1 -1
  447. package/cjs/ui/ConnectionStatus.js +7 -5
  448. package/cjs/ui/ConnectionStatus.js.map +1 -1
  449. package/cjs/ui/ContextMenu.js +139 -135
  450. package/cjs/ui/ContextMenu.js.map +1 -1
  451. package/cjs/ui/DateSeparator.js +12 -14
  452. package/cjs/ui/DateSeparator.js.map +1 -1
  453. package/cjs/ui/EmojiReactions.js +78 -86
  454. package/cjs/ui/EmojiReactions.js.map +1 -1
  455. package/cjs/ui/FileMessageItemBody.js +22 -22
  456. package/cjs/ui/FileMessageItemBody.js.map +1 -1
  457. package/cjs/ui/FileViewer.js +36 -35
  458. package/cjs/ui/FileViewer.js.map +1 -1
  459. package/cjs/ui/Icon.js +16 -16
  460. package/cjs/ui/Icon.js.map +1 -1
  461. package/cjs/ui/IconButton.js +20 -28
  462. package/cjs/ui/IconButton.js.map +1 -1
  463. package/cjs/ui/ImageRenderer.js +33 -39
  464. package/cjs/ui/ImageRenderer.js.map +1 -1
  465. package/cjs/ui/Input.js +16 -14
  466. package/cjs/ui/Input.js.map +1 -1
  467. package/cjs/ui/Label.js +2 -2
  468. package/cjs/ui/LinkLabel.js +2 -2
  469. package/cjs/ui/LinkLabel.js.map +1 -1
  470. package/cjs/ui/Loader.js +10 -12
  471. package/cjs/ui/Loader.js.map +1 -1
  472. package/cjs/ui/MentionLabel.js +58 -61
  473. package/cjs/ui/MentionLabel.js.map +1 -1
  474. package/cjs/ui/MentionUserLabel.js +10 -10
  475. package/cjs/ui/MentionUserLabel.js.map +1 -1
  476. package/cjs/ui/MessageContent.js +273 -270
  477. package/cjs/ui/MessageContent.js.map +1 -1
  478. package/cjs/ui/MessageInput.js +87 -79
  479. package/cjs/ui/MessageInput.js.map +1 -1
  480. package/cjs/ui/MessageItemMenu.js +70 -72
  481. package/cjs/ui/MessageItemMenu.js.map +1 -1
  482. package/cjs/ui/MessageItemReactionMenu.js +50 -57
  483. package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
  484. package/cjs/ui/MessageSearchFileItem.js +49 -38
  485. package/cjs/ui/MessageSearchFileItem.js.map +1 -1
  486. package/cjs/ui/MessageSearchItem.js +40 -32
  487. package/cjs/ui/MessageSearchItem.js.map +1 -1
  488. package/cjs/ui/MessageStatus.js +10 -10
  489. package/cjs/ui/Modal.js +52 -45
  490. package/cjs/ui/Modal.js.map +1 -1
  491. package/cjs/ui/MutedAvatarOverlay.js +10 -10
  492. package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
  493. package/cjs/ui/OGMessageItemBody.js +48 -44
  494. package/cjs/ui/OGMessageItemBody.js.map +1 -1
  495. package/cjs/ui/OpenChannelAdminMessage.js +8 -7
  496. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
  497. package/cjs/ui/OpenChannelAvatar.js +18 -17
  498. package/cjs/ui/OpenChannelAvatar.js.map +1 -1
  499. package/cjs/ui/OpenchannelConversationHeader.js +17 -13
  500. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
  501. package/cjs/ui/OpenchannelFileMessage.js +134 -140
  502. package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
  503. package/cjs/ui/OpenchannelOGMessage.js +177 -176
  504. package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
  505. package/cjs/ui/OpenchannelThumbnailMessage.js +209 -214
  506. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
  507. package/cjs/ui/OpenchannelUserMessage.js +159 -164
  508. package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
  509. package/cjs/ui/PlaceHolder.js +5 -6
  510. package/cjs/ui/PlaceHolder.js.map +1 -1
  511. package/cjs/ui/PlaybackTime.js +15 -16
  512. package/cjs/ui/PlaybackTime.js.map +1 -1
  513. package/cjs/ui/ProgressBar.js +13 -15
  514. package/cjs/ui/ProgressBar.js.map +1 -1
  515. package/cjs/ui/QuoteMessage.js +42 -38
  516. package/cjs/ui/QuoteMessage.js.map +1 -1
  517. package/cjs/ui/QuoteMessageInput.js +27 -23
  518. package/cjs/ui/QuoteMessageInput.js.map +1 -1
  519. package/cjs/ui/ReactionBadge.js +13 -17
  520. package/cjs/ui/ReactionBadge.js.map +1 -1
  521. package/cjs/ui/ReactionButton.js +15 -18
  522. package/cjs/ui/ReactionButton.js.map +1 -1
  523. package/cjs/ui/SortByRow.js +14 -14
  524. package/cjs/ui/SortByRow.js.map +1 -1
  525. package/cjs/ui/TextButton.js +13 -21
  526. package/cjs/ui/TextButton.js.map +1 -1
  527. package/cjs/ui/TextMessageItemBody.js +31 -31
  528. package/cjs/ui/TextMessageItemBody.js.map +1 -1
  529. package/cjs/ui/ThreadReplies.js +25 -21
  530. package/cjs/ui/ThreadReplies.js.map +1 -1
  531. package/cjs/ui/ThumbnailMessageItemBody.js +32 -37
  532. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
  533. package/cjs/ui/Toggle.js +202 -0
  534. package/cjs/ui/Toggle.js.map +1 -0
  535. package/cjs/ui/Tooltip.js +8 -9
  536. package/cjs/ui/Tooltip.js.map +1 -1
  537. package/cjs/ui/TooltipWrapper.js +17 -18
  538. package/cjs/ui/TooltipWrapper.js.map +1 -1
  539. package/cjs/ui/UnknownMessageItemBody.js +19 -18
  540. package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
  541. package/cjs/ui/UserListItem.js +72 -73
  542. package/cjs/ui/UserListItem.js.map +1 -1
  543. package/cjs/ui/UserProfile.js +30 -25
  544. package/cjs/ui/UserProfile.js.map +1 -1
  545. package/cjs/ui/VoiceMessageItemBody.js +37 -42
  546. package/cjs/ui/VoiceMessageItemBody.js.map +1 -1
  547. package/cjs/ui/VoiceMessgeInput.js +7 -8
  548. package/cjs/ui/VoiceMessgeInput.js.map +1 -1
  549. package/cjs/ui/Word.js +26 -27
  550. package/cjs/ui/Word.js.map +1 -1
  551. package/cjs/useLongPress-f2bbf03b.js +83 -0
  552. package/cjs/{useLongPress-f3ee01a0.js.map → useLongPress-f2bbf03b.js.map} +1 -1
  553. package/cjs/useSendbirdStateContext.js +2 -2
  554. package/cjs/useSendbirdStateContext.js.map +1 -1
  555. package/cjs/utils/message/getOutgoingMessageState.js +16 -14
  556. package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
  557. package/cjs/utils/message/isVoiceMessage.js +3 -3
  558. package/cjs/utils/message/isVoiceMessage.js.map +1 -1
  559. package/cjs/{utils-1038446c.js → utils-3a1f644a.js} +1 -1
  560. package/cjs/{utils-1038446c.js.map → utils-3a1f644a.js.map} +1 -1
  561. package/cjs/utils-69786374.js +35 -0
  562. package/cjs/utils-69786374.js.map +1 -0
  563. package/cjs/{utils-98ac09d1.js → utils-790cba92.js} +3 -3
  564. package/cjs/{utils-98ac09d1.js.map → utils-790cba92.js.map} +1 -1
  565. package/cjs/utils-7d439ea8.js +31 -0
  566. package/cjs/utils-7d439ea8.js.map +1 -0
  567. package/cjs/uuid-b0cd103f.js +15 -0
  568. package/cjs/{uuid-1ffa3b79.js.map → uuid-b0cd103f.js.map} +1 -1
  569. package/cjs/withSendbird.js +15 -16
  570. package/cjs/withSendbird.js.map +1 -1
  571. package/{color-73049158.js → color-924d49b5.js} +5 -5
  572. package/{color-73049158.js.map → color-924d49b5.js.map} +1 -1
  573. package/{compareIds-88bffa50.js → compareIds-e3935a2b.js} +1 -1
  574. package/{compareIds-88bffa50.js.map → compareIds-e3935a2b.js.map} +1 -1
  575. package/{const-2919bc87.js → const-4e794221.js} +4 -4
  576. package/{const-2919bc87.js.map → const-4e794221.js.map} +1 -1
  577. package/const-e53d1cf9.js +13 -0
  578. package/const-e53d1cf9.js.map +1 -0
  579. package/consts-2839d903.js +4 -0
  580. package/consts-2839d903.js.map +1 -0
  581. package/consts-2e683d5c.js +27 -0
  582. package/{consts-966c9540.js.map → consts-2e683d5c.js.map} +1 -1
  583. package/consts-8592a5a4.js +4 -0
  584. package/{consts-0ea80430.js.map → consts-8592a5a4.js.map} +1 -1
  585. package/consts-c71f0821.js +4 -0
  586. package/consts-c71f0821.js.map +1 -0
  587. package/context-296280bd.js +13 -0
  588. package/{context-9baa8d25.js.map → context-296280bd.js.map} +1 -1
  589. package/dist/index.css +160 -56
  590. package/dist/index.css.map +1 -1
  591. package/handlers/OpenChannelHandler.js.map +1 -1
  592. package/handlers/SessionHandler.js.map +1 -1
  593. package/index-0bd30cba.js +354 -0
  594. package/index-0bd30cba.js.map +1 -0
  595. package/{index-d37f34a3.js → index-17dface3.js} +2 -4
  596. package/index-17dface3.js.map +1 -0
  597. package/index-234eacf5.js +51 -0
  598. package/index-234eacf5.js.map +1 -0
  599. package/index-2d5f1d16.js +283 -0
  600. package/{index-fd4fc9f0.js.map → index-2d5f1d16.js.map} +1 -1
  601. package/{index-aaa9b9f8.js → index-3e5fe0b6.js} +10 -30
  602. package/index-3e5fe0b6.js.map +1 -0
  603. package/{index-cce0e324.js → index-3f91b4e0.js} +2 -2
  604. package/{index-cce0e324.js.map → index-3f91b4e0.js.map} +1 -1
  605. package/{index-61a102d7.js → index-50693736.js} +37 -27
  606. package/index-50693736.js.map +1 -0
  607. package/{index-a9183365.js → index-7be852f6.js} +37 -39
  608. package/{index-a9183365.js.map → index-7be852f6.js.map} +1 -1
  609. package/index-8377af7f.js +520 -0
  610. package/index-8377af7f.js.map +1 -0
  611. package/{index-fa96d1c0.js → index-8d2b4d42.js} +50 -50
  612. package/index-8d2b4d42.js.map +1 -0
  613. package/{index-ad125f51.js → index-b72d256e.js} +1 -1
  614. package/{index-ad125f51.js.map → index-b72d256e.js.map} +1 -1
  615. package/{index-91355132.js → index-b7a74c9a.js} +17 -17
  616. package/{index-91355132.js.map → index-b7a74c9a.js.map} +1 -1
  617. package/index-c0c727fa.js +182 -0
  618. package/index-c0c727fa.js.map +1 -0
  619. package/{index-ac5ad4f9.js → index-c38bd595.js} +3 -12
  620. package/index-c38bd595.js.map +1 -0
  621. package/{index-9cead71b.js → index-e7e68510.js} +22 -15
  622. package/index-e7e68510.js.map +1 -0
  623. package/{index-95b46112.js → index-f17a1dcb.js} +56 -193
  624. package/index-f17a1dcb.js.map +1 -0
  625. package/index.d.ts +38 -8
  626. package/index.js +51 -51
  627. package/{index.module-e6530c0d.js → index.module-43d4fcba.js} +1 -1
  628. package/{index.module-e6530c0d.js.map → index.module-43d4fcba.js.map} +1 -1
  629. package/lame.all.js.map +1 -1
  630. package/package.json +21 -3
  631. package/sendbirdSelectors.js +319 -371
  632. package/sendbirdSelectors.js.map +1 -1
  633. package/{stringSet-9d579825.js → stringSet-167237e7.js} +2 -2
  634. package/stringSet-167237e7.js.map +1 -0
  635. package/tokenize-f4307b07.js +135 -0
  636. package/tokenize-f4307b07.js.map +1 -0
  637. package/{topics-f9301447.js → topics-e97c0e93.js} +2 -2
  638. package/{topics-f9301447.js.map → topics-e97c0e93.js.map} +1 -1
  639. package/types-224a6518.js +15 -0
  640. package/{types-d0a9adf8.js.map → types-224a6518.js.map} +1 -1
  641. package/ui/Accordion.js +19 -18
  642. package/ui/Accordion.js.map +1 -1
  643. package/ui/AccordionGroup.js +10 -11
  644. package/ui/AccordionGroup.js.map +1 -1
  645. package/ui/AdminMessage.js +10 -10
  646. package/ui/AdminMessage.js.map +1 -1
  647. package/ui/Avatar.js +55 -59
  648. package/ui/Avatar.js.map +1 -1
  649. package/ui/Badge.js +16 -15
  650. package/ui/Badge.js.map +1 -1
  651. package/ui/BottomSheet.js +14 -10
  652. package/ui/BottomSheet.js.map +1 -1
  653. package/ui/Button.js +20 -24
  654. package/ui/Button.js.map +1 -1
  655. package/ui/ChannelAvatar.js +38 -41
  656. package/ui/ChannelAvatar.js.map +1 -1
  657. package/ui/Checkbox.js +9 -10
  658. package/ui/Checkbox.js.map +1 -1
  659. package/ui/ConnectionStatus.js +7 -5
  660. package/ui/ConnectionStatus.js.map +1 -1
  661. package/ui/ContextMenu.js +139 -135
  662. package/ui/ContextMenu.js.map +1 -1
  663. package/ui/DateSeparator.js +12 -14
  664. package/ui/DateSeparator.js.map +1 -1
  665. package/ui/EmojiReactions.js +78 -86
  666. package/ui/EmojiReactions.js.map +1 -1
  667. package/ui/FileMessageItemBody.js +22 -22
  668. package/ui/FileMessageItemBody.js.map +1 -1
  669. package/ui/FileViewer.js +36 -35
  670. package/ui/FileViewer.js.map +1 -1
  671. package/ui/Icon.js +2 -2
  672. package/ui/Icon.js.map +1 -1
  673. package/ui/IconButton.js +20 -28
  674. package/ui/IconButton.js.map +1 -1
  675. package/ui/ImageRenderer.js +33 -39
  676. package/ui/ImageRenderer.js.map +1 -1
  677. package/ui/Input.js +16 -14
  678. package/ui/Input.js.map +1 -1
  679. package/ui/Label.js +2 -2
  680. package/ui/LinkLabel.js +2 -2
  681. package/ui/LinkLabel.js.map +1 -1
  682. package/ui/Loader.js +10 -12
  683. package/ui/Loader.js.map +1 -1
  684. package/ui/MentionLabel.js +58 -61
  685. package/ui/MentionLabel.js.map +1 -1
  686. package/ui/MentionUserLabel.js +10 -10
  687. package/ui/MentionUserLabel.js.map +1 -1
  688. package/ui/MessageContent.js +273 -270
  689. package/ui/MessageContent.js.map +1 -1
  690. package/ui/MessageInput.js +87 -79
  691. package/ui/MessageInput.js.map +1 -1
  692. package/ui/MessageItemMenu.js +70 -72
  693. package/ui/MessageItemMenu.js.map +1 -1
  694. package/ui/MessageItemReactionMenu.js +50 -57
  695. package/ui/MessageItemReactionMenu.js.map +1 -1
  696. package/ui/MessageSearchFileItem.js +49 -38
  697. package/ui/MessageSearchFileItem.js.map +1 -1
  698. package/ui/MessageSearchItem.js +40 -32
  699. package/ui/MessageSearchItem.js.map +1 -1
  700. package/ui/MessageStatus.js +10 -10
  701. package/ui/Modal.js +52 -45
  702. package/ui/Modal.js.map +1 -1
  703. package/ui/MutedAvatarOverlay.js +10 -10
  704. package/ui/MutedAvatarOverlay.js.map +1 -1
  705. package/ui/OGMessageItemBody.js +48 -44
  706. package/ui/OGMessageItemBody.js.map +1 -1
  707. package/ui/OpenChannelAdminMessage.js +8 -7
  708. package/ui/OpenChannelAdminMessage.js.map +1 -1
  709. package/ui/OpenChannelAvatar.js +18 -17
  710. package/ui/OpenChannelAvatar.js.map +1 -1
  711. package/ui/OpenchannelConversationHeader.js +17 -13
  712. package/ui/OpenchannelConversationHeader.js.map +1 -1
  713. package/ui/OpenchannelFileMessage.js +134 -140
  714. package/ui/OpenchannelFileMessage.js.map +1 -1
  715. package/ui/OpenchannelOGMessage.js +177 -176
  716. package/ui/OpenchannelOGMessage.js.map +1 -1
  717. package/ui/OpenchannelThumbnailMessage.js +209 -214
  718. package/ui/OpenchannelThumbnailMessage.js.map +1 -1
  719. package/ui/OpenchannelUserMessage.js +159 -164
  720. package/ui/OpenchannelUserMessage.js.map +1 -1
  721. package/ui/PlaceHolder.js +5 -6
  722. package/ui/PlaceHolder.js.map +1 -1
  723. package/ui/PlaybackTime.js +15 -16
  724. package/ui/PlaybackTime.js.map +1 -1
  725. package/ui/ProgressBar.js +13 -15
  726. package/ui/ProgressBar.js.map +1 -1
  727. package/ui/QuoteMessage.js +42 -38
  728. package/ui/QuoteMessage.js.map +1 -1
  729. package/ui/QuoteMessageInput.js +27 -23
  730. package/ui/QuoteMessageInput.js.map +1 -1
  731. package/ui/ReactionBadge.js +13 -17
  732. package/ui/ReactionBadge.js.map +1 -1
  733. package/ui/ReactionButton.js +15 -18
  734. package/ui/ReactionButton.js.map +1 -1
  735. package/ui/SortByRow.js +14 -14
  736. package/ui/SortByRow.js.map +1 -1
  737. package/ui/TextButton.js +13 -21
  738. package/ui/TextButton.js.map +1 -1
  739. package/ui/TextMessageItemBody.js +31 -31
  740. package/ui/TextMessageItemBody.js.map +1 -1
  741. package/ui/ThreadReplies.js +25 -21
  742. package/ui/ThreadReplies.js.map +1 -1
  743. package/ui/ThumbnailMessageItemBody.js +32 -37
  744. package/ui/ThumbnailMessageItemBody.js.map +1 -1
  745. package/ui/Toggle.js +191 -0
  746. package/ui/Toggle.js.map +1 -0
  747. package/ui/Tooltip.js +8 -9
  748. package/ui/Tooltip.js.map +1 -1
  749. package/ui/TooltipWrapper.js +17 -18
  750. package/ui/TooltipWrapper.js.map +1 -1
  751. package/ui/UnknownMessageItemBody.js +19 -18
  752. package/ui/UnknownMessageItemBody.js.map +1 -1
  753. package/ui/UserListItem.js +72 -73
  754. package/ui/UserListItem.js.map +1 -1
  755. package/ui/UserProfile.js +30 -25
  756. package/ui/UserProfile.js.map +1 -1
  757. package/ui/VoiceMessageItemBody.js +37 -42
  758. package/ui/VoiceMessageItemBody.js.map +1 -1
  759. package/ui/VoiceMessgeInput.js +7 -8
  760. package/ui/VoiceMessgeInput.js.map +1 -1
  761. package/ui/Word.js +26 -27
  762. package/ui/Word.js.map +1 -1
  763. package/useLongPress-79c11c1d.js +81 -0
  764. package/{useLongPress-f119ff35.js.map → useLongPress-79c11c1d.js.map} +1 -1
  765. package/useSendbirdStateContext.js +2 -2
  766. package/useSendbirdStateContext.js.map +1 -1
  767. package/utils/message/getOutgoingMessageState.js +9 -8
  768. package/utils/message/getOutgoingMessageState.js.map +1 -1
  769. package/utils/message/isVoiceMessage.js +3 -3
  770. package/utils/message/isVoiceMessage.js.map +1 -1
  771. package/utils-17280d4a.js +31 -0
  772. package/utils-17280d4a.js.map +1 -0
  773. package/utils-232436fa.js +29 -0
  774. package/utils-232436fa.js.map +1 -0
  775. package/{utils-e53018f1.js → utils-e615a2c9.js} +3 -3
  776. package/{utils-e53018f1.js.map → utils-e615a2c9.js.map} +1 -1
  777. package/{utils-86d65b96.js → utils-f59aed5b.js} +1 -1
  778. package/{utils-86d65b96.js.map → utils-f59aed5b.js.map} +1 -1
  779. package/uuid-605fd2a4.js +13 -0
  780. package/{uuid-86cb48e0.js.map → uuid-605fd2a4.js.map} +1 -1
  781. package/withSendbird.js +15 -16
  782. package/withSendbird.js.map +1 -1
  783. package/ChannelListProvider-a2f2ee4a.js.map +0 -1
  784. package/ChannelProvider-bb459e82.js.map +0 -1
  785. package/CreateChannelProvider-a935d833.js +0 -48
  786. package/CreateChannelProvider-a935d833.js.map +0 -1
  787. package/LocalizationContext-3d8c0b24.js +0 -20
  788. package/MediaQueryContext-1348e37b.js +0 -80
  789. package/MediaQueryContext-1348e37b.js.map +0 -1
  790. package/MemberList-d8124d7e.js +0 -412
  791. package/MemberList-d8124d7e.js.map +0 -1
  792. package/OpenChannelListProvider-f9ec8658.js.map +0 -1
  793. package/OpenChannelProvider-36d0dd05.js +0 -1844
  794. package/OpenChannelProvider-36d0dd05.js.map +0 -1
  795. package/RemoveMessageModal-7852c71d.js +0 -30
  796. package/RemoveMessageModal-7852c71d.js.map +0 -1
  797. package/ThreadProvider-43c384e9.js +0 -1623
  798. package/ThreadProvider-43c384e9.js.map +0 -1
  799. package/VoiceMessageInputWrapper-0cd90994.js.map +0 -1
  800. package/_rollupPluginBabelHelpers-79f64283.js.map +0 -1
  801. package/cjs/ChannelListProvider-b0a363e0.js.map +0 -1
  802. package/cjs/ChannelProvider-cf5867c2.js.map +0 -1
  803. package/cjs/CreateChannelProvider-f82d812f.js +0 -55
  804. package/cjs/CreateChannelProvider-f82d812f.js.map +0 -1
  805. package/cjs/MediaQueryContext-b9c2ec1f.js +0 -87
  806. package/cjs/MediaQueryContext-b9c2ec1f.js.map +0 -1
  807. package/cjs/MemberList-13ba769f.js +0 -418
  808. package/cjs/MemberList-13ba769f.js.map +0 -1
  809. package/cjs/OpenChannelListProvider-02d6d44b.js +0 -416
  810. package/cjs/OpenChannelListProvider-02d6d44b.js.map +0 -1
  811. package/cjs/OpenChannelProvider-850b9cd0.js +0 -1853
  812. package/cjs/RemoveMessageModal-457b1535.js.map +0 -1
  813. package/cjs/ThreadProvider-37f2f0a3.js +0 -1632
  814. package/cjs/ThreadProvider-37f2f0a3.js.map +0 -1
  815. package/cjs/VoiceMessageInputWrapper-43c29f38.js.map +0 -1
  816. package/cjs/_rollupPluginBabelHelpers-c2313dcd.js.map +0 -1
  817. package/cjs/color-7f7508e6.js.map +0 -1
  818. package/cjs/const-e22c9d25.js +0 -19
  819. package/cjs/const-e22c9d25.js.map +0 -1
  820. package/cjs/consts-3764bd68.js +0 -6
  821. package/cjs/consts-3764bd68.js.map +0 -1
  822. package/cjs/consts-46fa3a3a.js +0 -6
  823. package/cjs/consts-ad849467.js +0 -6
  824. package/cjs/index-0b9ad941.js +0 -346
  825. package/cjs/index-0b9ad941.js.map +0 -1
  826. package/cjs/index-0dff9958.js.map +0 -1
  827. package/cjs/index-2ac1f908.js +0 -649
  828. package/cjs/index-2ac1f908.js.map +0 -1
  829. package/cjs/index-3626dfeb.js.map +0 -1
  830. package/cjs/index-71173fef.js.map +0 -1
  831. package/cjs/index-8b5a13fe.js.map +0 -1
  832. package/cjs/index-8b6bb1ee.js.map +0 -1
  833. package/cjs/index-a415176f.js +0 -192
  834. package/cjs/index-a415176f.js.map +0 -1
  835. package/cjs/index-a4887600.js.map +0 -1
  836. package/cjs/index-ac1b0ab9.js.map +0 -1
  837. package/cjs/index-cd680348.js +0 -271
  838. package/cjs/index-ddcf90b1.js +0 -59
  839. package/cjs/index-ddcf90b1.js.map +0 -1
  840. package/cjs/stringSet-061fe0c1.js.map +0 -1
  841. package/cjs/tokenize-7e34a56e.js +0 -141
  842. package/cjs/tokenize-7e34a56e.js.map +0 -1
  843. package/cjs/tslib.es6-8f4b0cfe.js +0 -97
  844. package/cjs/tslib.es6-8f4b0cfe.js.map +0 -1
  845. package/cjs/types-beecfca4.js +0 -11
  846. package/cjs/useLongPress-f3ee01a0.js +0 -100
  847. package/cjs/utils-3f3c2287.js +0 -27
  848. package/cjs/utils-3f3c2287.js.map +0 -1
  849. package/cjs/utils-6a97ff3a.js +0 -35
  850. package/cjs/utils-6a97ff3a.js.map +0 -1
  851. package/cjs/uuid-1ffa3b79.js +0 -17
  852. package/const-df1daff9.js +0 -13
  853. package/const-df1daff9.js.map +0 -1
  854. package/consts-0ea80430.js +0 -4
  855. package/consts-1861f891.js +0 -4
  856. package/consts-1861f891.js.map +0 -1
  857. package/consts-966c9540.js +0 -23
  858. package/consts-f4362414.js +0 -4
  859. package/consts-f4362414.js.map +0 -1
  860. package/context-9baa8d25.js +0 -12
  861. package/index-179bed8d.js +0 -177
  862. package/index-179bed8d.js.map +0 -1
  863. package/index-61a102d7.js.map +0 -1
  864. package/index-95b46112.js.map +0 -1
  865. package/index-9cead71b.js.map +0 -1
  866. package/index-aaa9b9f8.js.map +0 -1
  867. package/index-ac5ad4f9.js.map +0 -1
  868. package/index-c70af435.js +0 -53
  869. package/index-c70af435.js.map +0 -1
  870. package/index-d37f34a3.js.map +0 -1
  871. package/index-e378ca4e.js +0 -607
  872. package/index-e378ca4e.js.map +0 -1
  873. package/index-f0f9692b.js +0 -339
  874. package/index-f0f9692b.js.map +0 -1
  875. package/index-fa96d1c0.js.map +0 -1
  876. package/index-fd4fc9f0.js +0 -262
  877. package/stringSet-9d579825.js.map +0 -1
  878. package/tokenize-bd8e35b2.js +0 -136
  879. package/tokenize-bd8e35b2.js.map +0 -1
  880. package/tslib.es6-d6e50ec3.js +0 -92
  881. package/tslib.es6-d6e50ec3.js.map +0 -1
  882. package/types-d0a9adf8.js +0 -9
  883. package/useLongPress-f119ff35.js +0 -98
  884. package/utils-0c8334fa.js +0 -25
  885. package/utils-0c8334fa.js.map +0 -1
  886. package/utils-e659e765.js +0 -31
  887. package/utils-e659e765.js.map +0 -1
  888. package/uuid-86cb48e0.js +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index-cd680348.js","sources":["../../src/hooks/VoicePlayer/dux/actionTypes.ts","../../src/hooks/VoicePlayer/dux/initialState.ts","../../src/hooks/VoicePlayer/dux/reducer.ts","../../src/hooks/VoicePlayer/index.tsx"],"sourcesContent":["import { ObjectValues } from '../../../utils/typeHelpers/objectValues';\n\nexport const actionTypes = {\n INITIALIZE_AUDIO_UNIT: 'INITIALIZE_AUDIO_UNIT',\n SET_CURRENT_PLAYER: 'SET_CURRENT_PLAYER',\n ON_VOICE_PLAYER_PLAY: 'ON_VOICE_PLAYER_PLAY',\n ON_VOICE_PLAYER_PAUSE: 'ON_VOICE_PLAYER_PAUSE',\n ON_CURRENT_TIME_UPDATE: 'ON_CURRENT_TIME_UPDATE',\n} as const;\n\nexport type VoicePlayerActionType = ObjectValues<typeof actionTypes>;\n\nexport const INITIALIZE_AUDIO_UNIT: VoicePlayerActionType = 'INITIALIZE_AUDIO_UNIT';\nexport const SET_CURRENT_PLAYER: VoicePlayerActionType = 'SET_CURRENT_PLAYER';\nexport const ON_VOICE_PLAYER_PLAY: VoicePlayerActionType = 'ON_VOICE_PLAYER_PLAY';\nexport const ON_VOICE_PLAYER_PAUSE: VoicePlayerActionType = 'ON_VOICE_PLAYER_PAUSE';\nexport const ON_CURRENT_TIME_UPDATE: VoicePlayerActionType = 'ON_CURRENT_TIME_UPDATE';\n","import { GroupKey } from '../utils';\n\nexport const VoicePlayerStatus = {\n IDLE: 'IDLE',\n PREPARING: 'PREPARING',\n PLAYING: 'PLAYING',\n PAUSED: 'PAUSED',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoicePlayerStatus = typeof VoicePlayerStatus[keyof typeof VoicePlayerStatus];\n\nexport type AudioStorageUnit = {\n playingStatus: VoicePlayerStatus;\n audioFile: null | File;\n playbackTime: number;\n duration: number;\n}\nexport const AudioUnitDefaultValue = (): AudioStorageUnit => ({\n audioFile: null,\n playbackTime: 0,\n duration: 1000,\n playingStatus: VoicePlayerStatus.IDLE,\n});\n\nexport interface VoicePlayerInitialState {\n currentPlayer: null | HTMLAudioElement;\n currentGroupKey: string;\n audioStorage: Record<GroupKey, AudioStorageUnit>;\n}\n\nexport const voicePlayerInitialState: VoicePlayerInitialState = {\n currentPlayer: null,\n currentGroupKey: '',\n audioStorage: {},\n};\n","import {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './actionTypes';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n VoicePlayerStatus,\n} from './initialState';\n\ntype InitializeAudioUnitPayload = { groupKey: string };\ntype SetCurrentPlayerPayload = { audioPlayer: HTMLAudioElement, groupKey: string };\ntype OnVoicePlayerPlayPayload = { groupKey: string, audioFile: File };\ntype OnVoicePlayerPausePayload = { groupKey: string };\ntype OnCurrentTimeUpdatePayload = { groupKey: string };\ntype PayloadType = (\n InitializeAudioUnitPayload\n | SetCurrentPlayerPayload\n | OnVoicePlayerPlayPayload\n | OnVoicePlayerPausePayload\n | OnCurrentTimeUpdatePayload\n);\ntype ActionType = {\n type: string;\n payload: PayloadType;\n}\n\nexport default function voicePlayerReducer(\n state: VoicePlayerInitialState,\n action: ActionType,\n): VoicePlayerInitialState {\n switch (action.type) {\n case INITIALIZE_AUDIO_UNIT: {\n const { groupKey } = action.payload as InitializeAudioUnitPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PREPARING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case SET_CURRENT_PLAYER: {\n const { audioPlayer, groupKey } = action.payload as SetCurrentPlayerPayload;\n return {\n ...state,\n currentPlayer: audioPlayer,\n currentGroupKey: groupKey,\n };\n }\n case ON_VOICE_PLAYER_PLAY: {\n const { groupKey, audioFile } = action.payload as OnVoicePlayerPlayPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.audioFile = audioFile;\n audioUnit.playingStatus = VoicePlayerStatus.PLAYING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_VOICE_PLAYER_PAUSE: {\n const { groupKey } = action.payload as OnVoicePlayerPausePayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PAUSED;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n if (audioUnit.playbackTime === audioUnit.duration) {\n audioUnit.playbackTime = 0;\n } else if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_CURRENT_TIME_UPDATE: {\n const { groupKey } = action.payload as OnCurrentTimeUpdatePayload;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n default:\n return state;\n }\n}\n","import React, { createContext, useContext, useReducer } from 'react';\nimport voicePlayerReducer from './dux/reducer';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n voicePlayerInitialState,\n} from './dux/initialState';\nimport {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './dux/actionTypes';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_PLAYER_AUDIO_ID,\n VOICE_PLAYER_ROOT_ID,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// VoicePlayerProvider interface\nexport interface VoicePlayerProps {\n children: React.ReactElement;\n}\nexport interface VoicePlayerPlayProps {\n groupKey: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\nexport interface VoicePlayerContext {\n play: (props: VoicePlayerPlayProps) => void;\n pause: (groupKey?: string) => void;\n stop: (text?: string) => void;\n voicePlayerStore: VoicePlayerInitialState;\n}\n\nconst noop = () => { /* noop */ };\nconst VoicePlayerStoreDefaultValue = {\n currentGroupKey: '',\n currentPlayer: null,\n audioStorage: {},\n};\n\nconst VoicePlayerContext = createContext<VoicePlayerContext>({\n play: noop,\n pause: noop,\n stop: noop,\n voicePlayerStore: VoicePlayerStoreDefaultValue,\n});\n\nexport const VoicePlayerProvider = ({\n children,\n}: VoicePlayerProps): React.ReactElement => {\n const [voicePlayerStore, voicePlayerDispatcher] = useReducer(voicePlayerReducer, voicePlayerInitialState);\n const {\n currentGroupKey,\n currentPlayer,\n audioStorage,\n } = voicePlayerStore;\n const { config } = useSendbirdStateContext();\n const { logger } = config;\n\n const stop = (text = '') => {\n if (currentGroupKey.includes(text)) {\n logger.info('VoicePlayer: Pause playing(by text).');\n pause(currentGroupKey);\n }\n };\n\n const pause = (groupKey: string) => {\n if (currentGroupKey === groupKey && currentPlayer !== null) {\n logger.info('VoicePlayer: Pause playing(by group key).');\n currentPlayer?.pause();\n }\n };\n\n const play = ({\n groupKey,\n audioFile = null,\n audioFileUrl = '',\n }: VoicePlayerPlayProps): void => {\n if (groupKey !== currentGroupKey) {\n pause(currentGroupKey);\n }\n\n // Clear the previous AudioPlayer element\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n const voicePlayerAudioElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n if (voicePlayerAudioElement) {\n voicePlayerRoot.removeChild(voicePlayerAudioElement);\n }\n\n logger.info('VoicePlayer: Start getting audio file.');\n new Promise((resolve) => {\n if (audioFile) {\n resolve(audioFile);\n logger.info('VoicePlayer: Use the audioFile instance.');\n }\n if (audioStorage?.[groupKey]?.audioFile) {\n resolve(audioStorage[groupKey].audioFile);\n logger.info('VoicePlayer: Get from the audioStorage.');\n }\n voicePlayerDispatcher({\n type: INITIALIZE_AUDIO_UNIT,\n payload: { groupKey },\n });\n fetch(audioFileUrl)\n .then((res) => res.blob())\n .then((blob) => {\n const audioFile = new File([blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n resolve(audioFile);\n logger.info('VoicePlayer: Get the audioFile from URL.');\n });\n }).then((audioFile: File) => {\n logger.info('VoicePlayer: Succeeded getting audio file.', audioFile);\n const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue() as AudioStorageUnit;\n const audioPlayer = new Audio(URL?.createObjectURL?.(audioFile));\n audioPlayer.id = VOICE_PLAYER_AUDIO_ID;\n audioPlayer.currentTime = currentAudioUnit.playbackTime;\n audioPlayer.volume = 1;\n audioPlayer.loop = false;\n audioPlayer.onplaying = () => {\n logger.info('VoicePlayer: OnPlaying event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PLAY,\n payload: { groupKey, audioFile },\n });\n };\n audioPlayer.onpause = () => {\n logger.info('VoicePlayer: OnPause event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PAUSE,\n payload: { groupKey },\n });\n };\n audioPlayer.ontimeupdate = () => {\n voicePlayerDispatcher({\n type: ON_CURRENT_TIME_UPDATE,\n payload: { groupKey },\n });\n };\n audioPlayer?.play();\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n voicePlayerRoot.appendChild(audioPlayer);\n voicePlayerDispatcher({\n type: SET_CURRENT_PLAYER,\n payload: { groupKey, audioPlayer },\n });\n logger.info('VoicePlayer: Succeeded playing audio player.', { groupKey, audioPlayer });\n });\n };\n\n return (\n <VoicePlayerContext.Provider value={{\n play,\n pause,\n stop,\n voicePlayerStore,\n }}>\n <div id={VOICE_PLAYER_ROOT_ID} style={{ display: 'none' }} />\n {children}\n </VoicePlayerContext.Provider>\n );\n};\n\nexport const useVoicePlayerContext = (): VoicePlayerContext => useContext(VoicePlayerContext);\n"],"names":["INITIALIZE_AUDIO_UNIT","SET_CURRENT_PLAYER","ON_VOICE_PLAYER_PLAY","ON_VOICE_PLAYER_PAUSE","ON_CURRENT_TIME_UPDATE","VoicePlayerStatus","IDLE","PREPARING","PLAYING","PAUSED","COMPLETED","AudioUnitDefaultValue","audioFile","playbackTime","duration","playingStatus","voicePlayerInitialState","currentPlayer","currentGroupKey","audioStorage","voicePlayerReducer","state","action","type","groupKey","payload","audioUnit","_e","__assign","_a","_j","audioPlayer","_k","_f","_b","_g","_l","currentTime","_c","_m","_h","_d","noop","VoicePlayerStoreDefaultValue","VoicePlayerContext","createContext","play","pause","stop","voicePlayerStore","VoicePlayerProvider","children","useReducer","voicePlayerDispatcher","config","useSendbirdStateContext","logger","text","includes","info","audioFileUrl","voicePlayerRoot","document","getElementById","VOICE_PLAYER_ROOT_ID","voicePlayerAudioElement","VOICE_PLAYER_AUDIO_ID","removeChild","Promise","resolve","fetch","then","res","blob","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","VOICE_MESSAGE_MIME_TYPE","currentAudioUnit","Audio","URL","createObjectURL","id","volume","loop","onplaying","onpause","ontimeupdate","appendChild","React","createElement","Provider","value","style","display","useVoicePlayerContext","useContext"],"mappings":"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"}
1
+ {"version":3,"file":"index-6c62c727.js","sources":["../../src/hooks/VoicePlayer/dux/actionTypes.ts","../../src/hooks/VoicePlayer/dux/initialState.ts","../../src/hooks/VoicePlayer/dux/reducer.ts","../../src/hooks/VoicePlayer/index.tsx"],"sourcesContent":["import { ObjectValues } from '../../../utils/typeHelpers/objectValues';\n\nexport const actionTypes = {\n INITIALIZE_AUDIO_UNIT: 'INITIALIZE_AUDIO_UNIT',\n SET_CURRENT_PLAYER: 'SET_CURRENT_PLAYER',\n ON_VOICE_PLAYER_PLAY: 'ON_VOICE_PLAYER_PLAY',\n ON_VOICE_PLAYER_PAUSE: 'ON_VOICE_PLAYER_PAUSE',\n ON_CURRENT_TIME_UPDATE: 'ON_CURRENT_TIME_UPDATE',\n} as const;\n\nexport type VoicePlayerActionType = ObjectValues<typeof actionTypes>;\n\nexport const INITIALIZE_AUDIO_UNIT: VoicePlayerActionType = 'INITIALIZE_AUDIO_UNIT';\nexport const SET_CURRENT_PLAYER: VoicePlayerActionType = 'SET_CURRENT_PLAYER';\nexport const ON_VOICE_PLAYER_PLAY: VoicePlayerActionType = 'ON_VOICE_PLAYER_PLAY';\nexport const ON_VOICE_PLAYER_PAUSE: VoicePlayerActionType = 'ON_VOICE_PLAYER_PAUSE';\nexport const ON_CURRENT_TIME_UPDATE: VoicePlayerActionType = 'ON_CURRENT_TIME_UPDATE';\n","import { GroupKey } from '../utils';\n\nexport const VoicePlayerStatus = {\n IDLE: 'IDLE',\n PREPARING: 'PREPARING',\n PLAYING: 'PLAYING',\n PAUSED: 'PAUSED',\n COMPLETED: 'COMPLETED',\n} as const;\nexport type VoicePlayerStatus = typeof VoicePlayerStatus[keyof typeof VoicePlayerStatus];\n\nexport type AudioStorageUnit = {\n playingStatus: VoicePlayerStatus;\n audioFile: null | File;\n playbackTime: number;\n duration: number;\n}\nexport const AudioUnitDefaultValue = (): AudioStorageUnit => ({\n audioFile: null,\n playbackTime: 0,\n duration: 1000,\n playingStatus: VoicePlayerStatus.IDLE,\n});\n\nexport interface VoicePlayerInitialState {\n currentPlayer: null | HTMLAudioElement;\n currentGroupKey: string;\n audioStorage: Record<GroupKey, AudioStorageUnit>;\n}\n\nexport const voicePlayerInitialState: VoicePlayerInitialState = {\n currentPlayer: null,\n currentGroupKey: '',\n audioStorage: {},\n};\n","import {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './actionTypes';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n VoicePlayerStatus,\n} from './initialState';\n\ntype InitializeAudioUnitPayload = { groupKey: string };\ntype SetCurrentPlayerPayload = { audioPlayer: HTMLAudioElement, groupKey: string };\ntype OnVoicePlayerPlayPayload = { groupKey: string, audioFile: File };\ntype OnVoicePlayerPausePayload = { groupKey: string };\ntype OnCurrentTimeUpdatePayload = { groupKey: string };\ntype PayloadType = (\n InitializeAudioUnitPayload\n | SetCurrentPlayerPayload\n | OnVoicePlayerPlayPayload\n | OnVoicePlayerPausePayload\n | OnCurrentTimeUpdatePayload\n);\ntype ActionType = {\n type: string;\n payload: PayloadType;\n}\n\nexport default function voicePlayerReducer(\n state: VoicePlayerInitialState,\n action: ActionType,\n): VoicePlayerInitialState {\n switch (action.type) {\n case INITIALIZE_AUDIO_UNIT: {\n const { groupKey } = action.payload as InitializeAudioUnitPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PREPARING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case SET_CURRENT_PLAYER: {\n const { audioPlayer, groupKey } = action.payload as SetCurrentPlayerPayload;\n return {\n ...state,\n currentPlayer: audioPlayer,\n currentGroupKey: groupKey,\n };\n }\n case ON_VOICE_PLAYER_PLAY: {\n const { groupKey, audioFile } = action.payload as OnVoicePlayerPlayPayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.audioFile = audioFile;\n audioUnit.playingStatus = VoicePlayerStatus.PLAYING;\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_VOICE_PLAYER_PAUSE: {\n const { groupKey } = action.payload as OnVoicePlayerPausePayload;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n audioUnit.playingStatus = VoicePlayerStatus.PAUSED;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n if (audioUnit.playbackTime === audioUnit.duration) {\n audioUnit.playbackTime = 0;\n } else if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n case ON_CURRENT_TIME_UPDATE: {\n const { groupKey } = action.payload as OnCurrentTimeUpdatePayload;\n const { currentTime, duration } = state.currentPlayer as HTMLAudioElement;\n const audioUnit = (state.audioStorage?.[groupKey] ? state.audioStorage[groupKey] : AudioUnitDefaultValue()) as AudioStorageUnit;\n if (currentTime > 0 && duration > 0) {\n audioUnit.playbackTime = currentTime;\n audioUnit.duration = duration;\n }\n return {\n ...state,\n audioStorage: {\n ...state.audioStorage,\n [groupKey]: audioUnit,\n },\n };\n }\n default:\n return state;\n }\n}\n","import React, { createContext, useContext, useReducer } from 'react';\nimport voicePlayerReducer from './dux/reducer';\nimport {\n AudioStorageUnit,\n AudioUnitDefaultValue,\n VoicePlayerInitialState,\n voicePlayerInitialState,\n} from './dux/initialState';\nimport {\n INITIALIZE_AUDIO_UNIT,\n ON_CURRENT_TIME_UPDATE,\n ON_VOICE_PLAYER_PAUSE,\n ON_VOICE_PLAYER_PLAY,\n SET_CURRENT_PLAYER,\n} from './dux/actionTypes';\nimport {\n VOICE_MESSAGE_FILE_NAME,\n VOICE_MESSAGE_MIME_TYPE,\n VOICE_PLAYER_AUDIO_ID,\n VOICE_PLAYER_ROOT_ID,\n} from '../../utils/consts';\nimport useSendbirdStateContext from '../useSendbirdStateContext';\n\n// VoicePlayerProvider interface\nexport interface VoicePlayerProps {\n children: React.ReactElement;\n}\nexport interface VoicePlayerPlayProps {\n groupKey: string;\n audioFile?: File;\n audioFileUrl?: string;\n}\nexport interface VoicePlayerContext {\n play: (props: VoicePlayerPlayProps) => void;\n pause: (groupKey?: string) => void;\n stop: (text?: string) => void;\n voicePlayerStore: VoicePlayerInitialState;\n}\n\nconst noop = () => { /* noop */ };\nconst VoicePlayerStoreDefaultValue = {\n currentGroupKey: '',\n currentPlayer: null,\n audioStorage: {},\n};\n\nconst VoicePlayerContext = createContext<VoicePlayerContext>({\n play: noop,\n pause: noop,\n stop: noop,\n voicePlayerStore: VoicePlayerStoreDefaultValue,\n});\n\nexport const VoicePlayerProvider = ({\n children,\n}: VoicePlayerProps): React.ReactElement => {\n const [voicePlayerStore, voicePlayerDispatcher] = useReducer(voicePlayerReducer, voicePlayerInitialState);\n const {\n currentGroupKey,\n currentPlayer,\n audioStorage,\n } = voicePlayerStore;\n const { config } = useSendbirdStateContext();\n const { logger } = config;\n\n const stop = (text = '') => {\n if (currentGroupKey.includes(text)) {\n logger.info('VoicePlayer: Pause playing(by text).');\n pause(currentGroupKey);\n }\n };\n\n const pause = (groupKey: string) => {\n if (currentGroupKey === groupKey && currentPlayer !== null) {\n logger.info('VoicePlayer: Pause playing(by group key).');\n currentPlayer?.pause();\n }\n };\n\n const play = ({\n groupKey,\n audioFile = null,\n audioFileUrl = '',\n }: VoicePlayerPlayProps): void => {\n if (groupKey !== currentGroupKey) {\n pause(currentGroupKey);\n }\n\n // Clear the previous AudioPlayer element\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n const voicePlayerAudioElement = document.getElementById(VOICE_PLAYER_AUDIO_ID);\n if (voicePlayerAudioElement) {\n voicePlayerRoot.removeChild(voicePlayerAudioElement);\n }\n\n logger.info('VoicePlayer: Start getting audio file.');\n new Promise((resolve) => {\n if (audioFile) {\n resolve(audioFile);\n logger.info('VoicePlayer: Use the audioFile instance.');\n }\n if (audioStorage?.[groupKey]?.audioFile) {\n resolve(audioStorage[groupKey].audioFile);\n logger.info('VoicePlayer: Get from the audioStorage.');\n }\n voicePlayerDispatcher({\n type: INITIALIZE_AUDIO_UNIT,\n payload: { groupKey },\n });\n fetch(audioFileUrl)\n .then((res) => res.blob())\n .then((blob) => {\n const audioFile = new File([blob], VOICE_MESSAGE_FILE_NAME, {\n lastModified: new Date().getTime(),\n type: VOICE_MESSAGE_MIME_TYPE,\n });\n resolve(audioFile);\n logger.info('VoicePlayer: Get the audioFile from URL.');\n });\n }).then((audioFile: File) => {\n logger.info('VoicePlayer: Succeeded getting audio file.', audioFile);\n const currentAudioUnit = audioStorage[groupKey] || AudioUnitDefaultValue() as AudioStorageUnit;\n const audioPlayer = new Audio(URL?.createObjectURL?.(audioFile));\n audioPlayer.id = VOICE_PLAYER_AUDIO_ID;\n audioPlayer.currentTime = currentAudioUnit.playbackTime;\n audioPlayer.volume = 1;\n audioPlayer.loop = false;\n audioPlayer.onplaying = () => {\n logger.info('VoicePlayer: OnPlaying event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PLAY,\n payload: { groupKey, audioFile },\n });\n };\n audioPlayer.onpause = () => {\n logger.info('VoicePlayer: OnPause event is called from audioPlayer', { groupKey, audioPlayer });\n voicePlayerDispatcher({\n type: ON_VOICE_PLAYER_PAUSE,\n payload: { groupKey },\n });\n };\n audioPlayer.ontimeupdate = () => {\n voicePlayerDispatcher({\n type: ON_CURRENT_TIME_UPDATE,\n payload: { groupKey },\n });\n };\n audioPlayer?.play();\n const voicePlayerRoot = document.getElementById(VOICE_PLAYER_ROOT_ID);\n voicePlayerRoot.appendChild(audioPlayer);\n voicePlayerDispatcher({\n type: SET_CURRENT_PLAYER,\n payload: { groupKey, audioPlayer },\n });\n logger.info('VoicePlayer: Succeeded playing audio player.', { groupKey, audioPlayer });\n });\n };\n\n return (\n <VoicePlayerContext.Provider value={{\n play,\n pause,\n stop,\n voicePlayerStore,\n }}>\n <div id={VOICE_PLAYER_ROOT_ID} style={{ display: 'none' }} />\n {children}\n </VoicePlayerContext.Provider>\n );\n};\n\nexport const useVoicePlayerContext = (): VoicePlayerContext => useContext(VoicePlayerContext);\n"],"names":["INITIALIZE_AUDIO_UNIT","SET_CURRENT_PLAYER","ON_VOICE_PLAYER_PLAY","ON_VOICE_PLAYER_PAUSE","ON_CURRENT_TIME_UPDATE","VoicePlayerStatus","IDLE","PREPARING","PLAYING","PAUSED","COMPLETED","AudioUnitDefaultValue","audioFile","playbackTime","duration","playingStatus","voicePlayerInitialState","currentPlayer","currentGroupKey","audioStorage","voicePlayerReducer","state","action","type","_state$audioStorage","groupKey","payload","audioUnit","_objectSpread","audioPlayer","_state$audioStorage2","_state$audioStorage3","currentTime","_state$audioStorage4","noop","VoicePlayerStoreDefaultValue","VoicePlayerContext","createContext","play","pause","stop","voicePlayerStore","VoicePlayerProvider","_ref","children","voicePlayerDispatcher","useReducer","config","useSendbirdStateContext","logger","text","arguments","length","undefined","includes","info","_ref2","audioFileUrl","voicePlayerRoot","document","getElementById","VOICE_PLAYER_ROOT_ID","voicePlayerAudioElement","VOICE_PLAYER_AUDIO_ID","removeChild","Promise","resolve","_audioStorage$groupKe","fetch","then","res","blob","File","VOICE_MESSAGE_FILE_NAME","lastModified","Date","getTime","VOICE_MESSAGE_MIME_TYPE","_URL","_URL$createObjectURL","currentAudioUnit","Audio","URL","createObjectURL","call","id","volume","loop","onplaying","onpause","ontimeupdate","appendChild","React","createElement","Provider","value","style","display","useVoicePlayerContext","useContext"],"mappings":"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"}
@@ -1,25 +1,32 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var consts = require('./consts-8605e767.js');
4
+ var consts = require('./consts-d8eecba2.js');
5
5
 
6
6
  function calcScrollBottom(scrollHeight, scrollTop) {
7
7
  return scrollHeight - scrollTop;
8
8
  }
9
- function useHandleOnScrollCallback(_a) {
10
- var hasMore = _a.hasMore,
11
- onScroll = _a.onScroll,
12
- scrollRef = _a.scrollRef,
13
- setShowScrollDownButton = _a.setShowScrollDownButton;
14
- return React.useCallback(function () {
15
- var element = scrollRef.current;
16
- var scrollTop = element.scrollTop,
17
- scrollHeight = element.scrollHeight,
18
- clientHeight = element.clientHeight;
9
+ function useHandleOnScrollCallback(_ref) {
10
+ let {
11
+ hasMore,
12
+ onScroll,
13
+ scrollRef,
14
+ setShowScrollDownButton
15
+ } = _ref;
16
+ return React.useCallback(() => {
17
+ const element = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
18
+ if (element == null) {
19
+ return;
20
+ }
21
+ const {
22
+ scrollTop,
23
+ scrollHeight,
24
+ clientHeight
25
+ } = element;
19
26
  // https://sendbird.atlassian.net/browse/SBISSUE-11759
20
27
  // the edge case where channel is inside a page that already has scroll
21
28
  // scrollintoView will move the whole page, which we dont want
22
- var scrollBottom = calcScrollBottom(scrollHeight, scrollTop);
29
+ const scrollBottom = calcScrollBottom(scrollHeight, scrollTop);
23
30
  // even if there is more to fetch or not,
24
31
  // we still have to show the scroll to bottom button
25
32
  if (typeof setShowScrollDownButton === 'function') {
@@ -29,13 +36,13 @@ function useHandleOnScrollCallback(_a) {
29
36
  return;
30
37
  }
31
38
  if (scrollTop < consts.SCROLL_BUFFER) {
32
- onScroll(function () {
39
+ onScroll(() => {
33
40
  // sets the scroll position to the bottom of the new messages
34
- scrollRef.current.scrollTop = scrollRef.current.scrollHeight - scrollBottom;
41
+ element.scrollTop = element.scrollHeight - scrollBottom;
35
42
  });
36
43
  }
37
44
  }, [setShowScrollDownButton, hasMore, onScroll, scrollRef]);
38
45
  }
39
46
 
40
47
  exports.useHandleOnScrollCallback = useHandleOnScrollCallback;
41
- //# sourceMappingURL=index-3626dfeb.js.map
48
+ //# sourceMappingURL=index-6d27f25a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-6d27f25a.js","sources":["../../src/hooks/useHandleOnScrollCallback/index.ts"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { SCROLL_BUFFER } from '../../utils/consts';\n\nexport interface UseHandleOnScrollCallbackProps {\n hasMore: boolean;\n onScroll(fn: () => void): void;\n scrollRef: React.RefObject<HTMLDivElement>;\n setShowScrollDownButton?: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport function calcScrollBottom(scrollHeight: number, scrollTop: number): number {\n return scrollHeight - scrollTop\n}\n\nexport function useHandleOnScrollCallback({\n hasMore,\n onScroll,\n scrollRef,\n setShowScrollDownButton,\n}: UseHandleOnScrollCallbackProps): () => void {\n return useCallback(() => {\n const element = scrollRef?.current;\n if (element == null) {\n return;\n }\n\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n // https://sendbird.atlassian.net/browse/SBISSUE-11759\n // the edge case where channel is inside a page that already has scroll\n // scrollintoView will move the whole page, which we dont want\n const scrollBottom = calcScrollBottom(scrollHeight, scrollTop);\n // even if there is more to fetch or not,\n // we still have to show the scroll to bottom button\n if (typeof setShowScrollDownButton === 'function') {\n setShowScrollDownButton(scrollHeight > scrollTop + clientHeight + 1)\n }\n if (!hasMore) {\n return;\n }\n if (scrollTop < SCROLL_BUFFER) {\n onScroll(() => {\n // sets the scroll position to the bottom of the new messages\n element.scrollTop = element.scrollHeight - scrollBottom;\n });\n }\n }, [\n setShowScrollDownButton,\n hasMore,\n onScroll,\n scrollRef,\n ]);\n}\n"],"names":["calcScrollBottom","scrollHeight","scrollTop","useHandleOnScrollCallback","_ref","hasMore","onScroll","scrollRef","setShowScrollDownButton","useCallback","element","current","clientHeight","scrollBottom","SCROLL_BUFFER"],"mappings":";;;;;AAUO,SAASA,gBAAgBA,CAACC,YAAoB,EAAEC,SAAiB,EAAU;EAChF,OAAOD,YAAY,GAAGC,SAAS,CAAA;AACjC,CAAA;AAEO,SAASC,yBAAyBA,CAAAC,IAAA,EAKM;EAAA,IALL;IACxCC,OAAO;IACPC,QAAQ;IACRC,SAAS;AACTC,IAAAA,uBAAAA;AAC8B,GAAC,GAAAJ,IAAA,CAAA;EAC/B,OAAOK,iBAAW,CAAC,MAAM;IACvB,MAAMC,OAAO,GAAGH,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAEI,OAAO,CAAA;IAClC,IAAID,OAAO,IAAI,IAAI,EAAE;AACnB,MAAA,OAAA;AACF,KAAA;IAEA,MAAM;MACJR,SAAS;MACTD,YAAY;AACZW,MAAAA,YAAAA;AACF,KAAC,GAAGF,OAAO,CAAA;AACX;AACA;AACA;AACA,IAAA,MAAMG,YAAY,GAAGb,gBAAgB,CAACC,YAAY,EAAEC,SAAS,CAAC,CAAA;AAC9D;AACA;AACA,IAAA,IAAI,OAAOM,uBAAuB,KAAK,UAAU,EAAE;MACjDA,uBAAuB,CAACP,YAAY,GAAGC,SAAS,GAAGU,YAAY,GAAG,CAAC,CAAC,CAAA;AACtE,KAAA;IACA,IAAI,CAACP,OAAO,EAAE;AACZ,MAAA,OAAA;AACF,KAAA;IACA,IAAIH,SAAS,GAAGY,oBAAa,EAAE;AAC7BR,MAAAA,QAAQ,CAAC,MAAM;AACb;AACAI,QAAAA,OAAO,CAACR,SAAS,GAAGQ,OAAO,CAACT,YAAY,GAAGY,YAAY,CAAA;AACzD,OAAC,CAAC,CAAA;AACJ,KAAA;GACD,EAAE,CACDL,uBAAuB,EACvBH,OAAO,EACPC,QAAQ,EACRC,SAAS,CACV,CAAC,CAAA;AACJ;;;;"}
@@ -0,0 +1,197 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var ui_ContextMenu = require('./ui/ContextMenu.js');
5
+ var useSendbirdStateContext = require('./useSendbirdStateContext.js');
6
+ var LocalizationContext = require('./LocalizationContext-08499fd8.js');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
+
12
+ const OpenChannelMessageStatusTypes = {
13
+ NONE: 'none',
14
+ PENDING: 'pending',
15
+ FAILED: 'failed',
16
+ CANCELED: 'canceled',
17
+ SUCCEEDED: 'succeeded'
18
+ };
19
+ const getSenderFromMessage = message => {
20
+ // @ts-ignore
21
+ return message.sender || message._sender;
22
+ };
23
+ const checkIsSent = status => status === OpenChannelMessageStatusTypes.SUCCEEDED;
24
+ const checkIsPending = status => status === OpenChannelMessageStatusTypes.PENDING;
25
+ const checkIsFailed = status => status === OpenChannelMessageStatusTypes.FAILED;
26
+ const checkIsByMe = (message, userId) => getSenderFromMessage(message).userId === userId;
27
+ const isFineCopy = _ref => {
28
+ var _message$message;
29
+ let {
30
+ message
31
+ } = _ref;
32
+ return (message === null || message === void 0 ? void 0 : message.messageType) === 'user' && (message === null || message === void 0 ? void 0 : (_message$message = message.message) === null || _message$message === void 0 ? void 0 : _message$message.length) > 0;
33
+ };
34
+ const isFineResend = _ref2 => {
35
+ let {
36
+ message,
37
+ status,
38
+ userId
39
+ } = _ref2;
40
+ return checkIsByMe(message, userId) && checkIsFailed(status)
41
+ // @ts-ignore
42
+ && (message === null || message === void 0 ? void 0 : message.isResendable());
43
+ };
44
+ const isFineEdit = _ref3 => {
45
+ var _message$isUserMessag;
46
+ let {
47
+ message,
48
+ status,
49
+ userId
50
+ } = _ref3;
51
+ return checkIsByMe(message, userId) && checkIsSent(status) && (message === null || message === void 0 ? void 0 : (_message$isUserMessag = message.isUserMessage) === null || _message$isUserMessag === void 0 ? void 0 : _message$isUserMessag.call(message));
52
+ };
53
+ const isFineDelete = _ref4 => {
54
+ let {
55
+ message,
56
+ userId
57
+ } = _ref4;
58
+ return checkIsByMe(message, userId);
59
+ };
60
+ const isFineDownload = _ref5 => {
61
+ var _message$isFileMessag;
62
+ let {
63
+ message,
64
+ status
65
+ } = _ref5;
66
+ if (message !== null && message !== void 0 && (_message$isFileMessag = message.isFileMessage) !== null && _message$isFileMessag !== void 0 && _message$isFileMessag.call(message) && checkIsSent(status)) {
67
+ return true;
68
+ }
69
+ return false;
70
+ };
71
+ const showMenuTrigger = props => {
72
+ const {
73
+ message,
74
+ status,
75
+ userId
76
+ } = props;
77
+ // @ts-ignore
78
+ if (message.messageType === 'user') {
79
+ return isFineDelete({
80
+ message,
81
+ status,
82
+ userId
83
+ }) || isFineEdit({
84
+ message,
85
+ status,
86
+ userId
87
+ })
88
+ // @ts-ignore
89
+ || isFineCopy({
90
+ message,
91
+ status,
92
+ userId
93
+ }) || isFineResend({
94
+ message,
95
+ status,
96
+ userId
97
+ });
98
+ } else {
99
+ return isFineDelete({
100
+ message,
101
+ status,
102
+ userId
103
+ }) || isFineResend({
104
+ message,
105
+ status,
106
+ userId
107
+ });
108
+ }
109
+ };
110
+
111
+ const OpenChannelMobileMenu = props => {
112
+ var _useSendbirdStateCont, _useSendbirdStateCont2;
113
+ const {
114
+ message,
115
+ parentRef,
116
+ resendMessage,
117
+ showEdit,
118
+ showRemove,
119
+ copyToClipboard,
120
+ hideMenu,
121
+ isEphemeral = false
122
+ } = props;
123
+ const userMessage = message;
124
+ const status = message === null || message === void 0 ? void 0 : message.sendingStatus;
125
+ const {
126
+ stringSet
127
+ } = LocalizationContext.useLocalization();
128
+ const userId = (_useSendbirdStateCont = useSendbirdStateContext()) === null || _useSendbirdStateCont === void 0 ? void 0 : (_useSendbirdStateCont2 = _useSendbirdStateCont.config) === null || _useSendbirdStateCont2 === void 0 ? void 0 : _useSendbirdStateCont2.userId;
129
+ const fileMessage = message;
130
+ return /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu["default"], {
131
+ isOpen: true,
132
+ menuItems: () => /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItems, {
133
+ className: "sendbird-openchannel__mobile-menu",
134
+ parentRef: parentRef,
135
+ parentContainRef: parentRef,
136
+ closeDropdown: hideMenu
137
+ }, isFineCopy({
138
+ message: userMessage,
139
+ userId,
140
+ status
141
+ }) && /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItem, {
142
+ className: "sendbird-openchannel-og-message__top__context-menu__copy",
143
+ onClick: () => {
144
+ copyToClipboard();
145
+ }
146
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, stringSet.CONTEXT_MENU_DROPDOWN__COPY)), !isEphemeral && isFineEdit({
147
+ message,
148
+ userId,
149
+ status
150
+ }) && /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItem, {
151
+ className: "sendbird-openchannel-og-message__top__context-menu__edit",
152
+ onClick: () => {
153
+ showEdit();
154
+ }
155
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, stringSet.CONTEXT_MENU_DROPDOWN__EDIT)), isFineResend({
156
+ message,
157
+ userId,
158
+ status
159
+ }) && /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItem, {
160
+ onClick: () => {
161
+ resendMessage();
162
+ }
163
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, stringSet.CONTEXT_MENU_DROPDOWN__RESEND)), !isEphemeral && isFineDelete({
164
+ message,
165
+ userId,
166
+ status
167
+ }) && /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItem, {
168
+ onClick: () => {
169
+ showRemove();
170
+ }
171
+ }, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, stringSet.CONTEXT_MENU_DROPDOWN__DELETE)), isFineDownload({
172
+ message,
173
+ status
174
+ }) && /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.MenuItem, {
175
+ onClick: () => {
176
+ hideMenu();
177
+ }
178
+ }, /*#__PURE__*/React__default["default"].createElement("a", {
179
+ className: "sendbird-openchannel__mobile-menu-hyperlink",
180
+ rel: "noopener noreferrer",
181
+ href: fileMessage === null || fileMessage === void 0 ? void 0 : fileMessage.url,
182
+ target: "_blank"
183
+ }, stringSet.CONTEXT_MENU_DROPDOWN__SAVE)))
184
+ });
185
+ };
186
+
187
+ exports.OpenChannelMobileMenu = OpenChannelMobileMenu;
188
+ exports.checkIsFailed = checkIsFailed;
189
+ exports.checkIsPending = checkIsPending;
190
+ exports.checkIsSent = checkIsSent;
191
+ exports.getSenderFromMessage = getSenderFromMessage;
192
+ exports.isFineCopy = isFineCopy;
193
+ exports.isFineDelete = isFineDelete;
194
+ exports.isFineEdit = isFineEdit;
195
+ exports.isFineResend = isFineResend;
196
+ exports.showMenuTrigger = showMenuTrigger;
197
+ //# sourceMappingURL=index-71e1cad7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-71e1cad7.js","sources":["../../src/utils/openChannelUtils.ts","../../src/ui/OpenChannelMobileMenu/index.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\n\nconst OpenChannelMessageStatusTypes = {\n NONE: 'none',\n PENDING: 'pending',\n FAILED: 'failed',\n CANCELED: 'canceled',\n SUCCEEDED: 'succeeded',\n};\n\nexport const getSenderFromMessage = (message: UserMessage | FileMessage): User => {\n // @ts-ignore\n return message.sender || message._sender;\n};\n\nexport const checkIsSent = (status: string): boolean => (status === OpenChannelMessageStatusTypes.SUCCEEDED);\nexport const checkIsPending = (status: string): boolean => (status === OpenChannelMessageStatusTypes.PENDING);\nexport const checkIsFailed = (status: string): boolean => (status === OpenChannelMessageStatusTypes.FAILED);\n\nexport const checkIsByMe = (message: UserMessage | FileMessage, userId: string): boolean => (getSenderFromMessage(message).userId === userId);\n\ninterface isFineCopyParams {\n message: UserMessage;\n status: string;\n userId: string;\n}\nexport const isFineCopy = ({ message }: isFineCopyParams): boolean => {\n return (message?.messageType === 'user' && message?.message?.length > 0);\n};\n\ninterface isFineResendParams {\n message: UserMessage | FileMessage;\n status: string;\n userId: string;\n}\nexport const isFineResend = ({ message, status, userId }: isFineResendParams): boolean => {\n return checkIsByMe(message, userId)\n && checkIsFailed(status)\n // @ts-ignore\n && message?.isResendable();\n};\n\ninterface isFineEditParams {\n message: UserMessage | FileMessage;\n status: string;\n userId: string;\n}\nexport const isFineEdit = ({ message, status, userId }: isFineEditParams): boolean => {\n return checkIsByMe(message, userId) && checkIsSent(status) && message?.isUserMessage?.();\n};\n\ninterface isFineDeleteParams {\n message: UserMessage | FileMessage;\n status: string;\n userId: string;\n}\nexport const isFineDelete = ({ message, userId }: isFineDeleteParams): boolean => {\n return checkIsByMe(message, userId);\n};\n\ninterface IsFineDownloadParams {\n message: FileMessage | UserMessage;\n status: string;\n}\n\nexport const isFineDownload = ({ message, status }: IsFineDownloadParams): boolean => {\n if (message?.isFileMessage?.() && checkIsSent(status)) {\n return true;\n }\n return false;\n};\n\ninterface showMenuTriggerParams {\n message: UserMessage | FileMessage;\n status: string;\n userId: string;\n}\nexport const showMenuTrigger = (props: showMenuTriggerParams): boolean => {\n const { message, status, userId } = props;\n // @ts-ignore\n if (message.messageType === 'user') {\n return (\n isFineDelete({ message, status, userId })\n || isFineEdit({ message, status, userId })\n // @ts-ignore\n || isFineCopy({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n } else {\n return (\n isFineDelete({ message, status, userId })\n || isFineResend({ message, status, userId })\n );\n }\n};\n","import './open-channel-mobile-menu.scss';\n\nimport React from 'react';\nimport type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport ContextMenu, { MenuItems, MenuItem } from '../ContextMenu';\nimport {\n isFineDelete,\n isFineResend,\n isFineCopy,\n isFineEdit,\n isFineDownload,\n} from '../../utils/openChannelUtils';\nimport useSendbirdStateContext from '../../hooks/useSendbirdStateContext';\nimport { useLocalization } from '../../lib/LocalizationContext';\n\ntype Props = {\n message: UserMessage | FileMessage;\n parentRef: React.RefObject<HTMLDivElement>;\n resendMessage?(): void;\n showRemove?(): void;\n copyToClipboard?(): void;\n showEdit?(): void;\n hideMenu(): void;\n isEphemeral?: boolean;\n};\n\nconst OpenChannelMobileMenu: React.FC<Props> = (props: Props) => {\n const {\n message,\n parentRef,\n resendMessage,\n showEdit,\n showRemove,\n copyToClipboard,\n hideMenu,\n isEphemeral = false,\n } = props;\n const userMessage = message as UserMessage;\n const status = message?.sendingStatus;\n const { stringSet } = useLocalization();\n const userId = useSendbirdStateContext()?.config?.userId;\n const fileMessage = message as FileMessage;\n return (\n <ContextMenu\n isOpen\n menuItems={() => (\n <MenuItems\n className=\"sendbird-openchannel__mobile-menu\"\n parentRef={parentRef}\n parentContainRef={parentRef}\n closeDropdown={hideMenu}\n >\n {\n isFineCopy({ message: userMessage, userId, status }) && (\n <MenuItem\n className=\"sendbird-openchannel-og-message__top__context-menu__copy\"\n onClick={() => {\n copyToClipboard();\n }}\n >\n <>{stringSet.CONTEXT_MENU_DROPDOWN__COPY}</>\n </MenuItem>\n )\n }\n {\n (!isEphemeral && isFineEdit({ message, userId, status })) && (\n <MenuItem\n className=\"sendbird-openchannel-og-message__top__context-menu__edit\"\n onClick={() => {\n showEdit();\n }}\n >\n <>{stringSet.CONTEXT_MENU_DROPDOWN__EDIT}</>\n </MenuItem>\n )\n }\n {\n isFineResend({ message, userId, status }) && (\n <MenuItem\n onClick={() => {\n resendMessage();\n }}\n >\n <>{stringSet.CONTEXT_MENU_DROPDOWN__RESEND}</>\n </MenuItem>\n )\n }\n {\n (!isEphemeral && isFineDelete({ message, userId, status })) && (\n <MenuItem\n onClick={() => {\n showRemove();\n }}\n >\n <>{stringSet.CONTEXT_MENU_DROPDOWN__DELETE}</>\n </MenuItem>\n )\n }\n {\n isFineDownload({ message, status }) && (\n <MenuItem\n onClick={() => {\n hideMenu();\n }}\n >\n <a\n className=\"sendbird-openchannel__mobile-menu-hyperlink\"\n rel=\"noopener noreferrer\"\n href={fileMessage?.url}\n target=\"_blank\"\n >\n {stringSet.CONTEXT_MENU_DROPDOWN__SAVE}\n </a>\n </MenuItem>\n )\n }\n </MenuItems>\n )\n }/>\n )\n}\n\nexport default OpenChannelMobileMenu;\n"],"names":["OpenChannelMessageStatusTypes","NONE","PENDING","FAILED","CANCELED","SUCCEEDED","getSenderFromMessage","message","sender","_sender","checkIsSent","status","checkIsPending","checkIsFailed","checkIsByMe","userId","isFineCopy","_ref","_message$message","messageType","length","isFineResend","_ref2","isResendable","isFineEdit","_ref3","_message$isUserMessag","isUserMessage","call","isFineDelete","_ref4","isFineDownload","_ref5","_message$isFileMessag","isFileMessage","showMenuTrigger","props","OpenChannelMobileMenu","_useSendbirdStateCont","_useSendbirdStateCont2","parentRef","resendMessage","showEdit","showRemove","copyToClipboard","hideMenu","isEphemeral","userMessage","sendingStatus","stringSet","useLocalization","useSendbirdStateContext","config","fileMessage","React","createElement","ContextMenu","isOpen","menuItems","MenuItems","className","parentContainRef","closeDropdown","MenuItem","onClick","Fragment","CONTEXT_MENU_DROPDOWN__COPY","CONTEXT_MENU_DROPDOWN__EDIT","CONTEXT_MENU_DROPDOWN__RESEND","CONTEXT_MENU_DROPDOWN__DELETE","rel","href","url","target","CONTEXT_MENU_DROPDOWN__SAVE"],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var index_module = require('./index.module-984504c9.js');
5
+ var tokenize = require('./tokenize-c466a4e9.js');
6
+ var Message_context = require('./Message/context.js');
7
+ var ui_MentionLabel = require('./ui/MentionLabel.js');
8
+ var ui_LinkLabel = require('./ui/LinkLabel.js');
9
+ var ui_Label = require('./index-9c5f3445.js');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+
15
+ // this function is used to generate a unique key for token in message
16
+ // it changes with updated time and index
17
+ // messageUpdatedAt is the key part of this key generator
18
+ function keyGenerator(createdAt, messageUpdatedAt, index) {
19
+ return `sb-msg_${createdAt}_${messageUpdatedAt}_${index}`;
20
+ }
21
+
22
+ function TextFragment(_ref) {
23
+ let {
24
+ tokens
25
+ } = _ref;
26
+ const messageStore = Message_context.useMessageContext();
27
+ const message = messageStore === null || messageStore === void 0 ? void 0 : messageStore.message;
28
+ const isByMe = messageStore === null || messageStore === void 0 ? void 0 : messageStore.isByMe;
29
+ const {
30
+ updatedAt,
31
+ createdAt
32
+ } = message;
33
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, tokens === null || tokens === void 0 ? void 0 : tokens.map((token, idx) => {
34
+ const key = keyGenerator(createdAt, updatedAt, idx);
35
+ return index_module.K(token.type).with(tokenize.TOKEN_TYPES.mention, () => /*#__PURE__*/React__default["default"].createElement("span", {
36
+ className: "sendbird-word",
37
+ key: key
38
+ }, /*#__PURE__*/React__default["default"].createElement(ui_MentionLabel, {
39
+ mentionTemplate: tokenize.USER_MENTION_PREFIX,
40
+ mentionedUserId: token.userId,
41
+ mentionedUserNickname: token.value,
42
+ isByMe: isByMe
43
+ }))).with(tokenize.TOKEN_TYPES.url, () => /*#__PURE__*/React__default["default"].createElement("span", {
44
+ className: "sendbird-word",
45
+ key: key
46
+ }, /*#__PURE__*/React__default["default"].createElement(ui_LinkLabel["default"], {
47
+ className: "sendbird-word__url",
48
+ src: token.value,
49
+ type: ui_Label.LabelTypography.BODY_1
50
+ }, token.value))).otherwise(() => /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
51
+ key: key
52
+ }, tokenize.getWhiteSpacePreservedText(token.value)));
53
+ }));
54
+ }
55
+
56
+ exports.TextFragment = TextFragment;
57
+ //# sourceMappingURL=index-8a8e9dec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-8a8e9dec.js","sources":["../../src/modules/Message/utils/tokens/keyGenerator.ts","../../src/modules/Message/components/TextFragment/index.tsx"],"sourcesContent":["// this function is used to generate a unique key for token in message\n// it changes with updated time and index\n// messageUpdatedAt is the key part of this key generator\nexport function keyGenerator(\n createdAt: number,\n messageUpdatedAt: number,\n index: number,\n): string {\n return `sb-msg_${createdAt}_${messageUpdatedAt}_${index}`;\n}\n","import React from 'react';\nimport { UserMessage } from '@sendbird/chat/message';\nimport { match } from 'ts-pattern';\n\nimport { TOKEN_TYPES, Token } from '../../utils/tokens/types';\nimport { useMessageContext } from '../../context/MessageProvider';\nimport { keyGenerator } from '../../utils/tokens/keyGenerator';\nimport MentionLabel from '../../../../ui/MentionLabel';\nimport { USER_MENTION_PREFIX } from '../../consts';\nimport LinkLabel from '../../../../ui/LinkLabel';\nimport { LabelTypography } from '../../../../ui/Label';\nimport { getWhiteSpacePreservedText } from '../../utils/tokens/tokenize';\n\nexport type TextFragmentProps = {\n tokens: Token[];\n};\n\nexport default function TextFragment({\n tokens,\n}: TextFragmentProps): React.ReactElement {\n const messageStore = useMessageContext();\n\n const message = messageStore?.message as UserMessage;\n const isByMe = messageStore?.isByMe;\n const { updatedAt, createdAt } = message;\n\n return (\n <>\n {tokens?.map((token, idx) => {\n const key = keyGenerator(createdAt, updatedAt, idx);\n return match(token.type)\n .with(TOKEN_TYPES.mention, () => (\n <span className=\"sendbird-word\" key={key}>\n <MentionLabel\n mentionTemplate={USER_MENTION_PREFIX}\n mentionedUserId={token.userId}\n mentionedUserNickname={token.value}\n isByMe={isByMe}\n />\n </span>\n ))\n .with(TOKEN_TYPES.url, () => (\n <span className=\"sendbird-word\" key={key}>\n <LinkLabel\n className=\"sendbird-word__url\"\n src={token.value}\n type={LabelTypography.BODY_1}\n >\n {token.value}\n </LinkLabel>\n </span>\n ))\n .otherwise(() => <React.Fragment key={key}>{getWhiteSpacePreservedText(token.value)}</React.Fragment>);\n })}\n </>\n );\n}\n"],"names":["keyGenerator","createdAt","messageUpdatedAt","index","TextFragment","_ref","tokens","messageStore","useMessageContext","message","isByMe","updatedAt","React","createElement","Fragment","map","token","idx","key","match","type","with","TOKEN_TYPES","mention","className","MentionLabel","mentionTemplate","USER_MENTION_PREFIX","mentionedUserId","userId","mentionedUserNickname","value","url","LinkLabel","src","LabelTypography","BODY_1","otherwise","getWhiteSpacePreservedText"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACO,SAASA,YAAYA,CAC1BC,SAAiB,EACjBC,gBAAwB,EACxBC,KAAa,EACL;AACR,EAAA,OAAQ,UAASF,SAAU,CAAA,CAAA,EAAGC,gBAAiB,CAAA,CAAA,EAAGC,KAAM,CAAC,CAAA,CAAA;AAC3D;;ACQe,SAASC,YAAYA,CAAAC,IAAA,EAEM;EAAA,IAFL;AACnCC,IAAAA,MAAAA;AACiB,GAAC,GAAAD,IAAA,CAAA;AAClB,EAAA,MAAME,YAAY,GAAGC,iCAAiB,EAAE,CAAA;EAExC,MAAMC,OAAO,GAAGF,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEE,OAAsB,CAAA;EACpD,MAAMC,MAAM,GAAGH,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEG,MAAM,CAAA;EACnC,MAAM;IAAEC,SAAS;AAAEV,IAAAA,SAAAA;AAAU,GAAC,GAAGQ,OAAO,CAAA;EAExC,oBACEG,yBAAA,CAAAC,aAAA,CAAAD,yBAAA,CAAAE,QAAA,QACGR,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAES,GAAG,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;IAC3B,MAAMC,GAAG,GAAGlB,YAAY,CAACC,SAAS,EAAEU,SAAS,EAAEM,GAAG,CAAC,CAAA;AACnD,IAAA,OAAOE,cAAK,CAACH,KAAK,CAACI,IAAI,CAAC,CACrBC,IAAI,CAACC,oBAAW,CAACC,OAAO,EAAE,mBACzBX,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,MAAAA,SAAS,EAAC,eAAe;AAACN,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,eACvCN,yBAAA,CAAAC,aAAA,CAACY,eAAY,EAAA;AACXC,MAAAA,eAAe,EAAEC,4BAAoB;MACrCC,eAAe,EAAEZ,KAAK,CAACa,MAAO;MAC9BC,qBAAqB,EAAEd,KAAK,CAACe,KAAM;AACnCrB,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAChB,CACG,CACP,CAAC,CACDW,IAAI,CAACC,oBAAW,CAACU,GAAG,EAAE,mBACrBpB,yBAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMW,MAAAA,SAAS,EAAC,eAAe;AAACN,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,eACvCN,yBAAA,CAAAC,aAAA,CAACoB,uBAAS,EAAA;AACRT,MAAAA,SAAS,EAAC,oBAAoB;MAC9BU,GAAG,EAAElB,KAAK,CAACe,KAAM;MACjBX,IAAI,EAAEe,wBAAe,CAACC,MAAAA;AAAO,KAAA,EAE5BpB,KAAK,CAACe,KACE,CACP,CACP,CAAC,CACDM,SAAS,CAAC,mBAAMzB,yBAAA,CAAAC,aAAA,CAACD,yBAAK,CAACE,QAAQ,EAAA;AAACI,MAAAA,GAAG,EAAEA,GAAAA;AAAI,KAAA,EAAEoB,mCAA0B,CAACtB,KAAK,CAACe,KAAK,CAAkB,CAAC,CAAC,CAAA;AAC1G,GAAC,CACD,CAAC,CAAA;AAEP;;;;"}