@sendbird/uikit-react 3.6.9-rc.0 → 3.6.10

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 (552) hide show
  1. package/App.js +55 -55
  2. package/CHANGELOG.md +6 -2
  3. package/Channel/components/ChannelHeader.js +22 -22
  4. package/Channel/components/ChannelUI.js +48 -48
  5. package/Channel/components/FileViewer.js +18 -18
  6. package/Channel/components/FrozenNotification.js +4 -4
  7. package/Channel/components/Message.js +46 -44
  8. package/Channel/components/Message.js.map +1 -1
  9. package/Channel/components/MessageInput.js +34 -34
  10. package/Channel/components/MessageList.js +75 -46
  11. package/Channel/components/MessageList.js.map +1 -1
  12. package/Channel/components/RemoveMessageModal.js +22 -22
  13. package/Channel/components/SuggestedMentionList.js +20 -20
  14. package/Channel/components/TypingIndicator.js +18 -18
  15. package/Channel/components/UnreadCount.js +4 -4
  16. package/Channel/context.js +15 -15
  17. package/Channel/utils/compareMessagesForGrouping.js +7 -7
  18. package/Channel/utils/getMessagePartsInfo.js +8 -8
  19. package/Channel.js +48 -48
  20. package/ChannelList/components/AddChannel.js +16 -16
  21. package/ChannelList/components/ChannelListHeader.js +6 -6
  22. package/ChannelList/components/ChannelListUI.js +33 -33
  23. package/ChannelList/components/ChannelPreview.js +29 -29
  24. package/ChannelList/components/ChannelPreviewAction.js +15 -15
  25. package/ChannelList/context.js +9 -9
  26. package/ChannelList.js +33 -33
  27. package/{ChannelListProvider-779a4c3d.js → ChannelListProvider-db5ec581.js} +23 -28
  28. package/ChannelListProvider-db5ec581.js.map +1 -0
  29. package/{ChannelProvider-f6fbfb1a.js → ChannelProvider-4710d84f.js} +26 -20
  30. package/ChannelProvider-4710d84f.js.map +1 -0
  31. package/ChannelSettings/components/ChannelProfile.js +13 -13
  32. package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  33. package/ChannelSettings/components/EditDetailsModal.js +13 -13
  34. package/ChannelSettings/components/LeaveChannel.js +12 -12
  35. package/ChannelSettings/components/ModerationPanel.js +15 -15
  36. package/ChannelSettings/components/UserListItem.js +11 -11
  37. package/ChannelSettings/components/UserPanel.js +14 -14
  38. package/ChannelSettings/context.js +3 -3
  39. package/ChannelSettings.js +18 -18
  40. package/CreateChannel/components/CreateChannelUI.js +14 -14
  41. package/CreateChannel/components/InviteUsers.js +14 -14
  42. package/CreateChannel/components/InviteUsers.js.map +1 -1
  43. package/CreateChannel/components/SelectChannelType.js +11 -11
  44. package/CreateChannel/context.js +4 -4
  45. package/CreateChannel.js +14 -14
  46. package/{CreateChannelProvider-e6c8290a.js → CreateChannelProvider-2318bfd7.js} +1 -1
  47. package/{CreateChannelProvider-e6c8290a.js.map → CreateChannelProvider-2318bfd7.js.map} +1 -1
  48. package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
  49. package/CreateOpenChannel/context.js +1 -1
  50. package/CreateOpenChannel.js +11 -11
  51. package/EditUserProfile/components/EditUserProfileUI.js +13 -13
  52. package/EditUserProfile.js +13 -13
  53. package/{LocalizationContext-2a6ef338.js → LocalizationContext-ffc4148d.js} +3 -3
  54. package/{LocalizationContext-2a6ef338.js.map → LocalizationContext-ffc4148d.js.map} +1 -1
  55. package/{MediaQueryContext-5a34332e.js → MediaQueryContext-9401e28a.js} +1 -1
  56. package/{MediaQueryContext-5a34332e.js.map → MediaQueryContext-9401e28a.js.map} +1 -1
  57. package/{MemberList-5c9b9650.js → MemberList-84e92e5d.js} +6 -6
  58. package/{MemberList-5c9b9650.js.map → MemberList-84e92e5d.js.map} +1 -1
  59. package/MessageSearch/components/MessageSearchUI.js +13 -13
  60. package/MessageSearch/context.js +1 -1
  61. package/MessageSearch.js +13 -13
  62. package/OpenChannel/components/FrozenChannelNotification.js +4 -4
  63. package/OpenChannel/components/OpenChannelHeader.js +12 -12
  64. package/OpenChannel/components/OpenChannelInput.js +20 -20
  65. package/OpenChannel/components/OpenChannelMessage.js +31 -31
  66. package/OpenChannel/components/OpenChannelMessageList.js +34 -34
  67. package/OpenChannel/components/OpenChannelUI.js +34 -34
  68. package/OpenChannel/context.js +8 -8
  69. package/OpenChannel.js +34 -34
  70. package/OpenChannelList/components/OpenChannelListUI.js +15 -15
  71. package/OpenChannelList/components/OpenChannelPreview.js +3 -3
  72. package/OpenChannelList/context.js +3 -3
  73. package/OpenChannelList.js +15 -15
  74. package/{OpenChannelListProvider-1ced6f18.js → OpenChannelListProvider-bccaef43.js} +3 -3
  75. package/{OpenChannelListProvider-1ced6f18.js.map → OpenChannelListProvider-bccaef43.js.map} +1 -1
  76. package/{OpenChannelProvider-4c64bb03.js → OpenChannelProvider-f6d7afc8.js} +8 -8
  77. package/OpenChannelProvider-f6d7afc8.js.map +1 -0
  78. package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
  79. package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
  80. package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  81. package/OpenChannelSettings/components/OperatorUI.js +17 -17
  82. package/OpenChannelSettings/components/ParticipantUI.js +15 -15
  83. package/OpenChannelSettings/context.js +3 -3
  84. package/OpenChannelSettings.js +18 -18
  85. package/{RemoveMessageModal-1f71ab21.js → RemoveMessageModal-2831884b.js} +5 -5
  86. package/{RemoveMessageModal-1f71ab21.js.map → RemoveMessageModal-2831884b.js.map} +1 -1
  87. package/SendbirdProvider.js +17 -17
  88. package/SendbirdProvider.js.map +1 -1
  89. package/Thread/components/ParentMessageInfo.js +38 -38
  90. package/Thread/components/ParentMessageInfoItem.js +25 -25
  91. package/Thread/components/ThreadHeader.js +6 -6
  92. package/Thread/components/ThreadList.js +42 -42
  93. package/Thread/components/ThreadListItem.js +42 -42
  94. package/Thread/components/ThreadMessageInput.js +34 -34
  95. package/Thread/components/ThreadUI.js +47 -47
  96. package/Thread/context.js +12 -12
  97. package/Thread.js +47 -47
  98. package/{ThreadProvider-505e55a5.js → ThreadProvider-1418ccf0.js} +8 -8
  99. package/{ThreadProvider-505e55a5.js.map → ThreadProvider-1418ccf0.js.map} +1 -1
  100. package/{UserProfileContext-ca5fc057.js → UserProfileContext-4ebadc38.js} +1 -1
  101. package/{UserProfileContext-ca5fc057.js.map → UserProfileContext-4ebadc38.js.map} +1 -1
  102. package/VoicePlayer/context.js +3 -3
  103. package/VoicePlayer/useVoicePlayer.js +11 -11
  104. package/VoiceRecorder/context.js +11 -11
  105. package/VoiceRecorder/useVoiceRecorder.js +10 -10
  106. package/{WebAudioUtils-070519e4.js → WebAudioUtils-1b9385ec.js} +2 -2
  107. package/{WebAudioUtils-070519e4.js.map → WebAudioUtils-1b9385ec.js.map} +1 -1
  108. package/{_rollupPluginBabelHelpers-50696833.js → _rollupPluginBabelHelpers-0cef07cb.js} +1 -1
  109. package/_rollupPluginBabelHelpers-0cef07cb.js.map +1 -0
  110. package/{actionTypes-a7ddf06a.js → actionTypes-318efb77.js} +1 -1
  111. package/{actionTypes-a7ddf06a.js.map → actionTypes-318efb77.js.map} +1 -1
  112. package/cjs/App.js +55 -55
  113. package/cjs/Channel/components/ChannelHeader.js +22 -22
  114. package/cjs/Channel/components/ChannelUI.js +48 -48
  115. package/cjs/Channel/components/FileViewer.js +18 -18
  116. package/cjs/Channel/components/FrozenNotification.js +4 -4
  117. package/cjs/Channel/components/Message.js +46 -44
  118. package/cjs/Channel/components/Message.js.map +1 -1
  119. package/cjs/Channel/components/MessageInput.js +34 -34
  120. package/cjs/Channel/components/MessageList.js +75 -46
  121. package/cjs/Channel/components/MessageList.js.map +1 -1
  122. package/cjs/Channel/components/RemoveMessageModal.js +22 -22
  123. package/cjs/Channel/components/SuggestedMentionList.js +20 -20
  124. package/cjs/Channel/components/TypingIndicator.js +18 -18
  125. package/cjs/Channel/components/UnreadCount.js +4 -4
  126. package/cjs/Channel/context.js +15 -15
  127. package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -7
  128. package/cjs/Channel/utils/getMessagePartsInfo.js +8 -8
  129. package/cjs/Channel.js +48 -48
  130. package/cjs/ChannelList/components/AddChannel.js +16 -16
  131. package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
  132. package/cjs/ChannelList/components/ChannelListUI.js +33 -33
  133. package/cjs/ChannelList/components/ChannelPreview.js +29 -29
  134. package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -15
  135. package/cjs/ChannelList/context.js +9 -9
  136. package/cjs/ChannelList.js +33 -33
  137. package/cjs/{ChannelListProvider-6ab7d534.js → ChannelListProvider-8a2c8449.js} +23 -28
  138. package/cjs/ChannelListProvider-8a2c8449.js.map +1 -0
  139. package/cjs/{ChannelProvider-5dab910c.js → ChannelProvider-f53f6659.js} +26 -20
  140. package/cjs/ChannelProvider-f53f6659.js.map +1 -0
  141. package/cjs/ChannelSettings/components/ChannelProfile.js +13 -13
  142. package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
  143. package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -13
  144. package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
  145. package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
  146. package/cjs/ChannelSettings/components/UserListItem.js +11 -11
  147. package/cjs/ChannelSettings/components/UserPanel.js +14 -14
  148. package/cjs/ChannelSettings/context.js +3 -3
  149. package/cjs/ChannelSettings.js +18 -18
  150. package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
  151. package/cjs/CreateChannel/components/InviteUsers.js +14 -14
  152. package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
  153. package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
  154. package/cjs/CreateChannel/context.js +4 -4
  155. package/cjs/CreateChannel.js +14 -14
  156. package/cjs/{CreateChannelProvider-87b5a870.js → CreateChannelProvider-c222d954.js} +1 -1
  157. package/cjs/{CreateChannelProvider-87b5a870.js.map → CreateChannelProvider-c222d954.js.map} +1 -1
  158. package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
  159. package/cjs/CreateOpenChannel/context.js +1 -1
  160. package/cjs/CreateOpenChannel.js +11 -11
  161. package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
  162. package/cjs/EditUserProfile.js +13 -13
  163. package/cjs/{LocalizationContext-01462759.js → LocalizationContext-40eb7c9d.js} +3 -3
  164. package/cjs/{LocalizationContext-01462759.js.map → LocalizationContext-40eb7c9d.js.map} +1 -1
  165. package/cjs/{MediaQueryContext-550a1a76.js → MediaQueryContext-c66337d3.js} +1 -1
  166. package/cjs/{MediaQueryContext-550a1a76.js.map → MediaQueryContext-c66337d3.js.map} +1 -1
  167. package/cjs/{MemberList-446c4808.js → MemberList-f3956662.js} +6 -6
  168. package/cjs/{MemberList-446c4808.js.map → MemberList-f3956662.js.map} +1 -1
  169. package/cjs/MessageSearch/components/MessageSearchUI.js +13 -13
  170. package/cjs/MessageSearch/context.js +1 -1
  171. package/cjs/MessageSearch.js +13 -13
  172. package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
  173. package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
  174. package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
  175. package/cjs/OpenChannel/components/OpenChannelMessage.js +31 -31
  176. package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -34
  177. package/cjs/OpenChannel/components/OpenChannelUI.js +34 -34
  178. package/cjs/OpenChannel/context.js +8 -8
  179. package/cjs/OpenChannel.js +34 -34
  180. package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -15
  181. package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
  182. package/cjs/OpenChannelList/context.js +3 -3
  183. package/cjs/OpenChannelList.js +15 -15
  184. package/cjs/{OpenChannelListProvider-ca0abdf0.js → OpenChannelListProvider-0dfce6f0.js} +3 -3
  185. package/cjs/{OpenChannelListProvider-ca0abdf0.js.map → OpenChannelListProvider-0dfce6f0.js.map} +1 -1
  186. package/cjs/{OpenChannelProvider-77ce94f4.js → OpenChannelProvider-3fee0431.js} +8 -8
  187. package/cjs/OpenChannelProvider-3fee0431.js.map +1 -0
  188. package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
  189. package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
  190. package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
  191. package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
  192. package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
  193. package/cjs/OpenChannelSettings/context.js +3 -3
  194. package/cjs/OpenChannelSettings.js +18 -18
  195. package/cjs/{RemoveMessageModal-c97607e4.js → RemoveMessageModal-57524b2e.js} +5 -5
  196. package/cjs/{RemoveMessageModal-c97607e4.js.map → RemoveMessageModal-57524b2e.js.map} +1 -1
  197. package/cjs/SendbirdProvider.js +17 -17
  198. package/cjs/SendbirdProvider.js.map +1 -1
  199. package/cjs/Thread/components/ParentMessageInfo.js +38 -38
  200. package/cjs/Thread/components/ParentMessageInfoItem.js +25 -25
  201. package/cjs/Thread/components/ThreadHeader.js +6 -6
  202. package/cjs/Thread/components/ThreadList.js +42 -42
  203. package/cjs/Thread/components/ThreadListItem.js +42 -42
  204. package/cjs/Thread/components/ThreadMessageInput.js +34 -34
  205. package/cjs/Thread/components/ThreadUI.js +47 -47
  206. package/cjs/Thread/context.js +12 -12
  207. package/cjs/Thread.js +47 -47
  208. package/cjs/{ThreadProvider-e33ab585.js → ThreadProvider-fe31e040.js} +8 -8
  209. package/cjs/{ThreadProvider-e33ab585.js.map → ThreadProvider-fe31e040.js.map} +1 -1
  210. package/cjs/{UserProfileContext-a871377d.js → UserProfileContext-345b7649.js} +1 -1
  211. package/cjs/{UserProfileContext-a871377d.js.map → UserProfileContext-345b7649.js.map} +1 -1
  212. package/cjs/VoicePlayer/context.js +3 -3
  213. package/cjs/VoicePlayer/useVoicePlayer.js +11 -11
  214. package/cjs/VoiceRecorder/context.js +11 -11
  215. package/cjs/VoiceRecorder/useVoiceRecorder.js +10 -10
  216. package/cjs/{WebAudioUtils-9110f2c8.js → WebAudioUtils-a3f796ae.js} +2 -2
  217. package/cjs/{WebAudioUtils-9110f2c8.js.map → WebAudioUtils-a3f796ae.js.map} +1 -1
  218. package/cjs/{_rollupPluginBabelHelpers-c6220b54.js → _rollupPluginBabelHelpers-488b3e8e.js} +1 -1
  219. package/cjs/_rollupPluginBabelHelpers-488b3e8e.js.map +1 -0
  220. package/cjs/{actionTypes-e50d3f49.js → actionTypes-cb457098.js} +1 -1
  221. package/cjs/{actionTypes-e50d3f49.js.map → actionTypes-cb457098.js.map} +1 -1
  222. package/cjs/{color-437027bf.js → color-05f0e0c4.js} +1 -1
  223. package/cjs/{color-437027bf.js.map → color-05f0e0c4.js.map} +1 -1
  224. package/cjs/{compareIds-6d5c4c39.js → compareIds-25532c3b.js} +1 -1
  225. package/cjs/{compareIds-6d5c4c39.js.map → compareIds-25532c3b.js.map} +1 -1
  226. package/cjs/{const-7cb82662.js → const-7272c371.js} +1 -1
  227. package/cjs/{const-7cb82662.js.map → const-7272c371.js.map} +1 -1
  228. package/cjs/{const-2c58fa8c.js → const-f9dd801f.js} +1 -1
  229. package/cjs/{const-2c58fa8c.js.map → const-f9dd801f.js.map} +1 -1
  230. package/cjs/{consts-58a1099d.js → consts-23f916a7.js} +1 -1
  231. package/cjs/{consts-58a1099d.js.map → consts-23f916a7.js.map} +1 -1
  232. package/cjs/{consts-85acfb7f.js → consts-794ef905.js} +1 -1
  233. package/cjs/{consts-85acfb7f.js.map → consts-794ef905.js.map} +1 -1
  234. package/cjs/{consts-de5a3115.js → consts-80cf31ce.js} +1 -1
  235. package/cjs/{consts-de5a3115.js.map → consts-80cf31ce.js.map} +1 -1
  236. package/cjs/{consts-50006df9.js → consts-d1774353.js} +1 -1
  237. package/cjs/{consts-50006df9.js.map → consts-d1774353.js.map} +1 -1
  238. package/cjs/{context-57928814.js → context-5bc90aa7.js} +2 -2
  239. package/cjs/{context-57928814.js.map → context-5bc90aa7.js.map} +1 -1
  240. package/cjs/dist/index.css +127 -128
  241. package/cjs/dist/index.css.map +1 -1
  242. package/cjs/{index-64dc3492.js → index-04eb31f4.js} +3 -3
  243. package/cjs/{index-64dc3492.js.map → index-04eb31f4.js.map} +1 -1
  244. package/cjs/{index-4f568909.js → index-1fdc447a.js} +4 -4
  245. package/cjs/{index-4f568909.js.map → index-1fdc447a.js.map} +1 -1
  246. package/cjs/{index-9c68a768.js → index-2c90dcb8.js} +3 -3
  247. package/cjs/{index-9c68a768.js.map → index-2c90dcb8.js.map} +1 -1
  248. package/cjs/{index-8633e84b.js → index-4a574f45.js} +3 -3
  249. package/cjs/{index-8633e84b.js.map → index-4a574f45.js.map} +1 -1
  250. package/cjs/{index-85aa0eb6.js → index-4ca19f6d.js} +2 -2
  251. package/cjs/index-4ca19f6d.js.map +1 -0
  252. package/cjs/{index-aabf3cd7.js → index-53ca77d2.js} +5 -5
  253. package/cjs/{index-aabf3cd7.js.map → index-53ca77d2.js.map} +1 -1
  254. package/cjs/{index-957f62e0.js → index-55a5da60.js} +6 -6
  255. package/cjs/{index-957f62e0.js.map → index-55a5da60.js.map} +1 -1
  256. package/cjs/{index-c36eec86.js → index-6c815158.js} +9 -4
  257. package/cjs/{index-c36eec86.js.map → index-6c815158.js.map} +1 -1
  258. package/cjs/{index-0e23b304.js → index-87cced05.js} +1 -1
  259. package/cjs/{index-0e23b304.js.map → index-87cced05.js.map} +1 -1
  260. package/cjs/{index-71366fc1.js → index-99f90442.js} +2 -2
  261. package/cjs/{index-71366fc1.js.map → index-99f90442.js.map} +1 -1
  262. package/cjs/{index-8d04d6f8.js → index-9ac0a31d.js} +4 -4
  263. package/cjs/{index-8d04d6f8.js.map → index-9ac0a31d.js.map} +1 -1
  264. package/cjs/{index-9ff45780.js → index-9e072be5.js} +4 -4
  265. package/cjs/{index-9ff45780.js.map → index-9e072be5.js.map} +1 -1
  266. package/cjs/{index-6bfc2f69.js → index-aecd6e45.js} +7 -7
  267. package/cjs/{index-6bfc2f69.js.map → index-aecd6e45.js.map} +1 -1
  268. package/cjs/{index-13b55ebd.js → index-b4df1d17.js} +5 -5
  269. package/cjs/{index-13b55ebd.js.map → index-b4df1d17.js.map} +1 -1
  270. package/cjs/{index-43271226.js → index-ba34ece6.js} +2 -2
  271. package/cjs/{index-43271226.js.map → index-ba34ece6.js.map} +1 -1
  272. package/cjs/{index-a734f18b.js → index-be727556.js} +4 -4
  273. package/cjs/{index-a734f18b.js.map → index-be727556.js.map} +1 -1
  274. package/cjs/{index-3888ca97.js → index-ccda67ff.js} +3 -3
  275. package/cjs/{index-3888ca97.js.map → index-ccda67ff.js.map} +1 -1
  276. package/cjs/{index-63eb5ff7.js → index-d484ba73.js} +1 -1
  277. package/cjs/{index-63eb5ff7.js.map → index-d484ba73.js.map} +1 -1
  278. package/cjs/{index-cd217acb.js → index-e177bbe4.js} +9 -9
  279. package/cjs/{index-cd217acb.js.map → index-e177bbe4.js.map} +1 -1
  280. package/cjs/{index-b5b8572e.js → index-e70a2323.js} +2 -2
  281. package/cjs/{index-b5b8572e.js.map → index-e70a2323.js.map} +1 -1
  282. package/cjs/{index-8fca1595.js → index-ec0d0086.js} +2 -2
  283. package/cjs/{index-8fca1595.js.map → index-ec0d0086.js.map} +1 -1
  284. package/cjs/index.js +59 -59
  285. package/cjs/{index.module-cd5fee9a.js → index.module-22a4bbea.js} +1 -1
  286. package/cjs/{index.module-cd5fee9a.js.map → index.module-22a4bbea.js.map} +1 -1
  287. package/cjs/package.json +2 -2
  288. package/cjs/{resolvedReplyType-e6b60483.js → resolvedReplyType-7c78f221.js} +1 -1
  289. package/cjs/{resolvedReplyType-e6b60483.js.map → resolvedReplyType-7c78f221.js.map} +1 -1
  290. package/cjs/sendbirdSelectors.js +3 -3
  291. package/cjs/{stringFormatterUtils-222bd4a1.js → stringFormatterUtils-2de721a6.js} +3 -3
  292. package/cjs/{stringFormatterUtils-222bd4a1.js.map → stringFormatterUtils-2de721a6.js.map} +1 -1
  293. package/cjs/{stringSet-569a20f9.js → stringSet-0c9ec33d.js} +1 -1
  294. package/cjs/{stringSet-569a20f9.js.map → stringSet-0c9ec33d.js.map} +1 -1
  295. package/cjs/{tokenize-d84a3b40.js → tokenize-46a71d6a.js} +2 -2
  296. package/cjs/{tokenize-d84a3b40.js.map → tokenize-46a71d6a.js.map} +1 -1
  297. package/cjs/{topics-44c343a5.js → topics-cf5100f6.js} +1 -1
  298. package/cjs/{topics-44c343a5.js.map → topics-cf5100f6.js.map} +1 -1
  299. package/cjs/{types-065ea007.js → types-ad059133.js} +1 -1
  300. package/cjs/{types-065ea007.js.map → types-ad059133.js.map} +1 -1
  301. package/cjs/ui/Accordion.js +2 -2
  302. package/cjs/ui/AccordionGroup.js +2 -2
  303. package/cjs/ui/AdminMessage.js +2 -2
  304. package/cjs/ui/Avatar.js +1 -1
  305. package/cjs/ui/Badge.js +4 -4
  306. package/cjs/ui/BottomSheet.js +4 -4
  307. package/cjs/ui/Button.js +2 -2
  308. package/cjs/ui/ChannelAvatar.js +2 -2
  309. package/cjs/ui/ConnectionStatus.js +4 -4
  310. package/cjs/ui/ContextMenu.js +6 -6
  311. package/cjs/ui/DateSeparator.js +3 -3
  312. package/cjs/ui/EmojiReactions.js +14 -14
  313. package/cjs/ui/FileMessageItemBody.js +7 -7
  314. package/cjs/ui/FileViewer.js +12 -12
  315. package/cjs/ui/IconButton.js +1 -1
  316. package/cjs/ui/Input.js +2 -2
  317. package/cjs/ui/Label.js +2 -2
  318. package/cjs/ui/LinkLabel.js +2 -2
  319. package/cjs/ui/MentionLabel.js +11 -11
  320. package/cjs/ui/MentionUserLabel.js +1 -1
  321. package/cjs/ui/MessageContent.js +31 -31
  322. package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
  323. package/cjs/ui/MessageInput.js +26 -30
  324. package/cjs/ui/MessageInput.js.map +1 -1
  325. package/cjs/ui/MessageItemMenu.js +9 -9
  326. package/cjs/ui/MessageItemReactionMenu.js +9 -9
  327. package/cjs/ui/MessageSearchFileItem.js +12 -12
  328. package/cjs/ui/MessageSearchItem.js +8 -8
  329. package/cjs/ui/MessageStatus.js +11 -11
  330. package/cjs/ui/Modal.js +9 -9
  331. package/cjs/ui/OGMessageItemBody.js +14 -14
  332. package/cjs/ui/OpenChannelAdminMessage.js +2 -2
  333. package/cjs/ui/OpenChannelAvatar.js +5 -5
  334. package/cjs/ui/OpenchannelConversationHeader.js +6 -6
  335. package/cjs/ui/OpenchannelFileMessage.js +16 -16
  336. package/cjs/ui/OpenchannelOGMessage.js +18 -18
  337. package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
  338. package/cjs/ui/OpenchannelUserMessage.js +16 -16
  339. package/cjs/ui/PlaceHolder.js +5 -5
  340. package/cjs/ui/PlaybackTime.js +2 -2
  341. package/cjs/ui/QuoteMessage.js +8 -8
  342. package/cjs/ui/QuoteMessageInput.js +8 -8
  343. package/cjs/ui/ReactionBadge.js +2 -2
  344. package/cjs/ui/ReactionButton.js +4 -4
  345. package/cjs/ui/SortByRow.js +1 -1
  346. package/cjs/ui/TextButton.js +1 -1
  347. package/cjs/ui/TextMessageItemBody.js +14 -14
  348. package/cjs/ui/ThreadReplies.js +5 -5
  349. package/cjs/ui/ThumbnailMessageItemBody.js +7 -7
  350. package/cjs/ui/Toggle.js +1 -1
  351. package/cjs/ui/Tooltip.js +2 -2
  352. package/cjs/ui/UnknownMessageItemBody.js +7 -7
  353. package/cjs/ui/UserListItem.js +11 -11
  354. package/cjs/ui/UserProfile.js +9 -9
  355. package/cjs/ui/VoiceMessageItemBody.js +11 -11
  356. package/cjs/ui/VoiceMessgeInput.js +7 -7
  357. package/cjs/ui/Word.js +11 -11
  358. package/cjs/{useHandleUploadFiles-cd2fcecd.js → useHandleUploadFiles-a2515e36.js} +10 -10
  359. package/cjs/{useHandleUploadFiles-cd2fcecd.js.map → useHandleUploadFiles-a2515e36.js.map} +1 -1
  360. package/cjs/{useLongPress-b3303d9c.js → useLongPress-c9932bc1.js} +3 -3
  361. package/cjs/{useLongPress-b3303d9c.js.map → useLongPress-c9932bc1.js.map} +1 -1
  362. package/cjs/{useSendMultipleFilesMessage-1093a2d5.js → useSendMultipleFilesMessage-82dafd6e.js} +4 -4
  363. package/cjs/{useSendMultipleFilesMessage-1093a2d5.js.map → useSendMultipleFilesMessage-82dafd6e.js.map} +1 -1
  364. package/cjs/useSendbirdStateContext.js +1 -1
  365. package/cjs/utils/message/isVoiceMessage.js +3 -3
  366. package/cjs/{utils-4040fa0e.js → utils-323602f7.js} +1 -1
  367. package/cjs/{utils-4040fa0e.js.map → utils-323602f7.js.map} +1 -1
  368. package/cjs/{utils-91440270.js → utils-4951f17b.js} +11 -6
  369. package/cjs/utils-4951f17b.js.map +1 -0
  370. package/cjs/{utils-025bf87c.js → utils-71eb8ef7.js} +1 -1
  371. package/cjs/{utils-025bf87c.js.map → utils-71eb8ef7.js.map} +1 -1
  372. package/cjs/{utils-a1c39113.js → utils-de1e1ff7.js} +2 -2
  373. package/cjs/{utils-a1c39113.js.map → utils-de1e1ff7.js.map} +1 -1
  374. package/cjs/{utils-9ce6a1d4.js → utils-e8c4f085.js} +1 -1
  375. package/cjs/{utils-9ce6a1d4.js.map → utils-e8c4f085.js.map} +1 -1
  376. package/cjs/{utils-3b3b18a3.js → utils-f41b79ef.js} +3 -3
  377. package/cjs/{utils-3b3b18a3.js.map → utils-f41b79ef.js.map} +1 -1
  378. package/cjs/{uuid-10da34d7.js → uuid-e5bd2418.js} +1 -1
  379. package/cjs/{uuid-10da34d7.js.map → uuid-e5bd2418.js.map} +1 -1
  380. package/cjs/withSendbird.js +1 -1
  381. package/{color-6b4d0a7b.js → color-8d593cfa.js} +1 -1
  382. package/{color-6b4d0a7b.js.map → color-8d593cfa.js.map} +1 -1
  383. package/{compareIds-8bbfc531.js → compareIds-1f514503.js} +1 -1
  384. package/{compareIds-8bbfc531.js.map → compareIds-1f514503.js.map} +1 -1
  385. package/{const-7a48f2f0.js → const-16846404.js} +1 -1
  386. package/{const-7a48f2f0.js.map → const-16846404.js.map} +1 -1
  387. package/{const-bd67ba4a.js → const-b8dcad45.js} +1 -1
  388. package/{const-bd67ba4a.js.map → const-b8dcad45.js.map} +1 -1
  389. package/{consts-a27675df.js → consts-6e6f7e9f.js} +1 -1
  390. package/{consts-a27675df.js.map → consts-6e6f7e9f.js.map} +1 -1
  391. package/{consts-2ddaffce.js → consts-9f4a812e.js} +1 -1
  392. package/{consts-2ddaffce.js.map → consts-9f4a812e.js.map} +1 -1
  393. package/{consts-8b2a8d9c.js → consts-b5df6e74.js} +1 -1
  394. package/{consts-8b2a8d9c.js.map → consts-b5df6e74.js.map} +1 -1
  395. package/{consts-087a1fb9.js → consts-d580c2c7.js} +1 -1
  396. package/{consts-087a1fb9.js.map → consts-d580c2c7.js.map} +1 -1
  397. package/{context-731512f4.js → context-fb4c2157.js} +2 -2
  398. package/{context-731512f4.js.map → context-fb4c2157.js.map} +1 -1
  399. package/dist/index.css +127 -128
  400. package/dist/index.css.map +1 -1
  401. package/{index-66948f26.js → index-151e4750.js} +3 -3
  402. package/{index-66948f26.js.map → index-151e4750.js.map} +1 -1
  403. package/{index-31fae6a0.js → index-304b238b.js} +1 -1
  404. package/{index-31fae6a0.js.map → index-304b238b.js.map} +1 -1
  405. package/{index-b038bbfd.js → index-35747966.js} +5 -5
  406. package/{index-b038bbfd.js.map → index-35747966.js.map} +1 -1
  407. package/{index-d6757790.js → index-390e9091.js} +7 -7
  408. package/{index-d6757790.js.map → index-390e9091.js.map} +1 -1
  409. package/{index-d004f5a9.js → index-4a1fec80.js} +4 -4
  410. package/{index-d004f5a9.js.map → index-4a1fec80.js.map} +1 -1
  411. package/{index-9fca62f4.js → index-51d1d394.js} +3 -3
  412. package/{index-9fca62f4.js.map → index-51d1d394.js.map} +1 -1
  413. package/{index-2588389f.js → index-57990954.js} +2 -2
  414. package/{index-2588389f.js.map → index-57990954.js.map} +1 -1
  415. package/{index-1e76921e.js → index-62ee116d.js} +4 -4
  416. package/{index-1e76921e.js.map → index-62ee116d.js.map} +1 -1
  417. package/{index-0791839a.js → index-658da38a.js} +4 -4
  418. package/{index-0791839a.js.map → index-658da38a.js.map} +1 -1
  419. package/{index-c5f3ebb5.js → index-6805d5c8.js} +2 -2
  420. package/{index-c5f3ebb5.js.map → index-6805d5c8.js.map} +1 -1
  421. package/{index-ec9b8bb2.js → index-773ba5ba.js} +2 -2
  422. package/{index-ec9b8bb2.js.map → index-773ba5ba.js.map} +1 -1
  423. package/{index-d4d4f948.js → index-80996ef9.js} +5 -5
  424. package/{index-d4d4f948.js.map → index-80996ef9.js.map} +1 -1
  425. package/{index-62abd822.js → index-843f8172.js} +6 -6
  426. package/{index-62abd822.js.map → index-843f8172.js.map} +1 -1
  427. package/{index-62371bdd.js → index-9237667a.js} +9 -9
  428. package/{index-62371bdd.js.map → index-9237667a.js.map} +1 -1
  429. package/{index-c46d2bb8.js → index-9ea624d5.js} +2 -2
  430. package/{index-c46d2bb8.js.map → index-9ea624d5.js.map} +1 -1
  431. package/{index-cd866969.js → index-afdd497f.js} +3 -3
  432. package/{index-cd866969.js.map → index-afdd497f.js.map} +1 -1
  433. package/{index-134f97cd.js → index-c277467e.js} +1 -1
  434. package/{index-134f97cd.js.map → index-c277467e.js.map} +1 -1
  435. package/{index-a3ca9833.js → index-cdaae7f9.js} +3 -3
  436. package/{index-a3ca9833.js.map → index-cdaae7f9.js.map} +1 -1
  437. package/{index-7ff60f7d.js → index-f35b1dcc.js} +4 -4
  438. package/{index-7ff60f7d.js.map → index-f35b1dcc.js.map} +1 -1
  439. package/{index-3bead442.js → index-f48e9c68.js} +2 -2
  440. package/index-f48e9c68.js.map +1 -0
  441. package/{index-6233952f.js → index-fde902d5.js} +9 -5
  442. package/{index-6233952f.js.map → index-fde902d5.js.map} +1 -1
  443. package/index.d.ts +9 -11
  444. package/index.js +59 -59
  445. package/{index.module-05a84007.js → index.module-f3f31594.js} +1 -1
  446. package/{index.module-05a84007.js.map → index.module-f3f31594.js.map} +1 -1
  447. package/package.json +2 -2
  448. package/{resolvedReplyType-7fa7b725.js → resolvedReplyType-ff8f48f4.js} +1 -1
  449. package/{resolvedReplyType-7fa7b725.js.map → resolvedReplyType-ff8f48f4.js.map} +1 -1
  450. package/sendbirdSelectors.js +3 -3
  451. package/{stringFormatterUtils-bae59a9b.js → stringFormatterUtils-272582e5.js} +3 -3
  452. package/{stringFormatterUtils-bae59a9b.js.map → stringFormatterUtils-272582e5.js.map} +1 -1
  453. package/{stringSet-a3384f83.js → stringSet-02d58100.js} +1 -1
  454. package/{stringSet-a3384f83.js.map → stringSet-02d58100.js.map} +1 -1
  455. package/{tokenize-7edff95a.js → tokenize-65b415b8.js} +2 -2
  456. package/{tokenize-7edff95a.js.map → tokenize-65b415b8.js.map} +1 -1
  457. package/{topics-85213ccb.js → topics-fda6fac4.js} +1 -1
  458. package/{topics-85213ccb.js.map → topics-fda6fac4.js.map} +1 -1
  459. package/{types-6bc0cc06.js → types-69d76470.js} +1 -1
  460. package/{types-6bc0cc06.js.map → types-69d76470.js.map} +1 -1
  461. package/ui/Accordion.js +2 -2
  462. package/ui/AccordionGroup.js +2 -2
  463. package/ui/AdminMessage.js +2 -2
  464. package/ui/Avatar.js +1 -1
  465. package/ui/Badge.js +4 -4
  466. package/ui/BottomSheet.js +4 -4
  467. package/ui/Button.js +2 -2
  468. package/ui/ChannelAvatar.js +2 -2
  469. package/ui/ConnectionStatus.js +4 -4
  470. package/ui/ContextMenu.js +6 -6
  471. package/ui/DateSeparator.js +3 -3
  472. package/ui/EmojiReactions.js +14 -14
  473. package/ui/FileMessageItemBody.js +7 -7
  474. package/ui/FileViewer.js +12 -12
  475. package/ui/IconButton.js +1 -1
  476. package/ui/Input.js +2 -2
  477. package/ui/Label.js +2 -2
  478. package/ui/LinkLabel.js +2 -2
  479. package/ui/MentionLabel.js +11 -11
  480. package/ui/MentionUserLabel.js +1 -1
  481. package/ui/MessageContent.js +31 -31
  482. package/ui/MessageInput/hooks/usePaste.js +4 -4
  483. package/ui/MessageInput.js +26 -30
  484. package/ui/MessageInput.js.map +1 -1
  485. package/ui/MessageItemMenu.js +9 -9
  486. package/ui/MessageItemReactionMenu.js +9 -9
  487. package/ui/MessageSearchFileItem.js +12 -12
  488. package/ui/MessageSearchItem.js +8 -8
  489. package/ui/MessageStatus.js +11 -11
  490. package/ui/Modal.js +9 -9
  491. package/ui/OGMessageItemBody.js +14 -14
  492. package/ui/OpenChannelAdminMessage.js +2 -2
  493. package/ui/OpenChannelAvatar.js +5 -5
  494. package/ui/OpenchannelConversationHeader.js +6 -6
  495. package/ui/OpenchannelFileMessage.js +16 -16
  496. package/ui/OpenchannelOGMessage.js +18 -18
  497. package/ui/OpenchannelThumbnailMessage.js +15 -15
  498. package/ui/OpenchannelUserMessage.js +16 -16
  499. package/ui/PlaceHolder.js +5 -5
  500. package/ui/PlaybackTime.js +2 -2
  501. package/ui/QuoteMessage.js +8 -8
  502. package/ui/QuoteMessageInput.js +8 -8
  503. package/ui/ReactionBadge.js +2 -2
  504. package/ui/ReactionButton.js +4 -4
  505. package/ui/SortByRow.js +1 -1
  506. package/ui/TextButton.js +1 -1
  507. package/ui/TextMessageItemBody.js +14 -14
  508. package/ui/ThreadReplies.js +5 -5
  509. package/ui/ThumbnailMessageItemBody.js +7 -7
  510. package/ui/Toggle.js +1 -1
  511. package/ui/Tooltip.js +2 -2
  512. package/ui/UnknownMessageItemBody.js +7 -7
  513. package/ui/UserListItem.js +11 -11
  514. package/ui/UserProfile.js +9 -9
  515. package/ui/VoiceMessageItemBody.js +11 -11
  516. package/ui/VoiceMessgeInput.js +7 -7
  517. package/ui/Word.js +11 -11
  518. package/{useHandleUploadFiles-15dc0c2d.js → useHandleUploadFiles-c1595636.js} +10 -10
  519. package/{useHandleUploadFiles-15dc0c2d.js.map → useHandleUploadFiles-c1595636.js.map} +1 -1
  520. package/{useLongPress-11759804.js → useLongPress-ba7e62b0.js} +3 -3
  521. package/{useLongPress-11759804.js.map → useLongPress-ba7e62b0.js.map} +1 -1
  522. package/{useSendMultipleFilesMessage-3b16fa85.js → useSendMultipleFilesMessage-5cbc19ce.js} +4 -4
  523. package/{useSendMultipleFilesMessage-3b16fa85.js.map → useSendMultipleFilesMessage-5cbc19ce.js.map} +1 -1
  524. package/useSendbirdStateContext.js +1 -1
  525. package/utils/message/isVoiceMessage.js +3 -3
  526. package/{utils-e72dd1e0.js → utils-42359bc3.js} +2 -2
  527. package/{utils-e72dd1e0.js.map → utils-42359bc3.js.map} +1 -1
  528. package/{utils-749b8812.js → utils-532f83ca.js} +1 -1
  529. package/{utils-749b8812.js.map → utils-532f83ca.js.map} +1 -1
  530. package/{utils-4078c160.js → utils-5a24bd3a.js} +1 -1
  531. package/{utils-4078c160.js.map → utils-5a24bd3a.js.map} +1 -1
  532. package/{utils-fc37f1e5.js → utils-cbc87bb5.js} +11 -6
  533. package/utils-cbc87bb5.js.map +1 -0
  534. package/{utils-11da9785.js → utils-e7de752d.js} +3 -3
  535. package/{utils-11da9785.js.map → utils-e7de752d.js.map} +1 -1
  536. package/{utils-1a4154f1.js → utils-eb4100d3.js} +1 -1
  537. package/{utils-1a4154f1.js.map → utils-eb4100d3.js.map} +1 -1
  538. package/{uuid-87e2df67.js → uuid-46cf2f27.js} +1 -1
  539. package/{uuid-87e2df67.js.map → uuid-46cf2f27.js.map} +1 -1
  540. package/withSendbird.js +1 -1
  541. package/ChannelListProvider-779a4c3d.js.map +0 -1
  542. package/ChannelProvider-f6fbfb1a.js.map +0 -1
  543. package/OpenChannelProvider-4c64bb03.js.map +0 -1
  544. package/_rollupPluginBabelHelpers-50696833.js.map +0 -1
  545. package/cjs/ChannelListProvider-6ab7d534.js.map +0 -1
  546. package/cjs/ChannelProvider-5dab910c.js.map +0 -1
  547. package/cjs/OpenChannelProvider-77ce94f4.js.map +0 -1
  548. package/cjs/_rollupPluginBabelHelpers-c6220b54.js.map +0 -1
  549. package/cjs/index-85aa0eb6.js.map +0 -1
  550. package/cjs/utils-91440270.js.map +0 -1
  551. package/index-3bead442.js.map +0 -1
  552. package/utils-fc37f1e5.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-50696833.js';
