@sendbird/uikit-react 3.0.0-alpha.1 → 3.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (614) hide show
  1. package/App.js +305 -0
  2. package/App.js.map +1 -0
  3. package/CHANGELOG.md +50 -0
  4. package/Channel/components/ChannelHeader.js +117 -0
  5. package/Channel/components/ChannelHeader.js.map +1 -0
  6. package/Channel/components/ChannelUI.js +179 -0
  7. package/Channel/components/ChannelUI.js.map +1 -0
  8. package/Channel/components/FileViewer.js +151 -0
  9. package/Channel/components/FileViewer.js.map +1 -0
  10. package/Channel/components/FrozenNotification.js +20 -0
  11. package/Channel/components/FrozenNotification.js.map +1 -0
  12. package/Channel/components/Message.js +348 -0
  13. package/Channel/components/Message.js.map +1 -0
  14. package/Channel/components/MessageInput.js +202 -0
  15. package/Channel/components/MessageInput.js.map +1 -0
  16. package/Channel/components/MessageList.js +239 -0
  17. package/Channel/components/MessageList.js.map +1 -0
  18. package/Channel/components/RemoveMessageModal.js +53 -0
  19. package/Channel/components/RemoveMessageModal.js.map +1 -0
  20. package/Channel/components/SuggestedMentionList.js +250 -0
  21. package/Channel/components/SuggestedMentionList.js.map +1 -0
  22. package/Channel/components/TypingIndicator.js +98 -0
  23. package/Channel/components/TypingIndicator.js.map +1 -0
  24. package/Channel/components/UnreadCount.js +41 -0
  25. package/Channel/components/UnreadCount.js.map +1 -0
  26. package/Channel/context.js +24 -0
  27. package/Channel/context.js.map +1 -0
  28. package/Channel.js +106 -0
  29. package/Channel.js.map +1 -0
  30. package/ChannelList/components/AddChannel.js +70 -0
  31. package/ChannelList/components/AddChannel.js.map +1 -0
  32. package/ChannelList/components/ChannelListHeader.js +62 -0
  33. package/ChannelList/components/ChannelListHeader.js.map +1 -0
  34. package/ChannelList/components/ChannelListUI.js +214 -0
  35. package/ChannelList/components/ChannelListUI.js.map +1 -0
  36. package/ChannelList/components/ChannelPreview.js +181 -0
  37. package/ChannelList/components/ChannelPreview.js.map +1 -0
  38. package/ChannelList/components/ChannelPreviewAction.js +131 -0
  39. package/ChannelList/components/ChannelPreviewAction.js.map +1 -0
  40. package/ChannelList/context.js +13 -0
  41. package/ChannelList/context.js.map +1 -0
  42. package/ChannelList.js +81 -0
  43. package/ChannelList.js.map +1 -0
  44. package/ChannelListProvider-7c351968.js +861 -0
  45. package/ChannelListProvider-7c351968.js.map +1 -0
  46. package/ChannelProvider-d5126903.js +2114 -0
  47. package/ChannelProvider-d5126903.js.map +1 -0
  48. package/ChannelSettings/components/AdminPanel.js +905 -0
  49. package/ChannelSettings/components/AdminPanel.js.map +1 -0
  50. package/ChannelSettings/components/ChannelProfile.js +102 -0
  51. package/ChannelSettings/components/ChannelProfile.js.map +1 -0
  52. package/ChannelSettings/components/ChannelSettingsUI.js +152 -0
  53. package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
  54. package/ChannelSettings/components/EditDetailsModal.js +154 -0
  55. package/ChannelSettings/components/EditDetailsModal.js.map +1 -0
  56. package/ChannelSettings/components/LeaveChannel.js +53 -0
  57. package/ChannelSettings/components/LeaveChannel.js.map +1 -0
  58. package/ChannelSettings/components/UserListItem.js +105 -0
  59. package/ChannelSettings/components/UserListItem.js.map +1 -0
  60. package/ChannelSettings/components/UserPanel.js +79 -0
  61. package/ChannelSettings/components/UserPanel.js.map +1 -0
  62. package/ChannelSettings/context.js +93 -0
  63. package/ChannelSettings/context.js.map +1 -0
  64. package/ChannelSettings.js +71 -0
  65. package/ChannelSettings.js.map +1 -0
  66. package/CreateChannel/components/CreateChannelUI.js +53 -0
  67. package/CreateChannel/components/CreateChannelUI.js.map +1 -0
  68. package/CreateChannel/components/InviteMembers.js +184 -0
  69. package/CreateChannel/components/InviteMembers.js.map +1 -0
  70. package/CreateChannel/components/SelectChannelType.js +131 -0
  71. package/CreateChannel/components/SelectChannelType.js.map +1 -0
  72. package/CreateChannel/context.js +8 -0
  73. package/CreateChannel/context.js.map +1 -0
  74. package/CreateChannel.js +53 -0
  75. package/CreateChannel.js.map +1 -0
  76. package/CreateChannelProvider-ddfd92e6.js +53 -0
  77. package/CreateChannelProvider-ddfd92e6.js.map +1 -0
  78. package/EditUserProfile/components/EditUserProfileUI.js +26 -0
  79. package/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
  80. package/EditUserProfile/context.js +27 -0
  81. package/EditUserProfile/context.js.map +1 -0
  82. package/EditUserProfile.js +39 -0
  83. package/EditUserProfile.js.map +1 -0
  84. package/LocalizationContext-b021af8f.js +22 -0
  85. package/LocalizationContext-b021af8f.js.map +1 -0
  86. package/MemberList-323e7517.js +425 -0
  87. package/MemberList-323e7517.js.map +1 -0
  88. package/MessageSearch/components/MessageSearchUI.js +151 -0
  89. package/MessageSearch/components/MessageSearchUI.js.map +1 -0
  90. package/MessageSearch/context.js +392 -0
  91. package/MessageSearch/context.js.map +1 -0
  92. package/MessageSearch.js +146 -0
  93. package/MessageSearch.js.map +1 -0
  94. package/OpenChannel/components/FrozenChannelNotification.js +20 -0
  95. package/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
  96. package/OpenChannel/components/OpenChannelHeader.js +78 -0
  97. package/OpenChannel/components/OpenChannelHeader.js.map +1 -0
  98. package/OpenChannel/components/OpenChannelInput.js +56 -0
  99. package/OpenChannel/components/OpenChannelInput.js.map +1 -0
  100. package/OpenChannel/components/OpenChannelMessage.js +282 -0
  101. package/OpenChannel/components/OpenChannelMessage.js.map +1 -0
  102. package/OpenChannel/components/OpenChannelMessageList.js +157 -0
  103. package/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
  104. package/OpenChannel/components/OpenChannelUI.js +109 -0
  105. package/OpenChannel/components/OpenChannelUI.js.map +1 -0
  106. package/OpenChannel/context.js +14 -0
  107. package/OpenChannel/context.js.map +1 -0
  108. package/OpenChannel.js +80 -0
  109. package/OpenChannel.js.map +1 -0
  110. package/OpenChannelProvider-abc4ab98.js +2011 -0
  111. package/OpenChannelProvider-abc4ab98.js.map +1 -0
  112. package/OpenChannelSettings/components/EditDetailsModal.js +149 -0
  113. package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
  114. package/OpenChannelSettings/components/OpenChannelProfile.js +81 -0
  115. package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
  116. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +104 -0
  117. package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
  118. package/OpenChannelSettings/components/OperatorUI.js +184 -0
  119. package/OpenChannelSettings/components/OperatorUI.js.map +1 -0
  120. package/OpenChannelSettings/components/ParticipantUI.js +172 -0
  121. package/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
  122. package/OpenChannelSettings/context.js +64 -0
  123. package/OpenChannelSettings/context.js.map +1 -0
  124. package/OpenChannelSettings.js +64 -0
  125. package/OpenChannelSettings.js.map +1 -0
  126. package/README.md +111 -0
  127. package/SendbirdProvider.js +754 -0
  128. package/SendbirdProvider.js.map +1 -0
  129. package/UserProfileContext-daa99f9b.js +38 -0
  130. package/UserProfileContext-daa99f9b.js.map +1 -0
  131. package/_rollupPluginBabelHelpers-8e4fae98.js +233 -0
  132. package/_rollupPluginBabelHelpers-8e4fae98.js.map +1 -0
  133. package/actionTypes-189daf51.js +6 -0
  134. package/actionTypes-189daf51.js.map +1 -0
  135. package/cjs/App.js +312 -0
  136. package/cjs/App.js.map +1 -0
  137. package/cjs/Channel/components/ChannelHeader.js +123 -0
  138. package/cjs/Channel/components/ChannelHeader.js.map +1 -0
  139. package/cjs/Channel/components/ChannelUI.js +185 -0
  140. package/cjs/Channel/components/ChannelUI.js.map +1 -0
  141. package/cjs/Channel/components/FileViewer.js +160 -0
  142. package/cjs/Channel/components/FileViewer.js.map +1 -0
  143. package/cjs/Channel/components/FrozenNotification.js +26 -0
  144. package/cjs/Channel/components/FrozenNotification.js.map +1 -0
  145. package/cjs/Channel/components/Message.js +354 -0
  146. package/cjs/Channel/components/Message.js.map +1 -0
  147. package/cjs/Channel/components/MessageInput.js +208 -0
  148. package/cjs/Channel/components/MessageInput.js.map +1 -0
  149. package/cjs/Channel/components/MessageList.js +245 -0
  150. package/cjs/Channel/components/MessageList.js.map +1 -0
  151. package/cjs/Channel/components/RemoveMessageModal.js +59 -0
  152. package/cjs/Channel/components/RemoveMessageModal.js.map +1 -0
  153. package/cjs/Channel/components/SuggestedMentionList.js +256 -0
  154. package/cjs/Channel/components/SuggestedMentionList.js.map +1 -0
  155. package/cjs/Channel/components/TypingIndicator.js +104 -0
  156. package/cjs/Channel/components/TypingIndicator.js.map +1 -0
  157. package/cjs/Channel/components/UnreadCount.js +47 -0
  158. package/cjs/Channel/components/UnreadCount.js.map +1 -0
  159. package/cjs/Channel/context.js +33 -0
  160. package/cjs/Channel/context.js.map +1 -0
  161. package/cjs/Channel.js +112 -0
  162. package/cjs/Channel.js.map +1 -0
  163. package/cjs/ChannelList/components/AddChannel.js +79 -0
  164. package/cjs/ChannelList/components/AddChannel.js.map +1 -0
  165. package/cjs/ChannelList/components/ChannelListHeader.js +68 -0
  166. package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -0
  167. package/cjs/ChannelList/components/ChannelListUI.js +220 -0
  168. package/cjs/ChannelList/components/ChannelListUI.js.map +1 -0
  169. package/cjs/ChannelList/components/ChannelPreview.js +187 -0
  170. package/cjs/ChannelList/components/ChannelPreview.js.map +1 -0
  171. package/cjs/ChannelList/components/ChannelPreviewAction.js +138 -0
  172. package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -0
  173. package/cjs/ChannelList/context.js +22 -0
  174. package/cjs/ChannelList/context.js.map +1 -0
  175. package/cjs/ChannelList.js +87 -0
  176. package/cjs/ChannelList.js.map +1 -0
  177. package/cjs/ChannelListProvider-44dde549.js +873 -0
  178. package/cjs/ChannelListProvider-44dde549.js.map +1 -0
  179. package/cjs/ChannelProvider-e0aaab26.js +2127 -0
  180. package/cjs/ChannelProvider-e0aaab26.js.map +1 -0
  181. package/cjs/ChannelSettings/components/AdminPanel.js +911 -0
  182. package/cjs/ChannelSettings/components/AdminPanel.js.map +1 -0
  183. package/cjs/ChannelSettings/components/ChannelProfile.js +108 -0
  184. package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -0
  185. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +158 -0
  186. package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
  187. package/cjs/ChannelSettings/components/EditDetailsModal.js +160 -0
  188. package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -0
  189. package/cjs/ChannelSettings/components/LeaveChannel.js +59 -0
  190. package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -0
  191. package/cjs/ChannelSettings/components/UserListItem.js +111 -0
  192. package/cjs/ChannelSettings/components/UserListItem.js.map +1 -0
  193. package/cjs/ChannelSettings/components/UserPanel.js +85 -0
  194. package/cjs/ChannelSettings/components/UserPanel.js.map +1 -0
  195. package/cjs/ChannelSettings/context.js +102 -0
  196. package/cjs/ChannelSettings/context.js.map +1 -0
  197. package/cjs/ChannelSettings.js +77 -0
  198. package/cjs/ChannelSettings.js.map +1 -0
  199. package/cjs/CreateChannel/components/CreateChannelUI.js +59 -0
  200. package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -0
  201. package/cjs/CreateChannel/components/InviteMembers.js +190 -0
  202. package/cjs/CreateChannel/components/InviteMembers.js.map +1 -0
  203. package/cjs/CreateChannel/components/SelectChannelType.js +137 -0
  204. package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -0
  205. package/cjs/CreateChannel/context.js +17 -0
  206. package/cjs/CreateChannel/context.js.map +1 -0
  207. package/cjs/CreateChannel.js +59 -0
  208. package/cjs/CreateChannel.js.map +1 -0
  209. package/cjs/CreateChannelProvider-bdf9c39b.js +60 -0
  210. package/cjs/CreateChannelProvider-bdf9c39b.js.map +1 -0
  211. package/cjs/EditUserProfile/components/EditUserProfileUI.js +32 -0
  212. package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
  213. package/cjs/EditUserProfile/context.js +36 -0
  214. package/cjs/EditUserProfile/context.js.map +1 -0
  215. package/cjs/EditUserProfile.js +45 -0
  216. package/cjs/EditUserProfile.js.map +1 -0
  217. package/cjs/LocalizationContext-3b5ce8ae.js +30 -0
  218. package/cjs/LocalizationContext-3b5ce8ae.js.map +1 -0
  219. package/cjs/MemberList-ef9e43c3.js +431 -0
  220. package/cjs/MemberList-ef9e43c3.js.map +1 -0
  221. package/cjs/MessageSearch/components/MessageSearchUI.js +160 -0
  222. package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -0
  223. package/cjs/MessageSearch/context.js +401 -0
  224. package/cjs/MessageSearch/context.js.map +1 -0
  225. package/cjs/MessageSearch.js +152 -0
  226. package/cjs/MessageSearch.js.map +1 -0
  227. package/cjs/OpenChannel/components/FrozenChannelNotification.js +26 -0
  228. package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
  229. package/cjs/OpenChannel/components/OpenChannelHeader.js +84 -0
  230. package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -0
  231. package/cjs/OpenChannel/components/OpenChannelInput.js +62 -0
  232. package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -0
  233. package/cjs/OpenChannel/components/OpenChannelMessage.js +288 -0
  234. package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -0
  235. package/cjs/OpenChannel/components/OpenChannelMessageList.js +163 -0
  236. package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
  237. package/cjs/OpenChannel/components/OpenChannelUI.js +115 -0
  238. package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -0
  239. package/cjs/OpenChannel/context.js +23 -0
  240. package/cjs/OpenChannel/context.js.map +1 -0
  241. package/cjs/OpenChannel.js +86 -0
  242. package/cjs/OpenChannel.js.map +1 -0
  243. package/cjs/OpenChannelProvider-9ce7c998.js +2020 -0
  244. package/cjs/OpenChannelProvider-9ce7c998.js.map +1 -0
  245. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +155 -0
  246. package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
  247. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +87 -0
  248. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
  249. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +110 -0
  250. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
  251. package/cjs/OpenChannelSettings/components/OperatorUI.js +194 -0
  252. package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -0
  253. package/cjs/OpenChannelSettings/components/ParticipantUI.js +178 -0
  254. package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
  255. package/cjs/OpenChannelSettings/context.js +73 -0
  256. package/cjs/OpenChannelSettings/context.js.map +1 -0
  257. package/cjs/OpenChannelSettings.js +70 -0
  258. package/cjs/OpenChannelSettings.js.map +1 -0
  259. package/cjs/SendbirdProvider.js +763 -0
  260. package/cjs/SendbirdProvider.js.map +1 -0
  261. package/cjs/UserProfileContext-f0bdfbb8.js +46 -0
  262. package/cjs/UserProfileContext-f0bdfbb8.js.map +1 -0
  263. package/cjs/_rollupPluginBabelHelpers-e54d2387.js +243 -0
  264. package/cjs/_rollupPluginBabelHelpers-e54d2387.js.map +1 -0
  265. package/cjs/actionTypes-267d4c79.js +10 -0
  266. package/cjs/actionTypes-267d4c79.js.map +1 -0
  267. package/cjs/color-0f078673.js +42 -0
  268. package/cjs/color-0f078673.js.map +1 -0
  269. package/cjs/compareIds-176a582b.js +20 -0
  270. package/cjs/compareIds-176a582b.js.map +1 -0
  271. package/cjs/const-4bf0e8b4.js +22 -0
  272. package/cjs/const-4bf0e8b4.js.map +1 -0
  273. package/cjs/const-ccf192c5.js +14 -0
  274. package/cjs/const-ccf192c5.js.map +1 -0
  275. package/cjs/context-0cbe196d.js +19 -0
  276. package/cjs/context-0cbe196d.js.map +1 -0
  277. package/cjs/index-002a349d.js +722 -0
  278. package/cjs/index-002a349d.js.map +1 -0
  279. package/cjs/index-0159bc57.js +1880 -0
  280. package/cjs/index-0159bc57.js.map +1 -0
  281. package/cjs/index-081c9614.js +175 -0
  282. package/cjs/index-081c9614.js.map +1 -0
  283. package/cjs/index-21f31180.js +142 -0
  284. package/cjs/index-21f31180.js.map +1 -0
  285. package/cjs/index-22f07209.js +97 -0
  286. package/cjs/index-22f07209.js.map +1 -0
  287. package/cjs/index-46522cf0.js +284 -0
  288. package/cjs/index-46522cf0.js.map +1 -0
  289. package/cjs/index-723733db.js +54 -0
  290. package/cjs/index-723733db.js.map +1 -0
  291. package/cjs/index-c0693be4.js +67 -0
  292. package/cjs/index-c0693be4.js.map +1 -0
  293. package/cjs/index-d4f42e73.js +130 -0
  294. package/cjs/index-d4f42e73.js.map +1 -0
  295. package/cjs/index-d9439e95.js +514 -0
  296. package/cjs/index-d9439e95.js.map +1 -0
  297. package/cjs/index-ed053e45.js +9 -0
  298. package/cjs/index-ed053e45.js.map +1 -0
  299. package/cjs/index.css +4461 -0
  300. package/cjs/index.css.map +1 -0
  301. package/cjs/index.js +162 -0
  302. package/cjs/index.js.map +1 -0
  303. package/cjs/openChannelUtils-cecaf987.js +92 -0
  304. package/cjs/openChannelUtils-cecaf987.js.map +1 -0
  305. package/cjs/sendBirdSelectors.js +741 -0
  306. package/cjs/sendBirdSelectors.js.map +1 -0
  307. package/cjs/stringSet-f4da182b.js +118 -0
  308. package/cjs/stringSet-f4da182b.js.map +1 -0
  309. package/cjs/topics-c2c30f09.js +18 -0
  310. package/cjs/topics-c2c30f09.js.map +1 -0
  311. package/cjs/tslib.es6-d7d0a427.js +40 -0
  312. package/cjs/tslib.es6-d7d0a427.js.map +1 -0
  313. package/cjs/ui/Accordion.js +74 -0
  314. package/cjs/ui/Accordion.js.map +1 -0
  315. package/cjs/ui/AccordionGroup.js +32 -0
  316. package/cjs/ui/AccordionGroup.js.map +1 -0
  317. package/cjs/ui/AdminMessage.js +44 -0
  318. package/cjs/ui/AdminMessage.js.map +1 -0
  319. package/cjs/ui/Avatar.js +226 -0
  320. package/cjs/ui/Avatar.js.map +1 -0
  321. package/cjs/ui/Badge.js +45 -0
  322. package/cjs/ui/Badge.js.map +1 -0
  323. package/cjs/ui/Button.js +17 -0
  324. package/cjs/ui/Button.js.map +1 -0
  325. package/cjs/ui/ChannelAvatar.js +59 -0
  326. package/cjs/ui/ChannelAvatar.js.map +1 -0
  327. package/cjs/ui/ChannelPreview.js +201 -0
  328. package/cjs/ui/ChannelPreview.js.map +1 -0
  329. package/cjs/ui/ChatHeader.js +145 -0
  330. package/cjs/ui/ChatHeader.js.map +1 -0
  331. package/cjs/ui/Checkbox.js +49 -0
  332. package/cjs/ui/Checkbox.js.map +1 -0
  333. package/cjs/ui/ConnectionStatus.js +34 -0
  334. package/cjs/ui/ConnectionStatus.js.map +1 -0
  335. package/cjs/ui/ContextMenu.js +431 -0
  336. package/cjs/ui/ContextMenu.js.map +1 -0
  337. package/cjs/ui/DateSeparator.js +44 -0
  338. package/cjs/ui/DateSeparator.js.map +1 -0
  339. package/cjs/ui/Dropdown.js +107 -0
  340. package/cjs/ui/Dropdown.js.map +1 -0
  341. package/cjs/ui/EmojiReactions.js +127 -0
  342. package/cjs/ui/EmojiReactions.js.map +1 -0
  343. package/cjs/ui/FileMessageItemBody.js +57 -0
  344. package/cjs/ui/FileMessageItemBody.js.map +1 -0
  345. package/cjs/ui/FileViewer.js +174 -0
  346. package/cjs/ui/FileViewer.js.map +1 -0
  347. package/cjs/ui/Icon.js +1462 -0
  348. package/cjs/ui/Icon.js.map +1 -0
  349. package/cjs/ui/IconButton.js +83 -0
  350. package/cjs/ui/IconButton.js.map +1 -0
  351. package/cjs/ui/ImageRenderer.js +138 -0
  352. package/cjs/ui/ImageRenderer.js.map +1 -0
  353. package/cjs/ui/Input.js +74 -0
  354. package/cjs/ui/Input.js.map +1 -0
  355. package/cjs/ui/Label.js +17 -0
  356. package/cjs/ui/Label.js.map +1 -0
  357. package/cjs/ui/LinkLabel.js +51 -0
  358. package/cjs/ui/LinkLabel.js.map +1 -0
  359. package/cjs/ui/Loader.js +44 -0
  360. package/cjs/ui/Loader.js.map +1 -0
  361. package/cjs/ui/MentionUserLabel.js +25 -0
  362. package/cjs/ui/MentionUserLabel.js.map +1 -0
  363. package/cjs/ui/MessageContent.js +291 -0
  364. package/cjs/ui/MessageContent.js.map +1 -0
  365. package/cjs/ui/MessageInput.js +5048 -0
  366. package/cjs/ui/MessageInput.js.map +1 -0
  367. package/cjs/ui/MessageItemMenu.js +141 -0
  368. package/cjs/ui/MessageItemMenu.js.map +1 -0
  369. package/cjs/ui/MessageItemReactionMenu.js +112 -0
  370. package/cjs/ui/MessageItemReactionMenu.js.map +1 -0
  371. package/cjs/ui/MessageSearchFileItem.js +130 -0
  372. package/cjs/ui/MessageSearchFileItem.js.map +1 -0
  373. package/cjs/ui/MessageSearchItem.js +93 -0
  374. package/cjs/ui/MessageSearchItem.js.map +1 -0
  375. package/cjs/ui/MessageStatus.js +66 -0
  376. package/cjs/ui/MessageStatus.js.map +1 -0
  377. package/cjs/ui/Modal.js +140 -0
  378. package/cjs/ui/Modal.js.map +1 -0
  379. package/cjs/ui/MutedAvatarOverlay.js +40 -0
  380. package/cjs/ui/MutedAvatarOverlay.js.map +1 -0
  381. package/cjs/ui/OGMessageItemBody.js +107 -0
  382. package/cjs/ui/OGMessageItemBody.js.map +1 -0
  383. package/cjs/ui/OpenChannelAdminMessage.js +27 -0
  384. package/cjs/ui/OpenChannelAdminMessage.js.map +1 -0
  385. package/cjs/ui/OpenChannelAvatar.js +41 -0
  386. package/cjs/ui/OpenChannelAvatar.js.map +1 -0
  387. package/cjs/ui/OpenChannelMessageContent.js +14 -0
  388. package/cjs/ui/OpenChannelMessageContent.js.map +1 -0
  389. package/cjs/ui/OpenchannelConversationHeader.js +73 -0
  390. package/cjs/ui/OpenchannelConversationHeader.js.map +1 -0
  391. package/cjs/ui/OpenchannelFileMessage.js +230 -0
  392. package/cjs/ui/OpenchannelFileMessage.js.map +1 -0
  393. package/cjs/ui/OpenchannelOGMessage.js +345 -0
  394. package/cjs/ui/OpenchannelOGMessage.js.map +1 -0
  395. package/cjs/ui/OpenchannelThumbnailMessage.js +305 -0
  396. package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -0
  397. package/cjs/ui/OpenchannelUserMessage.js +264 -0
  398. package/cjs/ui/OpenchannelUserMessage.js.map +1 -0
  399. package/cjs/ui/PlaceHolder.js +20 -0
  400. package/cjs/ui/PlaceHolder.js.map +1 -0
  401. package/cjs/ui/QuoteMessage.js +131 -0
  402. package/cjs/ui/QuoteMessage.js.map +1 -0
  403. package/cjs/ui/QuoteMessageInput.js +99 -0
  404. package/cjs/ui/QuoteMessageInput.js.map +1 -0
  405. package/cjs/ui/ReactionBadge.js +68 -0
  406. package/cjs/ui/ReactionBadge.js.map +1 -0
  407. package/cjs/ui/ReactionButton.js +55 -0
  408. package/cjs/ui/ReactionButton.js.map +1 -0
  409. package/cjs/ui/SortByRow.js +57 -0
  410. package/cjs/ui/SortByRow.js.map +1 -0
  411. package/cjs/ui/TextButton.js +45 -0
  412. package/cjs/ui/TextButton.js.map +1 -0
  413. package/cjs/ui/TextMessageItemBody.js +62 -0
  414. package/cjs/ui/TextMessageItemBody.js.map +1 -0
  415. package/cjs/ui/ThumbnailMessageItemBody.js +82 -0
  416. package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -0
  417. package/cjs/ui/Tooltip.js +35 -0
  418. package/cjs/ui/Tooltip.js.map +1 -0
  419. package/cjs/ui/TooltipWrapper.js +65 -0
  420. package/cjs/ui/TooltipWrapper.js.map +1 -0
  421. package/cjs/ui/UnknownMessageItemBody.js +41 -0
  422. package/cjs/ui/UnknownMessageItemBody.js.map +1 -0
  423. package/cjs/ui/UserListItem.js +158 -0
  424. package/cjs/ui/UserListItem.js.map +1 -0
  425. package/cjs/ui/UserProfile.js +87 -0
  426. package/cjs/ui/UserProfile.js.map +1 -0
  427. package/cjs/useSendbirdStateContext.js +22 -0
  428. package/cjs/useSendbirdStateContext.js.map +1 -0
  429. package/cjs/utils-3e73a146.js +32 -0
  430. package/cjs/utils-3e73a146.js.map +1 -0
  431. package/cjs/utils-b95288a8.js +38 -0
  432. package/cjs/utils-b95288a8.js.map +1 -0
  433. package/cjs/utils-c55d20dc.js +6 -0
  434. package/cjs/utils-c55d20dc.js.map +1 -0
  435. package/cjs/uuid-ba6cc3c5.js +19 -0
  436. package/cjs/uuid-ba6cc3c5.js.map +1 -0
  437. package/cjs/withSendBird.js +35 -0
  438. package/cjs/withSendBird.js.map +1 -0
  439. package/color-2863fbbe.js +39 -0
  440. package/color-2863fbbe.js.map +1 -0
  441. package/compareIds-48d87cc5.js +18 -0
  442. package/compareIds-48d87cc5.js.map +1 -0
  443. package/const-09c22c50.js +18 -0
  444. package/const-09c22c50.js.map +1 -0
  445. package/const-3f63e129.js +8 -0
  446. package/const-3f63e129.js.map +1 -0
  447. package/context-7877e5bb.js +12 -0
  448. package/context-7877e5bb.js.map +1 -0
  449. package/dist/index.css +165 -59
  450. package/dist/index.css.map +1 -1
  451. package/index-1fd114b0.js +7 -0
  452. package/index-1fd114b0.js.map +1 -0
  453. package/index-303a3b6e.js +121 -0
  454. package/index-303a3b6e.js.map +1 -0
  455. package/index-353f13f3.js +512 -0
  456. package/index-353f13f3.js.map +1 -0
  457. package/index-358226c7.js +168 -0
  458. package/index-358226c7.js.map +1 -0
  459. package/index-41a6f4f2.js +87 -0
  460. package/index-41a6f4f2.js.map +1 -0
  461. package/index-4889e530.js +48 -0
  462. package/index-4889e530.js.map +1 -0
  463. package/index-4a59a866.js +1873 -0
  464. package/index-4a59a866.js.map +1 -0
  465. package/index-86b0a341.js +280 -0
  466. package/index-86b0a341.js.map +1 -0
  467. package/index-a611bd38.js +131 -0
  468. package/index-a611bd38.js.map +1 -0
  469. package/index-ad4c9e58.js +682 -0
  470. package/index-ad4c9e58.js.map +1 -0
  471. package/index-f119413c.js +64 -0
  472. package/index-f119413c.js.map +1 -0
  473. package/index.css +4461 -0
  474. package/index.css.map +1 -0
  475. package/index.d.ts +1829 -0
  476. package/index.js +38 -31
  477. package/index.js.map +1 -0
  478. package/openChannelUtils-024b797a.js +81 -0
  479. package/openChannelUtils-024b797a.js.map +1 -0
  480. package/package.json +5 -9
  481. package/sendBirdSelectors.js +713 -0
  482. package/sendBirdSelectors.js.map +1 -0
  483. package/stringSet-91746bf1.js +116 -0
  484. package/stringSet-91746bf1.js.map +1 -0
  485. package/topics-17d99dd6.js +10 -0
  486. package/topics-17d99dd6.js.map +1 -0
  487. package/tslib.es6-83aa13f5.js +38 -0
  488. package/tslib.es6-83aa13f5.js.map +1 -0
  489. package/ui/Accordion.js +65 -0
  490. package/ui/Accordion.js.map +1 -0
  491. package/ui/AccordionGroup.js +26 -0
  492. package/ui/AccordionGroup.js.map +1 -0
  493. package/ui/AdminMessage.js +37 -0
  494. package/ui/AdminMessage.js.map +1 -0
  495. package/ui/Avatar.js +217 -0
  496. package/ui/Avatar.js.map +1 -0
  497. package/ui/Badge.js +38 -0
  498. package/ui/Badge.js.map +1 -0
  499. package/ui/Button.js +7 -0
  500. package/ui/Button.js.map +1 -0
  501. package/ui/ChannelAvatar.js +53 -0
  502. package/ui/ChannelAvatar.js.map +1 -0
  503. package/ui/ChannelPreview.js +194 -0
  504. package/ui/ChannelPreview.js.map +1 -0
  505. package/ui/ChatHeader.js +138 -0
  506. package/ui/ChatHeader.js.map +1 -0
  507. package/ui/Checkbox.js +42 -0
  508. package/ui/Checkbox.js.map +1 -0
  509. package/ui/ConnectionStatus.js +28 -0
  510. package/ui/ConnectionStatus.js.map +1 -0
  511. package/ui/ContextMenu.js +417 -0
  512. package/ui/ContextMenu.js.map +1 -0
  513. package/ui/DateSeparator.js +37 -0
  514. package/ui/DateSeparator.js.map +1 -0
  515. package/ui/Dropdown.js +97 -0
  516. package/ui/Dropdown.js.map +1 -0
  517. package/ui/EmojiReactions.js +121 -0
  518. package/ui/EmojiReactions.js.map +1 -0
  519. package/ui/FileMessageItemBody.js +51 -0
  520. package/ui/FileMessageItemBody.js.map +1 -0
  521. package/ui/FileViewer.js +164 -0
  522. package/ui/FileViewer.js.map +1 -0
  523. package/ui/Icon.js +1432 -0
  524. package/ui/Icon.js.map +1 -0
  525. package/ui/IconButton.js +76 -0
  526. package/ui/IconButton.js.map +1 -0
  527. package/ui/ImageRenderer.js +131 -0
  528. package/ui/ImageRenderer.js.map +1 -0
  529. package/ui/Input.js +64 -0
  530. package/ui/Input.js.map +1 -0
  531. package/ui/Label.js +6 -0
  532. package/ui/Label.js.map +1 -0
  533. package/ui/LinkLabel.js +40 -0
  534. package/ui/LinkLabel.js.map +1 -0
  535. package/ui/Loader.js +37 -0
  536. package/ui/Loader.js.map +1 -0
  537. package/ui/MentionUserLabel.js +19 -0
  538. package/ui/MentionUserLabel.js.map +1 -0
  539. package/ui/MessageContent.js +285 -0
  540. package/ui/MessageContent.js.map +1 -0
  541. package/ui/MessageInput.js +5040 -0
  542. package/ui/MessageInput.js.map +1 -0
  543. package/ui/MessageItemMenu.js +135 -0
  544. package/ui/MessageItemMenu.js.map +1 -0
  545. package/ui/MessageItemReactionMenu.js +106 -0
  546. package/ui/MessageItemReactionMenu.js.map +1 -0
  547. package/ui/MessageSearchFileItem.js +124 -0
  548. package/ui/MessageSearchFileItem.js.map +1 -0
  549. package/ui/MessageSearchItem.js +87 -0
  550. package/ui/MessageSearchItem.js.map +1 -0
  551. package/ui/MessageStatus.js +57 -0
  552. package/ui/MessageStatus.js.map +1 -0
  553. package/ui/Modal.js +128 -0
  554. package/ui/Modal.js.map +1 -0
  555. package/ui/MutedAvatarOverlay.js +34 -0
  556. package/ui/MutedAvatarOverlay.js.map +1 -0
  557. package/ui/OGMessageItemBody.js +101 -0
  558. package/ui/OGMessageItemBody.js.map +1 -0
  559. package/ui/OpenChannelAdminMessage.js +21 -0
  560. package/ui/OpenChannelAdminMessage.js.map +1 -0
  561. package/ui/OpenChannelAvatar.js +35 -0
  562. package/ui/OpenChannelAvatar.js.map +1 -0
  563. package/ui/OpenChannelMessageContent.js +8 -0
  564. package/ui/OpenChannelMessageContent.js.map +1 -0
  565. package/ui/OpenchannelConversationHeader.js +67 -0
  566. package/ui/OpenchannelConversationHeader.js.map +1 -0
  567. package/ui/OpenchannelFileMessage.js +224 -0
  568. package/ui/OpenchannelFileMessage.js.map +1 -0
  569. package/ui/OpenchannelOGMessage.js +339 -0
  570. package/ui/OpenchannelOGMessage.js.map +1 -0
  571. package/ui/OpenchannelThumbnailMessage.js +299 -0
  572. package/ui/OpenchannelThumbnailMessage.js.map +1 -0
  573. package/ui/OpenchannelUserMessage.js +258 -0
  574. package/ui/OpenchannelUserMessage.js.map +1 -0
  575. package/ui/PlaceHolder.js +11 -0
  576. package/ui/PlaceHolder.js.map +1 -0
  577. package/ui/QuoteMessage.js +125 -0
  578. package/ui/QuoteMessage.js.map +1 -0
  579. package/ui/QuoteMessageInput.js +93 -0
  580. package/ui/QuoteMessageInput.js.map +1 -0
  581. package/ui/ReactionBadge.js +61 -0
  582. package/ui/ReactionBadge.js.map +1 -0
  583. package/ui/ReactionButton.js +48 -0
  584. package/ui/ReactionButton.js.map +1 -0
  585. package/ui/SortByRow.js +50 -0
  586. package/ui/SortByRow.js.map +1 -0
  587. package/ui/TextButton.js +38 -0
  588. package/ui/TextButton.js.map +1 -0
  589. package/ui/TextMessageItemBody.js +56 -0
  590. package/ui/TextMessageItemBody.js.map +1 -0
  591. package/ui/ThumbnailMessageItemBody.js +76 -0
  592. package/ui/ThumbnailMessageItemBody.js.map +1 -0
  593. package/ui/Tooltip.js +28 -0
  594. package/ui/Tooltip.js.map +1 -0
  595. package/ui/TooltipWrapper.js +58 -0
  596. package/ui/TooltipWrapper.js.map +1 -0
  597. package/ui/UnknownMessageItemBody.js +35 -0
  598. package/ui/UnknownMessageItemBody.js.map +1 -0
  599. package/ui/UserListItem.js +151 -0
  600. package/ui/UserListItem.js.map +1 -0
  601. package/ui/UserProfile.js +81 -0
  602. package/ui/UserProfile.js.map +1 -0
  603. package/useSendbirdStateContext.js +20 -0
  604. package/useSendbirdStateContext.js.map +1 -0
  605. package/utils-5395ff17.js +30 -0
  606. package/utils-5395ff17.js.map +1 -0
  607. package/utils-7d39b941.js +34 -0
  608. package/utils-7d39b941.js.map +1 -0
  609. package/utils-9ef11656.js +4 -0
  610. package/utils-9ef11656.js.map +1 -0
  611. package/uuid-6d14d007.js +17 -0
  612. package/uuid-6d14d007.js.map +1 -0
  613. package/withSendBird.js +26 -0
  614. package/withSendBird.js.map +1 -0