1
+ import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-0cef07cb.js';
2
2
  import { OutgoingMessageStates, getOutgoingMessageState } from './utils/message/getOutgoingMessageState.js';
3
- import { K } from './index.module-05a84007.js';
3
+ import { K } from './index.module-f3f31594.js';
4
4
 
5
5
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
6
6
  const SUPPORTED_MIMES = {
@@ -595,4 +595,4 @@ const arrayEqual = (array1, array2) => {
595
595
  };
596
596
 
597
597
  export { isOGMessage as A, isTextMessage as B, isSupportedFileView as C, isUrl as D, isEditedMessage as E, isSentMessage as F, isFailedMessage as G, isPendingMessage as H, copyToClipboard as I, getEmojiListAll as J, getEmojiUrl as K, isReactedBy as L, getEmojiTooltipString as M, getEmojiMapAll as N, getUIKitFileType as O, truncateString as P, getUIKitFileTypes as Q, isThreadMessage as R, isGifFileInfo as S, convertWordToStringObj as T, UIKitMessageTypes as U, StringObjType as V, getSendingMessageStatus as a, filterMessageListParams as b, isMultipleFilesMessage as c, isVoiceMessage as d, isReadMessage as e, filterChannelListParams as f, getChannelsWithUpsertedChannel as g, isGif as h, isTextuallyNull as i, isImage as j, isVideo as k, isSentStatus as l, getClassName as m, arrayEqual as n, getMimeTypesUIKitAccepts as o, isFileMessage as p, isImageMessage as q, isImageFileInfo as r, isThumbnailMessage as s, isAudioMessage as t, isGifMessage as u, isVideoMessage as v, isUserMessage as w, getUIKitMessageType as x, getUIKitMessageTypes as y, getSenderName as z };
598
- //# sourceMappingURL=index-cd866969.js.map
598
+ //# sourceMappingURL=index-afdd497f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-cd866969.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo && isImage(fileInfo.mimeType);\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isGifFileInfo = (fileInfo: UploadedFileInfo): boolean => (\n fileInfo && isGif(fileInfo.mimeType)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","_objectSpread","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","_message$ogMetaData","_message$ogMetaData2","_message$ogMetaData3","_message$ogMetaData4","ogMetaData","url","title","description","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isGifFileInfo","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_message$metaArrays$f","_message$metaArrays","_message$metaArrays$f2","_message$metaArrays$f3","typeParameter","split","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","currentValue","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","_emojiContainer$emoji","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","_emojiContainer$emoji2","emojiMap","Map","forEach","category","_category$emojis","emoji","set","findEmojiUrl","targetKey","_ref","getEmojiUrl","emojiKey","_emojiContainer$emoji3","_emojiContainer$emoji4","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","_params$senderUserIds","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","_message$isUserMessag","_message$isFileMessag","_params$senderUserIds2","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","_searchFilter$fields$","_searchFilter$fields","_userIdsFilter$userId","_channel$name2","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","metadataKey","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery","searchFields","searchField","_channel$name","name","toLowerCase","_channel$members","members","member","_channel$members2","includeMode","queryType","memberIds","_channel$members3","every","isFrozen","RegExp","_channel$members4","lowerCasedSubString","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","cachedMetaData","metadataValue","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","_channel$lastMessage2","ch","targetIndex","_channel$lastMessage","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","exec","endIndex","startIndex","normalText","normal","mentionedUser","mention","arrayEqual","array1","array2"],"mappings":";;;;AAiBA;AACO,MAAMA,eAAe,GAAG;AAC7BC,EAAAA,KAAK,EAAE,CACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,YAAY;GACb;;EACDC,KAAK,EAAE,CACL,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,iBAAiB;GAClB;;EACDC,KAAK,EAAE,CACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,WAAW,CACZ;AACDC,EAAAA,QAAQ,EAAE,CACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,UAAU,CACX;AACDC,EAAAA,WAAW,EAAE,CACX,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,yEAAyE,EACzE,+BAA+B,EAC/B,sBAAsB,EACtB,kBAAkB,EAClB,0BAA0B,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,qCAAqC,EACrC,iDAAiD,EACjD,gDAAgD,EAChD,yCAAyC,EACzC,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,+BAA+B,EAC/B,2EAA2E,EAC3E,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,mEAAmE,EACnE,iBAAiB,EACjB,iCAAiC,EACjC,iBAAiB,EACjB,6BAA6B,CAAA;AAEjC,CAAC,CAAA;AAEYC,MAAAA,wBAAwB,GAAIC,mBAAmC,IAAa;EACvF,MAAM;IAAEN,KAAK;IAAEC,KAAK;AAAEC,IAAAA,KAAAA;AAAM,GAAC,GAAGH,eAAe,CAAA;AAE/C,EAAA,IAAIQ,KAAK,CAACC,OAAO,CAACF,mBAAmB,CAAC,IAAIA,mBAAmB,CAACG,MAAM,GAAG,CAAC,EAAE;IACxE,OACEH,mBAAmB,CAChBI,MAAM,CAAC,CAACC,WAA0B,EAAEC,kBAA0B,KAC7DD,WAAW,CAACE,MAAM,CAChBC,CAAK,CAACF,kBAAkB,CAAC,CACtBG,IAAI,CAAC,OAAO,EAAE,MAAMf,KAAK,CAAC,CAC1Be,IAAI,CAAC,OAAO,EAAE,MAAMd,KAAK,CAAC,CAC1Bc,IAAI,CAAC,OAAO,EAAE,MAAMb,KAAK,CAAC,CAC1Bc,SAAS,CAAC,MAAM,EAAE,CAAC,CAEzB,EAAE,EAAE,CAAC,CACLC,IAAI,EAAE,CAAA;AAEb,GAAA;EACA,OACEC,MAAM,CAACC,MAAM,CAACpB,eAAe,CAAC,CAC3BW,MAAM,CAAC,CAACC,WAA0B,EAAES,SAAwB,KAC3DT,WAAW,CAACE,MAAM,CAACO,SAAS,CAC7B,EAAE,EAAE,CAAC,CACLH,IAAI,EAAE,CAAA;AAEX;AACF,EAAC;;AAED;;AAUO,MAAMI,iBAAoC,GAAG;AAClDC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,cAAc,EAAE,gBAAgB;AAChCC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,OAAO,EAAE,SAAA;AACX,EAAC;AACD;;AASO,MAAMC,cAA8B,GAAG;AAC5C7B,EAAAA,KAAK,EAAE,OAAO;AACdE,EAAAA,KAAK,EAAE,OAAO;AACdD,EAAAA,KAAK,EAAE,OAAO;AACd6B,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAA;AACV,CAAC,CAAA;;AAED;;AAOA,MAAMC,oBAA0C,GAAG;AACjDC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,OAAO,EAAE,SAAA;AACX,CAAC,CAAA;AAKYC,MAAAA,eAAe,GAAIC,IAAY,IAAc;AACxD,EAAA,IAAIA,IAAI,KAAK,EAAE,IAAIA,IAAI,KAAK,IAAI,EAAE;AAChC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,EAAC;AAEYC,MAAAA,OAAO,GAAIC,IAAY,IAAc1C,eAAe,CAACC,KAAK,CAAC0C,OAAO,CAACD,IAAI,CAAC,IAAI,EAAC;AAC7EE,MAAAA,OAAO,GAAIF,IAAY,IAAc1C,eAAe,CAACE,KAAK,CAACyC,OAAO,CAACD,IAAI,CAAC,IAAI,EAAC;MAC7EG,KAAK,GAAIH,IAAY,IAAcA,IAAI,KAAK,YAAW;AACvDI,MAAAA,mBAAmB,GAAIJ,IAAY,IAAcD,OAAO,CAACC,IAAI,CAAC,IAAIE,OAAO,CAACF,IAAI,EAAC;AACrF,MAAMK,OAAO,GAAIL,IAAY,IAAc1C,eAAe,CAACG,KAAK,CAACwC,OAAO,CAACD,IAAI,CAAC,IAAI,CAAC,CAAA;AAEnF,MAAMM,iBAAiB,GAAGA,MAAAC,cAAA,CAAA,EAAA,EAA4BnB,cAAc,EAAG;AACjEoB,MAAAA,gBAAgB,GAAIR,IAAY,IAAa;EACxD,IAAIG,KAAK,CAACH,IAAI,CAAC,EAAE,OAAOZ,cAAc,CAACC,GAAG,CAAA;EAC1C,IAAIU,OAAO,CAACC,IAAI,CAAC,EAAE,OAAOZ,cAAc,CAAC7B,KAAK,CAAA;EAC9C,IAAI2C,OAAO,CAACF,IAAI,CAAC,EAAE,OAAOZ,cAAc,CAAC5B,KAAK,CAAA;EAC9C,IAAI6C,OAAO,CAACL,IAAI,CAAC,EAAE,OAAOZ,cAAc,CAAC3B,KAAK,CAAA;EAC9C,OAAO2B,cAAc,CAACG,MAAM,CAAA;AAC9B,EAAC;AAEM,MAAMkB,aAAa,GACxBC,OAA4B,IACfA,OAAO,CAACC,aAAa,KAAK,YAAY;MAQxCC,aAAa,GAAGA,CAC3BC,OAAqB,EACrBH,OAA4B,KAE5BI,uBAAuB,CAACD,OAAO,EAAEH,OAAO,CAAC,KAAKK,qBAAqB,CAACC,KACrE;AACD;AACaC,MAAAA,eAAe,GAC1BP,OAA4B,IACf,CAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,aAAa,MAAK,SAAS;AACtCO,MAAAA,gBAAgB,GAC3BR,OAA4B,IACf,CAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEC,aAAa,MAAK,UAAU;AAC7C,MAAMQ,YAAY,GAAIC,KAAa,IACxCA,KAAK,KAAKL,qBAAqB,CAACM,IAAI,IACjCD,KAAK,KAAKL,qBAAqB,CAACO,SAAS,IACzCF,KAAK,KAAKL,qBAAqB,CAACC,KACpC;AAEM,MAAMO,cAAc,GAAIb,OAAwB,IACrDA,OAAO,KACLA,OAAO,CAAC,gBAAgB,CAAC,IAAI,OAAOA,OAAO,CAACa,cAAc,KAAK,UAAU,GACrEb,OAAO,CAACa,cAAc,EAAE,GACxB,CAAAb,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEc,WAAW,MAAK,OAAO,CAEvC,CAAA;AACYC,MAAAA,aAAa,GAAIf,OAAwB,IACpDA,OAAO,KACLA,OAAO,CAAC,eAAe,CAAC,IAAI,OAAOA,OAAO,CAACe,aAAa,KAAK,UAAU,GACnEf,OAAO,CAACe,aAAa,EAAE,GACvB,CAAAf,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEc,WAAW,MAAK,MAAM,EAEtC;AACYE,MAAAA,aAAa,GAAIhB,OAAwB,IACpDA,OAAO,KACLA,OAAO,CAAC,eAAe,CAAC,IAAI,OAAOA,OAAO,CAACgB,aAAa,KAAK,UAAU,GACnEhB,OAAO,CAACgB,aAAa,EAAE,GACvB,CAAAhB,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEc,WAAW,MAAK,MAAM,EAEtC;MACYG,sBAAsB,GACjCjB,OAAwB,IAExBA,OAAO,KACLA,OAAO,CAAC,wBAAwB,CAAC,IAAI,OAAOA,OAAO,CAACiB,sBAAsB,KAAK,UAAU,GACrFjB,OAAO,CAACiB,sBAAsB,EAAE,GAEhCjB,OAAO,CAACc,WAAW,KAAK,MAAM,IAC3B/C,MAAM,CAACmD,SAAS,CAACC,cAAc,CAACC,IAAI,CAACpB,OAAO,EAAE,cAAc,CAChE,EAEN;AAIYqB,MAAAA,eAAe,GAAIrB,OAAwB,IACtD,CAAC,CAACA,OAAO,CAACsB,eAAe,IAAI,CAAC,CAACtB,OAAO,CAACuB,cACxC;AACM,MAAMC,WAAW,GAAIxB,OAA4B,IAAA;AAAA,EAAA,IAAAyB,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,OAAc,CAAC,EACrE5B,OAAO,IAAIe,aAAa,CAACf,OAAO,CAAC,IAAIA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAE6B,UAAU,KACtD,CAAAJ,mBAAA,GAAAzB,OAAO,CAAC6B,UAAU,MAAA,IAAA,IAAAJ,mBAAA,KAAA,KAAA,CAAA,IAAlBA,mBAAA,CAAoBK,GAAG,IAAA,CAAAJ,oBAAA,GACpB1B,OAAO,CAAC6B,UAAU,MAAAH,IAAAA,IAAAA,oBAAA,KAAlBA,KAAAA,CAAAA,IAAAA,oBAAA,CAAoBK,KAAK,IAAAJ,CAAAA,oBAAA,GACzB3B,OAAO,CAAC6B,UAAU,cAAAF,oBAAA,KAAA,KAAA,CAAA,IAAlBA,oBAAA,CAAoBK,WAAW,IAAA,CAAAJ,oBAAA,GAC/B5B,OAAO,CAAC6B,UAAU,MAAAD,IAAAA,IAAAA,oBAAA,KAAlBA,KAAAA,CAAAA,IAAAA,oBAAA,CAAoBK,YAAY,CACpC,CACF,CAAA;AAAA,EAAA;AACM,MAAMC,aAAa,GAAIlC,OAA4B,IACxDe,aAAa,CAACf,OAAO,EACtB;MACYmC,kBAAkB,GAAInC,OAA4B,IAC7DA,OAAO,IAAIgB,aAAa,CAAChB,OAAO,CAAC,IAAIN,mBAAmB,CAAEM,OAAO,CAAiBV,IAAI,EACvF;MACY8C,cAAc,GAAIpC,OAAoB,IAAcA,OAAO,IAAImC,kBAAkB,CAACnC,OAAO,CAAC,IAAIX,OAAO,CAACW,OAAO,CAACV,IAAI,EAAC;AACnH+C,MAAAA,eAAe,GAAIC,QAA0B,IAAcA,QAAQ,IAAIjD,OAAO,CAACiD,QAAQ,CAACC,QAAQ,EAAC;MACjGC,cAAc,GAAIxC,OAA4B,IACzDA,OAAO,IAAImC,kBAAkB,CAACnC,OAAO,CAAC,IAAIR,OAAO,CAAEQ,OAAO,CAAiBV,IAAI,EAChF;MACYmD,YAAY,GAAIzC,OAA4B,IACvDA,OAAO,IAAImC,kBAAkB,CAACnC,OAAO,CAAC,IAAIP,KAAK,CAAEO,OAAO,CAAiBV,IAAI,EAC9E;AACYoD,MAAAA,aAAa,GAAIJ,QAA0B,IACtDA,QAAQ,IAAI7C,KAAK,CAAC6C,QAAQ,CAACC,QAAQ,EACpC;MACYI,cAAc,GAAI3C,OAAoB,IAAcA,OAAO,IAAIgB,aAAa,CAAChB,OAAO,CAAC,IAAIL,OAAO,CAACK,OAAO,CAACV,IAAI,EAAC;AACpH,MAAMsD,sBAAsB,GAAItD,IAAY,IAAe,UAAU,CAACuD,IAAI,CAACvD,IAAI,CAAE,CAAA;AACjF,MAAMwD,sBAAsB,GAAIxD,IAAY,IAAe,UAAU,CAACuD,IAAI,CAACvD,IAAI,CAAE,CAAA;AAC3EyD,MAAAA,cAAc,GAAI/C,OAAsC,IAAc;AAAA,EAAA,IAAAgD,qBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;AACjF;AACA,EAAA,IAAI,EAAEnD,OAAO,IAAIgB,aAAa,CAAChB,OAAO,CAAC,CAAC,IAAI,CAAEA,OAAO,CAAiBV,IAAI,EAAE;AAC1E,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,MAAM,CAACiD,QAAQ,EAAEa,aAAa,CAAC,GAAIpD,OAAO,CAAiBV,IAAI,CAAC+D,KAAK,CAAC,GAAG,CAAC,CAAA;AAE1E,EAAA,IAAI,CAACT,sBAAsB,CAACL,QAAQ,CAAC,EAAE;AACrC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,IAAIa,aAAa,EAAE;IACjB,MAAM,CAACE,GAAG,EAAEC,KAAK,CAAC,GAAGH,aAAa,CAACC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC7C,IAAA,OAAOC,GAAG,KAAK,UAAU,IAAIC,KAAK,KAAK,OAAO,CAAA;AAChD,GAAA;AACA;EACA,OAAOT,sBAAsB,EAAAE,qBAAA,GAAChD,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAAiD,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,mBAAA,GAAPjD,OAAO,CAAEwD,UAAU,MAAA,IAAA,IAAAP,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,sBAAA,GAAnBD,mBAAA,CAAqBQ,IAAI,CAAEC,SAAS,IAAKA,SAAS,CAACJ,GAAG,KAAK,2BAA2B,CAAC,MAAAJ,IAAAA,IAAAA,sBAAA,wBAAAC,sBAAA,GAAvFD,sBAAA,CAAyFK,KAAK,MAAA,IAAA,IAAAJ,sBAAA,KAA9FA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAiG,CAAC,CAAC,MAAA,IAAA,IAAAH,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAC,CAAA;AAC1I,EAAC;MAEYW,eAAe,GAC1B3D,OAAwB,IACZe,aAAa,CAACf,OAAO,CAAC,IAAK,CAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE4D,SAAS,IAAG,EAAE;AAKzD,MAAMC,oBAAoB,GAAGA,MAAAhE,cAAA,CAAA,EAAA,EAA+B3B,iBAAiB,EAAG;;AAEvF;AACA;AACA;AACa4F,MAAAA,mBAAmB,GAC9B9D,OAAwB,IACb;EACX,IAAIa,cAAc,CAACb,OAAO,CAAiB,EAAE,OAAO9B,iBAAiB,CAACC,KAAK,CAAA;AAC3E,EAAA,IAAI4C,aAAa,CAACf,OAAO,CAAgB,EAAE;IACzC,OAAOwB,WAAW,CAACxB,OAAO,CAAgB,GAAG9B,iBAAiB,CAACM,EAAE,GAAGN,iBAAiB,CAACE,IAAI,CAAA;AAC5F,GAAA;AACA;AACA,EAAA,IAAI6C,sBAAsB,CAACjB,OAAO,CAAgB,EAAE;IAClD,OAAO9B,iBAAiB,CAACI,cAAc,CAAA;AACzC,GAAA;AACA,EAAA,IAAI0C,aAAa,CAAChB,OAAO,CAAgB,EAAE;AACzC,IAAA,IAAImC,kBAAkB,CAACnC,OAAO,CAAgB,EAAE;MAC9C,OAAO9B,iBAAiB,CAACK,SAAS,CAAA;AACpC,KAAA;AACA,IAAA,IAAIwE,cAAc,CAAC/C,OAAO,CAAgB,EAAE;MAC1C,OAAOtB,cAAc,CAACE,KAAK,CAAA;AAC7B,KAAA;IACA,OAAOV,iBAAiB,CAACG,IAAI,CAAA;AAC/B,GAAA;EACA,OAAOH,iBAAiB,CAACO,OAAO,CAAA;AAClC,EAAC;AACM,MAAMsF,uBAAuB,GAAGA,MAAAlE,cAAA,CAAA,EAAA,EAAkCf,oBAAoB,EAAG;AAEhG,MAAMkF,OAAO,GAAGA,CAACxG,WAA0B,EAAEyG,YAAoC,KAAiB;AAChG,EAAA,IAAI7G,KAAK,CAACC,OAAO,CAAC4G,YAAY,CAAC,EAAE;AAC/B,IAAA,OAAO,CAAC,GAAGzG,WAAW,EAAE,GAAGyG,YAAY,CAAC,CAAA;AAC1C,GAAC,MAAM;AACLzG,IAAAA,WAAW,CAAC0G,IAAI,CAACD,YAAY,CAAC,CAAA;AAC9B,IAAA,OAAOzG,WAAW,CAAA;AACpB,GAAA;AACF,CAAC,CAAA;AACM,MAAM2G,YAAY,GAAIC,UAAkD,IAC7EhH,KAAK,CAACC,OAAO,CAAC+G,UAAU,CAAC,GACrBA,UAAU,CAAC7G,MAAM,CAACyG,OAAO,EAAE,EAAE,CAAC,CAAClG,IAAI,CAAC,GAAG,CAAC,GACxCsG,WACL;MACYC,WAAW,GAAGA,CAACC,MAAc,EAAEC,QAAkB,KAC5DA,QAAQ,CAACC,OAAO,CAACC,IAAI,CAAEC,aAAqB,IAAcA,aAAa,KAAKJ,MAAM,EACnF;AAMM,MAAMK,qBAAqB,GAAGA,CAACJ,QAAkB,EAAED,MAAc,EAAEM,kBAAuC,EAAEC,SAAoB,KAAa;EAClJ,IAAIC,GAAG,GAAG,EAAE,CAAA;AACZ,EAAA,IAAIT,WAAW,CAACC,MAAM,EAAEC,QAAQ,CAAC,EAAE;AACjCO,IAAAA,GAAG,GAAGP,QAAQ,CAACC,OAAO,CAAClH,MAAM,KAAK,CAAC,GAAGuH,SAAS,CAACE,YAAY,GAAGF,SAAS,CAACG,gBAAgB,CAAA;AAC3F,GAAA;AACA,EAAA,OAAS,GAAET,QAAQ,CAACC,OAAO,CACxBS,MAAM,CAAEP,aAAqB,IAAKA,aAAa,KAAKJ,MAAM,CAAC,CAC3DY,GAAG,CAAER,aAAqB,IAAME,kBAAkB,CAACO,GAAG,CAACT,aAAa,CAAC,IAAIG,SAAS,CAACO,qBAAsB,CAAC,CAC1GtH,IAAI,CAAC,IAAI,CAAE,CAAA,EAAEgH,GAAI,CAAC,CAAA,CAAA;AACvB,EAAC;AAkCD,MAAMO,OAAO,GAAG,iIAAiI,CAAA;AAC1I,MAAMC,KAAK,GAAIlG,IAAY,IAAciG,OAAO,CAACxC,IAAI,CAACzD,IAAI,EAAC;MAKrDmG,cAAc,GAAGA,CAACC,OAAe,EAAEC,MAAe,KAAa;AAC1E,EAAA,IAAI,CAACA,MAAM,EAAEA,MAAM,GAAG,EAAE,CAAA;EACxB,IAAID,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAKE,SAAS,EAAE,OAAO,EAAE,CAAA;AACxD,EAAA,IAAIF,OAAO,CAAClI,MAAM,IAAImI,MAAM,EAAE,OAAOD,OAAO,CAAA;EAC5C,MAAMG,SAAS,GAAG,KAAK,CAAA;AACvB,EAAA,MAAMC,MAAM,GAAGD,SAAS,CAACrI,MAAM,CAAA;AAC/B,EAAA,MAAMuI,WAAW,GAAGJ,MAAM,GAAGG,MAAM,CAAA;EACnC,MAAME,UAAU,GAAGC,IAAI,CAACC,IAAI,CAACH,WAAW,GAAG,CAAC,CAAC,CAAA;EAC7C,MAAMI,SAAS,GAAGF,IAAI,CAACG,KAAK,CAACL,WAAW,GAAG,CAAC,CAAC,CAAA;EAC7C,OAAOL,OAAO,CAACW,MAAM,CAAC,CAAC,EAAEL,UAAU,CAAC,GAAGH,SAAS,GAAGH,OAAO,CAACW,MAAM,CAACX,OAAO,CAAClI,MAAM,GAAG2I,SAAS,CAAC,CAAA;AAC/F,EAAC;AAEYG,MAAAA,eAAe,GAAIhH,IAAY,IAAc;AACxD;EACA,IAAIiH,MAAM,CAACC,aAAa,IAAID,MAAM,CAACC,aAAa,CAACC,OAAO,EAAE;AACxD;AACA;IACA,OAAOF,MAAM,CAACC,aAAa,CAACC,OAAO,CAAC,MAAM,EAAEnH,IAAI,CAAC,CAAA;AACnD,GAAA;EACA,IAAIoH,QAAQ,CAACC,qBAAqB,IAAID,QAAQ,CAACC,qBAAqB,CAAC,MAAM,CAAC,EAAE;AAC5E,IAAA,MAAMC,QAAQ,GAAGF,QAAQ,CAACG,aAAa,CAAC,UAAU,CAAC,CAAA;IACnDD,QAAQ,CAACE,WAAW,GAAGxH,IAAI,CAAA;AAC3BsH,IAAAA,QAAQ,CAACG,KAAK,CAACC,QAAQ,GAAG,OAAO,CAAC;AAClCN,IAAAA,QAAQ,CAACO,IAAI,CAACC,WAAW,CAACN,QAAQ,CAAC,CAAA;IACnCA,QAAQ,CAACO,MAAM,EAAE,CAAA;IACjB,IAAI;AACF,MAAA,OAAOT,QAAQ,CAACU,WAAW,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC,OAAOC,EAAE,EAAE;AACX,MAAA,OAAO,KAAK,CAAA;AACd,KAAC,SAAS;AACRX,MAAAA,QAAQ,CAACO,IAAI,CAACK,WAAW,CAACV,QAAQ,CAAC,CAAA;AACrC,KAAA;AACF,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,EAAC;AAEM,MAAMW,eAAe,GAAIC,cAA8B,IAAA;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,OAC5DD,cAAc,KAAdA,IAAAA,IAAAA,cAAc,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAdD,cAAc,CAAEE,eAAe,MAAA,IAAA,IAAAD,qBAAA,KAA/BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAiCrC,GAAG,CAAEuC,aAA4B,IAAKA,aAAa,CAACC,MAAM,CAAC,CACzFnK,MAAM,CAAC,CAACoK,OAAqB,EAAEC,OAAqB,KAAKD,OAAO,CAACjK,MAAM,CAACkK,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;AAAA,EACzF;AACYC,MAAAA,cAAc,GAAIP,cAA8B,IAAyB;AAAA,EAAA,IAAAQ,sBAAA,CAAA;AACpF,EAAA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAAE,CAAA;AAC1BV,EAAAA,cAAc,aAAdA,cAAc,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAQ,sBAAA,GAAdR,cAAc,CAAEE,eAAe,MAAAM,IAAAA,IAAAA,sBAAA,uBAA/BA,sBAAA,CAAiCG,OAAO,CAAEC,QAAuB,IAAK;AAAA,IAAA,IAAAC,gBAAA,CAAA;AACpED,IAAAA,QAAQ,aAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,gBAAA,GAARD,QAAQ,CAAER,MAAM,MAAAS,IAAAA,IAAAA,gBAAA,uBAAhBA,gBAAA,CAAkBF,OAAO,CAAEG,KAAY,IAAW;AAChD,MAAA,IAAIA,KAAK,IAAIA,KAAK,CAAC9E,GAAG,EAAE;QACtByE,QAAQ,CAACM,GAAG,CAACD,KAAK,CAAC9E,GAAG,EAAE8E,KAAK,CAAC,CAAA;AAChC,OAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;AACF,EAAA,OAAOL,QAAQ,CAAA;AACjB,EAAC;AACD,MAAMO,YAAY,GAAIC,SAAiB,IAAKC,IAAA,IAAA;EAAA,IAAC;AAAElF,IAAAA,GAAAA;AAAI,GAAC,GAAAkF,IAAA,CAAA;EAAA,OAAKlF,GAAG,KAAKiF,SAAS,CAAA;AAAA,CAAA,CAAA;MAC7DE,WAAW,GAAGA,CAACnB,cAA+B,EAAEoB,QAAiB,KAAa;EAAA,IAAAC,sBAAA,EAAAC,sBAAA,CAAA;EACzF,MAAMC,YAAY,GAAGP,YAAY,CAACI,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,QAAQ,GAAI,EAAE,CAAC,CAAA;EACjD,OAAO,CAAApB,cAAc,KAAdA,IAAAA,IAAAA,cAAc,wBAAAqB,sBAAA,GAAdrB,cAAc,CAAEE,eAAe,CACnC/D,IAAI,CAAEyE,QAAQ,IAAKA,QAAQ,CAACR,MAAM,CAACjD,IAAI,CAACoE,YAAY,CAAC,CAAC,MAAA,IAAA,IAAAF,sBAAA,KAAAC,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,sBAAA,GADlDD,sBAAA,CACoDjB,MAAM,CAC9DjE,IAAI,CAACoF,YAAY,CAAC,cAAAD,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAFdA,sBAAA,CAGH9G,GAAG,KAAI,EAAE,CAAA;AACf,EAAC;AAEM,MAAMgH,WAAW,GAAIC,IAAU,IAAc,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEC,UAAU,MAAID,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEE,QAAQ,CAAA,KAAIF,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJA,IAAI,CAAEzE,MAAM,CAAC,CAAA;AAChG,MAAM4E,aAAa,GAAIlJ,OAA4B,IACxD,CAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEmJ,MAAM,KAAIL,WAAW,CAAC9I,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEmJ,MAAM,EAC/C;AAEM,MAAMC,cAAc,GAAGA,CAAIC,CAAM,EAAEC,CAAM,KAAc;EAC5D,IAAID,CAAC,KAAKC,CAAC,EAAE;AACX,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAID,CAAC,IAAI,IAAI,IAAIC,CAAC,IAAI,IAAI,EAAE;AAC1B,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAID,CAAC,CAAC/L,MAAM,KAAKgM,CAAC,CAAChM,MAAM,EAAE;AACzB,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EAEA,MAAMiM,OAAO,GAAG,CAAC,GAAGF,CAAC,CAAC,CAACG,IAAI,EAAE,CAAA;EAC7B,MAAMC,OAAO,GAAG,CAAC,GAAGH,CAAC,CAAC,CAACE,IAAI,EAAE,CAAA;AAE7B,EAAA,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,OAAO,CAACjM,MAAM,EAAE,EAAEoM,CAAC,EAAE;IACvC,IAAIH,OAAO,CAACG,CAAC,CAAC,KAAKD,OAAO,CAACC,CAAC,CAAC,EAAE;AAC7B,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AACM,MAAMC,QAAQ,GAAIZ,IAAoB,IAAc;AACzD,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK,CAAA;EACvB,OAAO,CAAC,EAAEA,IAAI,CAACa,kBAAkB,IAAIb,IAAI,CAACC,UAAU,CAAC,CAAA;AACvD,CAAC,CAAA;MAEYa,uBAAuB,GAAGA,CACrCC,MAAyB,EACzB9J,OAA4B,KAChB;AAAA,EAAA,IAAA+J,qBAAA,CAAA;EACZ,MAAM;AAAEC,IAAAA,iBAAiB,GAAG,EAAA;AAAG,GAAC,GAAGF,MAAM,CAAA;AACzC;AACA,EAAA,IAAIA,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,IAANA,MAAM,CAAEG,iBAAiB,IAAIH,MAAM,CAACG,iBAAiB,KAAKjK,OAAO,CAACc,WAAW,EAAE;AACjF,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EACA,IAAI,CAAAkJ,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAE1M,MAAM,IAAG,CAAC,EAAE;IACjC,MAAM4M,WAAW,GAAGF,iBAAiB,CAAC/E,MAAM,CAAEkF,IAAI,IAAKA,IAAI,KAAK,GAAG,CAAC,CAAA;AACpE;AACA,IAAA,IAAID,WAAW,CAAC5M,MAAM,GAAG,CAAC,IAAI,CAAC4M,WAAW,CAACE,QAAQ,CAACpK,OAAO,CAACqK,UAAU,CAAC,EAAE;AACvE,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;EACA,IAAIP,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,CAAEQ,mBAAmB,IAAI,CAAAR,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,qBAAA,GAAND,MAAM,CAAEQ,mBAAmB,MAAAP,IAAAA,IAAAA,qBAAA,KAA3BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAA6BzM,MAAM,IAAG,CAAC,EAAE;IAAA,IAAAiN,qBAAA,EAAAC,qBAAA,CAAA;AAC1E,IAAA,IAAIxK,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAAuK,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAPvK,OAAO,CAAEe,aAAa,MAAA,IAAA,IAAAwJ,qBAAA,KAAtBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAAnJ,IAAA,CAAApB,OAAO,CAAmB,IAAIA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAwK,qBAAA,GAAPxK,OAAO,CAAEgB,aAAa,MAAAwJ,IAAAA,IAAAA,qBAAA,eAAtBA,qBAAA,CAAApJ,IAAA,CAAApB,OAAO,CAAmB,EAAE;AAAA,MAAA,IAAAyK,sBAAA,CAAA;MAC5D,MAAMC,aAAa,GAAI1K,OAAO,CAAyBmJ,MAAM,IAAInJ,OAAO,CAAC,SAAS,CAAC,CAAA;MACnF,IAAI,EAAC8J,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,IAAA,CAAAW,sBAAA,GAANX,MAAM,CAAEQ,mBAAmB,MAAAG,IAAAA,IAAAA,sBAAA,eAA3BA,sBAAA,CAA6BL,QAAQ,CAACM,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEpG,MAAM,CAAC,CAAE,EAAA;AACjE,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AACF,KAAC,MAAM;AACL,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;EACA,IAAI,EAACwF,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,IAANA,MAAM,CAAEa,wBAAwB,CAAK3K,KAAAA,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAEsB,eAAe,IAAItB,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAPA,OAAO,CAAEuB,aAAa,CAAC,EAAE;AAC7F,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,EAAC;AAEM,MAAMqJ,uBAAuB,GAAGA,CAACd,MAA6B,EAAE3J,OAAqB,EAAE0K,aAAqB,KAAc;AAAA,EAAA,IAAAC,qBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,cAAA,CAAA;EAC/H,MAAM;IACJC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,aAAa;IACbrB,iBAAiB;IACjBsB,iBAAiB;IACjBC,0BAA0B;IAC1BC,yBAAyB;IACzBC,sBAAsB;IACtBC,mBAAmB;IACnBC,mBAAmB;IACnBC,mBAAmB;IACnBC,mBAAmB;IACnBC,kBAAkB;AAClBC,IAAAA,WAAW,GAAG,EAAE;AAChBC,IAAAA,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAC3BC,IAAAA,uBAAAA;AACF,GAAC,GAAGnC,MAAM,CAAA;AAEV,EAAA,IAAI,CAACoB,YAAY,IAAI,CAAA/K,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE+L,WAAW,MAAK,IAAI,EAAE;AAClD,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAId,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,IAAZA,YAAY,CAAEe,KAAK,IAAI,CAAA,CAAArB,qBAAA,GAACM,YAAY,KAAZA,IAAAA,IAAAA,YAAY,wBAAAL,oBAAA,GAAZK,YAAY,CAAEgB,MAAM,MAAA,IAAA,IAAArB,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAApBA,oBAAA,CAAsBzN,MAAM,MAAAwN,IAAAA,IAAAA,qBAAA,cAAAA,qBAAA,GAAI,CAAC,IAAI,CAAC,EAAE;AAClE,IAAA,MAAMuB,WAAW,GAAGjB,YAAY,CAACe,KAAK,CAAA;AACtC,IAAA,MAAMG,YAAY,GAAGlB,YAAY,CAACgB,MAAM,CAAA;IACxC,IAAIC,WAAW,IAAIC,YAAY,IAAIA,YAAY,CAAChP,MAAM,GAAG,CAAC,EAAE;AAC1D,MAAA,IAAI,CAACgP,YAAY,CAAC7H,IAAI,CAAE8H,WAAW,IAAK;AACtC,QAAA,QAAQA,WAAW;AACjB,UAAA,KAAK,cAAc;AAAE,YAAA;AAAA,cAAA,IAAAC,aAAA,CAAA;cACnB,OAAOrM,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAqM,aAAA,GAAPrM,OAAO,CAAEsM,IAAI,MAAAD,IAAAA,IAAAA,aAAA,uBAAbA,aAAA,CAAeE,WAAW,EAAE,CAACtC,QAAQ,CAACiC,WAAW,CAACK,WAAW,EAAE,CAAC,CAAA;AACzE,aAAA;AACA,UAAA,KAAK,iBAAiB;AAAE,YAAA;AAAA,cAAA,IAAAC,gBAAA,CAAA;AACtB,cAAA,OAAOxM,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAwM,gBAAA,GAAPxM,OAAO,CAAEyM,OAAO,MAAAD,IAAAA,IAAAA,gBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,gBAAA,CAAkBlI,IAAI,CAAEoI,MAAc,IAAKA,MAAM,CAAC5D,QAAQ,CAACyD,WAAW,EAAE,CAACtC,QAAQ,CAACiC,WAAW,CAACK,WAAW,EAAE,CAAC,CAAC,CAAA;AACtH,aAAA;AACA,UAAA;AAAS,YAAA;AACP,cAAA,OAAO,IAAI,CAAA;AACb,aAAA;AAAC,SAAA;AAEL,OAAC,CAAC,EAAE;AACF,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,IAAI,CAAArB,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAAL,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,qBAAA,GAAbK,aAAa,CAAE7G,OAAO,MAAA,IAAA,IAAAwG,qBAAA,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAwB1N,MAAM,IAAG,CAAC,EAAE;AAAA,IAAA,IAAAwP,iBAAA,CAAA;IACtC,MAAM;MAAEC,WAAW;AAAEC,MAAAA,SAAAA;AAAU,KAAC,GAAG3B,aAAa,CAAA;AAChD,IAAA,MAAM7G,OAAsB,GAAG6G,aAAa,CAAC7G,OAAO,CAAA;IACpD,MAAMyI,SAAS,GAAG9M,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA2M,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,iBAAA,GAAP3M,OAAO,CAAEyM,OAAO,cAAAE,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkB5H,GAAG,CAAE2H,MAAc,IAAKA,MAAM,CAACvI,MAAM,CAAC,CAAA;IAC1E,IAAI,CAACyI,WAAW,EAAE;AAAA,MAAA,IAAAG,iBAAA,CAAA;AAAE;AAClB,MAAA,IAAI,CAAC1I,OAAO,CAAC4F,QAAQ,CAACS,aAAa,CAAC,EAAE;AACpCrG,QAAAA,OAAO,CAACN,IAAI,CAAC2G,aAAa,CAAC,CAAC;AAC9B,OAAA;;MACA,IAAI,CAAA1K,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAA+M,iBAAA,GAAP/M,OAAO,CAAEyM,OAAO,cAAAM,iBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,iBAAA,CAAkB5P,MAAM,IAAGkH,OAAO,CAAClH,MAAM,EAAE;QAC7C,OAAO,KAAK,CAAC;AACf,OAAA;;AACA,MAAA,IAAI,CAAC8L,cAAc,CAAC5E,OAAO,EAAEyI,SAAS,CAAC,EAAE;AACvC,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AACF,KAAC,MAAM,IAAIzI,OAAO,CAAClH,MAAM,GAAG,CAAC,EAAE;AAAE;AAC/B,MAAA,QAAQ0P,SAAS;AACf,QAAA,KAAK,KAAK;AAAE,UAAA;AACV,YAAA,IAAIxI,OAAO,CAACC,IAAI,CAAEH,MAAc,IAAK,CAAC2I,SAAS,CAAC7C,QAAQ,CAAC9F,MAAM,CAAC,CAAC,EAAE;AACjE,cAAA,OAAO,KAAK,CAAA;AACd,aAAA;AACA,YAAA,MAAA;AACF,WAAA;AACA,QAAA,KAAK,IAAI;AAAE,UAAA;AACT,YAAA,IAAIE,OAAO,CAAC2I,KAAK,CAAE7I,MAAc,IAAK,CAAC2I,SAAS,CAAC7C,QAAQ,CAAC9F,MAAM,CAAC,CAAC,EAAE;AAClE,cAAA,OAAO,KAAK,CAAA;AACd,aAAA;AACA,YAAA,MAAA;AACF,WAAA;AAGC,OAAA;AAEL,KAAA;AACF,GAAA;AACA,EAAA,IAAI4G,YAAY,KAAK,KAAK,IAAI,CAAA/K,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE+L,WAAW,MAAK,IAAI,EAAE;AAC3D,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAIf,aAAa,KAAK,KAAK,IAAI,CAAAhL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEiN,QAAQ,MAAK,IAAI,EAAE;AACzD,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAIpD,iBAAiB,IAAI,CAACA,iBAAiB,CAACI,QAAQ,CAACjK,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEkK,UAAU,CAAC,EAAE;AACzE,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EACA,IAAIkB,0BAA0B,IAAI,CAAC,IAAI8B,MAAM,CAAE,CAAA,CAAA,EAAG9B,0BAA2B,CAAC,CAAA,CAAC,CAAC1I,IAAI,CAAC1C,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEkK,UAAU,CAAC,EAAE;AACzG,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EACA,IAAImB,yBAAyB,IAAI,EAACrL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAA8K,cAAA,GAAP9K,OAAO,CAAEsM,IAAI,MAAA,IAAA,IAAAxB,cAAA,KAAA,KAAA,CAAA,IAAbA,cAAA,CAAeyB,WAAW,EAAE,CAACtC,QAAQ,CAACoB,yBAAyB,CAACkB,WAAW,EAAE,CAAC,CAAE,EAAA;AAChH,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAIjB,sBAAsB,EAAE;AAAA,IAAA,IAAA6B,iBAAA,CAAA;AAC1B,IAAA,MAAMC,mBAAmB,GAAG9B,sBAAsB,CAACiB,WAAW,EAAE,CAAA;AAChE,IAAA,IAAIvM,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,IAAA,CAAAmN,iBAAA,GAAPnN,OAAO,CAAEyM,OAAO,MAAA,IAAA,IAAAU,iBAAA,KAAA,KAAA,CAAA,IAAhBA,iBAAA,CAAkBH,KAAK,CAAEN,MAAc,IAAK,CAACA,MAAM,CAAC5D,QAAQ,CAACyD,WAAW,EAAE,CAACtC,QAAQ,CAACmD,mBAAmB,CAAC,CAAC,EAAE;AAC7G,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AACA,EAAA,IAAIjC,iBAAiB,IAAI,CAACA,iBAAiB,CAAClB,QAAQ,CAACjK,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE2B,GAAG,CAAC,EAAE;AAClE,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAI4J,mBAAmB,EAAE;AACvB,IAAA,QAAQA,mBAAmB;AACzB,MAAA,KAAK,aAAa;QAChB,IAAI,CAAAvL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEqN,aAAa,MAAK,QAAQ,EAAE;AACvC,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,cAAc;QACjB,IAAI,CAAArN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEqN,aAAa,MAAK,SAAS,EAAE;AACxC,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,mBAAmB;QACtB,IAAI,CAAArN,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEqN,aAAa,MAAK,SAAS,IAAI,CAAC7D,QAAQ,CAACxJ,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEsN,OAAO,CAAC,EAAE;AACvE,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,uBAAuB;QAC1B,IAAI,CAAAtN,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEqN,aAAa,MAAK,SAAS,IAAI7D,QAAQ,CAACxJ,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAEsN,OAAO,CAAC,EAAE;AACtE,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEZ,GAAA;AACA,EAAA,IAAI9B,mBAAmB,EAAE;AACvB,IAAA,QAAQA,mBAAmB;AACzB,MAAA,KAAK,eAAe;AAClB,QAAA,IAAIxL,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAEuN,QAAQ,IAAI,CAAAvN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEwN,WAAW,MAAK,UAAU,EAAE;AAC5D,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,aAAa;QAChB,IAAI,EAACxN,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAEuN,QAAQ,CAAE,EAAA;AACtB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,0BAA0B;AAC7B,QAAA,IAAI,EAACvN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAEuN,QAAQ,CAAA,IAAI,CAAAvN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEwN,WAAW,MAAK,0BAA0B,EAAE;AAC7E,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,4BAA4B;AAC/B,QAAA,IAAI,EAACxN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,IAAAA,OAAO,CAAEuN,QAAQ,CAAA,IAAI,CAAAvN,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEwN,WAAW,MAAK,4BAA4B,EAAE;AAC/E,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEZ,GAAA;AACA,EAAA,IAAI/B,mBAAmB,EAAE;AACvB,IAAA,QAAQA,mBAAmB;AACzB,MAAA,KAAK,gBAAgB;QACnB,IAAI,CAAAzL,OAAO,KAAA,IAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAEyN,kBAAkB,MAAK,CAAC,EAAE;AACrC,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEZ,GAAA;AACA,EAAA,IAAI/B,mBAAmB,EAAE;AACvB,IAAA,QAAQA,mBAAmB;AACzB,MAAA,KAAK,QAAQ;QACX,IAAI,EAAC1L,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAE0N,QAAQ,CAAE,EAAA;AACtB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,SAAS;AACZ,QAAA,IAAI1N,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAE0N,QAAQ,EAAE;AACrB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEZ,GAAA;AACA,EAAA,IAAI/B,kBAAkB,EAAE;AACtB,IAAA,QAAQA,kBAAkB;AACxB,MAAA,KAAK,OAAO;QACV,IAAI,EAAC3L,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAE2N,OAAO,CAAE,EAAA;AACrB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AACF,MAAA,KAAK,UAAU;AACb,QAAA,IAAI3N,OAAO,KAAPA,IAAAA,IAAAA,OAAO,eAAPA,OAAO,CAAE2N,OAAO,EAAE;AACpB,UAAA,OAAO,KAAK,CAAA;AACd,SAAA;AACA,QAAA,MAAA;AAAM,KAAA;AAEZ,GAAA;EACA,MAAM;AAAEC,IAAAA,cAAc,GAAG,EAAC;AAAE,GAAC,GAAG5N,OAAO,CAAA;AACvC,EAAA,IAAI4L,WAAW,KAAKC,cAAc,IAAIC,uBAAuB,CAAC,EAAE;AAC9D,IAAA,MAAM+B,aAAqB,GAAGD,cAAc,CAAChC,WAAW,CAAC,CAAA;IACzD,IAAI,CAACiC,aAAa,EAAE;AAClB,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACA,IAAA,IAAIhC,cAAc,IAAI,CAACA,cAAc,CAACmB,KAAK,CAAC5J,KAAK,IAAIyK,aAAa,CAAC5D,QAAQ,CAAC7G,KAAK,CAAC,CAAC,EAAE;AACnF,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IACA,IAAI0I,uBAAuB,IAAI,CAAC+B,aAAa,CAACC,UAAU,CAAChC,uBAAuB,CAAC,EAAE;AACjF,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AACA,EAAA,OAAO,IAAI,CAAA;AACb,EAAC;AAEM,MAAMiC,YAAY,GAAGA,CAACC,IAAmB,EAAEC,MAAc,KAAa;AAAE;EAC7E,MAAMC,KAAK,GAAGtI,IAAI,CAACG,KAAK,CAACiI,IAAI,CAAC7Q,MAAM,GAAG,CAAC,CAAC,CAAA;AACzC,EAAA,IAAI6Q,IAAI,CAACE,KAAK,CAAC,KAAKD,MAAM,EAAE;AAC1B,IAAA,OAAOC,KAAK,CAAA;AACd,GAAA;EACA,MAAMC,QAAQ,GAAGH,IAAI,CAACI,KAAK,CAAC,CAAC,EAAEF,KAAK,CAAC,CAAA;AACrC,EAAA,MAAMG,SAAS,GAAGL,IAAI,CAACI,KAAK,CAACF,KAAK,GAAG,CAAC,EAAEF,IAAI,CAAC7Q,MAAM,CAAC,CAAA;AACpD,EAAA,IAAI6Q,IAAI,CAACE,KAAK,CAAC,GAAGD,MAAM,EAAE;AACxB,IAAA,OAAOC,KAAK,GAAG,CAAC,IAAIG,SAAS,CAAClR,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG4Q,YAAY,CAACM,SAAS,EAAEJ,MAAM,CAAC,CAAC,CAAA;AACnF,GAAC,MAAM;AACL,IAAA,OAAQE,QAAQ,CAAChR,MAAM,KAAK,CAAC,GAAI+Q,KAAK,GAAGH,YAAY,CAACI,QAAQ,EAAEF,MAAM,CAAC,CAAA;AACzE,GAAA;AACF,CAAC,CAAA;AACD;MACaK,8BAA8B,GAAGA,CAACC,QAA6B,EAAEvO,OAAqB,KAA0B;AAAA,EAAA,IAAAwO,qBAAA,CAAA;AAC3H,EAAA,IAAID,QAAQ,CAACjK,IAAI,CAAEmK,EAAgB,IAAKA,EAAE,CAAC9M,GAAG,MAAK3B,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE2B,GAAG,EAAC,EAAE;IAChE,OAAO4M,QAAQ,CAACxJ,GAAG,CAAE0J,EAAgB,IAAMA,EAAE,CAAC9M,GAAG,MAAK3B,OAAO,KAAPA,IAAAA,IAAAA,OAAO,uBAAPA,OAAO,CAAE2B,GAAG,CAAG3B,GAAAA,OAAO,GAAGyO,EAAG,CAAC,CAAA;AACrF,GAAA;EACA,MAAMC,WAAW,GAAGX,YAAY,CAC9BQ,QAAQ,CAACxJ,GAAG,CAAE/E,OAAqB,IAAA;AAAA,IAAA,IAAA2O,oBAAA,CAAA;IAAA,OAAK,CAAA3O,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAA2O,oBAAA,GAAP3O,OAAO,CAAE+L,WAAW,MAAA,IAAA,IAAA4C,oBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAsBC,SAAS,MAAI5O,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAE4O,SAAS,CAAA,CAAA;GAAC,CAAA,EAC9F,CAAA5O,OAAO,KAAPA,IAAAA,IAAAA,OAAO,wBAAAwO,qBAAA,GAAPxO,OAAO,CAAE+L,WAAW,MAAA,IAAA,IAAAyC,qBAAA,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAsBI,SAAS,MAAI5O,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAE4O,SAAS,CACtD,CAAA,CAAA;EACD,OAAO,CAAC,GAAGL,QAAQ,CAACH,KAAK,CAAC,CAAC,EAAEM,WAAW,CAAC,EAAE1O,OAAO,EAAE,GAAGuO,QAAQ,CAACH,KAAK,CAACM,WAAW,EAAEH,QAAQ,CAACpR,MAAM,CAAC,CAAC,CAAA;AACtG,EAAC;AAcW0R,IAAAA,aAAa,0BAAbA,aAAa,EAAA;EAAbA,aAAa,CAAA,QAAA,CAAA,GAAA,QAAA,CAAA;EAAbA,aAAa,CAAA,SAAA,CAAA,GAAA,SAAA,CAAA;EAAbA,aAAa,CAAA,KAAA,CAAA,GAAA,KAAA,CAAA;AAAA,EAAA,OAAbA,aAAa,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;AAWzB;AACA;AACA;AACA;AACO,MAAMC,sBAAsB,GAAGA,CAACC,IAAY,EAAEC,MAAmB,EAAEC,SAAkB,KAAuB;AACjH,EAAA,MAAMC,KAAK,GAAGF,MAAM,IAAI,EAAE,CAAA;AAC1B,EAAA,MAAMG,QAAQ,GAAGF,SAAS,IAAI,GAAG,CAAC;EAClC,MAAMG,WAA6B,GAAG,EAAE,CAAA;AACxC,EAAA,MAAMC,KAAK,GAAGnC,MAAM,CAAE,CAAEiC,EAAAA,QAAS,CAAID,EAAAA,EAAAA,KAAK,CAACnK,GAAG,CAAE6D,IAAI,IAAKA,IAAI,KAAJA,IAAAA,IAAAA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEzE,MAAM,CAAC,CAACxG,IAAI,CAAC,GAAG,CAAE,CAAG,EAAA,CAAA,EAAE,GAAG,CAAC,CAAA;AAC1F,EAAA,IAAI2R,cAAc,CAAA;EAClB,IAAIC,SAAS,GAAG,CAAC,CAAA;EACjB,OAAO,CAACD,cAAc,GAAGD,KAAK,CAACG,IAAI,CAACT,IAAI,CAAC,MAAM,IAAI,EAAE;AACnD,IAAA,MAAM,CAACI,QAAQ,EAAEhL,MAAM,CAAC,GAAGmL,cAAc,CAAA;AACzC,IAAA,MAAMG,QAAQ,GAAGJ,KAAK,CAACE,SAAS,CAAA;AAChC,IAAA,MAAMG,UAAU,GAAGD,QAAQ,GAAGN,QAAQ,CAAChS,MAAM,CAAA;AAC7C;IACA,MAAMwS,UAAU,GAAGZ,IAAI,CAACX,KAAK,CAACmB,SAAS,EAAEG,UAAU,CAAC,CAAA;IACpDN,WAAW,CAACrL,IAAI,CAAC;AACf5E,MAAAA,IAAI,EAAEgG,KAAK,CAACwK,UAAU,CAAC,GAAGd,aAAa,CAAClN,GAAG,GAAGkN,aAAa,CAACe,MAAM;AAClExM,MAAAA,KAAK,EAAEuM,UAAAA;AACT,KAAC,CAAC,CAAA;AACF;AACA,IAAA,MAAME,aAAa,GAAGX,KAAK,CAAC5L,IAAI,CAAEsF,IAAI,IAAK,CAAAA,IAAI,KAAA,IAAA,IAAJA,IAAI,KAAJA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEzE,MAAM,MAAKA,MAAM,CAAC,CAAA;IACnE,IAAI,CAAC0L,aAAa,EAAE;MAClBT,WAAW,CAACrL,IAAI,CAAC;QACf5E,IAAI,EAAE0P,aAAa,CAACe,MAAM;QAC1BxM,KAAK,EAAE+L,QAAQ;AACjB,OAAC,CAAC,CAAA;AACJ,KAAC,MAAM;MACLC,WAAW,CAACrL,IAAI,CAAC;QACf5E,IAAI,EAAE0P,aAAa,CAACiB,OAAO;QAC3B1M,KAAK,EAAE,CAAAyM,aAAa,KAAbA,IAAAA,IAAAA,aAAa,uBAAbA,aAAa,CAAE/G,QAAQ,KAAI,WAAW;AAC7C3E,QAAAA,MAAM,EAAEA,MAAAA;AACV,OAAC,CAAC,CAAA;AACJ,KAAA;AACAoL,IAAAA,SAAS,GAAGE,QAAQ,CAAA;AACtB,GAAA;AACA,EAAA,IAAIF,SAAS,GAAGR,IAAI,CAAC5R,MAAM,EAAE;AAC3B;AACA,IAAA,MAAMwS,UAAU,GAAGZ,IAAI,CAACX,KAAK,CAACmB,SAAS,CAAC,CAAA;IACxCH,WAAW,CAACrL,IAAI,CAAC;AACf5E,MAAAA,IAAI,EAAEgG,KAAK,CAACwK,UAAU,CAAC,GAAGd,aAAa,CAAClN,GAAG,GAAGkN,aAAa,CAACe,MAAM;AAClExM,MAAAA,KAAK,EAAEuM,UAAAA;AACT,KAAC,CAAC,CAAA;AACJ,GAAA;AACA,EAAA,OAAOP,WAAW,CAAA;AACpB,EAAC;MAEYW,UAAU,GAAGA,CAACC,MAAsB,EAAEC,MAAsB,KAAc;EACrF,IAAIhT,KAAK,CAACC,OAAO,CAAC8S,MAAM,CAAC,IAAI/S,KAAK,CAACC,OAAO,CAAC+S,MAAM,CAAC,IAAID,MAAM,CAAC7S,MAAM,KAAK8S,MAAM,CAAC9S,MAAM,EAAE;AACrF,IAAA,KAAK,IAAIoM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyG,MAAM,CAAC7S,MAAM,EAAEoM,CAAC,EAAE,EAAE;MACtC,IAAIyG,MAAM,CAACzG,CAAC,CAAC,KAAK0G,MAAM,CAAC1G,CAAC,CAAC,EAAE;AAC3B,QAAA,OAAO,KAAK,CAAA;AACd,OAAA;AACF,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"index-afdd497f.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo && isImage(fileInfo.mimeType);\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isGifFileInfo = (fileInfo: UploadedFileInfo): boolean => (\n fileInfo && isGif(fileInfo.mimeType)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","_objectSpread","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","_message$ogMetaData","_message$ogMetaData2","_message$ogMetaData3","_message$ogMetaData4","ogMetaData","url","title","description","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isGifFileInfo","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_message$metaArrays$f","_message$metaArrays","_message$metaArrays$f2","_message$metaArrays$f3","typeParameter","split","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","currentValue","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","_emojiContainer$emoji","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","_emojiContainer$emoji2","emojiMap","Map","forEach","category","_category$emojis","emoji","set","findEmojiUrl","targetKey","_ref","getEmojiUrl","emojiKey","_emojiContainer$emoji3","_emojiContainer$emoji4","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","_params$senderUserIds","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","_message$isUserMessag","_message$isFileMessag","_params$senderUserIds2","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","_searchFilter$fields$","_searchFilter$fields","_userIdsFilter$userId","_channel$name2","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","metadataKey","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery","searchFields","searchField","_channel$name","name","toLowerCase","_channel$members","members","member","_channel$members2","includeMode","queryType","memberIds","_channel$members3","every","isFrozen","RegExp","_channel$members4","lowerCasedSubString","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","cachedMetaData","metadataValue","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","_channel$lastMessage2","ch","targetIndex","_channel$lastMessage","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","exec","endIndex","startIndex","normalText","normal","mentionedUser","mention","arrayEqual","array1","array2"],"mappings":"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"}
@@ -4,4 +4,4 @@ import 'react';
4
4
  const MODAL_ROOT = 'sendbird-modal-root';
5
5
 
6
6
  export { MODAL_ROOT as M };
7
- //# sourceMappingURL=index-134f97cd.js.map
7
+ //# sourceMappingURL=index-c277467e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-134f97cd.js","sources":["../src/hooks/useModal/ModalRoot/index.tsx"],"sourcesContent":["// simple component to be used as modal root\nimport React, { ReactElement } from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport const ModalRoot = (): ReactElement => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\nexport default ModalRoot;\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}
1
+ {"version":3,"file":"index-c277467e.js","sources":["../src/hooks/useModal/ModalRoot/index.tsx"],"sourcesContent":["// simple component to be used as modal root\nimport React, { ReactElement } from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport const ModalRoot = (): ReactElement => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\nexport default ModalRoot;\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}
@@ -1,5 +1,5 @@
1
- import { i as isSameDay } from './index-c5f3ebb5.js';
2
- import { r as requiredArgs, t as toDate, a as toInteger } from './index-c46d2bb8.js';
1
+ import { i as isSameDay } from './index-6805d5c8.js';
2
+ import { r as requiredArgs, t as toDate, a as toInteger } from './index-9ea624d5.js';
3
3
 
4
4
  /**
5
5
  * @name isToday
@@ -171,4 +171,4 @@ function isYesterday(dirtyDate) {
171
171
  }
172
172
 
173
173
  export { isYesterday as a, isThisYear as b, isToday as i };
174
- //# sourceMappingURL=index-a3ca9833.js.map
174
+ //# sourceMappingURL=index-cdaae7f9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-a3ca9833.js","sources":["../node_modules/date-fns/esm/isToday/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isThisYear/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/isYesterday/index.js"],"sourcesContent":["import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isSameYear from \"../isSameYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isThisYear\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * const result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isThisYear(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameYear(dirtyDate, Date.now());\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import isSameDay from \"../isSameDay/index.js\";\nimport subDays from \"../subDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * const result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\n\nexport default function isYesterday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, subDays(Date.now(), 1));\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-cdaae7f9.js","sources":["../node_modules/date-fns/esm/isToday/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isThisYear/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/isYesterday/index.js"],"sourcesContent":["import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isSameYear from \"../isSameYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isThisYear\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * const result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isThisYear(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameYear(dirtyDate, Date.now());\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import isSameDay from \"../isSameDay/index.js\";\nimport subDays from \"../subDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * const result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\n\nexport default function isYesterday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, subDays(Date.now(), 1));\n}"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { b as _extends } from './_rollupPluginBabelHelpers-50696833.js';
1
+ import { b as _extends } from './_rollupPluginBabelHelpers-0cef07cb.js';
2
2
  import React__default, { useState, useCallback, useMemo, createContext, useContext } from 'react';
3
- import { K } from './index.module-05a84007.js';
4
- import { n as noop } from './utils-1a4154f1.js';
3
+ import { K } from './index.module-f3f31594.js';
4
+ import { n as noop } from './utils-eb4100d3.js';
5
5
  import { Modal } from './ui/Modal.js';
6
6
 
7
7
  const GlobalModalContext = /*#__PURE__*/createContext({
@@ -48,4 +48,4 @@ const GlobalModalProvider = _ref => {
48
48
  const useGlobalModalContext = () => useContext(GlobalModalContext);
49
49
 
50
50
  export { GlobalModalProvider as G, useGlobalModalContext as u };
51
- //# sourceMappingURL=index-7ff60f7d.js.map
51
+ //# sourceMappingURL=index-f35b1dcc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-7ff60f7d.js","sources":["../src/hooks/useModal/index.tsx"],"sourcesContent":["import React, { useState, useCallback, ReactElement, createContext, useMemo, useContext } from 'react';\nimport { match } from 'ts-pattern';\n\nimport { noop } from '../../utils/utils';\nimport Modal, { type ModalProps } from '../../ui/Modal';\n\nexport type OpenGlobalModalProps = {\n modalProps: ModalProps;\n childElement: (props: { closeModal: () => void }) => ReactElement;\n};\nexport interface GlobalModalProviderProps {\n children: ReactElement;\n}\nexport interface GlobalModalContextInterface {\n openModal: (props: OpenGlobalModalProps) => void;\n}\n\nconst GlobalModalContext = createContext<GlobalModalContextInterface>({\n openModal: noop,\n});\n\nexport const GlobalModalProvider = ({ children }: GlobalModalProviderProps) => {\n // Idea from https://dev.to/nurislamov/simple-modals-queue-in-react-4g6c\n const [globalModalQueue, setGlobalModalQueue] = useState<Array<OpenGlobalModalProps>>([]);\n\n const openModal = useCallback((props: OpenGlobalModalProps) => {\n setGlobalModalQueue((currentQue) => [...currentQue, props]);\n }, []);\n\n const closeModal = useCallback(() => {\n setGlobalModalQueue((currentQue) => currentQue.slice(1));\n }, []);\n\n const ModalComponent = useMemo(() => () => {\n return match(globalModalQueue)\n .when(q => q.length === 0, () => {\n return <></>;\n })\n .otherwise(() => {\n const { modalProps, childElement } = globalModalQueue[0];\n return (\n <Modal\n {...modalProps}\n className={`sendbird-global-modal ${modalProps?.className}`}\n onClose={() => {\n modalProps?.onClose?.();\n closeModal();\n }}\n >\n {\n childElement({\n closeModal,\n })\n }\n </Modal>\n );\n });\n }, [globalModalQueue]);\n\n return (\n <GlobalModalContext.Provider\n value={{\n openModal,\n }}\n >\n <ModalComponent />\n {children}\n </GlobalModalContext.Provider>\n );\n};\nexport const useGlobalModalContext = (): GlobalModalContextInterface => useContext(GlobalModalContext);\n\nexport * from './ModalRoot';\n"],"names":["GlobalModalContext","createContext","openModal","noop","GlobalModalProvider","_ref","children","globalModalQueue","setGlobalModalQueue","useState","useCallback","props","currentQue","closeModal","slice","ModalComponent","useMemo","match","when","q","length","React","createElement","Fragment","otherwise","modalProps","childElement","Modal","_extends","className","onClose","_modalProps$onClose","call","Provider","value","useGlobalModalContext","useContext"],"mappings":";;;;;;AAiBA,MAAMA,kBAAkB,gBAAGC,aAAa,CAA8B;AACpEC,EAAAA,SAAS,EAAEC,IAAAA;AACb,CAAC,CAAC,CAAA;AAEWC,MAAAA,mBAAmB,GAAGC,IAAA,IAA4C;EAAA,IAA3C;AAAEC,IAAAA,QAAAA;AAAmC,GAAC,GAAAD,IAAA,CAAA;AACxE;EACA,MAAM,CAACE,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,QAAQ,CAA8B,EAAE,CAAC,CAAA;AAEzF,EAAA,MAAMP,SAAS,GAAGQ,WAAW,CAAEC,KAA2B,IAAK;IAC7DH,mBAAmB,CAAEI,UAAU,IAAK,CAAC,GAAGA,UAAU,EAAED,KAAK,CAAC,CAAC,CAAA;GAC5D,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAME,UAAU,GAAGH,WAAW,CAAC,MAAM;IACnCF,mBAAmB,CAAEI,UAAU,IAAKA,UAAU,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;GACzD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGC,OAAO,CAAC,MAAM,MAAM;AACzC,IAAA,OAAOC,CAAK,CAACV,gBAAgB,CAAC,CAC3BW,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,MAAM;AAC/B,MAAA,oBAAOC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAK,IAAA,CAAA,CAAA;AACd,KAAC,CAAC,CACDC,SAAS,CAAC,MAAM;MACf,MAAM;QAAEC,UAAU;AAAEC,QAAAA,YAAAA;AAAa,OAAC,GAAGnB,gBAAgB,CAAC,CAAC,CAAC,CAAA;MACxD,oBACEc,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAAC,QAAA,KACAH,UAAU,EAAA;QACdI,SAAS,EAAG,yBAAwBJ,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEI,SAAU,CAAE,CAAA;QAC5DC,OAAO,EAAEA,MAAM;AAAA,UAAA,IAAAC,mBAAA,CAAA;AACbN,UAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAM,mBAAA,GAAVN,UAAU,CAAEK,OAAO,MAAAC,IAAAA,IAAAA,mBAAA,uBAAnBA,mBAAA,CAAAC,IAAA,CAAAP,UAAU,CAAa,CAAA;AACvBZ,UAAAA,UAAU,EAAE,CAAA;AACd,SAAA;AAAE,OAAA,CAAA,EAGAa,YAAY,CAAC;AACXb,QAAAA,UAAAA;AACF,OAAC,CAAC,CAEE,CAAA;AAEZ,KAAC,CAAC,CAAA;AACN,GAAC,EAAE,CAACN,gBAAgB,CAAC,CAAC,CAAA;AAEtB,EAAA,oBACEc,cAAA,CAAAC,aAAA,CAACtB,kBAAkB,CAACiC,QAAQ,EAAA;AAC1BC,IAAAA,KAAK,EAAE;AACLhC,MAAAA,SAAAA;AACF,KAAA;GAEAmB,eAAAA,cAAA,CAAAC,aAAA,CAACP,cAAc,EAAG,IAAA,CAAA,EACjBT,QAAQ,CACmB,CAAA;AAElC,EAAC;AACM,MAAM6B,qBAAqB,GAAGA,MAAmCC,UAAU,CAACpC,kBAAkB;;;;"}
1
+ {"version":3,"file":"index-f35b1dcc.js","sources":["../src/hooks/useModal/index.tsx"],"sourcesContent":["import React, { useState, useCallback, ReactElement, createContext, useMemo, useContext } from 'react';\nimport { match } from 'ts-pattern';\n\nimport { noop } from '../../utils/utils';\nimport Modal, { type ModalProps } from '../../ui/Modal';\n\nexport type OpenGlobalModalProps = {\n modalProps: ModalProps;\n childElement: (props: { closeModal: () => void }) => ReactElement;\n};\nexport interface GlobalModalProviderProps {\n children: ReactElement;\n}\nexport interface GlobalModalContextInterface {\n openModal: (props: OpenGlobalModalProps) => void;\n}\n\nconst GlobalModalContext = createContext<GlobalModalContextInterface>({\n openModal: noop,\n});\n\nexport const GlobalModalProvider = ({ children }: GlobalModalProviderProps) => {\n // Idea from https://dev.to/nurislamov/simple-modals-queue-in-react-4g6c\n const [globalModalQueue, setGlobalModalQueue] = useState<Array<OpenGlobalModalProps>>([]);\n\n const openModal = useCallback((props: OpenGlobalModalProps) => {\n setGlobalModalQueue((currentQue) => [...currentQue, props]);\n }, []);\n\n const closeModal = useCallback(() => {\n setGlobalModalQueue((currentQue) => currentQue.slice(1));\n }, []);\n\n const ModalComponent = useMemo(() => () => {\n return match(globalModalQueue)\n .when(q => q.length === 0, () => {\n return <></>;\n })\n .otherwise(() => {\n const { modalProps, childElement } = globalModalQueue[0];\n return (\n <Modal\n {...modalProps}\n className={`sendbird-global-modal ${modalProps?.className}`}\n onClose={() => {\n modalProps?.onClose?.();\n closeModal();\n }}\n >\n {\n childElement({\n closeModal,\n })\n }\n </Modal>\n );\n });\n }, [globalModalQueue]);\n\n return (\n <GlobalModalContext.Provider\n value={{\n openModal,\n }}\n >\n <ModalComponent />\n {children}\n </GlobalModalContext.Provider>\n );\n};\nexport const useGlobalModalContext = (): GlobalModalContextInterface => useContext(GlobalModalContext);\n\nexport * from './ModalRoot';\n"],"names":["GlobalModalContext","createContext","openModal","noop","GlobalModalProvider","_ref","children","globalModalQueue","setGlobalModalQueue","useState","useCallback","props","currentQue","closeModal","slice","ModalComponent","useMemo","match","when","q","length","React","createElement","Fragment","otherwise","modalProps","childElement","Modal","_extends","className","onClose","_modalProps$onClose","call","Provider","value","useGlobalModalContext","useContext"],"mappings":";;;;;;AAiBA,MAAMA,kBAAkB,gBAAGC,aAAa,CAA8B;AACpEC,EAAAA,SAAS,EAAEC,IAAAA;AACb,CAAC,CAAC,CAAA;AAEWC,MAAAA,mBAAmB,GAAGC,IAAA,IAA4C;EAAA,IAA3C;AAAEC,IAAAA,QAAAA;AAAmC,GAAC,GAAAD,IAAA,CAAA;AACxE;EACA,MAAM,CAACE,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,QAAQ,CAA8B,EAAE,CAAC,CAAA;AAEzF,EAAA,MAAMP,SAAS,GAAGQ,WAAW,CAAEC,KAA2B,IAAK;IAC7DH,mBAAmB,CAAEI,UAAU,IAAK,CAAC,GAAGA,UAAU,EAAED,KAAK,CAAC,CAAC,CAAA;GAC5D,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAME,UAAU,GAAGH,WAAW,CAAC,MAAM;IACnCF,mBAAmB,CAAEI,UAAU,IAAKA,UAAU,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;GACzD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGC,OAAO,CAAC,MAAM,MAAM;AACzC,IAAA,OAAOC,CAAK,CAACV,gBAAgB,CAAC,CAC3BW,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,MAAM;AAC/B,MAAA,oBAAOC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAK,IAAA,CAAA,CAAA;AACd,KAAC,CAAC,CACDC,SAAS,CAAC,MAAM;MACf,MAAM;QAAEC,UAAU;AAAEC,QAAAA,YAAAA;AAAa,OAAC,GAAGnB,gBAAgB,CAAC,CAAC,CAAC,CAAA;MACxD,oBACEc,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAAC,QAAA,KACAH,UAAU,EAAA;QACdI,SAAS,EAAG,yBAAwBJ,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEI,SAAU,CAAE,CAAA;QAC5DC,OAAO,EAAEA,MAAM;AAAA,UAAA,IAAAC,mBAAA,CAAA;AACbN,UAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAM,mBAAA,GAAVN,UAAU,CAAEK,OAAO,MAAAC,IAAAA,IAAAA,mBAAA,uBAAnBA,mBAAA,CAAAC,IAAA,CAAAP,UAAU,CAAa,CAAA;AACvBZ,UAAAA,UAAU,EAAE,CAAA;AACd,SAAA;AAAE,OAAA,CAAA,EAGAa,YAAY,CAAC;AACXb,QAAAA,UAAAA;AACF,OAAC,CAAC,CAEE,CAAA;AAEZ,KAAC,CAAC,CAAA;AACN,GAAC,EAAE,CAACN,gBAAgB,CAAC,CAAC,CAAA;AAEtB,EAAA,oBACEc,cAAA,CAAAC,aAAA,CAACtB,kBAAkB,CAACiC,QAAQ,EAAA;AAC1BC,IAAAA,KAAK,EAAE;AACLhC,MAAAA,SAAAA;AACF,KAAA;GAEAmB,eAAAA,cAAA,CAAAC,aAAA,CAACP,cAAc,EAAG,IAAA,CAAA,EACjBT,QAAQ,CACmB,CAAA;AAElC,EAAC;AACM,MAAM6B,qBAAqB,GAAGA,MAAmCC,UAAU,CAACpC,kBAAkB;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { useRef, useEffect, useCallback } from 'react';
2
- import { S as SCROLL_BUFFER } from './consts-2ddaffce.js';
2
+ import { S as SCROLL_BUFFER } from './consts-9f4a812e.js';
3
3
 
4
4
  function useDebounce(callback, delay) {
5
5
  const timeoutRef = useRef(null);
@@ -73,4 +73,4 @@ function useHandleOnScrollCallback(_ref) {
73
73
  }
74
74
 
75
75
  export { useHandleOnScrollCallback as a, useDebounce as u };
76
- //# sourceMappingURL=index-3bead442.js.map
76
+ //# sourceMappingURL=index-f48e9c68.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-f48e9c68.js","sources":["../src/hooks/useDebounce.ts","../src/hooks/useHandleOnScrollCallback/index.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport function useDebounce<T extends(...args: any[]) => void>(callback: T, delay: number): T {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n // Cleanup the timeout on unmount\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n function debounceFunction(...args: Parameters<T>) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }\n\n return debounceFunction as T;\n}\n","import React, { useCallback } from 'react';\nimport { SCROLL_BUFFER } from '../../utils/consts';\nimport { useDebounce } from '../useDebounce';\n\nconst DELAY = 500;\n\nexport interface UseHandleOnScrollCallbackProps {\n hasMore: boolean;\n hasNext?: boolean;\n onScroll(callback: () => void): void;\n scrollRef: React.RefObject<HTMLDivElement>;\n setShowScrollDownButton?: React.Dispatch<React.SetStateAction<boolean>>;\n setIsScrolled?: 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 hasNext,\n onScroll,\n scrollRef,\n setShowScrollDownButton,\n}: UseHandleOnScrollCallbackProps): () => void {\n const scrollCb = 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 && 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 if (hasNext) {\n onScroll(() => {\n // sets the scroll position to the top of the new messages\n element.scrollTop = scrollTop - (scrollHeight - element.scrollHeight);\n });\n }\n }, [\n setShowScrollDownButton,\n hasMore,\n onScroll,\n scrollRef,\n ]);\n\n return useDebounce(scrollCb, DELAY);\n}\n"],"names":["useDebounce","callback","delay","timeoutRef","useRef","useEffect","current","clearTimeout","debounceFunction","_len","arguments","length","args","Array","_key","setTimeout","DELAY","calcScrollBottom","scrollHeight","scrollTop","useHandleOnScrollCallback","_ref","hasMore","hasNext","onScroll","scrollRef","setShowScrollDownButton","scrollCb","useCallback","element","clientHeight","scrollBottom","SCROLL_BUFFER"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { useCallback } from 'react';
2
2
  import DOMPurify from 'dompurify';
3
- import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-a27675df.js';
4
- import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-087a1fb9.js';
5
- import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-8b2a8d9c.js';
3
+ import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-6e6f7e9f.js';
4
+ import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-d580c2c7.js';
5
+ import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-b5df6e74.js';
6
6
 
7
7
  // cretes a sanitized string from a mention user label
8
8
  function renderToString(_ref) {
@@ -38,6 +38,10 @@ const nodeListToArray = childNodes => {
38
38
  return [];
39
39
  }
40
40
  };
41
+ function isChannelTypeSupportsMultipleFilesMessage(channel) {
42
+ var _channel$isGroupChann;
43
+ return channel && (channel === null || channel === void 0 ? void 0 : (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !channel.isBroadcast && !channel.isSuper;
44
+ }
41
45
 
42
46
  function inserTemplateToDOM(templateList) {
43
47
  const nodes = templateList.map(template => {
@@ -217,5 +221,5 @@ function usePaste(_ref) {
217
221
  }, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
218
222
  }
219
223
 
220
- export { nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
221
- //# sourceMappingURL=index-6233952f.js.map
224
+ export { isChannelTypeSupportsMultipleFilesMessage as i, nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
225
+ //# sourceMappingURL=index-fde902d5.js.map