@@ -0,0 +1,239 @@
1
+ import React__default, { useState, useMemo } from 'react';
2
+ import { i as isSameDay } from '../../index-f119413c.js';
3
+ import { u as useChannel, c as compareMessagesForGrouping, i as isAboutSame } from '../../ChannelProvider-d5126903.js';
4
+ import { P as PlaceHolder, a as PlaceHolderTypes } from '../../index-303a3b6e.js';
5
+ import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
6
+ import Message from './Message.js';
7
+ import { u as uuidv4 } from '../../uuid-6d14d007.js';
8
+ import '../../index-4a59a866.js';
9
+ import '../../index-353f13f3.js';
10
+ import '../../UserProfileContext-daa99f9b.js';
11
+ import 'prop-types';
12
+ import '../../useSendbirdStateContext.js';
13
+ import '../../withSendBird.js';
14
+ import '../../_rollupPluginBabelHelpers-8e4fae98.js';
15
+ import '../../topics-17d99dd6.js';
16
+ import '../../index-ad4c9e58.js';
17
+ import '../../tslib.es6-83aa13f5.js';
18
+ import '../../compareIds-48d87cc5.js';
19
+ import '../../const-3f63e129.js';
20
+ import '../../ui/ContextMenu.js';
21
+ import '../../index-a611bd38.js';
22
+ import '../../stringSet-91746bf1.js';
23
+ import 'react-dom';
24
+ import '../../ui/SortByRow.js';
25
+ import '../../ui/ReactionButton.js';
26
+ import '../../ui/ImageRenderer.js';
27
+ import '../../ui/Loader.js';
28
+ import '../../LocalizationContext-b021af8f.js';
29
+ import './SuggestedMentionList.js';
30
+ import '../../ui/Avatar.js';
31
+ import '../../const-09c22c50.js';
32
+ import '../../ui/DateSeparator.js';
33
+ import '../../color-2863fbbe.js';
34
+ import '../../ui/MessageInput.js';
35
+ import 'stream';
36
+ import '../../ui/IconButton.js';
37
+ import '../../index-41a6f4f2.js';
38
+ import '../../ui/MentionUserLabel.js';
39
+ import '../../ui/MessageContent.js';
40
+ import '../../ui/UserProfile.js';
41
+ import '../../sendBirdSelectors.js';
42
+ import '../../ui/MessageStatus.js';
43
+ import '../../ui/MessageItemMenu.js';
44
+ import '../../ui/MessageItemReactionMenu.js';
45
+ import '../../ui/EmojiReactions.js';
46
+ import '../../ui/Tooltip.js';
47
+ import '../../ui/TooltipWrapper.js';
48
+ import '../../ui/ReactionBadge.js';
49
+ import '../../ui/AdminMessage.js';
50
+ import '../../ui/TextMessageItemBody.js';
51
+ import '../../index-4889e530.js';
52
+ import '../../ui/LinkLabel.js';
53
+ import '../../ui/FileMessageItemBody.js';
54
+ import '../../ui/TextButton.js';
55
+ import '../../ui/ThumbnailMessageItemBody.js';
56
+ import '../../ui/OGMessageItemBody.js';
57
+ import '../../ui/UnknownMessageItemBody.js';
58
+ import '../../ui/QuoteMessage.js';
59
+ import './FileViewer.js';
60
+ import '../../index-1fd114b0.js';
61
+ import './RemoveMessageModal.js';
62
+ import '../../ui/Modal.js';
63
+ import '../../utils-9ef11656.js';
64
+
65
+ var SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';
66
+
67
+ var MessageList = function MessageList(props) {
68
+ var renderMessage = props.renderMessage,
69
+ renderPlaceholderEmpty = props.renderPlaceholderEmpty,
70
+ renderCustomSeperator = props.renderCustomSeperator;
71
+
72
+ var _a = useChannel(),
73
+ allMessages = _a.allMessages,
74
+ hasMorePrev = _a.hasMorePrev,
75
+ setInitialTimeStamp = _a.setInitialTimeStamp,
76
+ setAnimatedMessageId = _a.setAnimatedMessageId,
77
+ setHighLightedMessageId = _a.setHighLightedMessageId,
78
+ useMessageGrouping = _a.useMessageGrouping,
79
+ scrollRef = _a.scrollRef,
80
+ onScrollCallback = _a.onScrollCallback,
81
+ onScrollDownCallback = _a.onScrollDownCallback,
82
+ messagesDispatcher = _a.messagesDispatcher,
83
+ messageActionTypes = _a.messageActionTypes,
84
+ currentGroupChannel = _a.currentGroupChannel;
85
+
86
+ var _b = useState(0),
87
+ scrollBottom = _b[0],
88
+ setScrollBottom = _b[1];
89
+
90
+ var onScroll = function onScroll(e) {
91
+ var element = e.target;
92
+ var scrollTop = element.scrollTop,
93
+ clientHeight = element.clientHeight,
94
+ scrollHeight = element.scrollHeight;
95
+
96
+ if (scrollTop === 0) {
97
+ if (!hasMorePrev) {
98
+ return;
99
+ }
100
+
101
+ var nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);
102
+ var first_1 = nodes && nodes[0];
103
+ onScrollCallback(function (_a) {
104
+ var messages = _a[0];
105
+
106
+ if (messages) {
107
+ // https://github.com/scabbiaza/react-scroll-position-on-updating-dom
108
+ // Set block to nearest to prevent unexpected scrolling from outer components
109
+ try {
110
+ first_1.scrollIntoView({
111
+ block: "start",
112
+ inline: "nearest"
113
+ });
114
+ } catch (error) {//
115
+ }
116
+ }
117
+ });
118
+ }
119
+
120
+ if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {
121
+ onScrollDownCallback(function (_a) {
122
+ var messages = _a[0];
123
+
124
+ if (messages) {
125
+ try {
126
+ element.scrollTop = scrollHeight - clientHeight;
127
+ } catch (error) {//
128
+ }
129
+ }
130
+ });
131
+ } // save the lastest scroll bottom value
132
+
133
+
134
+ if (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) {
135
+ var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
136
+ setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight);
137
+ } // do this later
138
+
139
+
140
+ setTimeout(function () {
141
+ // mark as read if scroll is at end
142
+ if (clientHeight + scrollTop === scrollHeight) {
143
+ messagesDispatcher({
144
+ type: messageActionTypes.MARK_AS_READ,
145
+ payload: {
146
+ channel: currentGroupChannel
147
+ }
148
+ });
149
+ currentGroupChannel.markAsRead();
150
+ }
151
+ }, 500);
152
+ };
153
+
154
+ var onClickScrollBot = function onClickScrollBot() {
155
+ var _a, _b, _c;
156
+
157
+ setInitialTimeStamp === null || setInitialTimeStamp === void 0 ? void 0 : setInitialTimeStamp(null);
158
+ setAnimatedMessageId === null || setAnimatedMessageId === void 0 ? void 0 : setAnimatedMessageId(null);
159
+ setHighLightedMessageId === null || setHighLightedMessageId === void 0 ? void 0 : setHighLightedMessageId(null);
160
+
161
+ if ((_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollTop) {
162
+ scrollRef.current.scrollTop = ((_b = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _b === void 0 ? void 0 : _b.scrollHeight) - ((_c = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _c === void 0 ? void 0 : _c.offsetHeight);
163
+ }
164
+ }; // Because every message components are re-rendered everytime by every scroll events
165
+
166
+
167
+ var memoizedAllMessages = useMemo(function () {
168
+ return allMessages.map(function (m, idx) {
169
+ var previousMessage = allMessages[idx - 1];
170
+ var nextMessage = allMessages[idx + 1];
171
+
172
+ var _a = useMessageGrouping ? compareMessagesForGrouping(previousMessage, m, nextMessage) : [false, false],
173
+ chainTop = _a[0],
174
+ chainBottom = _a[1];
175
+
176
+ var previousMessageCreatedAt = previousMessage === null || previousMessage === void 0 ? void 0 : previousMessage.createdAt;
177
+ var currentCreatedAt = m.createdAt; // https://stackoverflow.com/a/41855608
178
+
179
+ var hasSeparator = !(previousMessageCreatedAt && isSameDay(currentCreatedAt, previousMessageCreatedAt));
180
+
181
+ var handleScroll = function handleScroll() {
182
+ var current = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current;
183
+
184
+ if (current) {
185
+ var bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;
186
+
187
+ if (scrollBottom < bottom) {
188
+ current.scrollTop += bottom - scrollBottom;
189
+ }
190
+ }
191
+ };
192
+
193
+ return /*#__PURE__*/React__default.createElement(Message, {
194
+ handleScroll: handleScroll,
195
+ renderMessage: renderMessage,
196
+ message: m,
197
+ hasSeparator: hasSeparator,
198
+ chainTop: chainTop,
199
+ chainBottom: chainBottom,
200
+ renderCustomSeperator: renderCustomSeperator,
201
+ key: m.messageId + uuidv4()
202
+ });
203
+ });
204
+ }, [allMessages]);
205
+
206
+ if (allMessages.length < 1) {
207
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, (renderPlaceholderEmpty === null || renderPlaceholderEmpty === void 0 ? void 0 : renderPlaceholderEmpty()) || /*#__PURE__*/React__default.createElement(PlaceHolder, {
208
+ className: "sendbird-conversation__no-messages",
209
+ type: PlaceHolderTypes.NO_MESSAGES
210
+ }));
211
+ }
212
+
213
+ return /*#__PURE__*/React__default.createElement("div", {
214
+ className: "sendbird-conversation__messages"
215
+ }, /*#__PURE__*/React__default.createElement("div", {
216
+ className: "sendbird-conversation__scroll-container"
217
+ }, /*#__PURE__*/React__default.createElement("div", {
218
+ className: "sendbird-conversation__padding"
219
+ }), /*#__PURE__*/React__default.createElement("div", {
220
+ className: "sendbird-conversation__messages-padding",
221
+ ref: scrollRef,
222
+ onScroll: onScroll
223
+ }, memoizedAllMessages)), // This flag is an unmatched variable
224
+ scrollBottom > 1 && /*#__PURE__*/React__default.createElement("div", {
225
+ className: "sendbird-conversation__scroll-bottom-button",
226
+ onClick: onClickScrollBot,
227
+ onKeyDown: onClickScrollBot,
228
+ tabIndex: 0,
229
+ role: "button"
230
+ }, /*#__PURE__*/React__default.createElement(Icon, {
231
+ width: "24px",
232
+ height: "24px",
233
+ type: IconTypes.CHEVRON_DOWN,
234
+ fillColor: IconColors.PRIMARY
235
+ })));
236
+ };
237
+
238
+ export { MessageList as default };
239
+ //# sourceMappingURL=MessageList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageList.js","sources":["../../../src/smart-components/Channel/components/MessageList/index.tsx"],"sourcesContent":["import './message-list.scss';\n\nimport React, { useState, useMemo } from 'react';\nimport isSameDay from 'date-fns/isSameDay';\n\nimport { useChannel } from '../../context/ChannelProvider';\nimport PlaceHolder, { PlaceHolderTypes } from '../../../../ui/PlaceHolder';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport { compareMessagesForGrouping } from '../../context/utils';\nimport Message from '../Message';\nimport { RenderMessageProps } from '../../../../types';\nimport { isAboutSame } from '../../context/utils';\nimport uuidv4 from '../../../../utils/uuid';\n\nexport type MessageListProps = {\n renderMessage?: (props: RenderMessageProps) => React.ReactNode;\n renderPlaceholderEmpty?: () => React.ReactNode;\n renderCustomSeperator?: () => React.ReactNode;\n};\n\nconst SCROLL_REF_CLASS_NAME = '.sendbird-msg--scroll-ref';\n\nconst MessageList: React.FC<MessageListProps> = (props: MessageListProps) => {\n const {\n renderMessage,\n renderPlaceholderEmpty,\n renderCustomSeperator,\n } = props;\n const {\n allMessages,\n hasMorePrev,\n setInitialTimeStamp,\n setAnimatedMessageId,\n setHighLightedMessageId,\n useMessageGrouping,\n scrollRef,\n onScrollCallback,\n onScrollDownCallback,\n messagesDispatcher,\n messageActionTypes,\n currentGroupChannel,\n } = useChannel();\n const [scrollBottom, setScrollBottom] = useState(0);\n\n const onScroll = (e) => {\n const element = e.target;\n const {\n scrollTop,\n clientHeight,\n scrollHeight,\n } = element;\n\n if (scrollTop === 0) {\n if (!hasMorePrev) {\n return;\n }\n const nodes = scrollRef.current.querySelectorAll(SCROLL_REF_CLASS_NAME);\n const first = nodes && nodes[0];\n onScrollCallback(([messages]) => {\n if (messages) {\n // https://github.com/scabbiaza/react-scroll-position-on-updating-dom\n // Set block to nearest to prevent unexpected scrolling from outer components\n try {\n first.scrollIntoView({ block: \"start\", inline: \"nearest\" });\n } catch (error) {\n //\n }\n }\n });\n }\n\n if (isAboutSame(clientHeight + scrollTop, scrollHeight, 10)) {\n onScrollDownCallback(([messages]) => {\n if (messages) {\n try {\n element.scrollTop = scrollHeight - clientHeight;\n } catch (error) {\n //\n }\n }\n });\n }\n\n // save the lastest scroll bottom value\n if (scrollRef?.current) {\n const current = scrollRef?.current;\n setScrollBottom(current.scrollHeight - current.scrollTop - current.offsetHeight)\n }\n\n // do this later\n setTimeout(() => {\n // mark as read if scroll is at end\n if (clientHeight + scrollTop === scrollHeight) {\n messagesDispatcher({\n type: messageActionTypes.MARK_AS_READ,\n payload: { channel: currentGroupChannel },\n });\n currentGroupChannel.markAsRead();\n }\n }, 500);\n };\n\n const onClickScrollBot = () => {\n setInitialTimeStamp?.(null);\n setAnimatedMessageId?.(null);\n setHighLightedMessageId?.(null);\n if (scrollRef?.current?.scrollTop) {\n scrollRef.current.scrollTop = scrollRef?.current?.scrollHeight - scrollRef?.current?.offsetHeight;\n }\n };\n\n // Because every message components are re-rendered everytime by every scroll events\n const memoizedAllMessages = useMemo(() => {\n return (\n allMessages.map((m, idx) => {\n const previousMessage = allMessages[idx - 1];\n const nextMessage = allMessages[idx + 1];\n const [chainTop, chainBottom] = useMessageGrouping\n ? compareMessagesForGrouping(previousMessage, m, nextMessage)\n : [false, false];\n const previousMessageCreatedAt = previousMessage?.createdAt;\n const currentCreatedAt = m.createdAt;\n // https://stackoverflow.com/a/41855608\n const hasSeparator = !(previousMessageCreatedAt && (\n isSameDay(currentCreatedAt, previousMessageCreatedAt)\n ));\n\n const handleScroll = () => {\n const current = scrollRef?.current;\n if (current) {\n const bottom = current.scrollHeight - current.scrollTop - current.offsetHeight;\n if (scrollBottom < bottom) {\n current.scrollTop += bottom - scrollBottom;\n }\n }\n }\n\n return (\n <Message\n handleScroll={handleScroll}\n renderMessage={renderMessage}\n message={m}\n hasSeparator={hasSeparator}\n chainTop={chainTop}\n chainBottom={chainBottom}\n renderCustomSeperator={renderCustomSeperator}\n key={m.messageId + uuidv4()}\n />\n );\n })\n );\n }, [allMessages]);\n\n if (allMessages.length < 1) {\n return (\n <>\n {\n renderPlaceholderEmpty?.() || (\n <PlaceHolder\n className=\"sendbird-conversation__no-messages\"\n type={PlaceHolderTypes.NO_MESSAGES}\n />)\n }\n </>\n );\n }\n return (\n <div className=\"sendbird-conversation__messages\">\n <div className=\"sendbird-conversation__scroll-container\">\n <div className=\"sendbird-conversation__padding\" />\n <div\n className=\"sendbird-conversation__messages-padding\"\n ref={scrollRef}\n onScroll={onScroll}\n >\n {memoizedAllMessages}\n </div>\n </div>\n {\n // This flag is an unmatched variable\n (scrollBottom > 1) && (\n <div\n className=\"sendbird-conversation__scroll-bottom-button\"\n onClick={onClickScrollBot}\n onKeyDown={onClickScrollBot}\n tabIndex={0}\n role=\"button\"\n >\n <Icon\n width=\"24px\"\n height=\"24px\"\n type={IconTypes.CHEVRON_DOWN}\n fillColor={IconColors.PRIMARY}\n />\n </div>\n )\n }\n </div>\n );\n};\n\nexport default MessageList;\n"],"names":["SCROLL_REF_CLASS_NAME","MessageList","props","renderMessage","renderPlaceholderEmpty","renderCustomSeperator","_a","useChannel","allMessages","hasMorePrev","setInitialTimeStamp","setAnimatedMessageId","setHighLightedMessageId","useMessageGrouping","scrollRef","onScrollCallback","onScrollDownCallback","messagesDispatcher","messageActionTypes","currentGroupChannel","_b","useState","scrollBottom","setScrollBottom","onScroll","e","element","target","scrollTop","clientHeight","scrollHeight","nodes","current","querySelectorAll","first_1","messages","scrollIntoView","block","inline","error","isAboutSame","offsetHeight","setTimeout","type","MARK_AS_READ","payload","channel","markAsRead","onClickScrollBot","memoizedAllMessages","useMemo","map","m","idx","previousMessage","nextMessage","compareMessagesForGrouping","chainTop","chainBottom","previousMessageCreatedAt","createdAt","currentCreatedAt","hasSeparator","isSameDay","handleScroll","bottom","React","messageId","uuidv4","length","PlaceHolderTypes","NO_MESSAGES","IconTypes","CHEVRON_DOWN","IconColors","PRIMARY"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import React__default, { useContext } from 'react';
2
+ import Modal from '../../ui/Modal.js';
3
+ import { a as ButtonTypes } from '../../index-41a6f4f2.js';
4
+ import { a as LocalizationContext } from '../../LocalizationContext-b021af8f.js';
5
+ import { u as useChannel } from '../../ChannelProvider-d5126903.js';
6
+ import 'prop-types';
7
+ import 'react-dom';
8
+ import '../../index-1fd114b0.js';
9
+ import '../../ui/IconButton.js';
10
+ import '../../_rollupPluginBabelHelpers-8e4fae98.js';
11
+ import '../../ui/Icon.js';
12
+ import '../../index-a611bd38.js';
13
+ import '../../stringSet-91746bf1.js';
14
+ import '../../utils-9ef11656.js';
15
+ import '../../index-353f13f3.js';
16
+ import '../../UserProfileContext-daa99f9b.js';
17
+ import '../../useSendbirdStateContext.js';
18
+ import '../../withSendBird.js';
19
+ import '../../index-4a59a866.js';
20
+ import '../../topics-17d99dd6.js';
21
+ import '../../index-ad4c9e58.js';
22
+ import '../../tslib.es6-83aa13f5.js';
23
+ import '../../compareIds-48d87cc5.js';
24
+ import '../../const-3f63e129.js';
25
+ import '../../uuid-6d14d007.js';
26
+ import '../../ui/ContextMenu.js';
27
+ import '../../ui/SortByRow.js';
28
+ import '../../ui/ReactionButton.js';
29
+ import '../../ui/ImageRenderer.js';
30
+
31
+ var RemoveMessage = function RemoveMessage(props) {
32
+ var _a;
33
+
34
+ var onCancel = props.onCancel,
35
+ message = props.message;
36
+ var stringSet = useContext(LocalizationContext).stringSet;
37
+ var deleteMessage = useChannel().deleteMessage;
38
+ return /*#__PURE__*/React__default.createElement(Modal, {
39
+ type: ButtonTypes.DANGER,
40
+ disabled: ((_a = message === null || message === void 0 ? void 0 : message.threadInfo) === null || _a === void 0 ? void 0 : _a.replyCount) > 0,
41
+ onCancel: onCancel,
42
+ onSubmit: function onSubmit() {
43
+ deleteMessage(message).then(function () {
44
+ onCancel();
45
+ });
46
+ },
47
+ submitText: stringSet.MESSAGE_MENU__DELETE,
48
+ titleText: stringSet.MODAL__DELETE_MESSAGE__TITLE
49
+ });
50
+ };
51
+
52
+ export { RemoveMessage as default };
53
+ //# sourceMappingURL=RemoveMessageModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoveMessageModal.js","sources":["../../../src/smart-components/Channel/components/RemoveMessageModal.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport Modal from '../../../ui/Modal';\nimport { ButtonTypes } from '../../../ui/Button';\nimport { LocalizationContext } from '../../../lib/LocalizationContext';\nimport { useChannel } from '../context/ChannelProvider';\nimport { EveryMessage } from '../../../types';\n\nexport interface RemoveMessageProps {\n onCancel: () => void;\n message: EveryMessage;\n}\n\nconst RemoveMessage: React.FC<RemoveMessageProps> = (props: RemoveMessageProps) => {\n const {\n onCancel,\n message,\n } = props;\n const { stringSet } = useContext(LocalizationContext);\n const {\n deleteMessage,\n } = useChannel();\n return (\n <Modal\n type={ButtonTypes.DANGER}\n disabled={message?.threadInfo?.replyCount > 0}\n onCancel={onCancel}\n onSubmit={() => { deleteMessage(message).then(() => {\n onCancel();\n }) }}\n submitText={stringSet.MESSAGE_MENU__DELETE}\n titleText={stringSet.MODAL__DELETE_MESSAGE__TITLE}\n />\n );\n};\n\nexport default RemoveMessage;\n"],"names":["RemoveMessage","props","onCancel","message","stringSet","useContext","LocalizationContext","deleteMessage","useChannel","React","ButtonTypes","DANGER","threadInfo","replyCount","then","MESSAGE_MENU__DELETE","MODAL__DELETE_MESSAGE__TITLE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAaMA,aAAa,GAAiC,SAA9CA,aAA8C,CAACC,KAAD;;;AAEhD,MAAAC,QAAQ,GAEND,KAAK,SAFP;AAAA,MACAE,OAAO,GACLF,KAAK,QAFP;AAGM,MAAAG,SAAS,GAAKC,UAAU,CAACC,mBAAD,CAAV,UAAd;AAEN,MAAAC,aAAa,GACXC,UAAU,gBADZ;AAEF,sBACEC,6BAAC,KAAD;AACE,IAAA,IAAI,EAAEC,WAAW,CAACC,MADpB;AAEE,IAAA,QAAQ,EAAE,CAAA,MAAAR,OAAO,SAAP,IAAAA,OAAO,WAAP,SAAA,GAAAA,OAAO,CAAES,UAAT,UAAA,iBAAA,SAAA,MAAqBC,UAArB,IAAkC,CAF9C;AAGE,IAAA,QAAQ,EAAEX,QAHZ;AAIE,IAAA,QAAQ,EAAE;AAAQK,MAAAA,aAAa,CAACJ,OAAD,CAAb,CAAuBW,IAAvB,CAA4B;AAC5CZ,QAAAA,QAAQ;AACT,OAFiB;AAEd,KANN;AAOE,IAAA,UAAU,EAAEE,SAAS,CAACW,oBAPxB;AAQE,IAAA,SAAS,EAAEX,SAAS,CAACY;AARvB,IADF;AAYD;;;;"}
@@ -0,0 +1,250 @@
1
+ import React__default, { useRef, useContext, useEffect, useMemo, useState } from 'react';
2
+ import { L as Label, a as LabelTypography, b as LabelColors } from '../../index-a611bd38.js';
3
+ import Icon, { IconTypes, IconColors } from '../../ui/Icon.js';
4
+ import Avatar from '../../ui/Avatar.js';
5
+ import { a as LocalizationContext } from '../../LocalizationContext-b021af8f.js';
6
+ import { u as useChannel } from '../../ChannelProvider-d5126903.js';
7
+ import useSendbirdStateContext from '../../useSendbirdStateContext.js';
8
+ import { U as USER_MENTION_TEMP_CHAR, M as MAX_USER_MENTION_COUNT, a as MAX_USER_SUGGESTION_COUNT } from '../../const-3f63e129.js';
9
+ import { M as MessageInputKeys } from '../../const-09c22c50.js';
10
+ import '../../_rollupPluginBabelHelpers-8e4fae98.js';
11
+ import 'prop-types';
12
+ import '../../stringSet-91746bf1.js';
13
+ import '../../tslib.es6-83aa13f5.js';
14
+ import '../../ui/ImageRenderer.js';
15
+ import '../../uuid-6d14d007.js';
16
+ import '../../index-353f13f3.js';
17
+ import '../../UserProfileContext-daa99f9b.js';
18
+ import '../../index-4a59a866.js';
19
+ import '../../topics-17d99dd6.js';
20
+ import '../../index-ad4c9e58.js';
21
+ import '../../compareIds-48d87cc5.js';
22
+ import '../../ui/ContextMenu.js';
23
+ import 'react-dom';
24
+ import '../../ui/SortByRow.js';
25
+ import '../../ui/ReactionButton.js';
26
+ import '../../withSendBird.js';
27
+
28
+ function SuggestedUserMentionItem(props) {
29
+ var member = props.member,
30
+ _a = props.isFocused,
31
+ isFocused = _a === void 0 ? false : _a,
32
+ onClick = props.onClick,
33
+ onMouseOver = props.onMouseOver,
34
+ renderUserMentionItem = props.renderUserMentionItem;
35
+ var scrollRef = useRef(null);
36
+ var _b = useContext(LocalizationContext).stringSet,
37
+ stringSet = _b === void 0 ? {} : _b;
38
+ useEffect(function () {
39
+ var _a;
40
+
41
+ if (isFocused) {
42
+ (_a = scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
43
+ block: 'center',
44
+ inline: 'center'
45
+ });
46
+ }
47
+ }, [isFocused]);
48
+ var customMentionItem = useMemo(function () {
49
+ if (renderUserMentionItem) {
50
+ return /*#__PURE__*/React__default.createElement("div", {
51
+ className: "sendbird-mention-suggest-list__user-item",
52
+ onClick: onClick,
53
+ onMouseOver: onMouseOver,
54
+ key: member.nickname,
55
+ ref: scrollRef
56
+ }, renderUserMentionItem({
57
+ user: member
58
+ }));
59
+ }
60
+ }, [renderUserMentionItem]);
61
+
62
+ if (customMentionItem) {
63
+ return customMentionItem;
64
+ }
65
+
66
+ return /*#__PURE__*/React__default.createElement("div", {
67
+ className: "sendbird-mention-suggest-list__user-item " + (isFocused ? 'focused' : ''),
68
+ onClick: onClick,
69
+ onMouseOver: onMouseOver,
70
+ key: member.nickname,
71
+ ref: scrollRef
72
+ }, /*#__PURE__*/React__default.createElement(Avatar, {
73
+ className: "sendbird-mention-suggest-list__user-item__avatar",
74
+ src: member === null || member === void 0 ? void 0 : member.profileUrl,
75
+ alt: "user-profile",
76
+ width: "24px",
77
+ height: "24px"
78
+ }), /*#__PURE__*/React__default.createElement(Label, {
79
+ className: "sendbird-mention-suggest-list__user-item__nickname",
80
+ type: LabelTypography.SUBTITLE_2,
81
+ color: (member === null || member === void 0 ? void 0 : member.nickname) ? LabelColors.ONBACKGROUND_1 : LabelColors.ONBACKGROUND_3
82
+ }, (member === null || member === void 0 ? void 0 : member.nickname) || (stringSet === null || stringSet === void 0 ? void 0 : stringSet.MENTION_NAME__NO_NAME)), /*#__PURE__*/React__default.createElement(Label, {
83
+ className: "sendbird-mention-suggest-list__user-item__user-id",
84
+ type: LabelTypography.SUBTITLE_2,
85
+ color: LabelColors.ONBACKGROUND_2
86
+ }, member === null || member === void 0 ? void 0 : member.userId));
87
+ }
88
+
89
+ var DEBOUNCING_TIME = 300;
90
+
91
+ function SuggestedMentionList(props) {
92
+ var _a, _b, _c;
93
+
94
+ var _d = props.targetNickname,
95
+ targetNickname = _d === void 0 ? '' : _d,
96
+ // memberListQuery,
97
+ onUserItemClick = props.onUserItemClick,
98
+ onFocusItemChange = props.onFocusItemChange,
99
+ onFetchUsers = props.onFetchUsers,
100
+ renderUserMentionItem = props.renderUserMentionItem,
101
+ inputEvent = props.inputEvent,
102
+ _e = props.ableAddMention,
103
+ ableAddMention = _e === void 0 ? true : _e,
104
+ _f = props.maxMentionCount,
105
+ maxMentionCount = _f === void 0 ? MAX_USER_MENTION_COUNT : _f,
106
+ _g = props.maxSuggestionCount,
107
+ maxSuggestionCount = _g === void 0 ? MAX_USER_SUGGESTION_COUNT : _g;
108
+
109
+ var _h = useSendbirdStateContext(),
110
+ config = _h.config,
111
+ stores = _h.stores;
112
+
113
+ var logger = config.logger;
114
+ var currentUserId = ((_c = (_b = (_a = stores === null || stores === void 0 ? void 0 : stores.sdkStore) === null || _a === void 0 ? void 0 : _a.sdk) === null || _b === void 0 ? void 0 : _b.currentUser) === null || _c === void 0 ? void 0 : _c.userId) || '';
115
+ var currentGroupChannel = useChannel().currentGroupChannel;
116
+ var stringSet = useContext(LocalizationContext).stringSet;
117
+
118
+ var _j = useState(null),
119
+ timer = _j[0],
120
+ setTimer = _j[1];
121
+
122
+ var _k = useState(''),
123
+ searchString = _k[0],
124
+ setSearchString = _k[1];
125
+
126
+ var _l = useState(''),
127
+ lastSearchString = _l[0],
128
+ setLastSearchString = _l[1];
129
+
130
+ var _m = useState(null),
131
+ currentUser = _m[0],
132
+ setCurrentUser = _m[1];
133
+
134
+ var _o = useState(null),
135
+ mouseOverUser = _o[0],
136
+ setMouseOverUser = _o[1];
137
+
138
+ var _p = useState([]),
139
+ currentMemberList = _p[0],
140
+ setCurrentMemberList = _p[1];
141
+
142
+ useEffect(function () {
143
+ clearTimeout(timer);
144
+ setTimer(setTimeout(function () {
145
+ setSearchString(targetNickname);
146
+ }, DEBOUNCING_TIME));
147
+ }, [targetNickname]);
148
+ useEffect(function () {
149
+ if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.Enter) {
150
+ if (currentMemberList.length > 0) {
151
+ onUserItemClick(currentUser);
152
+ }
153
+ }
154
+
155
+ if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.ArrowUp) {
156
+ var currentUserIndex = currentMemberList.findIndex(function (member) {
157
+ return (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
158
+ });
159
+
160
+ if (0 < currentUserIndex) {
161
+ setCurrentUser(currentMemberList[currentUserIndex - 1]);
162
+ onFocusItemChange(currentMemberList[currentUserIndex - 1]);
163
+ }
164
+ }
165
+
166
+ if ((inputEvent === null || inputEvent === void 0 ? void 0 : inputEvent.key) === MessageInputKeys.ArrowDown) {
167
+ var currentUserIndex = currentMemberList.findIndex(function (member) {
168
+ return (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
169
+ });
170
+
171
+ if (currentUserIndex < currentMemberList.length - 1) {
172
+ setCurrentUser(currentMemberList[currentUserIndex + 1]);
173
+ onFocusItemChange(currentMemberList[currentUserIndex + 1]);
174
+ }
175
+ }
176
+ }, [inputEvent]);
177
+ /* Fetch member list */
178
+
179
+ useEffect(function () {
180
+ if (!currentGroupChannel || !currentGroupChannel.createMemberListQuery || !ableAddMention) {
181
+ logger.warning('SuggestedMentionList: Creating member list query failed');
182
+ return;
183
+ }
184
+
185
+ if (lastSearchString && searchString.indexOf(lastSearchString) === 0 && currentMemberList.length === 0) {
186
+ // Don't need to request query again
187
+ return;
188
+ }
189
+
190
+ var query = currentGroupChannel.createMemberListQuery();
191
+ query.limit = maxSuggestionCount;
192
+ query.nicknameStartsWithFilter = searchString.slice(USER_MENTION_TEMP_CHAR.length); // Add member list query for customization
193
+
194
+ query.next(function (memberList, error) {
195
+ if (error) {
196
+ logger.error('SuggestedMentionList: Fetching member list failed', error);
197
+ }
198
+
199
+ if (memberList.length < 1) {
200
+ logger.info('SuggestedMentionList: Fetched member list is empty');
201
+ } else {
202
+ logger.info('SuggestedMentionList: Fetching member list succeeded', {
203
+ memberListQuery: query,
204
+ memberList: memberList
205
+ });
206
+ setCurrentUser(memberList[0]);
207
+ }
208
+
209
+ setLastSearchString(searchString);
210
+ onFetchUsers(memberList);
211
+ setCurrentMemberList(memberList.filter(function (member) {
212
+ return currentUserId !== (member === null || member === void 0 ? void 0 : member.userId);
213
+ }));
214
+ });
215
+ }, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, searchString]);
216
+ return /*#__PURE__*/React__default.createElement("div", {
217
+ className: "sendbird-mention-suggest-list",
218
+ onMouseLeave: function onMouseLeave() {
219
+ if (mouseOverUser) {
220
+ setCurrentUser(mouseOverUser);
221
+ }
222
+ }
223
+ }, ableAddMention && (currentMemberList === null || currentMemberList === void 0 ? void 0 : currentMemberList.map(function (member) {
224
+ return /*#__PURE__*/React__default.createElement(SuggestedUserMentionItem, {
225
+ key: member === null || member === void 0 ? void 0 : member.nickname,
226
+ member: member,
227
+ isFocused: (member === null || member === void 0 ? void 0 : member.userId) === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId),
228
+ onClick: function onClick() {
229
+ onUserItemClick(member);
230
+ },
231
+ onMouseOver: function onMouseOver() {
232
+ setMouseOverUser(member);
233
+ },
234
+ renderUserMentionItem: renderUserMentionItem
235
+ });
236
+ })), !ableAddMention && /*#__PURE__*/React__default.createElement("div", {
237
+ className: "sendbird-mention-suggest-list__notice-item"
238
+ }, /*#__PURE__*/React__default.createElement(Icon, {
239
+ className: "sendbird-mention-suggest-list__notice-item__icon",
240
+ type: IconTypes.INFO,
241
+ fillColor: IconColors.ON_BACKGROUND_2
242
+ }), /*#__PURE__*/React__default.createElement(Label, {
243
+ className: "sendbird-mention-suggest-list__notice-item__text",
244
+ type: LabelTypography.SUBTITLE_2,
245
+ color: LabelColors.ONBACKGROUND_2
246
+ }, stringSet.MENTION_COUNT__OVER_LIMIT.replace('%d', maxMentionCount))));
247
+ }
248
+
249
+ export { SuggestedMentionList as default };
250
+ //# sourceMappingURL=SuggestedMentionList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestedMentionList.js","sources":["../../../src/smart-components/Channel/components/SuggestedMentionList/SuggestedUserMentionItem.tsx","../../../src/smart-components/Channel/components/SuggestedMentionList/index.tsx"],"sourcesContent":["import React, { useContext, useEffect, useMemo, useRef } from 'react';\n\nimport Avatar from '../../../../ui/Avatar';\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport SendBird from 'sendbird';\n\ninterface SuggestedUserMentionItemProps {\n member: SendBird.User;\n isFocused?: boolean;\n onClick?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n onMouseOver?: (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;\n renderUserMentionItem?: (props: { user: SendBird.User }) => JSX.Element;\n}\n\nfunction SuggestedUserMentionItem(props: SuggestedUserMentionItemProps): JSX.Element {\n const {\n member,\n isFocused = false,\n onClick,\n onMouseOver,\n renderUserMentionItem,\n } = props;\n const scrollRef = useRef(null);\n const { stringSet = {} } = useContext(LocalizationContext);\n useEffect(() => {\n if (isFocused) {\n scrollRef?.current?.scrollIntoView({ block: 'center', inline: 'center' });\n }\n }, [isFocused]);\n const customMentionItem = useMemo(() => {\n if (renderUserMentionItem) {\n return (\n <div\n className=\"sendbird-mention-suggest-list__user-item\"\n onClick={onClick}\n onMouseOver={onMouseOver}\n key={member.nickname}\n ref={scrollRef}\n >\n {renderUserMentionItem({ user: member })}\n </div>\n );\n }\n }, [renderUserMentionItem]);\n if (customMentionItem) {\n return customMentionItem;\n }\n return (\n <div\n className={`sendbird-mention-suggest-list__user-item ${isFocused ? 'focused' : ''}`}\n onClick={onClick}\n onMouseOver={onMouseOver}\n key={member.nickname}\n ref={scrollRef}\n >\n <Avatar\n className=\"sendbird-mention-suggest-list__user-item__avatar\"\n src={member?.profileUrl}\n alt=\"user-profile\"\n width=\"24px\"\n height=\"24px\"\n />\n <Label\n className=\"sendbird-mention-suggest-list__user-item__nickname\"\n type={LabelTypography.SUBTITLE_2}\n color={member?.nickname ? LabelColors.ONBACKGROUND_1 : LabelColors.ONBACKGROUND_3}\n >\n {member?.nickname || stringSet?.MENTION_NAME__NO_NAME}\n </Label>\n <Label\n className=\"sendbird-mention-suggest-list__user-item__user-id\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {member?.userId}\n </Label>\n </div>\n );\n}\n\nexport default SuggestedUserMentionItem;\n","import React, { useState, useEffect, useContext } from 'react';\nimport SendBird from 'sendbird';\nimport './index.scss';\n\nimport Label, { LabelTypography, LabelColors } from '../../../../ui/Label';\nimport Icon, { IconTypes, IconColors } from '../../../../ui/Icon';\nimport SuggestedUserMentionItem from './SuggestedUserMentionItem';\nimport { useChannel } from '../../context/ChannelProvider';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport { MAX_USER_MENTION_COUNT, MAX_USER_SUGGESTION_COUNT, USER_MENTION_TEMP_CHAR } from '../../context/const';\nimport { MessageInputKeys } from '../../../../ui/MessageInput/const';\n\nexport interface SuggestedMentionListProps {\n targetNickname: string;\n memberListQuery?: Record<string, string>;\n onUserItemClick?: (member: SendBird.User) => void;\n onFocusItemChange?: (member: SendBird.User) => void;\n onFetchUsers?: (users: Array<SendBird.User>) => void;\n renderUserMentionItem?: (props: { user: SendBird.User }) => JSX.Element;\n ableAddMention: boolean;\n maxMentionCount?: number;\n maxSuggestionCount?: number;\n inputEvent?: React.KeyboardEvent<HTMLDivElement>;\n}\n\nconst DEBOUNCING_TIME = 300;\n\nfunction SuggestedMentionList(props: SuggestedMentionListProps): JSX.Element {\n const {\n targetNickname = '',\n // memberListQuery,\n onUserItemClick,\n onFocusItemChange,\n onFetchUsers,\n renderUserMentionItem,\n inputEvent,\n ableAddMention = true,\n maxMentionCount = MAX_USER_MENTION_COUNT,\n maxSuggestionCount = MAX_USER_SUGGESTION_COUNT,\n } = props;\n const { config, stores } = useSendbirdStateContext();\n const { logger } = config;\n const currentUserId = stores?.sdkStore?.sdk?.currentUser?.userId || '';\n const { currentGroupChannel } = useChannel();\n const { stringSet } = useContext(LocalizationContext);\n const [timer, setTimer] = useState(null);\n const [searchString, setSearchString] = useState('');\n const [lastSearchString, setLastSearchString] = useState('');\n const [currentUser, setCurrentUser] = useState<SendBird.User>(null);\n const [mouseOverUser, setMouseOverUser] = useState<SendBird.User>(null);\n const [currentMemberList, setCurrentMemberList] = useState<Array<SendBird.Member>>([]);\n\n useEffect(() => {\n clearTimeout(timer);\n setTimer(\n setTimeout(() => {\n setSearchString(targetNickname);\n }, DEBOUNCING_TIME)\n );\n }, [targetNickname]);\n\n useEffect(() => {\n if (inputEvent?.key === MessageInputKeys.Enter) {\n if (currentMemberList.length > 0) {\n onUserItemClick(currentUser);\n }\n }\n if (inputEvent?.key === MessageInputKeys.ArrowUp) {\n const currentUserIndex = currentMemberList.findIndex((member) => (\n member?.userId === currentUser?.userId\n ));\n if (0 < currentUserIndex) {\n setCurrentUser(currentMemberList[currentUserIndex - 1]);\n onFocusItemChange(currentMemberList[currentUserIndex - 1]);\n }\n }\n if (inputEvent?.key === MessageInputKeys.ArrowDown) {\n const currentUserIndex = currentMemberList.findIndex((member) => (\n member?.userId === currentUser?.userId\n ));\n if (currentUserIndex < currentMemberList.length - 1) {\n setCurrentUser(currentMemberList[currentUserIndex + 1]);\n onFocusItemChange(currentMemberList[currentUserIndex + 1]);\n }\n }\n }, [inputEvent]);\n\n /* Fetch member list */\n useEffect(() => {\n if (!currentGroupChannel || !currentGroupChannel.createMemberListQuery || !ableAddMention) {\n logger.warning('SuggestedMentionList: Creating member list query failed');\n return;\n }\n if (lastSearchString && searchString.indexOf(lastSearchString) === 0 && currentMemberList.length === 0) {\n // Don't need to request query again\n return;\n }\n\n const query = currentGroupChannel.createMemberListQuery();\n query.limit = maxSuggestionCount;\n query.nicknameStartsWithFilter = searchString.slice(USER_MENTION_TEMP_CHAR.length);\n // Add member list query for customization\n query.next((memberList, error) => {\n if (error) {\n logger.error('SuggestedMentionList: Fetching member list failed', error);\n }\n if (memberList.length < 1) {\n logger.info('SuggestedMentionList: Fetched member list is empty');\n } else {\n logger.info('SuggestedMentionList: Fetching member list succeeded', { memberListQuery: query, memberList });\n setCurrentUser(memberList[0]);\n }\n setLastSearchString(searchString);\n onFetchUsers(memberList);\n setCurrentMemberList(memberList.filter((member) => currentUserId !== member?.userId));\n });\n }, [currentGroupChannel?.url, searchString]);\n\n return (\n <div\n className=\"sendbird-mention-suggest-list\"\n onMouseLeave={() => {\n if (mouseOverUser) {\n setCurrentUser(mouseOverUser);\n }\n }}\n >\n {\n ableAddMention && currentMemberList?.map((member) => (\n <SuggestedUserMentionItem\n key={member?.nickname}\n member={member}\n isFocused={member?.userId === currentUser?.userId}\n onClick={() => {\n onUserItemClick(member);\n }}\n onMouseOver={() => {\n setMouseOverUser(member);\n }}\n renderUserMentionItem={renderUserMentionItem}\n />\n ))\n }\n {\n !ableAddMention && (\n <div className=\"sendbird-mention-suggest-list__notice-item\">\n <Icon\n className=\"sendbird-mention-suggest-list__notice-item__icon\"\n type={IconTypes.INFO}\n fillColor={IconColors.ON_BACKGROUND_2}\n />\n <Label\n className=\"sendbird-mention-suggest-list__notice-item__text\"\n type={LabelTypography.SUBTITLE_2}\n color={LabelColors.ONBACKGROUND_2}\n >\n {stringSet.MENTION_COUNT__OVER_LIMIT.replace('%d', maxMentionCount)}\n </Label>\n </div>\n )\n }\n </div>\n );\n}\n\nexport default SuggestedMentionList;\n"],"names":["SuggestedUserMentionItem","props","member","_a","isFocused","onClick","onMouseOver","renderUserMentionItem","scrollRef","useRef","_b","useContext","LocalizationContext","stringSet","useEffect","current","scrollIntoView","block","inline","customMentionItem","useMemo","React","nickname","user","profileUrl","LabelTypography","SUBTITLE_2","LabelColors","ONBACKGROUND_1","ONBACKGROUND_3","MENTION_NAME__NO_NAME","ONBACKGROUND_2","userId","DEBOUNCING_TIME","SuggestedMentionList","_d","targetNickname","onUserItemClick","onFocusItemChange","onFetchUsers","inputEvent","_e","ableAddMention","_f","maxMentionCount","MAX_USER_MENTION_COUNT","_g","maxSuggestionCount","MAX_USER_SUGGESTION_COUNT","_h","useSendbirdStateContext","config","stores","logger","currentUserId","sdkStore","sdk","currentUser","currentGroupChannel","useChannel","_j","useState","timer","setTimer","_k","searchString","setSearchString","_l","lastSearchString","setLastSearchString","_m","setCurrentUser","_o","mouseOverUser","setMouseOverUser","_p","currentMemberList","setCurrentMemberList","clearTimeout","setTimeout","key","MessageInputKeys","Enter","length","ArrowUp","currentUserIndex","findIndex","ArrowDown","createMemberListQuery","warning","indexOf","query","limit","nicknameStartsWithFilter","slice","USER_MENTION_TEMP_CHAR","next","memberList","error","info","memberListQuery","filter","url","map","IconTypes","INFO","IconColors","ON_BACKGROUND_2","MENTION_COUNT__OVER_LIMIT","replace"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,SAASA,wBAAT,CAAkCC,KAAlC;AAEI,MAAAC,MAAM,GAKJD,KAAK,OALP;AAAA,MACAE,KAIEF,KAAK,UALP;AAAA,MACAG,SAAS,mBAAG,UADZ;AAAA,MAEAC,OAAO,GAGLJ,KAAK,QALP;AAAA,MAGAK,WAAW,GAETL,KAAK,YALP;AAAA,MAIAM,qBAAqB,GACnBN,KAAK,sBALP;AAMF,MAAMO,SAAS,GAAGC,MAAM,CAAC,IAAD,CAAxB;AACQ,MAAAC,KAAmBC,UAAU,CAACC,mBAAD,CAAV,UAAnB;AAAA,MAAAC,SAAS,mBAAG,OAAZ;AACRC,EAAAA,SAAS,CAAC;;;AACR,QAAIV,SAAJ,EAAe;AACb,YAAAI,SAAS,SAAT,IAAAA,SAAS,WAAT,SAAA,GAAAA,SAAS,CAAEO,OAAX,UAAA,iBAAA,SAAA,MAAoBC,eAAe;AAAEC,QAAAA,KAAK,EAAE,QAAT;AAAmBC,QAAAA,MAAM,EAAE;AAA3B,QAAnC;AACD;AACF,GAJQ,EAIN,CAACd,SAAD,CAJM,CAAT;AAKA,MAAMe,iBAAiB,GAAGC,OAAO,CAAC;AAChC,QAAIb,qBAAJ,EAA2B;AACzB,0BACEc;AACE,QAAA,SAAS,EAAC,0CADZ;AAEE,QAAA,OAAO,EAAEhB,OAFX;AAGE,QAAA,WAAW,EAAEC,WAHf;AAIE,QAAA,GAAG,EAAEJ,MAAM,CAACoB,QAJd;AAKE,QAAA,GAAG,EAAEd;AALP,SAOGD,qBAAqB,CAAC;AAAEgB,QAAAA,IAAI,EAAErB;AAAR,OAAD,CAPxB,CADF;AAWD;AACF,GAdgC,EAc9B,CAACK,qBAAD,CAd8B,CAAjC;;AAeA,MAAIY,iBAAJ,EAAuB;AACrB,WAAOA,iBAAP;AACD;;AACD,sBACEE;AACE,IAAA,SAAS,EAAE,+CAA4CjB,SAAS,GAAG,SAAH,GAAe,EAApE,CADb;AAEE,IAAA,OAAO,EAAEC,OAFX;AAGE,IAAA,WAAW,EAAEC,WAHf;AAIE,IAAA,GAAG,EAAEJ,MAAM,CAACoB,QAJd;AAKE,IAAA,GAAG,EAAEd;AALP,kBAOEa,6BAAC,MAAD;AACE,IAAA,SAAS,EAAC,kDADZ;AAEE,IAAA,GAAG,EAAEnB,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAEsB,UAFf;AAGE,IAAA,GAAG,EAAC,cAHN;AAIE,IAAA,KAAK,EAAC,MAJR;AAKE,IAAA,MAAM,EAAC;AALT,IAPF,eAcEH,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,oDADZ;AAEE,IAAA,IAAI,EAAEI,eAAe,CAACC,UAFxB;AAGE,IAAA,KAAK,EAAE,CAAAxB,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAEoB,QAAR,IAAmBK,WAAW,CAACC,cAA/B,GAAgDD,WAAW,CAACE;AAHrE,KAKG,CAAA3B,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAEoB,QAAR,MAAoBT,SAAS,SAAT,IAAAA,SAAS,WAAT,SAAA,GAAAA,SAAS,CAAEiB,qBAA/B,CALH,CAdF,eAqBET,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,mDADZ;AAEE,IAAA,IAAI,EAAEI,eAAe,CAACC,UAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACI;AAHrB,KAKG7B,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAE8B,MALX,CArBF,CADF;AA+BD;;ACrDD,IAAMC,eAAe,GAAG,GAAxB;;AAEA,SAASC,oBAAT,CAA8BjC,KAA9B;;;AAEI,MAAAkC,KAUElC,KAAK,eAVP;AAAA,MAAAmC,cAAc,mBAAG,OAAjB;AAAA;AAEAC,EAAAA,eAAe,GAQbpC,KAAK,gBAVP;AAAA,MAGAqC,iBAAiB,GAOfrC,KAAK,kBAVP;AAAA,MAIAsC,YAAY,GAMVtC,KAAK,aAVP;AAAA,MAKAM,qBAAqB,GAKnBN,KAAK,sBAVP;AAAA,MAMAuC,UAAU,GAIRvC,KAAK,WAVP;AAAA,MAOAwC,KAGExC,KAAK,eAVP;AAAA,MAOAyC,cAAc,mBAAG,SAPjB;AAAA,MAQAC,KAEE1C,KAAK,gBAVP;AAAA,MAQA2C,eAAe,mBAAGC,2BARlB;AAAA,MASAC,KACE7C,KAAK,mBAVP;AAAA,MASA8C,kBAAkB,mBAAGC,8BATrB;;AAWI,MAAAC,KAAqBC,uBAAuB,EAA5C;AAAA,MAAEC,MAAM,YAAR;AAAA,MAAUC,MAAM,YAAhB;;AACE,MAAAC,MAAM,GAAKF,MAAM,OAAjB;AACR,MAAMG,aAAa,GAAG,CAAA,MAAA,MAAA,MAAAF,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAEG,QAAR,UAAA,iBAAA,SAAA,MAAkBC,GAAlB,UAAA,iBAAA,SAAA,MAAuBC,WAAvB,UAAA,iBAAA,SAAA,MAAoCzB,MAApC,KAA8C,EAApE;AACQ,MAAA0B,mBAAmB,GAAKC,UAAU,sBAAlC;AACA,MAAA9C,SAAS,GAAKF,UAAU,CAACC,mBAAD,CAAV,UAAd;;AACF,MAAAgD,KAAoBC,QAAQ,CAAC,IAAD,CAA5B;AAAA,MAACC,KAAK,QAAN;AAAA,MAAQC,QAAQ,QAAhB;;AACA,MAAAC,KAAkCH,QAAQ,CAAC,EAAD,CAA1C;AAAA,MAACI,YAAY,QAAb;AAAA,MAAeC,eAAe,QAA9B;;AACA,MAAAC,KAA0CN,QAAQ,CAAC,EAAD,CAAlD;AAAA,MAACO,gBAAgB,QAAjB;AAAA,MAAmBC,mBAAmB,QAAtC;;AACA,MAAAC,KAAgCT,QAAQ,CAAgB,IAAhB,CAAxC;AAAA,MAACJ,WAAW,QAAZ;AAAA,MAAcc,cAAc,QAA5B;;AACA,MAAAC,KAAoCX,QAAQ,CAAgB,IAAhB,CAA5C;AAAA,MAACY,aAAa,QAAd;AAAA,MAAgBC,gBAAgB,QAAhC;;AACA,MAAAC,KAA4Cd,QAAQ,CAAyB,EAAzB,CAApD;AAAA,MAACe,iBAAiB,QAAlB;AAAA,MAAoBC,oBAAoB,QAAxC;;AAEN/D,EAAAA,SAAS,CAAC;AACRgE,IAAAA,YAAY,CAAChB,KAAD,CAAZ;AACAC,IAAAA,QAAQ,CACNgB,UAAU,CAAC;AACTb,MAAAA,eAAe,CAAC9B,cAAD,CAAf;AACD,KAFS,EAEPH,eAFO,CADJ,CAAR;AAKD,GAPQ,EAON,CAACG,cAAD,CAPM,CAAT;AASAtB,EAAAA,SAAS,CAAC;AACR,QAAI,CAAA0B,UAAU,SAAV,IAAAA,UAAU,WAAV,SAAA,GAAAA,UAAU,CAAEwC,GAAZ,MAAoBC,gBAAgB,CAACC,KAAzC,EAAgD;AAC9C,UAAIN,iBAAiB,CAACO,MAAlB,GAA2B,CAA/B,EAAkC;AAChC9C,QAAAA,eAAe,CAACoB,WAAD,CAAf;AACD;AACF;;AACD,QAAI,CAAAjB,UAAU,SAAV,IAAAA,UAAU,WAAV,SAAA,GAAAA,UAAU,CAAEwC,GAAZ,MAAoBC,gBAAgB,CAACG,OAAzC,EAAkD;AAChD,UAAMC,gBAAgB,GAAGT,iBAAiB,CAACU,SAAlB,CAA4B,UAACpF,MAAD;AAAY,eAC/D,CAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAE8B,MAAR,OAAmByB,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEzB,MAAhC,CAD+D;AAEhE,OAFwB,CAAzB;;AAGA,UAAI,IAAIqD,gBAAR,EAA0B;AACxBd,QAAAA,cAAc,CAACK,iBAAiB,CAACS,gBAAgB,GAAG,CAApB,CAAlB,CAAd;AACA/C,QAAAA,iBAAiB,CAACsC,iBAAiB,CAACS,gBAAgB,GAAG,CAApB,CAAlB,CAAjB;AACD;AACF;;AACD,QAAI,CAAA7C,UAAU,SAAV,IAAAA,UAAU,WAAV,SAAA,GAAAA,UAAU,CAAEwC,GAAZ,MAAoBC,gBAAgB,CAACM,SAAzC,EAAoD;AAClD,UAAMF,gBAAgB,GAAGT,iBAAiB,CAACU,SAAlB,CAA4B,UAACpF,MAAD;AAAY,eAC/D,CAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAE8B,MAAR,OAAmByB,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEzB,MAAhC,CAD+D;AAEhE,OAFwB,CAAzB;;AAGA,UAAIqD,gBAAgB,GAAGT,iBAAiB,CAACO,MAAlB,GAA2B,CAAlD,EAAqD;AACnDZ,QAAAA,cAAc,CAACK,iBAAiB,CAACS,gBAAgB,GAAG,CAApB,CAAlB,CAAd;AACA/C,QAAAA,iBAAiB,CAACsC,iBAAiB,CAACS,gBAAgB,GAAG,CAApB,CAAlB,CAAjB;AACD;AACF;AACF,GAxBQ,EAwBN,CAAC7C,UAAD,CAxBM,CAAT;AA0BA;;AACA1B,EAAAA,SAAS,CAAC;AACR,QAAI,CAAC4C,mBAAD,IAAwB,CAACA,mBAAmB,CAAC8B,qBAA7C,IAAsE,CAAC9C,cAA3E,EAA2F;AACzFW,MAAAA,MAAM,CAACoC,OAAP,CAAe,yDAAf;AACA;AACD;;AACD,QAAIrB,gBAAgB,IAAIH,YAAY,CAACyB,OAAb,CAAqBtB,gBAArB,MAA2C,CAA/D,IAAoEQ,iBAAiB,CAACO,MAAlB,KAA6B,CAArG,EAAwG;AACtG;AACA;AACD;;AAED,QAAMQ,KAAK,GAAGjC,mBAAmB,CAAC8B,qBAApB,EAAd;AACAG,IAAAA,KAAK,CAACC,KAAN,GAAc7C,kBAAd;AACA4C,IAAAA,KAAK,CAACE,wBAAN,GAAiC5B,YAAY,CAAC6B,KAAb,CAAmBC,sBAAsB,CAACZ,MAA1C,CAAjC;;AAEAQ,IAAAA,KAAK,CAACK,IAAN,CAAW,UAACC,UAAD,EAAaC,KAAb;AACT,UAAIA,KAAJ,EAAW;AACT7C,QAAAA,MAAM,CAAC6C,KAAP,CAAa,mDAAb,EAAkEA,KAAlE;AACD;;AACD,UAAID,UAAU,CAACd,MAAX,GAAoB,CAAxB,EAA2B;AACzB9B,QAAAA,MAAM,CAAC8C,IAAP,CAAY,oDAAZ;AACD,OAFD,MAEO;AACL9C,QAAAA,MAAM,CAAC8C,IAAP,CAAY,sDAAZ,EAAoE;AAAEC,UAAAA,eAAe,EAAET,KAAnB;AAA0BM,UAAAA,UAAU;AAApC,SAApE;AACA1B,QAAAA,cAAc,CAAC0B,UAAU,CAAC,CAAD,CAAX,CAAd;AACD;;AACD5B,MAAAA,mBAAmB,CAACJ,YAAD,CAAnB;AACA1B,MAAAA,YAAY,CAAC0D,UAAD,CAAZ;AACApB,MAAAA,oBAAoB,CAACoB,UAAU,CAACI,MAAX,CAAkB,UAACnG,MAAD;AAAY,eAAAoD,aAAa,MAAKpD,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAE8B,MAAb,CAAb;AAAgC,OAA9D,CAAD,CAApB;AACD,KAbD;AAcD,GA5BQ,EA4BN,CAAC0B,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,SAAA,GAAAA,mBAAmB,CAAE4C,GAAtB,EAA2BrC,YAA3B,CA5BM,CAAT;AA8BA,sBACE5C;AACE,IAAA,SAAS,EAAC,+BADZ;AAEE,IAAA,YAAY,EAAE;AACZ,UAAIoD,aAAJ,EAAmB;AACjBF,QAAAA,cAAc,CAACE,aAAD,CAAd;AACD;AACF;AANH,KASI/B,cAAc,KAAIkC,iBAAiB,SAAjB,IAAAA,iBAAiB,WAAjB,SAAA,GAAAA,iBAAiB,CAAE2B,GAAnB,CAAuB,UAACrG,MAAD;AAAY,wBACnDmB,6BAAC,wBAAD;AACE,MAAA,GAAG,EAAEnB,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAEoB,QADf;AAEE,MAAA,MAAM,EAAEpB,MAFV;AAGE,MAAA,SAAS,EAAE,CAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,SAAA,GAAAA,MAAM,CAAE8B,MAAR,OAAmByB,WAAW,SAAX,IAAAA,WAAW,WAAX,SAAA,GAAAA,WAAW,CAAEzB,MAAhC,CAHb;AAIE,MAAA,OAAO,EAAE;AACPK,QAAAA,eAAe,CAACnC,MAAD,CAAf;AACD,OANH;AAOE,MAAA,WAAW,EAAE;AACXwE,QAAAA,gBAAgB,CAACxE,MAAD,CAAhB;AACD,OATH;AAUE,MAAA,qBAAqB,EAAEK;AAVzB,MADmD;AAapD,GAbiB,CAAJ,CATlB,EAyBI,CAACmC,cAAD,iBACErB;AAAK,IAAA,SAAS,EAAC;AAAf,kBACEA,6BAAC,IAAD;AACE,IAAA,SAAS,EAAC,kDADZ;AAEE,IAAA,IAAI,EAAEmF,SAAS,CAACC,IAFlB;AAGE,IAAA,SAAS,EAAEC,UAAU,CAACC;AAHxB,IADF,eAMEtF,6BAAC,KAAD;AACE,IAAA,SAAS,EAAC,kDADZ;AAEE,IAAA,IAAI,EAAEI,eAAe,CAACC,UAFxB;AAGE,IAAA,KAAK,EAAEC,WAAW,CAACI;AAHrB,KAKGlB,SAAS,CAAC+F,yBAAV,CAAoCC,OAApC,CAA4C,IAA5C,EAAkDjE,eAAlD,CALH,CANF,CA1BN,CADF;AA6CD;;;;"}